mirror of
https://github.com/adobe-fonts/source-code-pro.git
synced 2026-04-26 03:00:26 -04:00
@@ -1,2 +1,2 @@
|
||||
# Romans
|
||||
FontRevision 1.052;
|
||||
FontRevision 1.058;
|
||||
|
||||
53
Italic/Masters/STAT.fea
Normal file
53
Italic/Masters/STAT.fea
Normal file
@@ -0,0 +1,53 @@
|
||||
table STAT {
|
||||
|
||||
ElidedFallbackName { name "Italic"; };
|
||||
|
||||
DesignAxis wght 0 { name "Weight"; };
|
||||
DesignAxis ital 1 { name "Italic"; };
|
||||
|
||||
AxisValue {
|
||||
location wght 200 200 250;
|
||||
name "ExtraLight";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 300 250 350;
|
||||
name "Light";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 400 350 450;
|
||||
name "Regular";
|
||||
flag ElidableAxisValueName;
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 500 450 550;
|
||||
name "Medium";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 600 550 650;
|
||||
name "Semibold";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 700 650 750;
|
||||
name "Bold";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 800 750 800;
|
||||
name "ExtraBold";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 900 800 900;
|
||||
name "Black";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location ital 1 0;
|
||||
name "Italic";
|
||||
};
|
||||
} STAT;
|
||||
@@ -1,85 +1,85 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<designspace format="3">
|
||||
<axes>
|
||||
<axis default="0.0" maximum="1000.0" minimum="0.0" name="weight" tag="wght" />
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="master_0/SourceCode_ExtraLight-Italic.ufo" name="master_0">
|
||||
<lib copy="1" />
|
||||
<groups copy="1" />
|
||||
<info copy="1" />
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0" />
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_1/SourceCode_Regular-Italic.ufo" name="master_1">
|
||||
<glyph mute="1" name="D" />
|
||||
<glyph mute="1" name="H" />
|
||||
<glyph mute="1" name="T" />
|
||||
<glyph mute="1" name="dotlessi" />
|
||||
<glyph mute="1" name="dotlessj" />
|
||||
<glyph mute="1" name="esh" />
|
||||
<glyph mute="1" name="l" />
|
||||
<glyph mute="1" name="t" />
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368" />
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_2/SourceCode_Black-Italic.ufo" name="master_2">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000" />
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/ExtraLightIt/font.ufo" postscriptfontname="SourceCodePro-ExtraLightIt" stylename="ExtraLightIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/LightIt/font.ufo" postscriptfontname="SourceCodePro-LightIt" stylename="LightIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="100" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/It/font.ufo" postscriptfontname="SourceCodePro-It" stylename="It">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/MediumIt/font.ufo" postscriptfontname="SourceCodePro-MediumIt" stylename="MediumIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="486" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/SemiboldIt/font.ufo" postscriptfontname="SourceCodePro-SemiboldIt" stylename="SemiboldIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="600" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/BoldIt/font.ufo" postscriptfontname="SourceCodePro-BoldIt" stylename="BoldIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="824" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/BlackIt/font.ufo" postscriptfontname="SourceCodePro-BlackIt" stylename="BlackIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
</instances>
|
||||
<axes>
|
||||
<axis default="0.0" maximum="1000.0" minimum="0.0" name="weight" tag="wght"/>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="master_0/SourceCode_ExtraLight-Italic.ufo" name="master_0">
|
||||
<lib copy="1"/>
|
||||
<groups copy="1"/>
|
||||
<info copy="1"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_1/SourceCode_Regular-Italic.ufo" name="master_1">
|
||||
<glyph mute="1" name="D"/>
|
||||
<glyph mute="1" name="H"/>
|
||||
<glyph mute="1" name="T"/>
|
||||
<glyph mute="1" name="dotlessi"/>
|
||||
<glyph mute="1" name="dotlessj"/>
|
||||
<glyph mute="1" name="esh"/>
|
||||
<glyph mute="1" name="l"/>
|
||||
<glyph mute="1" name="t"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_2/SourceCode_Black-Italic.ufo" name="master_2">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/ExtraLightIt/font.ufo" postscriptfontname="SourceCodePro-ExtraLightIt" stylename="ExtraLightIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/LightIt/font.ufo" postscriptfontname="SourceCodePro-LightIt" stylename="LightIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/It/font.ufo" postscriptfontname="SourceCodePro-It" stylename="It">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/MediumIt/font.ufo" postscriptfontname="SourceCodePro-MediumIt" stylename="MediumIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="486"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/SemiboldIt/font.ufo" postscriptfontname="SourceCodePro-SemiboldIt" stylename="SemiboldIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="600"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/BoldIt/font.ufo" postscriptfontname="SourceCodePro-BoldIt" stylename="BoldIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="824"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Pro" filename="../Instances/BlackIt/font.ufo" postscriptfontname="SourceCodePro-BlackIt" stylename="BlackIt">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
||||
|
||||
@@ -1,92 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<designspace format="3">
|
||||
<axes>
|
||||
<axis default="200.0" maximum="900.0" minimum="200.0" name="weight" tag="wght">
|
||||
<map input="200" output="0" /> <!-- ExtraLight -->
|
||||
<map input="300" output="100" /> <!-- Light -->
|
||||
<map input="400" output="368" /> <!-- Regular -->
|
||||
<map input="500" output="486" /> <!-- Medium -->
|
||||
<map input="600" output="600" /> <!-- Semibold -->
|
||||
<map input="700" output="824" /> <!-- Bold -->
|
||||
<map input="900" output="1000" /><!-- Black -->
|
||||
</axis>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="master_0/SourceCode_ExtraLight-Italic.ufo" name="master_0">
|
||||
<lib copy="1" />
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0" />
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_1/SourceCode_Regular-Italic.ufo" name="master_1">
|
||||
<glyph mute="1" name="D" />
|
||||
<glyph mute="1" name="H" />
|
||||
<glyph mute="1" name="T" />
|
||||
<glyph mute="1" name="dotlessi" />
|
||||
<glyph mute="1" name="dotlessj" />
|
||||
<glyph mute="1" name="esh" />
|
||||
<glyph mute="1" name="l" />
|
||||
<glyph mute="1" name="t" />
|
||||
<info copy="1" />
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368" />
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_2/SourceCode_Black-Italic.ufo" name="master_2">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000" />
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-ExtraLight" stylename="ExtraLight Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Light" stylename="Light Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="100" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Regular" stylename="Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Medium" stylename="Medium Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="486" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Semibold" stylename="Semibold Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="600" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Bold" stylename="Bold Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="824" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Black" stylename="Black Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
</instances>
|
||||
<axes>
|
||||
<axis default="200.0" maximum="900.0" minimum="200.0" name="weight" tag="wght">
|
||||
<map input="200" output="0"/> <!-- ExtraLight -->
|
||||
<map input="300" output="100"/> <!-- Light -->
|
||||
<map input="400" output="368"/> <!-- Regular -->
|
||||
<map input="500" output="486"/> <!-- Medium -->
|
||||
<map input="600" output="600"/> <!-- Semibold -->
|
||||
<map input="700" output="824"/> <!-- Bold -->
|
||||
<map input="900" output="1000"/> <!-- Black -->
|
||||
</axis>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="master_0/SourceCode_ExtraLight-Italic.ufo" name="master_0">
|
||||
<lib copy="1"/>
|
||||
<groups copy="1"/>
|
||||
<info copy="1"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_1/SourceCode_Regular-Italic.ufo" name="master_1">
|
||||
<glyph mute="1" name="D"/>
|
||||
<glyph mute="1" name="H"/>
|
||||
<glyph mute="1" name="T"/>
|
||||
<glyph mute="1" name="dotlessi"/>
|
||||
<glyph mute="1" name="dotlessj"/>
|
||||
<glyph mute="1" name="esh"/>
|
||||
<glyph mute="1" name="l"/>
|
||||
<glyph mute="1" name="t"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_2/SourceCode_Black-Italic.ufo" name="master_2">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-ExtraLight" stylename="ExtraLight Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Light" stylename="Light Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Regular" stylename="Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Medium" stylename="Medium Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="486"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Semibold" stylename="Semibold Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="600"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Bold" stylename="Bold Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="824"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Italic" postscriptfontname="SourceCodeItalic-Black" stylename="Black Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Italic variable
|
||||
FontRevision 1.012;
|
||||
FontRevision 1.016;
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
</array>
|
||||
<key>italicAngle</key>
|
||||
<integer>-11</integer>
|
||||
<key>openTypeOS2VendorID</key>
|
||||
<string>ADBO</string>
|
||||
<key>postscriptBlueFuzz</key>
|
||||
<integer>0</integer>
|
||||
<key>postscriptBlueScale</key>
|
||||
@@ -86,7 +88,7 @@
|
||||
<key>versionMajor</key>
|
||||
<integer>1</integer>
|
||||
<key>versionMinor</key>
|
||||
<integer>0</integer>
|
||||
<integer>16</integer>
|
||||
<key>xHeight</key>
|
||||
<integer>478</integer>
|
||||
</dict>
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
</array>
|
||||
<key>italicAngle</key>
|
||||
<integer>-11</integer>
|
||||
<key>openTypeOS2VendorID</key>
|
||||
<string>ADBO</string>
|
||||
<key>postscriptBlueFuzz</key>
|
||||
<integer>0</integer>
|
||||
<key>postscriptBlueScale</key>
|
||||
@@ -86,7 +88,7 @@
|
||||
<key>versionMajor</key>
|
||||
<integer>1</integer>
|
||||
<key>versionMinor</key>
|
||||
<integer>0</integer>
|
||||
<integer>16</integer>
|
||||
<key>xHeight</key>
|
||||
<integer>486</integer>
|
||||
</dict>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="space" format="2">
|
||||
<unicode hex="0020"/>
|
||||
<advance width="500"/>
|
||||
<advance width="600"/>
|
||||
</glyph>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -17,6 +17,8 @@
|
||||
</array>
|
||||
<key>italicAngle</key>
|
||||
<integer>-11</integer>
|
||||
<key>openTypeOS2VendorID</key>
|
||||
<string>ADBO</string>
|
||||
<key>postscriptBlueFuzz</key>
|
||||
<integer>0</integer>
|
||||
<key>postscriptBlueScale</key>
|
||||
@@ -86,7 +88,7 @@
|
||||
<key>versionMajor</key>
|
||||
<integer>1</integer>
|
||||
<key>versionMinor</key>
|
||||
<integer>0</integer>
|
||||
<integer>16</integer>
|
||||
<key>xHeight</key>
|
||||
<integer>500</integer>
|
||||
</dict>
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ttFont sfntVersion="OTTO" ttLibVersion="3.13">
|
||||
|
||||
<STAT>
|
||||
<Version value="0x00010001"/>
|
||||
<DesignAxisRecordSize value="8"/>
|
||||
<!-- DesignAxisCount=2 -->
|
||||
<DesignAxisRecord>
|
||||
<Axis index="0">
|
||||
<AxisTag value="wght"/>
|
||||
<AxisNameID value="280"/> <!-- Weight -->
|
||||
<AxisOrdering value="0"/>
|
||||
</Axis>
|
||||
<Axis index="1">
|
||||
<AxisTag value="ital"/>
|
||||
<AxisNameID value="272"/> <!-- Italic -->
|
||||
<AxisOrdering value="1"/>
|
||||
</Axis>
|
||||
</DesignAxisRecord>
|
||||
<!-- AxisValueCount=9 -->
|
||||
<AxisValueArray>
|
||||
<AxisValue index="0" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="273"/> <!-- ExtraLight -->
|
||||
<NominalValue value="200.0"/>
|
||||
<RangeMinValue value="200.0"/>
|
||||
<RangeMaxValue value="250.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="1" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="274"/> <!-- Light -->
|
||||
<NominalValue value="300.0"/>
|
||||
<RangeMinValue value="250.0"/>
|
||||
<RangeMaxValue value="350.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="2" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="2"/>
|
||||
<ValueNameID value="275"/> <!-- Regular -->
|
||||
<NominalValue value="400.0"/>
|
||||
<RangeMinValue value="350.0"/>
|
||||
<RangeMaxValue value="450.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="3" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="276"/> <!-- Medium -->
|
||||
<NominalValue value="500.0"/>
|
||||
<RangeMinValue value="450.0"/>
|
||||
<RangeMaxValue value="550.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="4" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="277"/> <!-- Semibold -->
|
||||
<NominalValue value="600.0"/>
|
||||
<RangeMinValue value="550.0"/>
|
||||
<RangeMaxValue value="650.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="5" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="278"/> <!-- Bold -->
|
||||
<NominalValue value="700.0"/>
|
||||
<RangeMinValue value="650.0"/>
|
||||
<RangeMaxValue value="800.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="6" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="279"/> <!-- Black -->
|
||||
<NominalValue value="900.0"/>
|
||||
<RangeMinValue value="800.0"/>
|
||||
<RangeMaxValue value="900.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="7" Format="3">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="2"/>
|
||||
<ValueNameID value="275"/> <!-- Regular -->
|
||||
<Value value="400.0"/>
|
||||
<LinkedValue value="700.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="8" Format="1">
|
||||
<AxisIndex value="1"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="272"/> <!-- Italic -->
|
||||
<Value value="1.0"/>
|
||||
</AxisValue>
|
||||
</AxisValueArray>
|
||||
<ElidedFallbackNameID value="2"/> <!-- Italic -->
|
||||
</STAT>
|
||||
|
||||
</ttFont>
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
@LETTERS_MAJUSCULE_ALL = [@LETTERS_MAJUSCULE_LATIN_ALL]; ##### @LETTERS_MAJUSCULE_GREEK_ALL @LETTERS_MAJUSCULE_CYRILLIC_ALL];
|
||||
|
||||
@MARKS_ABOVE_CMB = [gravecmb acutecmb circumflexcmb tildecmb macroncmb overlinecmb brevecmb brevecmb.cyr dotaccentcmb dieresiscmb hoicmb ringcmb hungarumlautcmb caroncmb dblgravecmb breveinvertedcmb perispomenicmb];
|
||||
@MARKS_ABOVE_CMB = [gravecmb acutecmb circumflexcmb tildecmb macroncmb overlinecmb brevecmb dotaccentcmb dieresiscmb hoicmb candrabinducmb ringcmb hungarumlautcmb caroncmb dblgravecmb breveinvertedcmb perispomenicmb];
|
||||
# dieresisacutecmb dieresisgravecmb dieresismacroncmb dieresiscaroncmb circumflexacutecmb circumflexgravecmb circumflexhoicmb circumflextildecmb breveacutecmb brevegravecmb brevehoicmb brevetildecmb circumflexbrevecmb macronacutecmb];
|
||||
@MARKS_BELOW_CMB = [cedillacmb ogonekcmb];
|
||||
@MARKS_CMB_ALL = [@MARKS_ABOVE_CMB @MARKS_BELOW_CMB];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright 2010-2019 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
|
||||
Copyright 2010-2020 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Romans
|
||||
FontRevision 2.032;
|
||||
FontRevision 2.038;
|
||||
|
||||
54
Roman/Masters/STAT.fea
Normal file
54
Roman/Masters/STAT.fea
Normal file
@@ -0,0 +1,54 @@
|
||||
table STAT {
|
||||
|
||||
ElidedFallbackName { name "Regular"; };
|
||||
|
||||
DesignAxis wght 0 { name "Weight"; };
|
||||
DesignAxis ital 1 { name "Italic"; };
|
||||
|
||||
AxisValue {
|
||||
location wght 200 200 250;
|
||||
name "ExtraLight";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 300 250 350;
|
||||
name "Light";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 400 350 450;
|
||||
name "Regular";
|
||||
flag ElidableAxisValueName;
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 500 450 550;
|
||||
name "Medium";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 600 550 650;
|
||||
name "Semibold";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 700 650 750;
|
||||
name "Bold";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 800 750 800;
|
||||
name "ExtraBold";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location wght 900 800 900;
|
||||
name "Black";
|
||||
};
|
||||
|
||||
AxisValue {
|
||||
location ital 0 1;
|
||||
name "Regular";
|
||||
flag ElidableAxisValueName;
|
||||
};
|
||||
} STAT;
|
||||
@@ -1,96 +1,99 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<designspace format="3">
|
||||
<axes>
|
||||
<axis default="200.0" maximum="900.0" minimum="200.0" name="weight" tag="wght">
|
||||
<map input="200" output="0" /> <!-- ExtraLight -->
|
||||
<map input="300" output="100" /> <!-- Light -->
|
||||
<map input="400" output="368" /> <!-- Regular -->
|
||||
<map input="500" output="486" /> <!-- Medium -->
|
||||
<map input="600" output="600" /> <!-- Semibold -->
|
||||
<map input="700" output="824" /> <!-- Bold -->
|
||||
<map input="900" output="1000" /><!-- Black -->
|
||||
</axis>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="master_0/SourceCode_ExtraLight.ufo" name="master_0">
|
||||
<lib copy="1" />
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0" />
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_1/SourceCode_Regular.ufo" name="master_1">
|
||||
<info copy="1" />
|
||||
<glyph mute="1" name="H" />
|
||||
<glyph mute="1" name="O" />
|
||||
<glyph mute="1" name="T" />
|
||||
<glyph mute="1" name="Y" />
|
||||
<glyph mute="1" name="Ustraight" />
|
||||
<glyph mute="1" name="dotlessi.a" />
|
||||
<glyph mute="1" name="dotlessi" />
|
||||
<glyph mute="1" name="dotlessj" />
|
||||
<glyph mute="1" name="esh" />
|
||||
<glyph mute="1" name="l" />
|
||||
<glyph mute="1" name="t" />
|
||||
<glyph mute="1" name="ustraight" />
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368" />
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_2/SourceCode_Black.ufo" name="master_2">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000" />
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-ExtraLight" stylename="ExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Light" stylename="Light">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="100" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Regular" stylename="Regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Medium" stylename="Medium">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="486" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Semibold" stylename="Semibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="600" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Bold" stylename="Bold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="824" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Black" stylename="Black">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000" />
|
||||
</location>
|
||||
<kerning />
|
||||
<info />
|
||||
</instance>
|
||||
</instances>
|
||||
<axes>
|
||||
<axis default="200.0" maximum="900.0" minimum="200.0" name="weight" tag="wght">
|
||||
<map input="200" output="0"/> <!-- ExtraLight -->
|
||||
<map input="300" output="100"/> <!-- Light -->
|
||||
<map input="400" output="368"/> <!-- Regular -->
|
||||
<map input="500" output="486"/> <!-- Medium -->
|
||||
<map input="600" output="600"/> <!-- Semibold -->
|
||||
<map input="700" output="824"/> <!-- Bold -->
|
||||
<map input="900" output="1000"/> <!-- Black -->
|
||||
</axis>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="master_0/SourceCode_ExtraLight.ufo" name="master_0">
|
||||
<lib copy="1"/>
|
||||
<groups copy="1"/>
|
||||
<info copy="1"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_1/SourceCode_Regular.ufo" name="master_1">
|
||||
<info copy="1"/>
|
||||
<glyph mute="1" name="H"/>
|
||||
<glyph mute="1" name="O"/>
|
||||
<glyph mute="1" name="T"/>
|
||||
<glyph mute="1" name="Y"/>
|
||||
<glyph mute="1" name="Ustraight"/>
|
||||
<glyph mute="1" name="dotlessi.a"/>
|
||||
<glyph mute="1" name="dotlessi"/>
|
||||
<glyph mute="1" name="dotlessj"/>
|
||||
<glyph mute="1" name="esh"/>
|
||||
<glyph mute="1" name="l"/>
|
||||
<glyph mute="1" name="t"/>
|
||||
<glyph mute="1" name="ustraight"/>
|
||||
<kerning mute="1"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="master_2/SourceCode_Black.ufo" name="master_2">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-ExtraLight" stylename="ExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Light" stylename="Light">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Regular" stylename="Regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="368"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Medium" stylename="Medium">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="486"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Semibold" stylename="Semibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="600"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Bold" stylename="Bold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="824"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="Source Code Roman" postscriptfontname="SourceCodeRoman-Black" stylename="Black">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Roman variable
|
||||
FontRevision 1.012;
|
||||
FontRevision 1.018;
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
<key>guidelines</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>openTypeOS2VendorID</key>
|
||||
<string>ADBO</string>
|
||||
<key>postscriptBlueFuzz</key>
|
||||
<integer>0</integer>
|
||||
<key>postscriptBlueScale</key>
|
||||
@@ -82,9 +84,9 @@
|
||||
<key>unitsPerEm</key>
|
||||
<integer>1000</integer>
|
||||
<key>versionMajor</key>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<key>versionMinor</key>
|
||||
<integer>0</integer>
|
||||
<integer>36</integer>
|
||||
<key>xHeight</key>
|
||||
<integer>478</integer>
|
||||
</dict>
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
<key>guidelines</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>openTypeOS2VendorID</key>
|
||||
<string>ADBO</string>
|
||||
<key>postscriptBlueFuzz</key>
|
||||
<integer>0</integer>
|
||||
<key>postscriptBlueScale</key>
|
||||
@@ -82,9 +84,9 @@
|
||||
<key>unitsPerEm</key>
|
||||
<integer>1000</integer>
|
||||
<key>versionMajor</key>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<key>versionMinor</key>
|
||||
<integer>0</integer>
|
||||
<integer>36</integer>
|
||||
<key>xHeight</key>
|
||||
<integer>486</integer>
|
||||
</dict>
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
<key>guidelines</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>openTypeOS2VendorID</key>
|
||||
<string>ADBO</string>
|
||||
<key>postscriptBlueFuzz</key>
|
||||
<integer>0</integer>
|
||||
<key>postscriptBlueScale</key>
|
||||
@@ -82,9 +84,9 @@
|
||||
<key>unitsPerEm</key>
|
||||
<integer>1000</integer>
|
||||
<key>versionMajor</key>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<key>versionMinor</key>
|
||||
<integer>0</integer>
|
||||
<integer>36</integer>
|
||||
<key>xHeight</key>
|
||||
<integer>500</integer>
|
||||
</dict>
|
||||
|
||||
@@ -1,96 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ttFont sfntVersion="OTTO" ttLibVersion="3.13">
|
||||
|
||||
<STAT>
|
||||
<Version value="0x00010001"/>
|
||||
<DesignAxisRecordSize value="8"/>
|
||||
<!-- DesignAxisCount=2 -->
|
||||
<DesignAxisRecord>
|
||||
<Axis index="0">
|
||||
<AxisTag value="wght"/>
|
||||
<AxisNameID value="279"/> <!-- Weight -->
|
||||
<AxisOrdering value="0"/>
|
||||
</Axis>
|
||||
<Axis index="1">
|
||||
<AxisTag value="ital"/>
|
||||
<AxisNameID value="278"/> <!-- Italic -->
|
||||
<AxisOrdering value="1"/>
|
||||
</Axis>
|
||||
</DesignAxisRecord>
|
||||
<!-- AxisValueCount=9 -->
|
||||
<AxisValueArray>
|
||||
<AxisValue index="0" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="280"/> <!-- ExtraLight -->
|
||||
<NominalValue value="200.0"/>
|
||||
<RangeMinValue value="200.0"/>
|
||||
<RangeMaxValue value="250.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="1" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="282"/> <!-- Light -->
|
||||
<NominalValue value="300.0"/>
|
||||
<RangeMinValue value="250.0"/>
|
||||
<RangeMaxValue value="350.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="2" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="2"/>
|
||||
<ValueNameID value="284"/> <!-- Regular -->
|
||||
<NominalValue value="400.0"/>
|
||||
<RangeMinValue value="350.0"/>
|
||||
<RangeMaxValue value="450.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="3" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="286"/> <!-- Medium -->
|
||||
<NominalValue value="500.0"/>
|
||||
<RangeMinValue value="450.0"/>
|
||||
<RangeMaxValue value="550.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="4" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="288"/> <!-- Semibold -->
|
||||
<NominalValue value="600.0"/>
|
||||
<RangeMinValue value="550.0"/>
|
||||
<RangeMaxValue value="650.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="5" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="290"/> <!-- Bold -->
|
||||
<NominalValue value="700.0"/>
|
||||
<RangeMinValue value="650.0"/>
|
||||
<RangeMaxValue value="800.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="6" Format="2">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="0"/>
|
||||
<ValueNameID value="292"/> <!-- Black -->
|
||||
<NominalValue value="900.0"/>
|
||||
<RangeMinValue value="800.0"/>
|
||||
<RangeMaxValue value="900.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="7" Format="3">
|
||||
<AxisIndex value="0"/>
|
||||
<Flags value="2"/>
|
||||
<ValueNameID value="284"/> <!-- Regular -->
|
||||
<Value value="400.0"/>
|
||||
<LinkedValue value="700.0"/>
|
||||
</AxisValue>
|
||||
<AxisValue index="8" Format="3">
|
||||
<AxisIndex value="1"/>
|
||||
<Flags value="2"/>
|
||||
<ValueNameID value="277"/> <!-- Roman -->
|
||||
<Value value="0.0"/>
|
||||
<LinkedValue value="1.0"/>
|
||||
</AxisValue>
|
||||
</AxisValueArray>
|
||||
<ElidedFallbackNameID value="2"/> <!-- Regular -->
|
||||
</STAT>
|
||||
|
||||
</ttFont>
|
||||
@@ -166,7 +166,7 @@ feature ccmp { # Glyph Composition / Decomposition
|
||||
#substitutes dotless forms of i & j when followed by combining accents above: (Navajo language support)
|
||||
sub i' ogonekcmb' @MARKS_ABOVE_CMB by iogonek.d;
|
||||
sub i.a' ogonekcmb' @MARKS_ABOVE_CMB by iogonek.da;
|
||||
sub [i j iogonek iogonek.a istroke jcrossedtail]' @MARKS_ABOVE_CMB by [dotlessi dotlessj iogonek.d iogonek.da istroke.d jcrossedtail.d];
|
||||
sub [i j iogonek iogonek.a istroke istroke.a jcrossedtail]' @MARKS_ABOVE_CMB by [dotlessi dotlessj iogonek.d iogonek.da istroke.d istroke.da jcrossedtail.d];
|
||||
} GLYPH_COMPOSITION_CONTEXTUAL;
|
||||
|
||||
lookup ASC_RAISE_CMB_CONTEXTUAL {
|
||||
|
||||
200
addSVGtable.py
200
addSVGtable.py
@@ -1,200 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Adds an SVG table to a TTF or OTF font.
|
||||
The file names of the SVG glyphs need to match their corresponding glyph final names.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
|
||||
try:
|
||||
from fontTools import ttLib
|
||||
except ImportError:
|
||||
print("ERROR: FontTools Python module is not installed.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
TABLE_TAG = 'SVG '
|
||||
|
||||
# Regexp patterns
|
||||
reSVGelement = re.compile(r"<svg.+?>.+?</svg>", re.DOTALL)
|
||||
reIDvalue = re.compile(r"<svg[^>]+?(id=\".*?\").+?>", re.DOTALL)
|
||||
reViewBox = re.compile(r"<svg.+?(viewBox=[\"|\'][\d, ]+[\"|\']).+?>", re.DOTALL)
|
||||
reWhiteSpace = re.compile(r">\s+<", re.DOTALL)
|
||||
|
||||
|
||||
def readFile(filePath):
|
||||
with open(filePath, "rt") as f:
|
||||
return f.read()
|
||||
|
||||
|
||||
def setIDvalue(data, gid):
|
||||
id = reIDvalue.search(data)
|
||||
if id:
|
||||
newData = re.sub(id.group(1), 'id="glyph{}"'.format(gid), data)
|
||||
else:
|
||||
newData = re.sub('<svg', '<svg id="glyph{}"'.format(gid), data)
|
||||
return newData
|
||||
|
||||
|
||||
def fixViewBox(data):
|
||||
viewBox = reViewBox.search(data)
|
||||
if not viewBox:
|
||||
return data
|
||||
fixedViewBox = 'viewBox=\"0 1000 1000 1000\"'
|
||||
fixedData = re.sub(viewBox.group(1), fixedViewBox, data)
|
||||
return fixedData
|
||||
|
||||
|
||||
def getGlyphNameFromFileName(filePath):
|
||||
folderPath, fontFileName = os.path.split(filePath)
|
||||
fileNameNoExtension, fileExtension = os.path.splitext(fontFileName)
|
||||
return fileNameNoExtension
|
||||
|
||||
|
||||
def processFontFile(fontFilePath, svgFilePathsList):
|
||||
font = ttLib.TTFont(fontFilePath)
|
||||
|
||||
# first create a dictionary because the SVG glyphs need to be sorted in the table
|
||||
svgDocsDict = {}
|
||||
|
||||
for svgFilePath in svgFilePathsList:
|
||||
gName = getGlyphNameFromFileName(svgFilePath)
|
||||
|
||||
try:
|
||||
gid = font.getGlyphID(gName)
|
||||
except KeyError:
|
||||
print(
|
||||
"ERROR: Could not find a glyph named {} in the font {}.".format(
|
||||
gName, os.path.split(fontFilePath)[1]
|
||||
),
|
||||
file=sys.stderr
|
||||
)
|
||||
continue
|
||||
|
||||
svgItemsList = []
|
||||
svgItemData = readFile(svgFilePath)
|
||||
svgItemData = setIDvalue(svgItemData, gid)
|
||||
svgItemData = fixViewBox(svgItemData)
|
||||
# Remove all white space between elements
|
||||
for whiteSpace in set(reWhiteSpace.findall(svgItemData)):
|
||||
svgItemData = svgItemData.replace(whiteSpace, '><')
|
||||
svgItemsList.append(svgItemData.strip())
|
||||
svgItemsList.extend([gid, gid])
|
||||
svgDocsDict[gid] = svgItemsList
|
||||
|
||||
# don't do any changes to the source OTF/TTF font if there's no SVG data
|
||||
if not svgDocsDict:
|
||||
print(
|
||||
"ERROR: Could not find any artwork files "
|
||||
"that can be added to the font.",
|
||||
file=sys.stderr
|
||||
)
|
||||
return
|
||||
|
||||
svgDocsList = [svgDocsDict[index] for index in sorted(svgDocsDict.keys())]
|
||||
|
||||
svgTable = ttLib.newTable(TABLE_TAG)
|
||||
svgTable.compressed = False # GZIP the SVG docs
|
||||
svgTable.docList = svgDocsList
|
||||
font[TABLE_TAG] = svgTable
|
||||
font.save(fontFilePath)
|
||||
font.close()
|
||||
|
||||
print(
|
||||
"SVG table successfully added to {}".format(fontFilePath),
|
||||
file=sys.stderr
|
||||
)
|
||||
|
||||
|
||||
def validateSVGfiles(svgFilePathsList):
|
||||
"""
|
||||
Light validation of SVG files.
|
||||
Checks that there is an <svg> element.
|
||||
"""
|
||||
validatedPaths = []
|
||||
|
||||
for filePath in svgFilePathsList:
|
||||
# skip hidden files (filenames that start with period)
|
||||
fileName = os.path.basename(filePath)
|
||||
if fileName[0] == '.':
|
||||
continue
|
||||
|
||||
# read file
|
||||
data = readFile(filePath)
|
||||
|
||||
# find <svg> blob
|
||||
svg = reSVGelement.search(data)
|
||||
if not svg:
|
||||
print(
|
||||
"WARNING: Could not find <svg> element in the file. "
|
||||
"Skiping {}".format(filePath)
|
||||
)
|
||||
continue
|
||||
|
||||
validatedPaths.append(filePath)
|
||||
|
||||
return validatedPaths
|
||||
|
||||
|
||||
def getFontFormat(fontFilePath):
|
||||
# these lines were scavenged from fontTools
|
||||
with open(fontFilePath, "rb") as f:
|
||||
header = f.read(256)
|
||||
head = header[:4]
|
||||
if head == b"OTTO":
|
||||
return "OTF"
|
||||
elif head in (b"\0\1\0\0", b"true"):
|
||||
return "TTF"
|
||||
return None
|
||||
|
||||
|
||||
def run():
|
||||
fontFilePath = os.path.realpath(sys.argv[1])
|
||||
svgFolderPath = os.path.realpath(sys.argv[2])
|
||||
|
||||
# Font file path
|
||||
if os.path.isfile(fontFilePath):
|
||||
if getFontFormat(fontFilePath) not in ["OTF", "TTF"]:
|
||||
print("ERROR: The path is not a valid OTF or TTF font.",
|
||||
file=sys.stderr)
|
||||
return
|
||||
else:
|
||||
print("ERROR: The path to the font is invalid.",
|
||||
file=sys.stderr)
|
||||
return
|
||||
|
||||
# SVG folder path
|
||||
if os.path.isdir(svgFolderPath):
|
||||
svgFilePathsList = []
|
||||
for dirName, subdirList, fileList in os.walk(
|
||||
svgFolderPath): # Support nested folders
|
||||
for file in fileList:
|
||||
svgFilePathsList.append(os.path.join(dirName,
|
||||
file)) # Assemble the full paths, not just file names
|
||||
else:
|
||||
print(
|
||||
"ERROR: The path to the folder "
|
||||
"containing the SVG files is invalid.",
|
||||
file=sys.stderr
|
||||
)
|
||||
return
|
||||
|
||||
# validate the SVGs
|
||||
svgFilePathsList = validateSVGfiles(svgFilePathsList)
|
||||
|
||||
if not svgFilePathsList:
|
||||
print("WARNING: No SVG files were found.", file=sys.stderr)
|
||||
return
|
||||
|
||||
processFontFile(fontFilePath, svgFilePathsList)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) != 3:
|
||||
print("To run this script type:\n "
|
||||
"python {} <path to input OTF/TTF file> "
|
||||
"<path to folder tree containing SVG files>".format(sys.argv[0]))
|
||||
else:
|
||||
run()
|
||||
@@ -10,7 +10,6 @@ for /f %%a in ('where makeotf') do set MAKEOTF_PATH=%%a
|
||||
if "%MAKEOTF_PATH%" == "" goto error_makeotf_not_found
|
||||
|
||||
call :GetDirectoryName PYTHON_PATH "%MAKEOTF_PATH%"
|
||||
set PYTHON_PATH=%PYTHON_PATH%Python\AFDKOPython27\python.exe
|
||||
|
||||
set TARGET_PATH=%~dp0\target\
|
||||
set TARGET_OTF_PATH=%TARGET_PATH%OTF\
|
||||
@@ -43,10 +42,8 @@ goto :eof
|
||||
:: %1 - Roman/Italic
|
||||
:: %2 - Weight
|
||||
:build_font
|
||||
call makeotf -f "%~dp0\%1\Instances\%2\font.ufo" -r -ci "%~dp0\uvs.txt" -o "%TARGET_OTF_PATH%\%FAMILY%-%2.otf"
|
||||
call makeotf -f "%~dp0\%1\Instances\%2\font.ttf" -r -ci "%~dp0\uvs.txt" -o "%TARGET_TTF_PATH%\%FAMILY%-%2.ttf" -ff "%~dp0\%1\Instances\%2\font.ufo\features.fea"
|
||||
:: "%PYTHON_PATH%" "%~dp0\addSVGtable.py" "%TARGET_OTF_PATH%\%FAMILY%-%2.otf" "%~dp0\svg"
|
||||
:: "%PYTHON_PATH%" "%~dp0\addSVGtable.py" "%TARGET_TTF_PATH%\%FAMILY%-%2.ttf" "%~dp0\svg"
|
||||
call makeotf -f "%~dp0\%1\Instances\%2\font.ufo" -r -o "%TARGET_OTF_PATH%\%FAMILY%-%2.otf"
|
||||
call makeotf -f "%~dp0\%1\Instances\%2\font.ttf" -r -o "%TARGET_TTF_PATH%\%FAMILY%-%2.ttf" -ff "%~dp0\%1\Instances\%2\font.ufo\features.fea"
|
||||
goto :eof
|
||||
|
||||
:error_makeotf_not_found
|
||||
|
||||
BIN
docs/WOFF/OTF/SourceCodePro-Black.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-Black.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-BlackIt.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-BlackIt.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-Bold.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-Bold.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-BoldIt.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-BoldIt.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-ExtraLight.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-ExtraLight.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-ExtraLightIt.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-ExtraLightIt.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-It.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-It.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-Light.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-Light.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-LightIt.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-LightIt.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-Medium.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-Medium.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-MediumIt.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-MediumIt.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-Regular.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-Regular.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-Semibold.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-Semibold.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodePro-SemiboldIt.otf.woff
Executable file → Normal file
BIN
docs/WOFF/OTF/SourceCodePro-SemiboldIt.otf.woff
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodeVariable-Italic.otf.woff
Normal file
BIN
docs/WOFF/OTF/SourceCodeVariable-Italic.otf.woff
Normal file
Binary file not shown.
BIN
docs/WOFF/OTF/SourceCodeVariable-Roman.otf.woff
Normal file
BIN
docs/WOFF/OTF/SourceCodeVariable-Roman.otf.woff
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-Black.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-Black.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-BlackIt.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-BlackIt.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-BoldIt.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-BoldIt.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-ExtraLight.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-ExtraLight.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-ExtraLightIt.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-ExtraLightIt.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-It.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-It.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-Light.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-Light.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-LightIt.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-LightIt.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-Medium.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-Medium.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-MediumIt.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-MediumIt.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-Semibold.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-Semibold.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodePro-SemiboldIt.ttf.woff2
Executable file → Normal file
BIN
docs/WOFF2/TTF/SourceCodePro-SemiboldIt.ttf.woff2
Executable file → Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodeVariable-Italic.ttf.woff2
Normal file
BIN
docs/WOFF2/TTF/SourceCodeVariable-Italic.ttf.woff2
Normal file
Binary file not shown.
BIN
docs/WOFF2/TTF/SourceCodeVariable-Roman.ttf.woff2
Normal file
BIN
docs/WOFF2/TTF/SourceCodeVariable-Roman.ttf.woff2
Normal file
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
nameid 0 "\00a9 2010 - 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name \2018Source\2019.";
|
||||
nameid 0 "\00a9 2010 - 2020 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name \2018Source\2019.";
|
||||
nameid 7 "Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.";
|
||||
nameid 8 "Adobe Systems Incorporated";
|
||||
nameid 9 "Paul D. Hunt, Teo Tuominen";
|
||||
|
||||
2
familynameIDsVar.fea
Normal file
2
familynameIDsVar.fea
Normal file
@@ -0,0 +1,2 @@
|
||||
nameid 256 "Roman";
|
||||
nameid 257 "Italic";
|
||||
@@ -3,6 +3,8 @@ include (../../../familyTables.fea);
|
||||
table name {
|
||||
include (../nameIDs.fea);
|
||||
include (../../../familynameIDs.fea);
|
||||
include (../../../familynameIDsVar.fea);
|
||||
} name;
|
||||
|
||||
include (../../familyGSUB.fea);
|
||||
include (../STAT.fea);
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
version 2.038 (romans) & version 1.058 (italics) & version 1.018 (VAR) created 2021/07/01
|
||||
|
||||
Resolves issue with faulty style linking in variable fonts. (issue #256)
|
||||
|
||||
version 2.032 (romans) & version 1.052 (italics) created 2020/10/09
|
||||
|
||||
Removes SVG table to allow for color-coded text in text editing apps. (issue #250)
|
||||
Removes SVG table to allow for colored syntax highlighting in text editing apps. (issue #250)
|
||||
|
||||
|
||||
version 2.030 (romans) & version 1.050 (italics) created 2016/06/09
|
||||
|
||||
40
uvs.txt
40
uvs.txt
@@ -1,40 +0,0 @@
|
||||
# http://www.unicode.org/reports/tr51/index.html#Emoji_Variation_Sequences
|
||||
# FE0E text style
|
||||
# FE0F emoji style
|
||||
|
||||
# Test page
|
||||
# http://unicode.org/emoji/charts/emoji-style.html
|
||||
|
||||
# Standard variation sequences
|
||||
# http://unicode.org/emoji/charts/emoji-variants.html
|
||||
|
||||
# Code point / Variation selector / Final glyph name
|
||||
|
||||
2611 FE0E; uni2611
|
||||
2615 FE0E; uni2615
|
||||
2713 FE0E; uni2713
|
||||
2764 FE0E; uni2764
|
||||
266A FE0E; u1F3B5
|
||||
1F3B5 FE0E; u1F3B5
|
||||
1F3B6 FE0E; u1F3B6
|
||||
266B FE0E; u1F3B6
|
||||
1F4A9 FE0E; u1F4A9
|
||||
1F512 FE0E; u1F512
|
||||
1F916 FE0E; u1F916
|
||||
2611 FE0F; uni2611_uniFE0F
|
||||
2615 FE0F; uni2615_uniFE0F
|
||||
263A FE0F; uni263A_uniFE0F
|
||||
263B FE0F; uni263B_uniFE0F
|
||||
2660 FE0F; uni2660_uniFE0F
|
||||
2663 FE0F; uni2663_uniFE0F
|
||||
2665 FE0F; uni2665_uniFE0F
|
||||
2666 FE0F; uni2666_uniFE0F
|
||||
2713 FE0F; uni2713_uniFE0F
|
||||
2764 FE0F; uni2764_uniFE0F
|
||||
266A FE0F; u1F3B5_uniFE0F
|
||||
1F3B5 FE0F; u1F3B5_uniFE0F
|
||||
1F3B6 FE0F; u1F3B6_uniFE0F
|
||||
266B FE0F; u1F3B6_uniFE0F
|
||||
1F4A9 FE0F; u1F4A9_uniFE0F
|
||||
1F512 FE0F; u1F512_uniFE0F
|
||||
1F916 FE0F; u1F916_uniFE0F
|
||||
Reference in New Issue
Block a user