Merge pull request #2436 from daltonmaag/impl-designspace-v5
This commit is contained in:
commit
5b3db49d72
@ -19,7 +19,7 @@ You must have a Python 3 interpreter and the `pip` Python package manager instal
|
||||
Pull the fontTools project source files, create a Python virtual environment, and then install fontTools and the documentation build dependencies by executing the following commands in the root of the fontTools source repository:
|
||||
|
||||
```
|
||||
$ pip install -e . [all]
|
||||
$ pip install -e .[all]
|
||||
$ pip install -r Doc/docs-requirements.txt
|
||||
```
|
||||
|
||||
|
@ -1,18 +1,217 @@
|
||||
##############
|
||||
designspaceLib
|
||||
##############
|
||||
#######################################################
|
||||
designspaceLib: Read, write, and edit designspace files
|
||||
#######################################################
|
||||
|
||||
MutatorMath started out with its own reader and writer for designspaces.
|
||||
Since then the use of designspace has broadened and it would be useful
|
||||
to have a reader and writer that are independent of a specific system.
|
||||
Implements support for reading and manipulating ``designspace`` files.
|
||||
Allows the users to define axes, rules, sources, variable fonts and instances,
|
||||
and their STAT information.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
readme
|
||||
python
|
||||
xml
|
||||
scripting
|
||||
|
||||
.. automodule:: fontTools.designspaceLib
|
||||
:inherited-members:
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
||||
Notes
|
||||
=====
|
||||
|
||||
Paths and filenames
|
||||
-------------------
|
||||
|
||||
A designspace file needs to store many references to UFO files.
|
||||
|
||||
- designspace files can be part of versioning systems and appear on
|
||||
different computers. This means it is not possible to store absolute
|
||||
paths.
|
||||
- So, all paths are relative to the designspace document path.
|
||||
- Using relative paths allows designspace files and UFO files to be
|
||||
**near** each other, and that they can be **found** without enforcing
|
||||
one particular structure.
|
||||
- The **filename** attribute in the ``SourceDescriptor`` and
|
||||
``InstanceDescriptor`` classes stores the preferred relative path.
|
||||
- The **path** attribute in these objects stores the absolute path. It
|
||||
is calculated from the document path and the relative path in the
|
||||
filename attribute when the object is created.
|
||||
- Only the **filename** attribute is written to file.
|
||||
- Both **filename** and **path** must use forward slashes (``/``) as
|
||||
path separators, even on Windows.
|
||||
|
||||
Right before we save we need to identify and respond to the following
|
||||
situations:
|
||||
|
||||
In each descriptor, we have to do the right thing for the filename
|
||||
attribute. Before writing to file, the ``documentObject.updatePaths()``
|
||||
method prepares the paths as follows:
|
||||
|
||||
**Case 1**
|
||||
|
||||
::
|
||||
|
||||
descriptor.filename == None
|
||||
descriptor.path == None
|
||||
|
||||
**Action**
|
||||
|
||||
- write as is, descriptors will not have a filename attr. Useless, but
|
||||
no reason to interfere.
|
||||
|
||||
**Case 2**
|
||||
|
||||
::
|
||||
|
||||
descriptor.filename == "../something"
|
||||
descriptor.path == None
|
||||
|
||||
**Action**
|
||||
|
||||
- write as is. The filename attr should not be touched.
|
||||
|
||||
**Case 3**
|
||||
|
||||
::
|
||||
|
||||
descriptor.filename == None
|
||||
descriptor.path == "~/absolute/path/there"
|
||||
|
||||
**Action**
|
||||
|
||||
- calculate the relative path for filename. We're not overwriting some
|
||||
other value for filename, it should be fine.
|
||||
|
||||
**Case 4**
|
||||
|
||||
::
|
||||
|
||||
descriptor.filename == '../somewhere'
|
||||
descriptor.path == "~/absolute/path/there"
|
||||
|
||||
**Action**
|
||||
|
||||
- There is a conflict between the given filename, and the path. The
|
||||
difference could have happened for any number of reasons. Assuming
|
||||
the values were not in conflict when the object was created, either
|
||||
could have changed. We can't guess.
|
||||
- Assume the path attribute is more up to date. Calculate a new value
|
||||
for filename based on the path and the document path.
|
||||
|
||||
Recommendation for editors
|
||||
--------------------------
|
||||
|
||||
- If you want to explicitly set the **filename** attribute, leave the
|
||||
path attribute empty.
|
||||
- If you want to explicitly set the **path** attribute, leave the
|
||||
filename attribute empty. It will be recalculated.
|
||||
- Use ``documentObject.updateFilenameFromPath()`` to explicitly set the
|
||||
**filename** attributes for all instance and source descriptors.
|
||||
|
||||
|
||||
Common Lib Key Registry
|
||||
=======================
|
||||
|
||||
public.skipExportGlyphs
|
||||
-----------------------
|
||||
|
||||
This lib key works the same as the UFO lib key with the same name. The
|
||||
difference is that applications using a Designspace as the corner stone of the
|
||||
font compilation process should use the lib key in that Designspace instead of
|
||||
any of the UFOs. If the lib key is empty or not present in the Designspace, all
|
||||
glyphs should be exported, regardless of what the same lib key in any of the
|
||||
UFOs says.
|
||||
|
||||
|
||||
Implementation and differences
|
||||
==============================
|
||||
|
||||
The designspace format has gone through considerable development.
|
||||
|
||||
- the format was originally written for MutatorMath.
|
||||
- the format is now also used in fontTools.varlib.
|
||||
- not all values are be required by all implementations.
|
||||
|
||||
Varlib vs. MutatorMath
|
||||
----------------------
|
||||
|
||||
There are some differences between the way MutatorMath and fontTools.varlib handle designspaces.
|
||||
|
||||
- Varlib does not support anisotropic interpolations.
|
||||
- MutatorMath will extrapolate over the boundaries of
|
||||
the axes. Varlib can not (at the moment).
|
||||
- Varlib requires much less data to define an instance than
|
||||
MutatorMath.
|
||||
- The goals of Varlib and MutatorMath are different, so not all
|
||||
attributes are always needed.
|
||||
|
||||
|
||||
Rules and generating static UFO instances
|
||||
-----------------------------------------
|
||||
|
||||
When making instances as UFOs from a designspace with rules, it can
|
||||
be useful to evaluate the rules so that the characterset of the UFO
|
||||
reflects, as much as possible, the state of a variable font when seen
|
||||
at the same location. This can be done by some swapping and renaming of
|
||||
glyphs.
|
||||
|
||||
While useful for proofing or development work, it should be noted that
|
||||
swapping and renaming leaves the UFOs with glyphnames that are no longer
|
||||
descriptive. For instance, after a swap ``dollar.bar`` could contain a shape
|
||||
without a bar. Also, when the swapped glyphs are part of other GSUB variations
|
||||
it can become complex very quickly. So proceed with caution.
|
||||
|
||||
- Assuming ``rulesProcessingLast = True``:
|
||||
- We need to swap the glyphs so that the original shape is still available.
|
||||
For instance, if a rule swaps ``a`` for ``a.alt``, a glyph
|
||||
that references ``a`` in a component would then show the new ``a.alt``.
|
||||
- But that can lead to unexpected results, the two glyphs may have different
|
||||
widths or height. So, glyphs that are not specifically referenced in a rule
|
||||
**should not change appearance**. That means that the implementation that swaps
|
||||
``a`` and ``a.alt`` also swap all components that reference these
|
||||
glyphs in order to preserve their appearance.
|
||||
- The swap function also needs to take care of swapping the names in
|
||||
kerning data and any GPOS code.
|
||||
|
||||
Version history
|
||||
===============
|
||||
|
||||
Version 5.0
|
||||
-----------
|
||||
|
||||
The format was extended to describe the entire design space of a reasonably
|
||||
regular font family in one file, with global data about the family to reduce
|
||||
repetition in sub-sections. "Reasonably regular" means that the sources and
|
||||
instances across the previously multiple Designspace files are positioned on a
|
||||
grid and derive their metadata (like style name) in a way that's compatible with
|
||||
the STAT model, based on their axis positions. Axis mappings must be the same
|
||||
across the entire space.
|
||||
|
||||
1. Each axis can have labels attached to stops within the axis range, analogous to the
|
||||
`OpenType STAT <https://docs.microsoft.com/en-us/typography/opentype/spec/stat>`_
|
||||
table. Free-standing labels for locations are also allowed. The data is intended
|
||||
to be compiled into a ``STAT`` table.
|
||||
2. The axes can be discrete, to say that they do not interpolate, like a distinctly
|
||||
constructed upright and italic variant of a family.
|
||||
3. The data can be used to derive style and PostScript names for instances.
|
||||
4. A new ``variable-fonts`` element can subdivide the Designspace into multiple subsets that
|
||||
mix and match the globally available axes. It is possible for these sub-spaces to have
|
||||
a different default location from the global default location. It is required if the
|
||||
Designspace contains a discrete axis and you want to produce a variable font.
|
||||
|
||||
What is currently not supported is e.g.
|
||||
|
||||
1. A setup where different sources sit at the same logical location in the design space,
|
||||
think "MyFont Regular" and "MyFont SmallCaps Regular". (this situation could be
|
||||
encoded by adding a "SmallCaps" discrete axis, if that makes sense).
|
||||
2. Anisotropic locations for axis labels.
|
||||
|
||||
Older versions
|
||||
--------------
|
||||
|
||||
- In some implementations that preceed Variable Fonts, the `copyInfo`
|
||||
flag in a source indicated the source was to be treated as the default.
|
||||
This is no longer compatible with the assumption that the default font
|
||||
is located on the default value of each axis.
|
||||
- Older implementations did not require axis records to be present in
|
||||
the designspace file. The axis extremes for instance were generated
|
||||
from the locations used in the sources. This is no longer possible.
|
||||
|
||||
|
199
Doc/source/designspaceLib/python.rst
Normal file
199
Doc/source/designspaceLib/python.rst
Normal file
@ -0,0 +1,199 @@
|
||||
################################
|
||||
1 DesignSpaceDocument Python API
|
||||
################################
|
||||
|
||||
An object to read, write and edit interpolation systems for typefaces.
|
||||
Define sources, axes, rules, variable fonts and instances.
|
||||
|
||||
Get an overview of the available classes in the Class Diagram below:
|
||||
|
||||
.. figure:: v5_class_diagram.png
|
||||
:width: 650px
|
||||
:alt: UML class diagram of designspaceLib
|
||||
|
||||
UML class diagram of designspaceLib. Click to enlarge.
|
||||
|
||||
.. contents:: Table of contents
|
||||
:local:
|
||||
|
||||
.. _designspacedocument-object:
|
||||
|
||||
===================
|
||||
DesignSpaceDocument
|
||||
===================
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::DesignSpaceDocument
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
.. _axis-descriptor-object:
|
||||
|
||||
AxisDescriptor
|
||||
==============
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::AxisDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:inherited-members: SimpleDescriptor
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
DiscreteAxisDescriptor
|
||||
======================
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::DiscreteAxisDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:inherited-members: SimpleDescriptor
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
AxisLabelDescriptor
|
||||
-------------------
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::AxisLabelDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
LocationLabelDescriptor
|
||||
=======================
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::LocationLabelDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
RuleDescriptor
|
||||
==============
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::RuleDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
Evaluating rules
|
||||
----------------
|
||||
|
||||
.. autofunction:: fontTools.designspaceLib::evaluateRule
|
||||
.. autofunction:: fontTools.designspaceLib::evaluateConditions
|
||||
.. autofunction:: fontTools.designspaceLib::processRules
|
||||
|
||||
|
||||
.. _source-descriptor-object:
|
||||
|
||||
SourceDescriptor
|
||||
================
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::SourceDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
VariableFontDescriptor
|
||||
======================
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::VariableFontDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
RangeAxisSubsetDescriptor
|
||||
-------------------------
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::RangeAxisSubsetDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
ValueAxisSubsetDescriptor
|
||||
-------------------------
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::ValueAxisSubsetDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
.. _instance-descriptor-object:
|
||||
|
||||
InstanceDescriptor
|
||||
==================
|
||||
|
||||
.. autoclass:: fontTools.designspaceLib::InstanceDescriptor
|
||||
:members:
|
||||
:undoc-members:
|
||||
:member-order: bysource
|
||||
|
||||
|
||||
.. _subclassing-descriptors:
|
||||
|
||||
=======================
|
||||
Subclassing descriptors
|
||||
=======================
|
||||
|
||||
The DesignSpaceDocument can take subclassed Reader and Writer objects.
|
||||
This allows you to work with your own descriptors. You could subclass
|
||||
the descriptors. But as long as they have the basic attributes the
|
||||
descriptor does not need to be a subclass.
|
||||
|
||||
.. code:: python
|
||||
|
||||
class MyDocReader(BaseDocReader):
|
||||
axisDescriptorClass = MyAxisDescriptor
|
||||
discreteAxisDescriptorClass = MyDiscreteAxisDescriptor
|
||||
axisLabelDescriptorClass = MyAxisLabelDescriptor
|
||||
locationLabelDescriptorClass = MyLocationLabelDescriptor
|
||||
ruleDescriptorClass = MyRuleDescriptor
|
||||
sourceDescriptorClass = MySourceDescriptor
|
||||
variableFontsDescriptorClass = MyVariableFontDescriptor
|
||||
valueAxisSubsetDescriptorClass = MyValueAxisSubsetDescriptor
|
||||
rangeAxisSubsetDescriptorClass = MyRangeAxisSubsetDescriptor
|
||||
instanceDescriptorClass = MyInstanceDescriptor
|
||||
|
||||
class MyDocWriter(BaseDocWriter):
|
||||
axisDescriptorClass = MyAxisDescriptor
|
||||
discreteAxisDescriptorClass = MyDiscreteAxisDescriptor
|
||||
axisLabelDescriptorClass = MyAxisLabelDescriptor
|
||||
locationLabelDescriptorClass = MyLocationLabelDescriptor
|
||||
ruleDescriptorClass = MyRuleDescriptor
|
||||
sourceDescriptorClass = MySourceDescriptor
|
||||
variableFontsDescriptorClass = MyVariableFontDescriptor
|
||||
valueAxisSubsetDescriptorClass = MyValueAxisSubsetDescriptor
|
||||
rangeAxisSubsetDescriptorClass = MyRangeAxisSubsetDescriptor
|
||||
instanceDescriptorClass = MyInstanceDescriptor
|
||||
|
||||
myDoc = DesignSpaceDocument(MyDocReader, MyDocWriter)
|
||||
|
||||
|
||||
==============
|
||||
Helper modules
|
||||
==============
|
||||
|
||||
fontTools.designspaceLib.split
|
||||
==============================
|
||||
|
||||
See :ref:`Scripting > Working with DesignSpace version 5 <working_with_v5>`
|
||||
for more information.
|
||||
|
||||
.. automodule:: fontTools.designspaceLib.split
|
||||
|
||||
|
||||
fontTools.designspaceLib.stat
|
||||
=============================
|
||||
|
||||
.. automodule:: fontTools.designspaceLib.stat
|
||||
|
||||
|
||||
fontTools.designspaceLib.statNames
|
||||
==================================
|
||||
|
||||
.. automodule:: fontTools.designspaceLib.statNames
|
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
#######################
|
||||
Scripting a designspace
|
||||
#######################
|
||||
#########################
|
||||
3 Scripting a designspace
|
||||
#########################
|
||||
|
||||
It can be useful to build a designspace with a script rather than
|
||||
construct one with an interface like
|
||||
@ -88,6 +88,7 @@ OpenType <https://www.microsoft.com/typography/otspec/avar.htm>`__.
|
||||
|
||||
.. code:: python
|
||||
|
||||
# (user space, design space), (user space, design space)...
|
||||
a1.map = [(0.0, 10.0), (401.0, 66.0), (1000.0, 990.0)]
|
||||
|
||||
Make a source object
|
||||
@ -241,7 +242,7 @@ This is how you check the default font.
|
||||
Generating?
|
||||
***********
|
||||
|
||||
You can generate the UFO's with MutatorMath:
|
||||
You can generate the UFOs with MutatorMath:
|
||||
|
||||
.. code:: python
|
||||
|
||||
@ -251,3 +252,39 @@ You can generate the UFO's with MutatorMath:
|
||||
- Assuming the outline data in the masters is compatible.
|
||||
|
||||
Or you can use the file in making a **variable font** with varlib.
|
||||
|
||||
|
||||
.. _working_with_v5:
|
||||
|
||||
**********************************
|
||||
Working with DesignSpace version 5
|
||||
**********************************
|
||||
|
||||
The new version 5 allows "discrete" axes, which do not interpolate across their
|
||||
values. This is useful to store in one place family-wide data such as the STAT
|
||||
information, however it prevents the usual things done on designspaces that
|
||||
interpolate everywhere:
|
||||
|
||||
- checking that all sources are compatible for interpolation
|
||||
- building variable fonts
|
||||
|
||||
In order to allow the above in tools that want to handle designspace v5,
|
||||
the :mod:`fontTools.designspaceLib.split` module provides two methods to
|
||||
split a designspace into interpolable sub-spaces,
|
||||
:func:`splitInterpolable() <fontTools.designspaceLib.split.splitInterpolable>`
|
||||
and then
|
||||
:func:`splitVariableFonts() <fontTools.designspaceLib.split.splitVariableFonts>`.
|
||||
|
||||
|
||||
.. figure:: v5_split_downconvert.png
|
||||
:width: 680px
|
||||
:alt: Example process diagram to check and build DesignSpace 5
|
||||
|
||||
Example process process to check and build Designspace 5.
|
||||
|
||||
|
||||
Also, for older tools that don't know about the other version 5 additions such
|
||||
as the STAT data fields, the function
|
||||
:func:`convert5to4() <fontTools.designspaceLib.split.convert5to4>` allows to
|
||||
strip new information from a designspace version 5 to downgrade it to a
|
||||
collection of version 4 documents, one per variable font.
|
||||
|
BIN
Doc/source/designspaceLib/v5_class_diagram.png
Normal file
BIN
Doc/source/designspaceLib/v5_class_diagram.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 267 KiB |
292
Doc/source/designspaceLib/v5_class_diagram.puml
Normal file
292
Doc/source/designspaceLib/v5_class_diagram.puml
Normal file
@ -0,0 +1,292 @@
|
||||
@startuml v5_class_diagram
|
||||
|
||||
title
|
||||
Designspace v5 Class Diagram
|
||||
|
||||
<size:12>Note: the ""Descriptor"" suffix is omitted from most classes
|
||||
end title
|
||||
|
||||
' left to right direction
|
||||
|
||||
skinparam class {
|
||||
BackgroundColor<<New>> PaleGreen
|
||||
}
|
||||
|
||||
class DesignSpaceDocument {
|
||||
+ formatVersion: str = None
|
||||
+ <color:green><b><<New>> elidedFallbackName: str = None
|
||||
+ rulesProcessingLast: bool = False
|
||||
+ lib: Dict = {}
|
||||
}
|
||||
|
||||
note left of DesignSpaceDocument::elidedFallbackName
|
||||
STAT Style Attributes Header field ""elidedFallbackNameID""
|
||||
end note
|
||||
|
||||
abstract class AbstractAxis {
|
||||
+ tag: str
|
||||
+ name: str
|
||||
+ labelNames: Dict[str, str]
|
||||
+ hidden: bool
|
||||
+ map: List[Tuple[float, float]]
|
||||
+ <color:green><b><<New>> axisOrdering: int
|
||||
}
|
||||
DesignSpaceDocument *-- "*" AbstractAxis: axes >
|
||||
note right of AbstractAxis::axisOrdering
|
||||
STAT Axis Record field
|
||||
end note
|
||||
|
||||
class Axis {
|
||||
+ minimum: float
|
||||
+ maximum: float
|
||||
+ default: float
|
||||
}
|
||||
AbstractAxis <|--- Axis
|
||||
note bottom of Axis
|
||||
This is the usual
|
||||
Axis, with a range
|
||||
of values.
|
||||
end note
|
||||
|
||||
class DiscreteAxis <<New>> {
|
||||
+ values: List[float]
|
||||
+ default: float
|
||||
}
|
||||
AbstractAxis <|--- DiscreteAxis
|
||||
note bottom of DiscreteAxis
|
||||
A discrete axis is not
|
||||
interpolable, e.g.
|
||||
Uprights vs Italics, and
|
||||
so has "discrete" stops
|
||||
instead of a continuous
|
||||
range of values.
|
||||
end note
|
||||
|
||||
Axis .[hidden] DiscreteAxis
|
||||
|
||||
class AxisLabel <<New>> {
|
||||
+ userMinimum: Optional[float]
|
||||
+ userValue: float
|
||||
+ userMaximum: Optional[float]
|
||||
+ name: str
|
||||
+ elidable: bool
|
||||
+ olderSibling: bool
|
||||
+ linkedUserValue: Optional[float]
|
||||
+ labelNames: Dict[str, str]
|
||||
|
||||
+ getFormat(): 1 | 2 | 3
|
||||
}
|
||||
note right of AxisLabel
|
||||
Label for a
|
||||
stop on an Axis
|
||||
(STAT format
|
||||
1,2,3)
|
||||
end note
|
||||
AbstractAxis *-- "*" AxisLabel: <<New>> \n axisLabels >
|
||||
|
||||
class LocationLabel <<New>> {
|
||||
+ name: str
|
||||
+ location: Dict[str, float]
|
||||
+ elidable: bool
|
||||
+ olderSibling: bool
|
||||
+ labelNames: Dict[str, str]
|
||||
}
|
||||
note right of LocationLabel
|
||||
Label for a
|
||||
freestanding
|
||||
location
|
||||
(STAT format 4)
|
||||
end note
|
||||
DesignSpaceDocument *--- "*" LocationLabel: <<New>> \n locationLabels >
|
||||
|
||||
class Rule {
|
||||
+ name: str
|
||||
+ conditionSets: List[ConditionSet]
|
||||
+ subs: Dict[str, str]
|
||||
}
|
||||
DesignSpaceDocument *- "*" Rule: rules >
|
||||
|
||||
class Source {
|
||||
+ name: Optional[str]
|
||||
+ filename: str
|
||||
+ path: str
|
||||
+ layerName: Optional[str]
|
||||
+ <color:brown><s><<Deprecated>> location: Location
|
||||
+ <color:green><b><<New>> designLocation: AnisotropicLocation
|
||||
....
|
||||
+ font: Optional[Font]
|
||||
....
|
||||
+ familyName: Optional[str]
|
||||
+ styleName: Optional[str]
|
||||
+ <color:green><b><<New>> localisedFamilyName: Dict
|
||||
....
|
||||
+ <color:brown><s><<Deprecated>> copyLib: bool
|
||||
+ <color:brown><s><<Deprecated>> copyInfo: bool
|
||||
+ <color:brown><s><<Deprecated>> copyGroups: bool
|
||||
+ <color:brown><s><<Deprecated>> copyFeatures: bool
|
||||
....
|
||||
+ muteKerning: bool
|
||||
+ muteInfo: bool
|
||||
+ mutedGlyphNames: List[str]
|
||||
----
|
||||
+ <color:green><b><<New>> getFullDesignLocation(doc)
|
||||
}
|
||||
DesignSpaceDocument *-- "*" Source: sources >
|
||||
note right of Source::localisedFamilyName
|
||||
New field to allow generation
|
||||
of localised instance names using
|
||||
STAT information.
|
||||
end note
|
||||
note right of Source::copyGroups
|
||||
These fields are already not meaningful
|
||||
anymore in version 4 (the default source
|
||||
will be used as "neutral" for groups, info
|
||||
and features. ''copyLib'' can be emulated
|
||||
by putting content in the designspace's lib.
|
||||
end note
|
||||
|
||||
note as NLocSource
|
||||
The location of
|
||||
sources can still only
|
||||
be defined in design
|
||||
coordinates, and now
|
||||
also by relying on
|
||||
axis defaults.
|
||||
|
||||
To build the final,
|
||||
"full" location, a
|
||||
helper method is
|
||||
provided, that uses
|
||||
axis defaults and
|
||||
axis mappings to
|
||||
fill in the blanks.
|
||||
end note
|
||||
NLocSource . Source::designLocation
|
||||
NLocSource . Source::getFullDesignLocation
|
||||
|
||||
class VariableFont <<New>> {
|
||||
+ filename: str
|
||||
+ lib: Dict
|
||||
}
|
||||
DesignSpaceDocument *--- "*" VariableFont: <<New>> \n variableFonts >
|
||||
note right of VariableFont
|
||||
A variable font is a
|
||||
subset of the designspace
|
||||
where everything interpolates
|
||||
(and so can be compiled into
|
||||
an OpenType variable font).
|
||||
end note
|
||||
|
||||
abstract class AbstractAxisSubset <<New>> {
|
||||
+ name: str
|
||||
}
|
||||
VariableFont *-- "*" AbstractAxisSubset: <<New>> \n axisSubsets >
|
||||
|
||||
note right of AbstractAxisSubset
|
||||
An axis subset selects a range
|
||||
or a spot on each the available
|
||||
axes from the whole designspace.
|
||||
|
||||
By default, only the default value
|
||||
of each axis is used to define the
|
||||
variable font.
|
||||
|
||||
Continuous axes can be specified
|
||||
to include their full range instead;
|
||||
or a subset of the range.
|
||||
|
||||
Discrete axes can be specified
|
||||
to include a different spot than the
|
||||
default.
|
||||
end note
|
||||
|
||||
class RangeAxisSubset <<New>> {
|
||||
+ userMinimum: float
|
||||
+ userDefault: float
|
||||
+ userMaximum: float
|
||||
}
|
||||
AbstractAxisSubset <|-- RangeAxisSubset
|
||||
|
||||
class ValueAxisSubset <<New>> {
|
||||
+ userValue: float
|
||||
}
|
||||
AbstractAxisSubset <|-- ValueAxisSubset
|
||||
|
||||
class Instance {
|
||||
+ filename: str
|
||||
+ path: str
|
||||
+ <color:brown><s><<Deprecated>> location: Location
|
||||
+ <color:green><b><<New>> locationLabel: str
|
||||
+ <color:green><b><<New>> designLocation: AnisotropicLocation
|
||||
+ <color:green><b><<New>> userLocation: SimpleLocation
|
||||
....
|
||||
+ font: Optional[Font]
|
||||
....
|
||||
+ <color:orange><b><<Changed>> name: Optional[str]
|
||||
+ <color:orange><b><<Changed>> familyName: Optional[str]
|
||||
+ <color:orange><b><<Changed>> styleName: Optional[str]
|
||||
+ <color:orange><b><<Changed>> postScriptFontName: Optional[str]
|
||||
+ <color:orange><b><<Changed>> styleMapFamilyName: Optional[str]
|
||||
+ <color:orange><b><<Changed>> styleMapStyleName: Optional[str]
|
||||
+ localisedFamilyName: Dict
|
||||
+ localisedStyleName: Dict
|
||||
+ localisedStyleMapFamilyName: Dict
|
||||
+ localisedStyleMapStyleName: Dict
|
||||
....
|
||||
+ <color:brown><s><<Deprecated>> glyphs: Dict
|
||||
+ <color:brown><s><<Deprecated>> kerning: bool
|
||||
+ <color:brown><s><<Deprecated>> info: bool
|
||||
....
|
||||
+ lib: Dict
|
||||
----
|
||||
+ <color:green><b><<New>> clearLocation()
|
||||
+ <color:green><b><<New>> getLocationLabelDescriptor(doc)
|
||||
+ <color:green><b><<New>> getFullDesignLocation(doc)
|
||||
+ <color:green><b><<New>> getFullUserLocation(doc)
|
||||
}
|
||||
DesignSpaceDocument *-- "*" Instance: instances >
|
||||
note right of Instance::locationLabel
|
||||
The location can now alternatively
|
||||
be a string = name of a LocationLabel
|
||||
(STAT format 4). The instance then
|
||||
adopts the location of that label.
|
||||
See the Decovar example file.
|
||||
end note
|
||||
note right of Instance::styleMapStyleName
|
||||
All the name field are now optional.
|
||||
Their default values will be computed
|
||||
using the provided STAT table data
|
||||
and the STAT rules from the spec.
|
||||
For styleMap{Family,Style}Name, they
|
||||
would be computed using the STAT
|
||||
""linkedUserValue"" fields.
|
||||
end note
|
||||
note right of Instance::glyphs
|
||||
This attribute has been replaced by rules
|
||||
end note
|
||||
note right of Instance::kerning
|
||||
All instances get kerning and info
|
||||
nowadays.
|
||||
end note
|
||||
|
||||
note as NLocInstance
|
||||
The location of instances
|
||||
can now be defined using
|
||||
either:
|
||||
- a STAT LocationLabel
|
||||
- design coordinates
|
||||
- user coordinates.
|
||||
- relying on axis defaults
|
||||
|
||||
To build the final, "full"
|
||||
location, a few helper
|
||||
methods are provided,
|
||||
that aggregate data from
|
||||
these sources and apply
|
||||
the axis mappings.
|
||||
end note
|
||||
NLocInstance . Instance::designLocation
|
||||
NLocInstance . Instance::getFullDesignLocation
|
||||
|
||||
@enduml
|
||||
|
BIN
Doc/source/designspaceLib/v5_split_downconvert.png
Normal file
BIN
Doc/source/designspaceLib/v5_split_downconvert.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 97 KiB |
147
Doc/source/designspaceLib/v5_split_downconvert.puml
Normal file
147
Doc/source/designspaceLib/v5_split_downconvert.puml
Normal file
@ -0,0 +1,147 @@
|
||||
@startuml v5_split_downconvert
|
||||
|
||||
title
|
||||
How to split and down-convert a DesignSpace version 5
|
||||
<size:14>so that existing tools can work with it
|
||||
end title
|
||||
|
||||
|
||||
start
|
||||
|
||||
#lightgrey:DesignSpace 5.0
|
||||
- with STAT data
|
||||
- optional instance names
|
||||
- with discrete axes
|
||||
- with multiple VFs]
|
||||
|
||||
note left
|
||||
- STAT data means that compilers will need
|
||||
to write that data to the ouput TTFs
|
||||
- optional instance names means that
|
||||
compilers will need to generate any missing
|
||||
names using the STAT data
|
||||
- discrete axes mean that not all sources
|
||||
are compatible for interpolation
|
||||
- multiple VFs means that compilers will
|
||||
need to output several TTFs for one DS
|
||||
end note
|
||||
|
||||
split
|
||||
split again
|
||||
|
||||
:""splitInterpolating()"";
|
||||
|
||||
note left
|
||||
- Create one DS document per interpolating
|
||||
sub-space, for example: with a discrete
|
||||
axis for Upright vs Italics, create 2
|
||||
DesignSpaces, one for the Uprights, and
|
||||
one for the Italics.
|
||||
- Expand all missing instance names using
|
||||
the STAT data.
|
||||
- Drop all the STAT data because as we start
|
||||
taking out discrete axes, the sub-documents
|
||||
lose STAT data anyway (only the full
|
||||
document at the start of the process should
|
||||
be used to generate the STAT table)
|
||||
end note
|
||||
|
||||
split
|
||||
|
||||
#lightgrey:DesignSpace 5.0
|
||||
- (no STAT data)
|
||||
- (explicit instance names)
|
||||
- (at discrete location #1)
|
||||
- with multiple VFs]
|
||||
|
||||
note left
|
||||
All sources in this sub-space are
|
||||
(supposed to be) compatible for
|
||||
interpolation
|
||||
end note
|
||||
|
||||
split again
|
||||
|
||||
#lightgrey:DesignSpace 5.0
|
||||
- (no STAT data)
|
||||
- (explicit instance names)
|
||||
- (at discrete location #2)
|
||||
- with multiple VFs]
|
||||
detach
|
||||
|
||||
split again
|
||||
|
||||
#lightgrey:etc
|
||||
...]
|
||||
detach
|
||||
|
||||
end split
|
||||
|
||||
:check compatibility;
|
||||
:build compatible master TTFs with cu2qu;
|
||||
|
||||
:""splitVariableFonts()"";
|
||||
|
||||
note left
|
||||
Create one DS document per variable font,
|
||||
for example: the above document may
|
||||
describe a weight and width space, out of
|
||||
which we'll build 3 variable fonts:
|
||||
full weight + width, weight only, width only.
|
||||
end note
|
||||
|
||||
split
|
||||
|
||||
#lightgrey:DesignSpace 5.0
|
||||
- (no STAT data)
|
||||
- (explicit instance names)
|
||||
- (at discrete location #1)
|
||||
- (describing just VF #1)]
|
||||
|
||||
note left
|
||||
This document looks very much
|
||||
like version 4.1, you can just
|
||||
change the version number at
|
||||
the top and feed it to a tool
|
||||
that doesn't know about v5;
|
||||
see ""convert5to4()"".
|
||||
end note
|
||||
|
||||
split again
|
||||
|
||||
#lightgrey:DesignSpace 5.0
|
||||
- (no STAT data)
|
||||
- (explicit instance names)
|
||||
- (at discrete location #1)
|
||||
- (describing just VF #2)]
|
||||
detach
|
||||
|
||||
split again
|
||||
|
||||
#lightgrey:etc
|
||||
...]
|
||||
detach
|
||||
|
||||
end split
|
||||
|
||||
:""varLib.build()"";
|
||||
|
||||
#lightgrey:Variable font TTF
|
||||
No STAT data]
|
||||
|
||||
end split
|
||||
|
||||
:""buildVFStatTable()"";
|
||||
|
||||
note left
|
||||
Apply STAT data using the full document
|
||||
from the start of the process + filtering
|
||||
entries based on this VF's location
|
||||
end note
|
||||
|
||||
#lightgrey:Variable font TTF
|
||||
With STAT data]
|
||||
|
||||
end
|
||||
|
||||
@enduml
|
BIN
Doc/source/designspaceLib/v5_variable_fonts_vs_instances.png
Normal file
BIN
Doc/source/designspaceLib/v5_variable_fonts_vs_instances.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 141 KiB |
1014
Doc/source/designspaceLib/xml.rst
Normal file
1014
Doc/source/designspaceLib/xml.rst
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
424
Lib/fontTools/designspaceLib/split.py
Normal file
424
Lib/fontTools/designspaceLib/split.py
Normal file
@ -0,0 +1,424 @@
|
||||
"""Allows building all the variable fonts of a DesignSpace version 5 by
|
||||
splitting the document into interpolable sub-space, then into each VF.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import itertools
|
||||
import logging
|
||||
import math
|
||||
from typing import Any, Callable, Dict, Iterator, List, Tuple
|
||||
|
||||
from fontTools.designspaceLib import (
|
||||
AxisDescriptor,
|
||||
DesignSpaceDocument,
|
||||
DiscreteAxisDescriptor,
|
||||
InstanceDescriptor,
|
||||
RuleDescriptor,
|
||||
SimpleLocationDict,
|
||||
SourceDescriptor,
|
||||
VariableFontDescriptor,
|
||||
)
|
||||
from fontTools.designspaceLib.statNames import StatNames, getStatNames
|
||||
from fontTools.designspaceLib.types import (
|
||||
Range,
|
||||
Region,
|
||||
ConditionSet,
|
||||
getVFUserRegion,
|
||||
locationInRegion,
|
||||
regionInRegion,
|
||||
userRegionToDesignRegion,
|
||||
)
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
MakeInstanceFilenameCallable = Callable[
|
||||
[DesignSpaceDocument, InstanceDescriptor, StatNames], str
|
||||
]
|
||||
|
||||
|
||||
def defaultMakeInstanceFilename(
|
||||
doc: DesignSpaceDocument, instance: InstanceDescriptor, statNames: StatNames
|
||||
) -> str:
|
||||
"""Default callable to synthesize an instance filename
|
||||
when makeNames=True, for instances that don't specify an instance name
|
||||
in the designspace. This part of the name generation can be overriden
|
||||
because it's not specified by the STAT table.
|
||||
"""
|
||||
familyName = instance.familyName or statNames.familyNames.get("en")
|
||||
styleName = instance.styleName or statNames.styleNames.get("en")
|
||||
return f"{familyName}-{styleName}.ttf"
|
||||
|
||||
|
||||
def splitInterpolable(
|
||||
doc: DesignSpaceDocument,
|
||||
makeNames: bool = True,
|
||||
expandLocations: bool = True,
|
||||
makeInstanceFilename: MakeInstanceFilenameCallable = defaultMakeInstanceFilename,
|
||||
) -> Iterator[Tuple[SimpleLocationDict, DesignSpaceDocument]]:
|
||||
"""Split the given DS5 into several interpolable sub-designspaces.
|
||||
There are as many interpolable sub-spaces as there are combinations of
|
||||
discrete axis values.
|
||||
|
||||
E.g. with axes:
|
||||
- italic (discrete) Upright or Italic
|
||||
- style (discrete) Sans or Serif
|
||||
- weight (continuous) 100 to 900
|
||||
|
||||
There are 4 sub-spaces in which the Weight axis should interpolate:
|
||||
(Upright, Sans), (Upright, Serif), (Italic, Sans) and (Italic, Serif).
|
||||
|
||||
The sub-designspaces still include the full axis definitions and STAT data,
|
||||
but the rules, sources, variable fonts, instances are trimmed down to only
|
||||
keep what falls within the interpolable sub-space.
|
||||
|
||||
Args:
|
||||
- ``makeNames``: Whether to compute the instance family and style
|
||||
names using the STAT data.
|
||||
- ``expandLocations``: Whether to turn all locations into "full"
|
||||
locations, including implicit default axis values where missing.
|
||||
- ``makeInstanceFilename``: Callable to synthesize an instance filename
|
||||
when makeNames=True, for instances that don't specify an instance name
|
||||
in the designspace. This part of the name generation can be overridden
|
||||
because it's not specified by the STAT table.
|
||||
|
||||
.. versionadded:: 5.0
|
||||
"""
|
||||
discreteAxes = []
|
||||
interpolableUserRegion: Region = {}
|
||||
for axis in doc.axes:
|
||||
if isinstance(axis, DiscreteAxisDescriptor):
|
||||
discreteAxes.append(axis)
|
||||
else:
|
||||
interpolableUserRegion[axis.name] = Range(
|
||||
axis.minimum, axis.maximum, axis.default
|
||||
)
|
||||
valueCombinations = itertools.product(*[axis.values for axis in discreteAxes])
|
||||
for values in valueCombinations:
|
||||
discreteUserLocation = {
|
||||
discreteAxis.name: value
|
||||
for discreteAxis, value in zip(discreteAxes, values)
|
||||
}
|
||||
subDoc = _extractSubSpace(
|
||||
doc,
|
||||
{**interpolableUserRegion, **discreteUserLocation},
|
||||
keepVFs=True,
|
||||
makeNames=makeNames,
|
||||
expandLocations=expandLocations,
|
||||
makeInstanceFilename=makeInstanceFilename,
|
||||
)
|
||||
yield discreteUserLocation, subDoc
|
||||
|
||||
|
||||
def splitVariableFonts(
|
||||
doc: DesignSpaceDocument,
|
||||
makeNames: bool = False,
|
||||
expandLocations: bool = False,
|
||||
makeInstanceFilename: MakeInstanceFilenameCallable = defaultMakeInstanceFilename,
|
||||
) -> Iterator[Tuple[str, DesignSpaceDocument]]:
|
||||
"""Convert each variable font listed in this document into a standalone
|
||||
designspace. This can be used to compile all the variable fonts from a
|
||||
format 5 designspace using tools that can only deal with 1 VF at a time.
|
||||
|
||||
Args:
|
||||
- ``makeNames``: Whether to compute the instance family and style
|
||||
names using the STAT data.
|
||||
- ``expandLocations``: Whether to turn all locations into "full"
|
||||
locations, including implicit default axis values where missing.
|
||||
- ``makeInstanceFilename``: Callable to synthesize an instance filename
|
||||
when makeNames=True, for instances that don't specify an instance name
|
||||
in the designspace. This part of the name generation can be overridden
|
||||
because it's not specified by the STAT table.
|
||||
|
||||
.. versionadded:: 5.0
|
||||
"""
|
||||
# Make one DesignspaceDoc v5 for each variable font
|
||||
for vf in doc.getVariableFonts():
|
||||
vfUserRegion = getVFUserRegion(doc, vf)
|
||||
vfDoc = _extractSubSpace(
|
||||
doc,
|
||||
vfUserRegion,
|
||||
keepVFs=False,
|
||||
makeNames=makeNames,
|
||||
expandLocations=expandLocations,
|
||||
makeInstanceFilename=makeInstanceFilename,
|
||||
)
|
||||
vfDoc.lib = {**vfDoc.lib, **vf.lib}
|
||||
yield vf.name, vfDoc
|
||||
|
||||
|
||||
def convert5to4(
|
||||
doc: DesignSpaceDocument,
|
||||
) -> Dict[str, DesignSpaceDocument]:
|
||||
"""Convert each variable font listed in this document into a standalone
|
||||
format 4 designspace. This can be used to compile all the variable fonts
|
||||
from a format 5 designspace using tools that only know about format 4.
|
||||
|
||||
.. versionadded:: 5.0
|
||||
"""
|
||||
vfs = {}
|
||||
for _location, subDoc in splitInterpolable(doc):
|
||||
for vfName, vfDoc in splitVariableFonts(subDoc):
|
||||
vfDoc.formatVersion = "4.1"
|
||||
vfs[vfName] = vfDoc
|
||||
return vfs
|
||||
|
||||
|
||||
def _extractSubSpace(
|
||||
doc: DesignSpaceDocument,
|
||||
userRegion: Region,
|
||||
*,
|
||||
keepVFs: bool,
|
||||
makeNames: bool,
|
||||
expandLocations: bool,
|
||||
makeInstanceFilename: MakeInstanceFilenameCallable,
|
||||
) -> DesignSpaceDocument:
|
||||
subDoc = DesignSpaceDocument()
|
||||
# Don't include STAT info
|
||||
# FIXME: (Jany) let's think about it. Not include = OK because the point of
|
||||
# the splitting is to build VFs and we'll use the STAT data of the full
|
||||
# document to generate the STAT of the VFs, so "no need" to have STAT data
|
||||
# in sub-docs. Counterpoint: what if someone wants to split this DS for
|
||||
# other purposes? Maybe for that it would be useful to also subset the STAT
|
||||
# data?
|
||||
# subDoc.elidedFallbackName = doc.elidedFallbackName
|
||||
|
||||
def maybeExpandDesignLocation(object):
|
||||
if expandLocations:
|
||||
return object.getFullDesignLocation(doc)
|
||||
else:
|
||||
return object.designLocation
|
||||
|
||||
for axis in doc.axes:
|
||||
range = userRegion[axis.name]
|
||||
if isinstance(range, Range) and isinstance(axis, AxisDescriptor):
|
||||
subDoc.addAxis(
|
||||
AxisDescriptor(
|
||||
# Same info
|
||||
tag=axis.tag,
|
||||
name=axis.name,
|
||||
labelNames=axis.labelNames,
|
||||
hidden=axis.hidden,
|
||||
# Subset range
|
||||
minimum=max(range.minimum, axis.minimum),
|
||||
default=range.default or axis.default,
|
||||
maximum=min(range.maximum, axis.maximum),
|
||||
map=[
|
||||
(user, design)
|
||||
for user, design in axis.map
|
||||
if range.minimum <= user <= range.maximum
|
||||
],
|
||||
# Don't include STAT info
|
||||
axisOrdering=None,
|
||||
axisLabels=None,
|
||||
)
|
||||
)
|
||||
|
||||
# Don't include STAT info
|
||||
# subDoc.locationLabels = doc.locationLabels
|
||||
|
||||
# Rules: subset them based on conditions
|
||||
designRegion = userRegionToDesignRegion(doc, userRegion)
|
||||
subDoc.rules = _subsetRulesBasedOnConditions(doc.rules, designRegion)
|
||||
subDoc.rulesProcessingLast = doc.rulesProcessingLast
|
||||
|
||||
# Sources: keep only the ones that fall within the kept axis ranges
|
||||
for source in doc.sources:
|
||||
if not locationInRegion(doc.map_backward(source.designLocation), userRegion):
|
||||
continue
|
||||
|
||||
subDoc.addSource(
|
||||
SourceDescriptor(
|
||||
filename=source.filename,
|
||||
path=source.path,
|
||||
font=source.font,
|
||||
name=source.name,
|
||||
designLocation=_filterLocation(
|
||||
userRegion, maybeExpandDesignLocation(source)
|
||||
),
|
||||
layerName=source.layerName,
|
||||
familyName=source.familyName,
|
||||
styleName=source.styleName,
|
||||
muteKerning=source.muteKerning,
|
||||
muteInfo=source.muteInfo,
|
||||
mutedGlyphNames=source.mutedGlyphNames,
|
||||
)
|
||||
)
|
||||
|
||||
# Copy family name translations from the old default source to the new default
|
||||
vfDefault = subDoc.findDefault()
|
||||
oldDefault = doc.findDefault()
|
||||
if vfDefault is not None and oldDefault is not None:
|
||||
vfDefault.localisedFamilyName = oldDefault.localisedFamilyName
|
||||
|
||||
# Variable fonts: keep only the ones that fall within the kept axis ranges
|
||||
if keepVFs:
|
||||
# Note: call getVariableFont() to make the implicit VFs explicit
|
||||
for vf in doc.getVariableFonts():
|
||||
vfUserRegion = getVFUserRegion(doc, vf)
|
||||
if regionInRegion(vfUserRegion, userRegion):
|
||||
subDoc.addVariableFont(
|
||||
VariableFontDescriptor(
|
||||
name=vf.name,
|
||||
filename=vf.filename,
|
||||
axisSubsets=[
|
||||
axisSubset
|
||||
for axisSubset in vf.axisSubsets
|
||||
if isinstance(userRegion[axisSubset.name], Range)
|
||||
],
|
||||
lib=vf.lib,
|
||||
)
|
||||
)
|
||||
|
||||
# Instances: same as Sources + compute missing names
|
||||
for instance in doc.instances:
|
||||
if not locationInRegion(instance.getFullUserLocation(doc), userRegion):
|
||||
continue
|
||||
|
||||
if makeNames:
|
||||
statNames = getStatNames(doc, instance.getFullUserLocation(doc))
|
||||
familyName = instance.familyName or statNames.familyNames.get("en")
|
||||
styleName = instance.styleName or statNames.styleNames.get("en")
|
||||
subDoc.addInstance(
|
||||
InstanceDescriptor(
|
||||
filename=instance.filename
|
||||
or makeInstanceFilename(doc, instance, statNames),
|
||||
path=instance.path,
|
||||
font=instance.font,
|
||||
name=instance.name or f"{familyName} {styleName}",
|
||||
userLocation={} if expandLocations else instance.userLocation,
|
||||
designLocation=_filterLocation(
|
||||
userRegion, maybeExpandDesignLocation(instance)
|
||||
),
|
||||
familyName=familyName,
|
||||
styleName=styleName,
|
||||
postScriptFontName=instance.postScriptFontName
|
||||
or statNames.postScriptFontName,
|
||||
styleMapFamilyName=instance.styleMapFamilyName
|
||||
or statNames.styleMapFamilyNames.get("en"),
|
||||
styleMapStyleName=instance.styleMapStyleName
|
||||
or statNames.styleMapStyleName,
|
||||
localisedFamilyName=instance.localisedFamilyName
|
||||
or statNames.familyNames,
|
||||
localisedStyleName=instance.localisedStyleName
|
||||
or statNames.styleNames,
|
||||
localisedStyleMapFamilyName=instance.localisedStyleMapFamilyName
|
||||
or statNames.styleMapFamilyNames,
|
||||
localisedStyleMapStyleName=instance.localisedStyleMapStyleName
|
||||
or {},
|
||||
lib=instance.lib,
|
||||
)
|
||||
)
|
||||
else:
|
||||
subDoc.addInstance(
|
||||
InstanceDescriptor(
|
||||
filename=instance.filename,
|
||||
path=instance.path,
|
||||
font=instance.font,
|
||||
name=instance.name,
|
||||
userLocation={} if expandLocations else instance.userLocation,
|
||||
designLocation=_filterLocation(
|
||||
userRegion, maybeExpandDesignLocation(instance)
|
||||
),
|
||||
familyName=instance.familyName,
|
||||
styleName=instance.styleName,
|
||||
postScriptFontName=instance.postScriptFontName,
|
||||
styleMapFamilyName=instance.styleMapFamilyName,
|
||||
styleMapStyleName=instance.styleMapStyleName,
|
||||
localisedFamilyName=instance.localisedFamilyName,
|
||||
localisedStyleName=instance.localisedStyleName,
|
||||
localisedStyleMapFamilyName=instance.localisedStyleMapFamilyName,
|
||||
localisedStyleMapStyleName=instance.localisedStyleMapStyleName,
|
||||
lib=instance.lib,
|
||||
)
|
||||
)
|
||||
|
||||
subDoc.lib = doc.lib
|
||||
|
||||
return subDoc
|
||||
|
||||
|
||||
def _conditionSetFrom(conditionSet: List[Dict[str, Any]]) -> ConditionSet:
|
||||
c: Dict[str, Range] = {}
|
||||
for condition in conditionSet:
|
||||
c[condition["name"]] = Range(
|
||||
condition.get("minimum", -math.inf),
|
||||
condition.get("maximum", math.inf),
|
||||
)
|
||||
return c
|
||||
|
||||
|
||||
def _subsetRulesBasedOnConditions(
|
||||
rules: List[RuleDescriptor], designRegion: Region
|
||||
) -> List[RuleDescriptor]:
|
||||
# What rules to keep:
|
||||
# - Keep the rule if any conditionset is relevant.
|
||||
# - A conditionset is relevant if all conditions are relevant or it is empty.
|
||||
# - A condition is relevant if
|
||||
# - axis is point (C-AP),
|
||||
# - and point in condition's range (C-AP-in)
|
||||
# (in this case remove the condition because it's always true)
|
||||
# - else (C-AP-out) whole conditionset can be discarded (condition false
|
||||
# => conditionset false)
|
||||
# - axis is range (C-AR),
|
||||
# - (C-AR-all) and axis range fully contained in condition range: we can
|
||||
# scrap the condition because it's always true
|
||||
# - (C-AR-inter) and intersection(axis range, condition range) not empty:
|
||||
# keep the condition with the smaller range (= intersection)
|
||||
# - (C-AR-none) else, whole conditionset can be discarded
|
||||
newRules: List[RuleDescriptor] = []
|
||||
for rule in rules:
|
||||
newRule: RuleDescriptor = RuleDescriptor(
|
||||
name=rule.name, conditionSets=[], subs=rule.subs
|
||||
)
|
||||
for conditionset in rule.conditionSets:
|
||||
cs = _conditionSetFrom(conditionset)
|
||||
newConditionset: List[Dict[str, Any]] = []
|
||||
discardConditionset = False
|
||||
for selectionName, selectionValue in designRegion.items():
|
||||
# TODO: Ensure that all(key in conditionset for key in region.keys())?
|
||||
if selectionName not in cs:
|
||||
# raise Exception("Selection has different axes than the rules")
|
||||
continue
|
||||
if isinstance(selectionValue, (float, int)): # is point
|
||||
# Case C-AP-in
|
||||
if selectionValue in cs[selectionName]:
|
||||
pass # always matches, conditionset can stay empty for this one.
|
||||
# Case C-AP-out
|
||||
else:
|
||||
discardConditionset = True
|
||||
else: # is range
|
||||
# Case C-AR-all
|
||||
if selectionValue in cs[selectionName]:
|
||||
pass # always matches, conditionset can stay empty for this one.
|
||||
else:
|
||||
intersection = cs[selectionName].intersection(selectionValue)
|
||||
# Case C-AR-inter
|
||||
if intersection is not None:
|
||||
newConditionset.append(
|
||||
{
|
||||
"name": selectionName,
|
||||
"minimum": intersection.minimum,
|
||||
"maximum": intersection.maximum,
|
||||
}
|
||||
)
|
||||
# Case C-AR-none
|
||||
else:
|
||||
discardConditionset = True
|
||||
if not discardConditionset:
|
||||
newRule.conditionSets.append(newConditionset)
|
||||
if newRule.conditionSets:
|
||||
newRules.append(newRule)
|
||||
|
||||
return newRules
|
||||
|
||||
|
||||
def _filterLocation(
|
||||
userRegion: Region,
|
||||
location: Dict[str, float],
|
||||
) -> Dict[str, float]:
|
||||
return {
|
||||
name: value
|
||||
for name, value in location.items()
|
||||
if name in userRegion and isinstance(userRegion[name], Range)
|
||||
}
|
224
Lib/fontTools/designspaceLib/statNames.py
Normal file
224
Lib/fontTools/designspaceLib/statNames.py
Normal file
@ -0,0 +1,224 @@
|
||||
"""Compute name information for a given location in user-space coordinates
|
||||
using STAT data. This can be used to fill-in automatically the names of an
|
||||
instance:
|
||||
|
||||
.. code:: python
|
||||
|
||||
instance = doc.instances[0]
|
||||
names = getStatNames(doc, instance.getFullUserLocation(doc))
|
||||
print(names.styleNames)
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import Dict, Optional, Tuple, Union
|
||||
import logging
|
||||
|
||||
from fontTools.designspaceLib import (
|
||||
AxisDescriptor,
|
||||
AxisLabelDescriptor,
|
||||
DesignSpaceDocument,
|
||||
DesignSpaceDocumentError,
|
||||
DiscreteAxisDescriptor,
|
||||
SimpleLocationDict,
|
||||
SourceDescriptor,
|
||||
)
|
||||
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
# TODO(Python 3.8): use Literal
|
||||
# RibbiStyleName = Union[Literal["regular"], Literal["bold"], Literal["italic"], Literal["bold italic"]]
|
||||
RibbiStyle = str
|
||||
BOLD_ITALIC_TO_RIBBI_STYLE = {
|
||||
(False, False): "regular",
|
||||
(False, True): "italic",
|
||||
(True, False): "bold",
|
||||
(True, True): "bold italic",
|
||||
}
|
||||
|
||||
|
||||
@dataclass
|
||||
class StatNames:
|
||||
"""Name data generated from the STAT table information."""
|
||||
|
||||
familyNames: Dict[str, str]
|
||||
styleNames: Dict[str, str]
|
||||
postScriptFontName: Optional[str]
|
||||
styleMapFamilyNames: Dict[str, str]
|
||||
styleMapStyleName: Optional[RibbiStyle]
|
||||
|
||||
|
||||
|
||||
def getStatNames(
|
||||
doc: DesignSpaceDocument, userLocation: SimpleLocationDict
|
||||
) -> StatNames:
|
||||
"""Compute the family, style, PostScript names of the given ``userLocation``
|
||||
using the document's STAT information.
|
||||
|
||||
Also computes localizations.
|
||||
|
||||
If not enough STAT data is available for a given name, either its dict of
|
||||
localized names will be empty (family and style names), or the name will be
|
||||
None (PostScript name).
|
||||
|
||||
.. versionadded:: 5.0
|
||||
"""
|
||||
familyNames: Dict[str, str] = {}
|
||||
defaultSource: Optional[SourceDescriptor] = doc.findDefault()
|
||||
if defaultSource is None:
|
||||
LOGGER.warning("Cannot determine default source to look up family name.")
|
||||
elif defaultSource.familyName is None:
|
||||
LOGGER.warning(
|
||||
"Cannot look up family name, assign the 'familyname' attribute to the default source."
|
||||
)
|
||||
else:
|
||||
familyNames = {
|
||||
"en": defaultSource.familyName,
|
||||
**defaultSource.localisedFamilyName,
|
||||
}
|
||||
|
||||
styleNames: Dict[str, str] = {}
|
||||
# If a free-standing label matches the location, use it for name generation.
|
||||
label = doc.labelForUserLocation(userLocation)
|
||||
if label is not None:
|
||||
styleNames = {"en": label.name, **label.labelNames}
|
||||
# Otherwise, scour the axis labels for matches.
|
||||
else:
|
||||
# Gather all languages in which at least one translation is provided
|
||||
# Then build names for all these languages, but fallback to English
|
||||
# whenever a translation is missing.
|
||||
labels = _getAxisLabelsForUserLocation(doc.axes, userLocation)
|
||||
languages = set(language for label in labels for language in label.labelNames)
|
||||
languages.add("en")
|
||||
for language in languages:
|
||||
styleName = " ".join(
|
||||
label.labelNames.get(language, label.defaultName)
|
||||
for label in labels
|
||||
if not label.elidable
|
||||
)
|
||||
if not styleName and doc.elidedFallbackName is not None:
|
||||
styleName = doc.elidedFallbackName
|
||||
styleNames[language] = styleName
|
||||
|
||||
postScriptFontName = None
|
||||
if "en" in familyNames and "en" in styleNames:
|
||||
postScriptFontName = f"{familyNames['en']}-{styleNames['en']}".replace(" ", "")
|
||||
|
||||
styleMapStyleName, regularUserLocation = _getRibbiStyle(doc, userLocation)
|
||||
|
||||
styleNamesForStyleMap = styleNames
|
||||
if regularUserLocation != userLocation:
|
||||
regularStatNames = getStatNames(doc, regularUserLocation)
|
||||
styleNamesForStyleMap = regularStatNames.styleNames
|
||||
|
||||
styleMapFamilyNames = {}
|
||||
for language in set(familyNames).union(styleNames.keys()):
|
||||
familyName = familyNames.get(language, familyNames["en"])
|
||||
styleName = styleNamesForStyleMap.get(language, styleNamesForStyleMap["en"])
|
||||
styleMapFamilyNames[language] = (familyName + " " + styleName).strip()
|
||||
|
||||
return StatNames(
|
||||
familyNames=familyNames,
|
||||
styleNames=styleNames,
|
||||
postScriptFontName=postScriptFontName,
|
||||
styleMapFamilyNames=styleMapFamilyNames,
|
||||
styleMapStyleName=styleMapStyleName,
|
||||
)
|
||||
|
||||
|
||||
def _getSortedAxisLabels(
|
||||
axes: list[Union[AxisDescriptor, DiscreteAxisDescriptor]],
|
||||
) -> Dict[str, list[AxisLabelDescriptor]]:
|
||||
"""Returns axis labels sorted by their ordering, with unordered ones appended as
|
||||
they are listed."""
|
||||
|
||||
# First, get the axis labels with explicit ordering...
|
||||
sortedAxes = sorted(
|
||||
(axis for axis in axes if axis.axisOrdering is not None),
|
||||
key=lambda a: a.axisOrdering,
|
||||
)
|
||||
sortedLabels: Dict[str, list[AxisLabelDescriptor]] = {
|
||||
axis.name: axis.axisLabels for axis in sortedAxes
|
||||
}
|
||||
|
||||
# ... then append the others in the order they appear.
|
||||
# NOTE: This relies on Python 3.7+ dict's preserved insertion order.
|
||||
for axis in axes:
|
||||
if axis.axisOrdering is None:
|
||||
sortedLabels[axis.name] = axis.axisLabels
|
||||
|
||||
return sortedLabels
|
||||
|
||||
|
||||
def _getAxisLabelsForUserLocation(
|
||||
axes: list[Union[AxisDescriptor, DiscreteAxisDescriptor]],
|
||||
userLocation: SimpleLocationDict,
|
||||
) -> list[AxisLabelDescriptor]:
|
||||
labels: list[AxisLabelDescriptor] = []
|
||||
|
||||
allAxisLabels = _getSortedAxisLabels(axes)
|
||||
if allAxisLabels.keys() != userLocation.keys():
|
||||
LOGGER.warning(
|
||||
f"Mismatch between user location '{userLocation.keys()}' and available "
|
||||
f"labels for '{allAxisLabels.keys()}'."
|
||||
)
|
||||
|
||||
for axisName, axisLabels in allAxisLabels.items():
|
||||
userValue = userLocation[axisName]
|
||||
label: Optional[AxisLabelDescriptor] = next(
|
||||
(
|
||||
l
|
||||
for l in axisLabels
|
||||
if l.userValue == userValue
|
||||
or (
|
||||
l.userMinimum is not None
|
||||
and l.userMaximum is not None
|
||||
and l.userMinimum <= userValue <= l.userMaximum
|
||||
)
|
||||
),
|
||||
None,
|
||||
)
|
||||
if label is None:
|
||||
LOGGER.debug(
|
||||
f"Document needs a label for axis '{axisName}', user value '{userValue}'."
|
||||
)
|
||||
else:
|
||||
labels.append(label)
|
||||
|
||||
return labels
|
||||
|
||||
|
||||
def _getRibbiStyle(
|
||||
self: DesignSpaceDocument, userLocation: SimpleLocationDict
|
||||
) -> Tuple[RibbiStyle, SimpleLocationDict]:
|
||||
"""Compute the RIBBI style name of the given user location,
|
||||
return the location of the matching Regular in the RIBBI group.
|
||||
|
||||
.. versionadded:: 5.0
|
||||
"""
|
||||
regularUserLocation = {}
|
||||
axes_by_tag = {axis.tag: axis for axis in self.axes}
|
||||
|
||||
bold: bool = False
|
||||
italic: bool = False
|
||||
|
||||
axis = axes_by_tag.get("wght")
|
||||
if axis is not None:
|
||||
for regular_label in axis.axisLabels:
|
||||
if regular_label.linkedUserValue == userLocation[axis.name]:
|
||||
regularUserLocation[axis.name] = regular_label.userValue
|
||||
bold = True
|
||||
break
|
||||
|
||||
axis = axes_by_tag.get("ital") or axes_by_tag.get("slnt")
|
||||
if axis is not None:
|
||||
for urpright_label in axis.axisLabels:
|
||||
if urpright_label.linkedUserValue == userLocation[axis.name]:
|
||||
regularUserLocation[axis.name] = urpright_label.userValue
|
||||
italic = True
|
||||
break
|
||||
|
||||
return BOLD_ITALIC_TO_RIBBI_STYLE[bold, italic], {
|
||||
**userLocation,
|
||||
**regularUserLocation,
|
||||
}
|
122
Lib/fontTools/designspaceLib/types.py
Normal file
122
Lib/fontTools/designspaceLib/types.py
Normal file
@ -0,0 +1,122 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import Dict, List, Optional, Union
|
||||
|
||||
from fontTools.designspaceLib import (
|
||||
DesignSpaceDocument,
|
||||
RangeAxisSubsetDescriptor,
|
||||
SimpleLocationDict,
|
||||
VariableFontDescriptor,
|
||||
)
|
||||
|
||||
|
||||
def clamp(value, minimum, maximum):
|
||||
return min(max(value, minimum), maximum)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Range:
|
||||
minimum: float
|
||||
"""Inclusive minimum of the range."""
|
||||
maximum: float
|
||||
"""Inclusive maximum of the range."""
|
||||
default: float = 0
|
||||
"""Default value"""
|
||||
|
||||
def __post__init__(self):
|
||||
self.minimum, self.maximum = sorted((self.minimum, self.maximum))
|
||||
self.default = clamp(self.default, self.minimum, self.maximum)
|
||||
|
||||
def __contains__(self, value: Union[float, Range]) -> bool:
|
||||
if isinstance(value, Range):
|
||||
return self.minimum <= value.minimum and value.maximum <= self.maximum
|
||||
return self.minimum <= value <= self.maximum
|
||||
|
||||
def intersection(self, other: Range) -> Optional[Range]:
|
||||
if self.maximum < other.minimum or self.minimum > other.maximum:
|
||||
return None
|
||||
else:
|
||||
return Range(
|
||||
max(self.minimum, other.minimum),
|
||||
min(self.maximum, other.maximum),
|
||||
self.default, # We don't care about the default in this use-case
|
||||
)
|
||||
|
||||
|
||||
# A region selection is either a range or a single value, as a Designspace v5
|
||||
# axis-subset element only allows a single discrete value or a range for a
|
||||
# variable-font element.
|
||||
Region = Dict[str, Union[Range, float]]
|
||||
|
||||
# A conditionset is a set of named ranges.
|
||||
ConditionSet = Dict[str, Range]
|
||||
|
||||
# A rule is a list of conditionsets where any has to be relevant for the whole rule to be relevant.
|
||||
Rule = List[ConditionSet]
|
||||
Rules = Dict[str, Rule]
|
||||
|
||||
|
||||
def locationInRegion(location: SimpleLocationDict, region: Region) -> bool:
|
||||
for name, value in location.items():
|
||||
if name not in region:
|
||||
return False
|
||||
regionValue = region[name]
|
||||
if isinstance(regionValue, (float, int)):
|
||||
if value != regionValue:
|
||||
return False
|
||||
else:
|
||||
if value not in regionValue:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def regionInRegion(region: Region, superRegion: Region) -> bool:
|
||||
for name, value in region.items():
|
||||
if not name in superRegion:
|
||||
return False
|
||||
superValue = superRegion[name]
|
||||
if isinstance(superValue, (float, int)):
|
||||
if value != superValue:
|
||||
return False
|
||||
else:
|
||||
if value not in superValue:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def userRegionToDesignRegion(doc: DesignSpaceDocument, userRegion: Region) -> Region:
|
||||
designRegion = {}
|
||||
for name, value in userRegion.items():
|
||||
axis = doc.getAxis(name)
|
||||
if isinstance(value, (float, int)):
|
||||
designRegion[name] = axis.map_forward(value)
|
||||
else:
|
||||
designRegion[name] = Range(
|
||||
axis.map_forward(value.minimum),
|
||||
axis.map_forward(value.maximum),
|
||||
axis.map_forward(value.default),
|
||||
)
|
||||
return designRegion
|
||||
|
||||
|
||||
def getVFUserRegion(doc: DesignSpaceDocument, vf: VariableFontDescriptor) -> Region:
|
||||
vfUserRegion: Region = {}
|
||||
# For each axis, 2 cases:
|
||||
# - it has a range = it's an axis in the VF DS
|
||||
# - it's a single location = use it to know which rules should apply in the VF
|
||||
for axisSubset in vf.axisSubsets:
|
||||
axis = doc.getAxis(axisSubset.name)
|
||||
if isinstance(axisSubset, RangeAxisSubsetDescriptor):
|
||||
vfUserRegion[axis.name] = Range(
|
||||
max(axisSubset.userMinimum, axis.minimum),
|
||||
min(axisSubset.userMaximum, axis.maximum),
|
||||
axisSubset.userDefault or axis.default,
|
||||
)
|
||||
else:
|
||||
vfUserRegion[axis.name] = axisSubset.userValue
|
||||
# Any axis not mentioned explicitly has a single location = default value
|
||||
for axis in doc.axes:
|
||||
if axis.name not in vfUserRegion:
|
||||
vfUserRegion[axis.name] = axis.default
|
||||
return vfUserRegion
|
@ -18,6 +18,7 @@ Then you can make a variable-font this way:
|
||||
|
||||
API *will* change in near future.
|
||||
"""
|
||||
from typing import List
|
||||
from fontTools.misc.vector import Vector
|
||||
from fontTools.misc.roundTools import noRound, otRound
|
||||
from fontTools.misc.textTools import Tag, tostr
|
||||
@ -33,7 +34,9 @@ from fontTools.varLib.merger import VariationMerger
|
||||
from fontTools.varLib.mvar import MVAR_ENTRIES
|
||||
from fontTools.varLib.iup import iup_delta_optimize
|
||||
from fontTools.varLib.featureVars import addFeatureVariations
|
||||
from fontTools.designspaceLib import DesignSpaceDocument
|
||||
from fontTools.designspaceLib import DesignSpaceDocument, InstanceDescriptor
|
||||
from fontTools.designspaceLib.split import splitInterpolable, splitVariableFonts
|
||||
from fontTools.varLib.stat import buildVFStatTable
|
||||
from functools import partial
|
||||
from collections import OrderedDict, namedtuple
|
||||
import os.path
|
||||
@ -53,7 +56,7 @@ FEAVAR_FEATURETAG_LIB_KEY = "com.github.fonttools.varLib.featureVarsFeatureTag"
|
||||
# Creation routines
|
||||
#
|
||||
|
||||
def _add_fvar(font, axes, instances):
|
||||
def _add_fvar(font, axes, instances: List[InstanceDescriptor]):
|
||||
"""
|
||||
Add 'fvar' table to font.
|
||||
|
||||
@ -81,7 +84,8 @@ def _add_fvar(font, axes, instances):
|
||||
fvar.axes.append(axis)
|
||||
|
||||
for instance in instances:
|
||||
coordinates = instance.location
|
||||
# Filter out discrete axis locations
|
||||
coordinates = {name: value for name, value in instance.location.items() if name in axes}
|
||||
|
||||
if "en" not in instance.localisedStyleName:
|
||||
if not instance.styleName:
|
||||
@ -198,11 +202,10 @@ def _add_avar(font, axes):
|
||||
|
||||
return avar
|
||||
|
||||
def _add_stat(font, axes):
|
||||
# for now we just get the axis tags and nameIDs from the fvar,
|
||||
# so we can reuse the same nameIDs which were defined in there.
|
||||
# TODO make use of 'axes' once it adds style attributes info:
|
||||
# https://github.com/LettError/designSpaceDocument/issues/8
|
||||
def _add_stat(font):
|
||||
# Note: this function only gets called by old code that calls `build()`
|
||||
# directly. Newer code that wants to benefit from STAT data from the
|
||||
# designspace should call `build_many()`
|
||||
|
||||
if "STAT" in font:
|
||||
return
|
||||
@ -759,7 +762,8 @@ def load_designspace(designspace):
|
||||
# Check all master and instance locations are valid and fill in defaults
|
||||
for obj in masters+instances:
|
||||
obj_name = obj.name or obj.styleName or ''
|
||||
loc = obj.location
|
||||
loc = obj.getFullDesignLocation(ds)
|
||||
obj.designLocation = loc
|
||||
if loc is None:
|
||||
raise VarLibValidationError(
|
||||
f"Source or instance '{obj_name}' has no location."
|
||||
@ -770,10 +774,6 @@ def load_designspace(designspace):
|
||||
f"Location axis '{axis_name}' unknown for '{obj_name}'."
|
||||
)
|
||||
for axis_name,axis in axes.items():
|
||||
if axis_name not in loc:
|
||||
# NOTE: `axis.default` is always user-space, but `obj.location` always design-space.
|
||||
loc[axis_name] = axis.map_forward(axis.default)
|
||||
else:
|
||||
v = axis.map_backward(loc[axis_name])
|
||||
if not (axis.minimum <= v <= axis.maximum):
|
||||
raise VarLibValidationError(
|
||||
@ -785,7 +785,7 @@ def load_designspace(designspace):
|
||||
|
||||
# Normalize master locations
|
||||
|
||||
internal_master_locs = [o.location for o in masters]
|
||||
internal_master_locs = [o.getFullDesignLocation(ds) for o in masters]
|
||||
log.info("Internal master locations:\n%s", pformat(internal_master_locs))
|
||||
|
||||
# TODO This mapping should ideally be moved closer to logic in _add_fvar/avar
|
||||
@ -865,6 +865,38 @@ def set_default_weight_width_slant(font, location):
|
||||
font["post"].italicAngle = italicAngle
|
||||
|
||||
|
||||
def build_many(designspace: DesignSpaceDocument, master_finder=lambda s:s, exclude=[], optimize=True, skip_vf=lambda vf_name: False):
|
||||
"""
|
||||
Build variable fonts from a designspace file, version 5 which can define
|
||||
several VFs, or version 4 which has implicitly one VF covering the whole doc.
|
||||
|
||||
If master_finder is set, it should be a callable that takes master
|
||||
filename as found in designspace file and map it to master font
|
||||
binary as to be opened (eg. .ttf or .otf).
|
||||
|
||||
skip_vf can be used to skip building some of the variable fonts defined in
|
||||
the input designspace. It's a predicate that takes as argument the name
|
||||
of the variable font and returns `bool`.
|
||||
|
||||
Always returns a Dict[str, TTFont] keyed by VariableFontDescriptor.name
|
||||
"""
|
||||
res = {}
|
||||
for _location, subDoc in splitInterpolable(designspace):
|
||||
for name, vfDoc in splitVariableFonts(subDoc):
|
||||
if skip_vf(name):
|
||||
log.debug(f"Skipping variable TTF font: {name}")
|
||||
continue
|
||||
vf = build(
|
||||
vfDoc,
|
||||
master_finder,
|
||||
exclude=list(exclude) + ["STAT"],
|
||||
optimize=optimize
|
||||
)[0]
|
||||
if "STAT" not in exclude:
|
||||
buildVFStatTable(vf, designspace, name)
|
||||
res[name] = vf
|
||||
return res
|
||||
|
||||
def build(designspace, master_finder=lambda s:s, exclude=[], optimize=True):
|
||||
"""
|
||||
Build variation font from a designspace file.
|
||||
@ -898,7 +930,7 @@ def build(designspace, master_finder=lambda s:s, exclude=[], optimize=True):
|
||||
# TODO append masters as named-instances as well; needs .designspace change.
|
||||
fvar = _add_fvar(vf, ds.axes, ds.instances)
|
||||
if 'STAT' not in exclude:
|
||||
_add_stat(vf, ds.axes)
|
||||
_add_stat(vf)
|
||||
if 'avar' not in exclude:
|
||||
_add_avar(vf, ds.axes)
|
||||
|
||||
|
142
Lib/fontTools/varLib/stat.py
Normal file
142
Lib/fontTools/varLib/stat.py
Normal file
@ -0,0 +1,142 @@
|
||||
"""Extra methods for DesignSpaceDocument to generate its STAT table data."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Dict, List, Union
|
||||
|
||||
import fontTools.otlLib.builder
|
||||
from fontTools.designspaceLib import (
|
||||
AxisLabelDescriptor,
|
||||
DesignSpaceDocument,
|
||||
DesignSpaceDocumentError,
|
||||
LocationLabelDescriptor,
|
||||
)
|
||||
from fontTools.designspaceLib.types import Region, getVFUserRegion, locationInRegion
|
||||
from fontTools.ttLib import TTFont
|
||||
|
||||
|
||||
def buildVFStatTable(ttFont: TTFont, doc: DesignSpaceDocument, vfName: str) -> None:
|
||||
"""Build the STAT table for the variable font identified by its name in
|
||||
the given document.
|
||||
|
||||
Knowing which variable we're building STAT data for is needed to subset
|
||||
the STAT locations to only include what the variable font actually ships.
|
||||
|
||||
.. versionadded:: 5.0
|
||||
|
||||
.. seealso::
|
||||
- :func:`getStatAxes()`
|
||||
- :func:`getStatLocations()`
|
||||
- :func:`fontTools.otlLib.builder.buildStatTable()`
|
||||
"""
|
||||
for vf in doc.getVariableFonts():
|
||||
if vf.name == vfName:
|
||||
break
|
||||
else:
|
||||
raise DesignSpaceDocumentError(
|
||||
f"Cannot find the variable font by name {vfName}"
|
||||
)
|
||||
|
||||
region = getVFUserRegion(doc, vf)
|
||||
|
||||
return fontTools.otlLib.builder.buildStatTable(
|
||||
ttFont,
|
||||
getStatAxes(doc, region),
|
||||
getStatLocations(doc, region),
|
||||
doc.elidedFallbackName if doc.elidedFallbackName is not None else 2,
|
||||
)
|
||||
|
||||
|
||||
def getStatAxes(doc: DesignSpaceDocument, userRegion: Region) -> List[Dict]:
|
||||
"""Return a list of axis dicts suitable for use as the ``axes``
|
||||
argument to :func:`fontTools.otlLib.builder.buildStatTable()`.
|
||||
|
||||
.. versionadded:: 5.0
|
||||
"""
|
||||
# First, get the axis labels with explicit ordering
|
||||
# then append the others in the order they appear.
|
||||
maxOrdering = max(
|
||||
(axis.axisOrdering for axis in doc.axes if axis.axisOrdering is not None),
|
||||
default=-1,
|
||||
)
|
||||
axisOrderings = []
|
||||
for axis in doc.axes:
|
||||
if axis.axisOrdering is not None:
|
||||
axisOrderings.append(axis.axisOrdering)
|
||||
else:
|
||||
maxOrdering += 1
|
||||
axisOrderings.append(maxOrdering)
|
||||
return [
|
||||
dict(
|
||||
tag=axis.tag,
|
||||
name={"en": axis.name, **axis.labelNames},
|
||||
ordering=ordering,
|
||||
values=[
|
||||
_axisLabelToStatLocation(label)
|
||||
for label in axis.axisLabels
|
||||
if locationInRegion({axis.name: label.userValue}, userRegion)
|
||||
],
|
||||
)
|
||||
for axis, ordering in zip(doc.axes, axisOrderings)
|
||||
]
|
||||
|
||||
|
||||
def getStatLocations(doc: DesignSpaceDocument, userRegion: Region) -> List[Dict]:
|
||||
"""Return a list of location dicts suitable for use as the ``locations``
|
||||
argument to :func:`fontTools.otlLib.builder.buildStatTable()`.
|
||||
|
||||
.. versionadded:: 5.0
|
||||
"""
|
||||
axesByName = {axis.name: axis for axis in doc.axes}
|
||||
return [
|
||||
dict(
|
||||
name={"en": label.name, **label.labelNames},
|
||||
# Location in the designspace is keyed by axis name
|
||||
# Location in buildStatTable by axis tag
|
||||
location={
|
||||
axesByName[name].tag: value
|
||||
for name, value in label.getFullUserLocation(doc).items()
|
||||
},
|
||||
flags=_labelToFlags(label),
|
||||
)
|
||||
for label in doc.locationLabels
|
||||
if locationInRegion(label.getFullUserLocation(doc), userRegion)
|
||||
]
|
||||
|
||||
|
||||
def _labelToFlags(label: Union[AxisLabelDescriptor, LocationLabelDescriptor]) -> int:
|
||||
flags = 0
|
||||
if label.olderSibling:
|
||||
flags |= 1
|
||||
if label.elidable:
|
||||
flags |= 2
|
||||
return flags
|
||||
|
||||
|
||||
def _axisLabelToStatLocation(
|
||||
label: AxisLabelDescriptor,
|
||||
) -> Dict:
|
||||
label_format = label.getFormat()
|
||||
name = {"en": label.name, **label.labelNames}
|
||||
flags = _labelToFlags(label)
|
||||
if label_format == 1:
|
||||
return dict(name=name, value=label.userValue, flags=flags)
|
||||
if label_format == 3:
|
||||
return dict(
|
||||
name=name,
|
||||
value=label.userValue,
|
||||
linkedValue=label.linkedUserValue,
|
||||
flags=flags,
|
||||
)
|
||||
if label_format == 2:
|
||||
res = dict(
|
||||
name=name,
|
||||
nominalValue=label.userValue,
|
||||
flags=flags,
|
||||
)
|
||||
if label.userMinimum is not None:
|
||||
res["rangeMinValue"] = label.userMinimum
|
||||
if label.userMaximum is not None:
|
||||
res["rangeMaxValue"] = label.userMaximum
|
||||
return res
|
||||
raise NotImplementedError("Unknown STAT label format")
|
0
Tests/designspaceLib/__init__.py
Normal file
0
Tests/designspaceLib/__init__.py
Normal file
@ -0,0 +1,114 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="4.1">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.CYR">
|
||||
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
|
||||
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
|
||||
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
|
||||
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
|
||||
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
|
||||
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
|
||||
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,316 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="4.1">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.CYR">
|
||||
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
|
||||
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
|
||||
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
|
||||
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
|
||||
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
|
||||
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
|
||||
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
|
||||
</rule>
|
||||
<rule name="BRACKET.116.185">
|
||||
<conditionset>
|
||||
<condition name="Weight" minimum="116" maximum="185"/>
|
||||
<condition name="Width" minimum="75" maximum="97.5"/>
|
||||
</conditionset>
|
||||
<sub name="cent" with="cent.BRACKET.130"/>
|
||||
<sub name="dollar" with="dollar.BRACKET.130"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,103 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="4.1">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,307 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="4.1">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.116.185">
|
||||
<conditionset>
|
||||
<condition name="Weight" minimum="116" maximum="185"/>
|
||||
<condition name="Width" minimum="75" maximum="97.5"/>
|
||||
</conditionset>
|
||||
<sub name="cent" with="cent.BRACKET.130"/>
|
||||
<sub name="dollar" with="dollar.BRACKET.130"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,670 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="4.1">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
|
||||
<axis tag="ital" name="Italic" minimum="0" maximum="1" default="0"/>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.CYR">
|
||||
<conditionset>
|
||||
<condition name="Italic" minimum="0.1" maximum="1"/>
|
||||
</conditionset>
|
||||
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
|
||||
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
|
||||
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
|
||||
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
|
||||
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
|
||||
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
|
||||
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
|
||||
</rule>
|
||||
<rule name="BRACKET.116.185">
|
||||
<conditionset>
|
||||
<condition name="Weight" minimum="116" maximum="185"/>
|
||||
<condition name="Width" minimum="75" maximum="97.5"/>
|
||||
</conditionset>
|
||||
<sub name="cent" with="cent.BRACKET.130"/>
|
||||
<sub name="dollar" with="dollar.BRACKET.130"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,326 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="4.1">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
|
||||
<map input="200" output="0"/>
|
||||
<map input="300" output="145"/>
|
||||
<map input="400" output="394"/>
|
||||
<map input="600" output="594"/>
|
||||
<map input="700" output="823"/>
|
||||
<map input="900" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../caption/master_0/SourceSerif-Italic_c0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_1/SourceSerif-Italic_c1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_2/SourceSerif-Italic_c2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_0/SourceSerif-Italic_0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_1/SourceSerif-Italic_1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_2/SourceSerif-Italic_2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_0/SourceSerif-Italic_d0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_1/SourceSerif-Italic_d1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_2/SourceSerif-Italic_d2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Source Serif 4 Caption ExtraLight Italic" familyname="Source Serif 4" stylename="Caption ExtraLight Italic" filename="Source Serif 4-Caption ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Light Italic" familyname="Source Serif 4" stylename="Caption Light Italic" filename="Source Serif 4-Caption Light Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Italic" familyname="Source Serif 4" stylename="Caption Italic" filename="Source Serif 4-Caption Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Semibold Italic" familyname="Source Serif 4" stylename="Caption Semibold Italic" filename="Source Serif 4-Caption Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Bold Italic" familyname="Source Serif 4" stylename="Caption Bold Italic" filename="Source Serif 4-Caption Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Black Italic" familyname="Source Serif 4" stylename="Caption Black Italic" filename="Source Serif 4-Caption Black Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText ExtraLight Italic" familyname="Source Serif 4" stylename="SmText ExtraLight Italic" filename="Source Serif 4-SmText ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Light Italic" familyname="Source Serif 4" stylename="SmText Light Italic" filename="Source Serif 4-SmText Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Italic" familyname="Source Serif 4" stylename="SmText Italic" filename="Source Serif 4-SmText Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Semibold Italic" familyname="Source Serif 4" stylename="SmText Semibold Italic" filename="Source Serif 4-SmText Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Bold Italic" familyname="Source Serif 4" stylename="SmText Bold Italic" filename="Source Serif 4-SmText Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Black Italic" familyname="Source Serif 4" stylename="SmText Black Italic" filename="Source Serif 4-SmText Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 ExtraLight Italic" familyname="Source Serif 4" stylename="ExtraLight Italic" filename="Source Serif 4-ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Light Italic" familyname="Source Serif 4" stylename="Light Italic" filename="Source Serif 4-Light Italic.ttf" postscriptfontname="SourceSerif4Italic-Light" stylemapfamilyname="Source Serif 4 Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Italic" familyname="Source Serif 4" stylename="Italic" filename="Source Serif 4-Italic.ttf" postscriptfontname="SourceSerif4Italic-Regular" stylemapfamilyname="Source Serif 4 Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Semibold Italic" familyname="Source Serif 4" stylename="Semibold Italic" filename="Source Serif 4-Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-Semibold" stylemapfamilyname="Source Serif 4 Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Bold Italic" familyname="Source Serif 4" stylename="Bold Italic" filename="Source Serif 4-Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-Bold" stylemapfamilyname="Source Serif 4 Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Black Italic" familyname="Source Serif 4" stylename="Black Italic" filename="Source Serif 4-Black Italic.ttf" postscriptfontname="SourceSerif4Italic-Black" stylemapfamilyname="Source Serif 4 Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead ExtraLight Italic" familyname="Source Serif 4" stylename="Subhead ExtraLight Italic" filename="Source Serif 4-Subhead ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Light Italic" familyname="Source Serif 4" stylename="Subhead Light Italic" filename="Source Serif 4-Subhead Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Italic" familyname="Source Serif 4" stylename="Subhead Italic" filename="Source Serif 4-Subhead Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Semibold Italic" familyname="Source Serif 4" stylename="Subhead Semibold Italic" filename="Source Serif 4-Subhead Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Bold Italic" familyname="Source Serif 4" stylename="Subhead Bold Italic" filename="Source Serif 4-Subhead Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Black Italic" familyname="Source Serif 4" stylename="Subhead Black Italic" filename="Source Serif 4-Subhead Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display ExtraLight Italic" familyname="Source Serif 4" stylename="Display ExtraLight Italic" filename="Source Serif 4-Display ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Light Italic" familyname="Source Serif 4" stylename="Display Light Italic" filename="Source Serif 4-Display Light Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Italic" familyname="Source Serif 4" stylename="Display Italic" filename="Source Serif 4-Display Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayRegular" stylemapfamilyname="Source Serif 4 Display Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Semibold Italic" familyname="Source Serif 4" stylename="Display Semibold Italic" filename="Source Serif 4-Display Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Bold Italic" familyname="Source Serif 4" stylename="Display Bold Italic" filename="Source Serif 4-Display Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Black Italic" familyname="Source Serif 4" stylename="Display Black Italic" filename="Source Serif 4-Display Black Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>public.skipExportGlyphs</key>
|
||||
<array>
|
||||
<string>caron.alt</string>
|
||||
<string>commabelowcmb.alt</string>
|
||||
<string>f.liga</string>
|
||||
<string>f.ligalong</string>
|
||||
<string>tonos.cap</string>
|
||||
<string>dieresiscmb.tight</string>
|
||||
<string>turkicdsccmb</string>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</designspace>
|
@ -0,0 +1,334 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="4.1">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
|
||||
<map input="200" output="0"/>
|
||||
<map input="300" output="145"/>
|
||||
<map input="400" output="394"/>
|
||||
<map input="600" output="594"/>
|
||||
<map input="700" output="823"/>
|
||||
<map input="900" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../caption/master_0/SourceSerif_c0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_1/SourceSerif_c1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_2/SourceSerif_c2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_0/SourceSerif_0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_1/SourceSerif_1.ufo" familyname="Source Serif 4">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_2/SourceSerif_2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_0/SourceSerif_d0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_1/SourceSerif_d1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_2/SourceSerif_d2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Source Serif 4 Caption ExtraLight" familyname="Source Serif 4" stylename="Caption ExtraLight" filename="Source Serif 4-Caption ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Light" familyname="Source Serif 4" stylename="Caption Light" filename="Source Serif 4-Caption Light.ttf" postscriptfontname="SourceSerif4Roman-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption" familyname="Source Serif 4" stylename="Caption" filename="Source Serif 4-Caption.ttf" postscriptfontname="SourceSerif4Roman-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Semibold" familyname="Source Serif 4" stylename="Caption Semibold" filename="Source Serif 4-Caption Semibold.ttf" postscriptfontname="SourceSerif4Roman-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Bold" familyname="Source Serif 4" stylename="Caption Bold" filename="Source Serif 4-Caption Bold.ttf" postscriptfontname="SourceSerif4Roman-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Black" familyname="Source Serif 4" stylename="Caption Black" filename="Source Serif 4-Caption Black.ttf" postscriptfontname="SourceSerif4Roman-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText ExtraLight" familyname="Source Serif 4" stylename="SmText ExtraLight" filename="Source Serif 4-SmText ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Light" familyname="Source Serif 4" stylename="SmText Light" filename="Source Serif 4-SmText Light.ttf" postscriptfontname="SourceSerif4Roman-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText" familyname="Source Serif 4" stylename="SmText" filename="Source Serif 4-SmText.ttf" postscriptfontname="SourceSerif4Roman-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Semibold" familyname="Source Serif 4" stylename="SmText Semibold" filename="Source Serif 4-SmText Semibold.ttf" postscriptfontname="SourceSerif4Roman-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Bold" familyname="Source Serif 4" stylename="SmText Bold" filename="Source Serif 4-SmText Bold.ttf" postscriptfontname="SourceSerif4Roman-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Black" familyname="Source Serif 4" stylename="SmText Black" filename="Source Serif 4-SmText Black.ttf" postscriptfontname="SourceSerif4Roman-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 ExtraLight" familyname="Source Serif 4" stylename="ExtraLight" filename="Source Serif 4-ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Light" familyname="Source Serif 4" stylename="Light" filename="Source Serif 4-Light.ttf" postscriptfontname="SourceSerif4Roman-Light" stylemapfamilyname="Source Serif 4 Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Regular" familyname="Source Serif 4" stylename="Regular" filename="Source Serif 4-Regular.ttf" postscriptfontname="SourceSerif4Roman-Regular" stylemapfamilyname="Source Serif 4" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Semibold" familyname="Source Serif 4" stylename="Semibold" filename="Source Serif 4-Semibold.ttf" postscriptfontname="SourceSerif4Roman-Semibold" stylemapfamilyname="Source Serif 4 Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Bold" familyname="Source Serif 4" stylename="Bold" filename="Source Serif 4-Bold.ttf" postscriptfontname="SourceSerif4Roman-Bold" stylemapfamilyname="Source Serif 4 Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Black" familyname="Source Serif 4" stylename="Black" filename="Source Serif 4-Black.ttf" postscriptfontname="SourceSerif4Roman-Black" stylemapfamilyname="Source Serif 4 Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead ExtraLight" familyname="Source Serif 4" stylename="Subhead ExtraLight" filename="Source Serif 4-Subhead ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Light" familyname="Source Serif 4" stylename="Subhead Light" filename="Source Serif 4-Subhead Light.ttf" postscriptfontname="SourceSerif4Roman-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead" familyname="Source Serif 4" stylename="Subhead" filename="Source Serif 4-Subhead.ttf" postscriptfontname="SourceSerif4Roman-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Semibold" familyname="Source Serif 4" stylename="Subhead Semibold" filename="Source Serif 4-Subhead Semibold.ttf" postscriptfontname="SourceSerif4Roman-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Bold" familyname="Source Serif 4" stylename="Subhead Bold" filename="Source Serif 4-Subhead Bold.ttf" postscriptfontname="SourceSerif4Roman-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Black" familyname="Source Serif 4" stylename="Subhead Black" filename="Source Serif 4-Subhead Black.ttf" postscriptfontname="SourceSerif4Roman-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display ExtraLight" familyname="Source Serif 4" stylename="Display ExtraLight" filename="Source Serif 4-Display ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Light" familyname="Source Serif 4" stylename="Display Light" filename="Source Serif 4-Display Light.ttf" postscriptfontname="SourceSerif4Roman-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display" familyname="Source Serif 4" stylename="Display" filename="Source Serif 4-Display.ttf" postscriptfontname="SourceSerif4Roman-DisplayRegular" stylemapfamilyname="Source Serif 4 Display" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Semibold" familyname="Source Serif 4" stylename="Display Semibold" filename="Source Serif 4-Display Semibold.ttf" postscriptfontname="SourceSerif4Roman-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Bold" familyname="Source Serif 4" stylename="Display Bold" filename="Source Serif 4-Display Bold.ttf" postscriptfontname="SourceSerif4Roman-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Black" familyname="Source Serif 4" stylename="Display Black" filename="Source Serif 4-Display Black.ttf" postscriptfontname="SourceSerif4Roman-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
</instances>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>public.skipExportGlyphs</key>
|
||||
<array>
|
||||
<string>caron.alt</string>
|
||||
<string>commabelowcmb.alt</string>
|
||||
<string>tonos.cap</string>
|
||||
<string>f.ligalong</string>
|
||||
<string>dieresiscmb.tight</string>
|
||||
<string>IJ</string>
|
||||
<string>Tbar</string>
|
||||
<string>colontriangularmod</string>
|
||||
<string>crossmark</string>
|
||||
<string>ij</string>
|
||||
<string>overline</string>
|
||||
<string>similar</string>
|
||||
<string>tbar</string>
|
||||
<string>triangularbullet</string>
|
||||
<string>turkicdsccmb</string>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</designspace>
|
@ -0,0 +1,96 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.CYR">
|
||||
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
|
||||
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
|
||||
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
|
||||
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
|
||||
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
|
||||
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
|
||||
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,262 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.CYR">
|
||||
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
|
||||
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
|
||||
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
|
||||
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
|
||||
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
|
||||
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
|
||||
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
|
||||
</rule>
|
||||
<rule name="BRACKET.116.185">
|
||||
<conditionset>
|
||||
<condition name="Weight" minimum="116" maximum="185"/>
|
||||
<condition name="Width" minimum="75" maximum="97.5"/>
|
||||
</conditionset>
|
||||
<sub name="cent" with="cent.BRACKET.130"/>
|
||||
<sub name="dollar" with="dollar.BRACKET.130"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,85 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,253 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.116.185">
|
||||
<conditionset>
|
||||
<condition name="Weight" minimum="116" maximum="185"/>
|
||||
<condition name="Width" minimum="75" maximum="97.5"/>
|
||||
</conditionset>
|
||||
<sub name="cent" with="cent.BRACKET.130"/>
|
||||
<sub name="dollar" with="dollar.BRACKET.130"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,562 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
|
||||
<axis tag="ital" name="Italic" minimum="0" maximum="1" default="0"/>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.CYR">
|
||||
<conditionset>
|
||||
<condition name="Italic" minimum="0.1" maximum="1"/>
|
||||
</conditionset>
|
||||
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
|
||||
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
|
||||
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
|
||||
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
|
||||
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
|
||||
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
|
||||
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
|
||||
</rule>
|
||||
<rule name="BRACKET.116.185">
|
||||
<conditionset>
|
||||
<condition name="Weight" minimum="116" maximum="185"/>
|
||||
<condition name="Width" minimum="75" maximum="97.5"/>
|
||||
</conditionset>
|
||||
<sub name="cent" with="cent.BRACKET.130"/>
|
||||
<sub name="dollar" with="dollar.BRACKET.130"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,55 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
|
||||
<map input="300" output="0"/>
|
||||
<map input="500" output="500"/>
|
||||
<map input="700" output="1000"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<rules>
|
||||
<rule name="fold_I_serifs">
|
||||
<sub name="I" with="I.narrow"/>
|
||||
</rule>
|
||||
<rule name="fold_S_terminals">
|
||||
<conditionset>
|
||||
<condition name="weight" minimum="0" maximum="500"/>
|
||||
</conditionset>
|
||||
<sub name="S" with="S.closed"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansBoldCondensed.ufo" name="master.MutatorMathTest.BoldCondensed.1" familyname="MutatorMathTest" stylename="BoldCondensed">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="support.crossbar" layer="support.crossbar">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Bold Condensed" familyname="MutatorMathTest" stylename="Sans Bold Condensed" filename="MutatorMathTest-Sans Bold Condensed.ttf" postscriptfontname="MutatorMathTest-SansBoldCondensed" stylemapfamilyname="MutatorMathTest Sans Bold Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,129 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
|
||||
<map input="300" output="0"/>
|
||||
<map input="500" output="500"/>
|
||||
<map input="700" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
|
||||
<map input="50" output="0"/>
|
||||
<map input="100" output="500"/>
|
||||
<map input="200" output="1000"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<rules>
|
||||
<rule name="fold_I_serifs">
|
||||
<conditionset>
|
||||
<condition name="width" minimum="0" maximum="328"/>
|
||||
</conditionset>
|
||||
<sub name="I" with="I.narrow"/>
|
||||
</rule>
|
||||
<rule name="fold_S_terminals">
|
||||
<conditionset>
|
||||
<condition name="weight" minimum="0" maximum="500"/>
|
||||
</conditionset>
|
||||
<sub name="S" with="S.closed"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansBoldCondensed.ufo" name="master.MutatorMathTest.BoldCondensed.1" familyname="MutatorMathTest" stylename="BoldCondensed">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightWide.ufo" name="master.MutatorMathTest.LightWide.2" familyname="MutatorMathTest" stylename="LightWide">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansBoldWide.ufo" name="master.MutatorMathTest.BoldWide.3" familyname="MutatorMathTest" stylename="BoldWide">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="support.crossbar" layer="support.crossbar">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="support.S.wide" layer="support.S.wide">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="support.S.middle" layer="support.S.middle">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
<dimension name="width" xvalue="569.078"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Bold Condensed" familyname="MutatorMathTest" stylename="Sans Bold Condensed" filename="MutatorMathTest-Sans Bold Condensed.ttf" postscriptfontname="MutatorMathTest-SansBoldCondensed" stylemapfamilyname="MutatorMathTest Sans Bold Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Light Extended" familyname="MutatorMathTest" stylename="Sans Light Extended" filename="MutatorMathTest-Sans Light Extended.ttf" postscriptfontname="MutatorMathTest-SansLightExtended" stylemapfamilyname="MutatorMathTest Sans Light Extended" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Bold Extended" familyname="MutatorMathTest" stylename="Sans Bold Extended" filename="MutatorMathTest-Sans Bold Extended.ttf" postscriptfontname="MutatorMathTest-SansBoldExtended" stylemapfamilyname="MutatorMathTest Sans Bold Extended" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Medium" familyname="MutatorMathTest" stylename="Sans Medium" filename="MutatorMathTest-Sans Medium.ttf" postscriptfontname="MutatorMathTest-SansMedium" stylemapfamilyname="MutatorMathTest Sans Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="327"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Medium" familyname="MutatorMathTest" stylename="Sans Medium" filename="MutatorMathTest-Sans Medium.ttf" postscriptfontname="MutatorMathTest-SansMedium" stylemapfamilyname="MutatorMathTest Sans Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="327"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Bold" familyname="MutatorMathTest" stylename="Sans Bold" filename="MutatorMathTest-Sans Bold.ttf" postscriptfontname="MutatorMathTest-SansBold" stylemapfamilyname="MutatorMathTest Sans Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="569.078"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Medium Extended" familyname="MutatorMathTest" stylename="Sans Medium Extended" filename="MutatorMathTest-Sans Medium Extended.ttf" postscriptfontname="MutatorMathTest-SansMediumExtended" stylemapfamilyname="MutatorMathTest Sans Medium Extended" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,50 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
|
||||
<map input="50" output="0"/>
|
||||
<map input="100" output="500"/>
|
||||
<map input="200" output="1000"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<rules>
|
||||
<rule name="fold_I_serifs">
|
||||
<conditionset>
|
||||
<condition name="width" minimum="0" maximum="328"/>
|
||||
</conditionset>
|
||||
<sub name="I" with="I.narrow"/>
|
||||
</rule>
|
||||
<rule name="fold_S_terminals">
|
||||
<sub name="S" with="S.closed"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightWide.ufo" name="master.MutatorMathTest.LightWide.2" familyname="MutatorMathTest" stylename="LightWide">
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Light Extended" familyname="MutatorMathTest" stylename="Sans Light Extended" filename="MutatorMathTest-Sans Light Extended.ttf" postscriptfontname="MutatorMathTest-SansLightExtended" stylemapfamilyname="MutatorMathTest Sans Light Extended" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,29 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
|
||||
<map input="50" output="0"/>
|
||||
<map input="100" output="500"/>
|
||||
<map input="200" output="1000"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../MutatorSerifLightCondensed.ufo" familyname="MutatorMathTest" stylename="SerifLightCondensed">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSerifLightWide.ufo" familyname="MutatorMathTest" stylename="SerifLightWide">
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="MutatorMathTest Serif Light Condensed" familyname="MutatorMathTest" stylename="Serif Light Condensed" filename="MutatorMathTest-Serif Light Condensed.ttf" postscriptfontname="MutatorMathTest-SerifLightCondensed" stylemapfamilyname="MutatorMathTest Serif Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,266 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
|
||||
<map input="200" output="0"/>
|
||||
<map input="300" output="145"/>
|
||||
<map input="400" output="394"/>
|
||||
<map input="600" output="594"/>
|
||||
<map input="700" output="823"/>
|
||||
<map input="900" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../caption/master_0/SourceSerif-Italic_c0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_1/SourceSerif-Italic_c1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_2/SourceSerif-Italic_c2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_0/SourceSerif-Italic_0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_1/SourceSerif-Italic_1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_2/SourceSerif-Italic_2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_0/SourceSerif-Italic_d0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_1/SourceSerif-Italic_d1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_2/SourceSerif-Italic_d2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Source Serif 4 Caption ExtraLight Italic" familyname="Source Serif 4" stylename="Caption ExtraLight Italic" filename="Source Serif 4-Caption ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Light Italic" familyname="Source Serif 4" stylename="Caption Light Italic" filename="Source Serif 4-Caption Light Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Italic" familyname="Source Serif 4" stylename="Caption Italic" filename="Source Serif 4-Caption Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Semibold Italic" familyname="Source Serif 4" stylename="Caption Semibold Italic" filename="Source Serif 4-Caption Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Bold Italic" familyname="Source Serif 4" stylename="Caption Bold Italic" filename="Source Serif 4-Caption Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Black Italic" familyname="Source Serif 4" stylename="Caption Black Italic" filename="Source Serif 4-Caption Black Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText ExtraLight Italic" familyname="Source Serif 4" stylename="SmText ExtraLight Italic" filename="Source Serif 4-SmText ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Light Italic" familyname="Source Serif 4" stylename="SmText Light Italic" filename="Source Serif 4-SmText Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Italic" familyname="Source Serif 4" stylename="SmText Italic" filename="Source Serif 4-SmText Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Semibold Italic" familyname="Source Serif 4" stylename="SmText Semibold Italic" filename="Source Serif 4-SmText Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Bold Italic" familyname="Source Serif 4" stylename="SmText Bold Italic" filename="Source Serif 4-SmText Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Black Italic" familyname="Source Serif 4" stylename="SmText Black Italic" filename="Source Serif 4-SmText Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 ExtraLight Italic" familyname="Source Serif 4" stylename="ExtraLight Italic" filename="Source Serif 4-ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Light Italic" familyname="Source Serif 4" stylename="Light Italic" filename="Source Serif 4-Light Italic.ttf" postscriptfontname="SourceSerif4Italic-Light" stylemapfamilyname="Source Serif 4 Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Italic" familyname="Source Serif 4" stylename="Italic" filename="Source Serif 4-Italic.ttf" postscriptfontname="SourceSerif4Italic-Regular" stylemapfamilyname="Source Serif 4 Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Semibold Italic" familyname="Source Serif 4" stylename="Semibold Italic" filename="Source Serif 4-Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-Semibold" stylemapfamilyname="Source Serif 4 Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Bold Italic" familyname="Source Serif 4" stylename="Bold Italic" filename="Source Serif 4-Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-Bold" stylemapfamilyname="Source Serif 4 Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Black Italic" familyname="Source Serif 4" stylename="Black Italic" filename="Source Serif 4-Black Italic.ttf" postscriptfontname="SourceSerif4Italic-Black" stylemapfamilyname="Source Serif 4 Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead ExtraLight Italic" familyname="Source Serif 4" stylename="Subhead ExtraLight Italic" filename="Source Serif 4-Subhead ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Light Italic" familyname="Source Serif 4" stylename="Subhead Light Italic" filename="Source Serif 4-Subhead Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Italic" familyname="Source Serif 4" stylename="Subhead Italic" filename="Source Serif 4-Subhead Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Semibold Italic" familyname="Source Serif 4" stylename="Subhead Semibold Italic" filename="Source Serif 4-Subhead Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Bold Italic" familyname="Source Serif 4" stylename="Subhead Bold Italic" filename="Source Serif 4-Subhead Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Black Italic" familyname="Source Serif 4" stylename="Subhead Black Italic" filename="Source Serif 4-Subhead Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display ExtraLight Italic" familyname="Source Serif 4" stylename="Display ExtraLight Italic" filename="Source Serif 4-Display ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Light Italic" familyname="Source Serif 4" stylename="Display Light Italic" filename="Source Serif 4-Display Light Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Italic" familyname="Source Serif 4" stylename="Display Italic" filename="Source Serif 4-Display Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayRegular" stylemapfamilyname="Source Serif 4 Display Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Semibold Italic" familyname="Source Serif 4" stylename="Display Semibold Italic" filename="Source Serif 4-Display Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Bold Italic" familyname="Source Serif 4" stylename="Display Bold Italic" filename="Source Serif 4-Display Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Black Italic" familyname="Source Serif 4" stylename="Display Black Italic" filename="Source Serif 4-Display Black Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>public.skipExportGlyphs</key>
|
||||
<array>
|
||||
<string>caron.alt</string>
|
||||
<string>commabelowcmb.alt</string>
|
||||
<string>f.liga</string>
|
||||
<string>f.ligalong</string>
|
||||
<string>tonos.cap</string>
|
||||
<string>dieresiscmb.tight</string>
|
||||
<string>turkicdsccmb</string>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</designspace>
|
@ -0,0 +1,274 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
|
||||
<map input="200" output="0"/>
|
||||
<map input="300" output="145"/>
|
||||
<map input="400" output="394"/>
|
||||
<map input="600" output="594"/>
|
||||
<map input="700" output="823"/>
|
||||
<map input="900" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../caption/master_0/SourceSerif_c0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_1/SourceSerif_c1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_2/SourceSerif_c2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_0/SourceSerif_0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_1/SourceSerif_1.ufo" familyname="Source Serif 4">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_2/SourceSerif_2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_0/SourceSerif_d0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_1/SourceSerif_d1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_2/SourceSerif_d2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="Source Serif 4 Caption ExtraLight" familyname="Source Serif 4" stylename="Caption ExtraLight" filename="Source Serif 4-Caption ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Light" familyname="Source Serif 4" stylename="Caption Light" filename="Source Serif 4-Caption Light.ttf" postscriptfontname="SourceSerif4Roman-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption" familyname="Source Serif 4" stylename="Caption" filename="Source Serif 4-Caption.ttf" postscriptfontname="SourceSerif4Roman-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Semibold" familyname="Source Serif 4" stylename="Caption Semibold" filename="Source Serif 4-Caption Semibold.ttf" postscriptfontname="SourceSerif4Roman-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Bold" familyname="Source Serif 4" stylename="Caption Bold" filename="Source Serif 4-Caption Bold.ttf" postscriptfontname="SourceSerif4Roman-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Black" familyname="Source Serif 4" stylename="Caption Black" filename="Source Serif 4-Caption Black.ttf" postscriptfontname="SourceSerif4Roman-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText ExtraLight" familyname="Source Serif 4" stylename="SmText ExtraLight" filename="Source Serif 4-SmText ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Light" familyname="Source Serif 4" stylename="SmText Light" filename="Source Serif 4-SmText Light.ttf" postscriptfontname="SourceSerif4Roman-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText" familyname="Source Serif 4" stylename="SmText" filename="Source Serif 4-SmText.ttf" postscriptfontname="SourceSerif4Roman-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Semibold" familyname="Source Serif 4" stylename="SmText Semibold" filename="Source Serif 4-SmText Semibold.ttf" postscriptfontname="SourceSerif4Roman-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Bold" familyname="Source Serif 4" stylename="SmText Bold" filename="Source Serif 4-SmText Bold.ttf" postscriptfontname="SourceSerif4Roman-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Black" familyname="Source Serif 4" stylename="SmText Black" filename="Source Serif 4-SmText Black.ttf" postscriptfontname="SourceSerif4Roman-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 ExtraLight" familyname="Source Serif 4" stylename="ExtraLight" filename="Source Serif 4-ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Light" familyname="Source Serif 4" stylename="Light" filename="Source Serif 4-Light.ttf" postscriptfontname="SourceSerif4Roman-Light" stylemapfamilyname="Source Serif 4 Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Regular" familyname="Source Serif 4" stylename="Regular" filename="Source Serif 4-Regular.ttf" postscriptfontname="SourceSerif4Roman-Regular" stylemapfamilyname="Source Serif 4" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Semibold" familyname="Source Serif 4" stylename="Semibold" filename="Source Serif 4-Semibold.ttf" postscriptfontname="SourceSerif4Roman-Semibold" stylemapfamilyname="Source Serif 4 Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Bold" familyname="Source Serif 4" stylename="Bold" filename="Source Serif 4-Bold.ttf" postscriptfontname="SourceSerif4Roman-Bold" stylemapfamilyname="Source Serif 4 Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Black" familyname="Source Serif 4" stylename="Black" filename="Source Serif 4-Black.ttf" postscriptfontname="SourceSerif4Roman-Black" stylemapfamilyname="Source Serif 4 Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead ExtraLight" familyname="Source Serif 4" stylename="Subhead ExtraLight" filename="Source Serif 4-Subhead ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Light" familyname="Source Serif 4" stylename="Subhead Light" filename="Source Serif 4-Subhead Light.ttf" postscriptfontname="SourceSerif4Roman-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead" familyname="Source Serif 4" stylename="Subhead" filename="Source Serif 4-Subhead.ttf" postscriptfontname="SourceSerif4Roman-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Semibold" familyname="Source Serif 4" stylename="Subhead Semibold" filename="Source Serif 4-Subhead Semibold.ttf" postscriptfontname="SourceSerif4Roman-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Bold" familyname="Source Serif 4" stylename="Subhead Bold" filename="Source Serif 4-Subhead Bold.ttf" postscriptfontname="SourceSerif4Roman-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Black" familyname="Source Serif 4" stylename="Subhead Black" filename="Source Serif 4-Subhead Black.ttf" postscriptfontname="SourceSerif4Roman-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display ExtraLight" familyname="Source Serif 4" stylename="Display ExtraLight" filename="Source Serif 4-Display ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Light" familyname="Source Serif 4" stylename="Display Light" filename="Source Serif 4-Display Light.ttf" postscriptfontname="SourceSerif4Roman-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display" familyname="Source Serif 4" stylename="Display" filename="Source Serif 4-Display.ttf" postscriptfontname="SourceSerif4Roman-DisplayRegular" stylemapfamilyname="Source Serif 4 Display" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Semibold" familyname="Source Serif 4" stylename="Display Semibold" filename="Source Serif 4-Display Semibold.ttf" postscriptfontname="SourceSerif4Roman-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Bold" familyname="Source Serif 4" stylename="Display Bold" filename="Source Serif 4-Display Bold.ttf" postscriptfontname="SourceSerif4Roman-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Black" familyname="Source Serif 4" stylename="Display Black" filename="Source Serif 4-Display Black.ttf" postscriptfontname="SourceSerif4Roman-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>public.skipExportGlyphs</key>
|
||||
<array>
|
||||
<string>caron.alt</string>
|
||||
<string>commabelowcmb.alt</string>
|
||||
<string>tonos.cap</string>
|
||||
<string>f.ligalong</string>
|
||||
<string>dieresiscmb.tight</string>
|
||||
<string>IJ</string>
|
||||
<string>Tbar</string>
|
||||
<string>colontriangularmod</string>
|
||||
<string>crossmark</string>
|
||||
<string>ij</string>
|
||||
<string>overline</string>
|
||||
<string>similar</string>
|
||||
<string>tbar</string>
|
||||
<string>triangularbullet</string>
|
||||
<string>turkicdsccmb</string>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</designspace>
|
@ -0,0 +1,147 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
|
||||
<map input="300" output="0"/>
|
||||
<map input="500" output="500"/>
|
||||
<map input="700" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
|
||||
<map input="50" output="0"/>
|
||||
<map input="100" output="500"/>
|
||||
<map input="200" output="1000"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<rules>
|
||||
<rule name="fold_I_serifs">
|
||||
<conditionset>
|
||||
<condition name="width" minimum="0" maximum="328"/>
|
||||
</conditionset>
|
||||
<sub name="I" with="I.narrow"/>
|
||||
</rule>
|
||||
<rule name="fold_S_terminals">
|
||||
<conditionset>
|
||||
<condition name="weight" minimum="0" maximum="500"/>
|
||||
</conditionset>
|
||||
<sub name="S" with="S.closed"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansBoldCondensed.ufo" name="master.MutatorMathTest.BoldCondensed.1" familyname="MutatorMathTest" stylename="BoldCondensed">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightWide.ufo" name="master.MutatorMathTest.LightWide.2" familyname="MutatorMathTest" stylename="LightWide">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansBoldWide.ufo" name="master.MutatorMathTest.BoldWide.3" familyname="MutatorMathTest" stylename="BoldWide">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="support.crossbar" layer="support.crossbar">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="support.S.wide" layer="support.S.wide">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSansLightCondensed.ufo" name="support.S.middle" layer="support.S.middle">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
<dimension name="width" xvalue="569.078"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<variable-fonts>
|
||||
<variable-font name="MutatorSansVariable_Weight_Width">
|
||||
<axis-subsets>
|
||||
<axis-subset name="weight"/>
|
||||
<axis-subset name="width"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="MutatorSansVariable_Weight">
|
||||
<axis-subsets>
|
||||
<axis-subset name="weight"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="MutatorSansVariable_Width">
|
||||
<axis-subsets>
|
||||
<axis-subset name="width"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
<instances>
|
||||
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Bold Condensed" familyname="MutatorMathTest" stylename="Sans Bold Condensed" filename="MutatorMathTest-Sans Bold Condensed.ttf" postscriptfontname="MutatorMathTest-SansBoldCondensed" stylemapfamilyname="MutatorMathTest Sans Bold Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Light Extended" familyname="MutatorMathTest" stylename="Sans Light Extended" filename="MutatorMathTest-Sans Light Extended.ttf" postscriptfontname="MutatorMathTest-SansLightExtended" stylemapfamilyname="MutatorMathTest Sans Light Extended" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Bold Extended" familyname="MutatorMathTest" stylename="Sans Bold Extended" filename="MutatorMathTest-Sans Bold Extended.ttf" postscriptfontname="MutatorMathTest-SansBoldExtended" stylemapfamilyname="MutatorMathTest Sans Bold Extended" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Medium" familyname="MutatorMathTest" stylename="Sans Medium" filename="MutatorMathTest-Sans Medium.ttf" postscriptfontname="MutatorMathTest-SansMedium" stylemapfamilyname="MutatorMathTest Sans Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="327"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Medium" familyname="MutatorMathTest" stylename="Sans Medium" filename="MutatorMathTest-Sans Medium.ttf" postscriptfontname="MutatorMathTest-SansMedium" stylemapfamilyname="MutatorMathTest Sans Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="327"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Bold" familyname="MutatorMathTest" stylename="Sans Bold" filename="MutatorMathTest-Sans Bold.ttf" postscriptfontname="MutatorMathTest-SansBold" stylemapfamilyname="MutatorMathTest Sans Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="569.078"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Medium Extended" familyname="MutatorMathTest" stylename="Sans Medium Extended" filename="MutatorMathTest-Sans Medium Extended.ttf" postscriptfontname="MutatorMathTest-SansMediumExtended" stylemapfamilyname="MutatorMathTest Sans Medium Extended" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="MutatorMathTest Sans Light Condensed" familyname="MutatorMathTest" stylename="Sans Light Condensed" filename="MutatorMathTest-Sans Light Condensed.ttf" postscriptfontname="MutatorMathTest-SansLightCondensed" stylemapfamilyname="MutatorMathTest Sans Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,44 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
|
||||
<map input="300" output="0"/>
|
||||
<map input="500" output="500"/>
|
||||
<map input="700" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
|
||||
<map input="50" output="0"/>
|
||||
<map input="100" output="500"/>
|
||||
<map input="200" output="1000"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../MutatorSerifLightCondensed.ufo" familyname="MutatorMathTest" stylename="SerifLightCondensed">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../MutatorSerifLightWide.ufo" familyname="MutatorMathTest" stylename="SerifLightWide">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<variable-fonts>
|
||||
<variable-font name="MutatorSerifVariable_Width">
|
||||
<axis-subsets>
|
||||
<axis-subset name="width"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
<instances>
|
||||
<instance name="MutatorMathTest Serif Light Condensed" familyname="MutatorMathTest" stylename="Serif Light Condensed" filename="MutatorMathTest-Serif Light Condensed.ttf" postscriptfontname="MutatorMathTest-SerifLightCondensed" stylemapfamilyname="MutatorMathTest Serif Light Condensed" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,595 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100"/>
|
||||
<axis tag="ital" name="Italic" minimum="0" maximum="1" default="0"/>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.CYR">
|
||||
<conditionset>
|
||||
<condition name="Italic" minimum="0.1" maximum="1"/>
|
||||
</conditionset>
|
||||
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
|
||||
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
|
||||
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
|
||||
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
|
||||
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
|
||||
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
|
||||
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
|
||||
</rule>
|
||||
<rule name="BRACKET.116.185">
|
||||
<conditionset>
|
||||
<condition name="Weight" minimum="116" maximum="185"/>
|
||||
<condition name="Width" minimum="75" maximum="97.5"/>
|
||||
</conditionset>
|
||||
<sub name="cent" with="cent.BRACKET.130"/>
|
||||
<sub name="dollar" with="dollar.BRACKET.130"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="../AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<variable-fonts>
|
||||
<variable-font name="AktivGroteskVF_WghtWdthItal">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width"/>
|
||||
<axis-subset name="Italic"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="AktivGroteskVF_WghtWdth">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="AktivGroteskVF_Wght">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="AktivGroteskVF_Italics_WghtWdth">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width"/>
|
||||
<axis-subset name="Italic" uservalue="1"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="AktivGroteskVF_Italics_Wght">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Italic" uservalue="1"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
<instances>
|
||||
<instance name="Aktiv Grotesk Cd Hair" familyname="Aktiv Grotesk" stylename="Cd Hair" filename="../instances/AktivGroteskCd_Hair.ufo" postscriptfontname="AktivGrotesk-CdHair" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Hair Italic" familyname="Aktiv Grotesk" stylename="Cd Hair Italic" filename="../instances/AktivGroteskCd_HairIt.ufo" postscriptfontname="AktivGrotesk-CdHairItalic" stylemapfamilyname="Aktiv Grotesk Cd Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair" familyname="Aktiv Grotesk" stylename="Hair" filename="../instances/AktivGrotesk_Hair.ufo" postscriptfontname="AktivGrotesk-Hair" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Hair Italic" familyname="Aktiv Grotesk" stylename="Hair Italic" filename="../instances/AktivGrotesk_HairIt.ufo" postscriptfontname="AktivGrotesk-HairItalic" stylemapfamilyname="Aktiv Grotesk Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair" familyname="Aktiv Grotesk" stylename="Ex Hair" filename="../instances/AktivGroteskEx_Hair.ufo" postscriptfontname="AktivGrotesk-ExHair" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Hair Italic" familyname="Aktiv Grotesk" stylename="Ex Hair Italic" filename="../instances/AktivGroteskEx_HairIt.ufo" postscriptfontname="AktivGrotesk-ExHairItalic" stylemapfamilyname="Aktiv Grotesk Ex Hair" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin" familyname="Aktiv Grotesk" stylename="Cd Thin" filename="../instances/AktivGroteskCd_Th.ufo" postscriptfontname="AktivGrotesk-CdThin" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Thin Italic" familyname="Aktiv Grotesk" stylename="Cd Thin Italic" filename="../instances/AktivGroteskCd_ThIt.ufo" postscriptfontname="AktivGrotesk-CdThinItalic" stylemapfamilyname="Aktiv Grotesk Cd Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin" familyname="Aktiv Grotesk" stylename="Thin" filename="../instances/AktivGrotesk_Th.ufo" postscriptfontname="AktivGrotesk-Thin" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Thin Italic" familyname="Aktiv Grotesk" stylename="Thin Italic" filename="../instances/AktivGrotesk_ThIt.ufo" postscriptfontname="AktivGrotesk-ThinItalic" stylemapfamilyname="Aktiv Grotesk Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin" familyname="Aktiv Grotesk" stylename="Ex Thin" filename="../instances/AktivGroteskEx_Th.ufo" postscriptfontname="AktivGrotesk-ExThin" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Thin Italic" familyname="Aktiv Grotesk" stylename="Ex Thin Italic" filename="../instances/AktivGroteskEx_ThIt.ufo" postscriptfontname="AktivGrotesk-ExThinItalic" stylemapfamilyname="Aktiv Grotesk Ex Thin" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light" familyname="Aktiv Grotesk" stylename="Cd Light" filename="../instances/AktivGroteskCd_Lt.ufo" postscriptfontname="AktivGrotesk-CdLight" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Light Italic" familyname="Aktiv Grotesk" stylename="Cd Light Italic" filename="../instances/AktivGroteskCd_LtIt.ufo" postscriptfontname="AktivGrotesk-CdLightItalic" stylemapfamilyname="Aktiv Grotesk Cd Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light" familyname="Aktiv Grotesk" stylename="Light" filename="../instances/AktivGrotesk_Lt.ufo" postscriptfontname="AktivGrotesk-Light" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Light Italic" familyname="Aktiv Grotesk" stylename="Light Italic" filename="../instances/AktivGrotesk_LtIt.ufo" postscriptfontname="AktivGrotesk-LightItalic" stylemapfamilyname="Aktiv Grotesk Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light" familyname="Aktiv Grotesk" stylename="Ex Light" filename="../instances/AktivGroteskEx_Lt.ufo" postscriptfontname="AktivGrotesk-ExLight" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Light Italic" familyname="Aktiv Grotesk" stylename="Ex Light Italic" filename="../instances/AktivGroteskEx_LtIt.ufo" postscriptfontname="AktivGrotesk-ExLightItalic" stylemapfamilyname="Aktiv Grotesk Ex Light" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd" familyname="Aktiv Grotesk" stylename="Cd" filename="../instances/AktivGroteskCd_Rg.ufo" postscriptfontname="AktivGrotesk-Cd" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Italic" familyname="Aktiv Grotesk" stylename="Cd Italic" filename="../instances/AktivGroteskCd_It.ufo" postscriptfontname="AktivGrotesk-CdItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk " familyname="Aktiv Grotesk" stylename="" filename="../instances/AktivGrotesk_Rg.ufo" postscriptfontname="AktivGrotesk-" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Italic" familyname="Aktiv Grotesk" stylename="Italic" filename="../instances/AktivGrotesk_It.ufo" postscriptfontname="AktivGrotesk-Italic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex" familyname="Aktiv Grotesk" stylename="Ex" filename="../instances/AktivGroteskEx_Rg.ufo" postscriptfontname="AktivGrotesk-Ex" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Italic" familyname="Aktiv Grotesk" stylename="Ex Italic" filename="../instances/AktivGroteskEx_It.ufo" postscriptfontname="AktivGrotesk-ExItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium" familyname="Aktiv Grotesk" stylename="Cd Medium" filename="../instances/AktivGroteskCd_Md.ufo" postscriptfontname="AktivGrotesk-CdMedium" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Medium Italic" familyname="Aktiv Grotesk" stylename="Cd Medium Italic" filename="../instances/AktivGroteskCd_MdIt.ufo" postscriptfontname="AktivGrotesk-CdMediumItalic" stylemapfamilyname="Aktiv Grotesk Cd Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium" familyname="Aktiv Grotesk" stylename="Medium" filename="../instances/AktivGrotesk_Md.ufo" postscriptfontname="AktivGrotesk-Medium" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Medium Italic" familyname="Aktiv Grotesk" stylename="Medium Italic" filename="../instances/AktivGrotesk_MdIt.ufo" postscriptfontname="AktivGrotesk-MediumItalic" stylemapfamilyname="Aktiv Grotesk Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium" familyname="Aktiv Grotesk" stylename="Ex Medium" filename="../instances/AktivGroteskEx_Md.ufo" postscriptfontname="AktivGrotesk-ExMedium" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Medium Italic" familyname="Aktiv Grotesk" stylename="Ex Medium Italic" filename="../instances/AktivGroteskEx_MdIt.ufo" postscriptfontname="AktivGrotesk-ExMediumItalic" stylemapfamilyname="Aktiv Grotesk Ex Medium" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold" familyname="Aktiv Grotesk" stylename="Cd SemiBold" filename="../../build/instances/AktivGroteskCd_SBd.ufo" postscriptfontname="AktivGrotesk-CdSemiBold" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd SemiBold Italic" familyname="Aktiv Grotesk" stylename="Cd SemiBold Italic" filename="../../build/instances/AktivGroteskCd_SBdIt.ufo" postscriptfontname="AktivGrotesk-CdSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold" familyname="Aktiv Grotesk" stylename="SemiBold" filename="../../build/instances/AktivGrotesk_SBd.ufo" postscriptfontname="AktivGrotesk-SemiBold" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk SemiBold Italic" familyname="Aktiv Grotesk" stylename="SemiBold Italic" filename="../../build/instances/AktivGrotesk_SBdIt.ufo" postscriptfontname="AktivGrotesk-SemiBoldItalic" stylemapfamilyname="Aktiv Grotesk SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold" familyname="Aktiv Grotesk" stylename="Ex SemiBold" filename="../../build/instances/AktivGroteskEx_SBd.ufo" postscriptfontname="AktivGrotesk-ExSemiBold" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex SemiBold Italic" familyname="Aktiv Grotesk" stylename="Ex SemiBold Italic" filename="../../build/instances/AktivGroteskEx_SBdIt.ufo" postscriptfontname="AktivGrotesk-ExSemiBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex SemiBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold" familyname="Aktiv Grotesk" stylename="Cd Bold" filename="../instances/AktivGroteskCd_Bd.ufo" postscriptfontname="AktivGrotesk-CdBold" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Bold Italic" familyname="Aktiv Grotesk" stylename="Cd Bold Italic" filename="../instances/AktivGroteskCd_BdIt.ufo" postscriptfontname="AktivGrotesk-CdBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold" familyname="Aktiv Grotesk" stylename="Bold" filename="../instances/AktivGrotesk_Bd.ufo" postscriptfontname="AktivGrotesk-Bold" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Bold Italic" familyname="Aktiv Grotesk" stylename="Bold Italic" filename="../instances/AktivGrotesk_BdIt.ufo" postscriptfontname="AktivGrotesk-BoldItalic" stylemapfamilyname="Aktiv Grotesk" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold" familyname="Aktiv Grotesk" stylename="Ex Bold" filename="../instances/AktivGroteskEx_Bd.ufo" postscriptfontname="AktivGrotesk-ExBold" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Bold Italic" familyname="Aktiv Grotesk" stylename="Ex Bold Italic" filename="../instances/AktivGroteskEx_BdIt.ufo" postscriptfontname="AktivGrotesk-ExBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex" stylemapstylename="bold italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold" familyname="Aktiv Grotesk" stylename="Cd XBold" filename="../instances/AktivGroteskCd_XBd.ufo" postscriptfontname="AktivGrotesk-CdXBold" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd XBold Italic" familyname="Aktiv Grotesk" stylename="Cd XBold Italic" filename="../instances/AktivGroteskCd_XBdIt.ufo" postscriptfontname="AktivGrotesk-CdXBoldItalic" stylemapfamilyname="Aktiv Grotesk Cd XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold" familyname="Aktiv Grotesk" stylename="XBold" filename="../instances/AktivGrotesk_XBd.ufo" postscriptfontname="AktivGrotesk-XBold" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk XBold Italic" familyname="Aktiv Grotesk" stylename="XBold Italic" filename="../instances/AktivGrotesk_XBdIt.ufo" postscriptfontname="AktivGrotesk-XBoldItalic" stylemapfamilyname="Aktiv Grotesk XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold" familyname="Aktiv Grotesk" stylename="Ex XBold" filename="../instances/AktivGroteskEx_XBd.ufo" postscriptfontname="AktivGrotesk-ExXBold" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex XBold Italic" familyname="Aktiv Grotesk" stylename="Ex XBold Italic" filename="../instances/AktivGroteskEx_XBdIt.ufo" postscriptfontname="AktivGrotesk-ExXBoldItalic" stylemapfamilyname="Aktiv Grotesk Ex XBold" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black" familyname="Aktiv Grotesk" stylename="Cd Black" filename="../instances/AktivGroteskCd_Blk.ufo" postscriptfontname="AktivGrotesk-CdBlack" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Cd Black Italic" familyname="Aktiv Grotesk" stylename="Cd Black Italic" filename="../instances/AktivGroteskCd_BlkIt.ufo" postscriptfontname="AktivGrotesk-CdBlackItalic" stylemapfamilyname="Aktiv Grotesk Cd Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black" familyname="Aktiv Grotesk" stylename="Black" filename="../instances/AktivGrotesk_Blk.ufo" postscriptfontname="AktivGrotesk-Black" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Black Italic" familyname="Aktiv Grotesk" stylename="Black Italic" filename="../instances/AktivGrotesk_BlkIt.ufo" postscriptfontname="AktivGrotesk-BlackItalic" stylemapfamilyname="Aktiv Grotesk Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black" familyname="Aktiv Grotesk" stylename="Ex Black" filename="../instances/AktivGroteskEx_Blk.ufo" postscriptfontname="AktivGrotesk-ExBlack" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Aktiv Grotesk Ex Black Italic" familyname="Aktiv Grotesk" stylename="Ex Black Italic" filename="../instances/AktivGroteskEx_BlkIt.ufo" postscriptfontname="AktivGrotesk-ExBlackItalic" stylemapfamilyname="Aktiv Grotesk Ex Black" stylemapstylename="italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,282 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
|
||||
<map input="200" output="0"/>
|
||||
<map input="300" output="145"/>
|
||||
<map input="400" output="394"/>
|
||||
<map input="600" output="594"/>
|
||||
<map input="700" output="823"/>
|
||||
<map input="900" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../caption/master_0/SourceSerif_c0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_1/SourceSerif_c1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_2/SourceSerif_c2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_0/SourceSerif_0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_1/SourceSerif_1.ufo" familyname="Source Serif 4">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_2/SourceSerif_2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_0/SourceSerif_d0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_1/SourceSerif_d1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_2/SourceSerif_d2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<variable-fonts>
|
||||
<variable-font name="SourceSerif4Variable-Roman">
|
||||
<axis-subsets>
|
||||
<axis-subset name="weight"/>
|
||||
<axis-subset name="optical"/>
|
||||
</axis-subsets>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>public.skipExportGlyphs</key>
|
||||
<array>
|
||||
<string>caron.alt</string>
|
||||
<string>commabelowcmb.alt</string>
|
||||
<string>tonos.cap</string>
|
||||
<string>f.ligalong</string>
|
||||
<string>dieresiscmb.tight</string>
|
||||
<string>IJ</string>
|
||||
<string>Tbar</string>
|
||||
<string>colontriangularmod</string>
|
||||
<string>crossmark</string>
|
||||
<string>ij</string>
|
||||
<string>overline</string>
|
||||
<string>similar</string>
|
||||
<string>tbar</string>
|
||||
<string>triangularbullet</string>
|
||||
<string>turkicdsccmb</string>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
<instances>
|
||||
<instance name="Source Serif 4 Caption ExtraLight" familyname="Source Serif 4" stylename="Caption ExtraLight" filename="Source Serif 4-Caption ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Light" familyname="Source Serif 4" stylename="Caption Light" filename="Source Serif 4-Caption Light.ttf" postscriptfontname="SourceSerif4Roman-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption" familyname="Source Serif 4" stylename="Caption" filename="Source Serif 4-Caption.ttf" postscriptfontname="SourceSerif4Roman-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Semibold" familyname="Source Serif 4" stylename="Caption Semibold" filename="Source Serif 4-Caption Semibold.ttf" postscriptfontname="SourceSerif4Roman-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Bold" familyname="Source Serif 4" stylename="Caption Bold" filename="Source Serif 4-Caption Bold.ttf" postscriptfontname="SourceSerif4Roman-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Black" familyname="Source Serif 4" stylename="Caption Black" filename="Source Serif 4-Caption Black.ttf" postscriptfontname="SourceSerif4Roman-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText ExtraLight" familyname="Source Serif 4" stylename="SmText ExtraLight" filename="Source Serif 4-SmText ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Light" familyname="Source Serif 4" stylename="SmText Light" filename="Source Serif 4-SmText Light.ttf" postscriptfontname="SourceSerif4Roman-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText" familyname="Source Serif 4" stylename="SmText" filename="Source Serif 4-SmText.ttf" postscriptfontname="SourceSerif4Roman-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Semibold" familyname="Source Serif 4" stylename="SmText Semibold" filename="Source Serif 4-SmText Semibold.ttf" postscriptfontname="SourceSerif4Roman-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Bold" familyname="Source Serif 4" stylename="SmText Bold" filename="Source Serif 4-SmText Bold.ttf" postscriptfontname="SourceSerif4Roman-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Black" familyname="Source Serif 4" stylename="SmText Black" filename="Source Serif 4-SmText Black.ttf" postscriptfontname="SourceSerif4Roman-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 ExtraLight" familyname="Source Serif 4" stylename="ExtraLight" filename="Source Serif 4-ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Light" familyname="Source Serif 4" stylename="Light" filename="Source Serif 4-Light.ttf" postscriptfontname="SourceSerif4Roman-Light" stylemapfamilyname="Source Serif 4 Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Regular" familyname="Source Serif 4" stylename="Regular" filename="Source Serif 4-Regular.ttf" postscriptfontname="SourceSerif4Roman-Regular" stylemapfamilyname="Source Serif 4" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Semibold" familyname="Source Serif 4" stylename="Semibold" filename="Source Serif 4-Semibold.ttf" postscriptfontname="SourceSerif4Roman-Semibold" stylemapfamilyname="Source Serif 4 Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Bold" familyname="Source Serif 4" stylename="Bold" filename="Source Serif 4-Bold.ttf" postscriptfontname="SourceSerif4Roman-Bold" stylemapfamilyname="Source Serif 4 Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Black" familyname="Source Serif 4" stylename="Black" filename="Source Serif 4-Black.ttf" postscriptfontname="SourceSerif4Roman-Black" stylemapfamilyname="Source Serif 4 Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead ExtraLight" familyname="Source Serif 4" stylename="Subhead ExtraLight" filename="Source Serif 4-Subhead ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Light" familyname="Source Serif 4" stylename="Subhead Light" filename="Source Serif 4-Subhead Light.ttf" postscriptfontname="SourceSerif4Roman-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead" familyname="Source Serif 4" stylename="Subhead" filename="Source Serif 4-Subhead.ttf" postscriptfontname="SourceSerif4Roman-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Semibold" familyname="Source Serif 4" stylename="Subhead Semibold" filename="Source Serif 4-Subhead Semibold.ttf" postscriptfontname="SourceSerif4Roman-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Bold" familyname="Source Serif 4" stylename="Subhead Bold" filename="Source Serif 4-Subhead Bold.ttf" postscriptfontname="SourceSerif4Roman-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Black" familyname="Source Serif 4" stylename="Subhead Black" filename="Source Serif 4-Subhead Black.ttf" postscriptfontname="SourceSerif4Roman-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display ExtraLight" familyname="Source Serif 4" stylename="Display ExtraLight" filename="Source Serif 4-Display ExtraLight.ttf" postscriptfontname="SourceSerif4Roman-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Light" familyname="Source Serif 4" stylename="Display Light" filename="Source Serif 4-Display Light.ttf" postscriptfontname="SourceSerif4Roman-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display" familyname="Source Serif 4" stylename="Display" filename="Source Serif 4-Display.ttf" postscriptfontname="SourceSerif4Roman-DisplayRegular" stylemapfamilyname="Source Serif 4 Display" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Semibold" familyname="Source Serif 4" stylename="Display Semibold" filename="Source Serif 4-Display Semibold.ttf" postscriptfontname="SourceSerif4Roman-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Bold" familyname="Source Serif 4" stylename="Display Bold" filename="Source Serif 4-Display Bold.ttf" postscriptfontname="SourceSerif4Roman-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Black" familyname="Source Serif 4" stylename="Display Black" filename="Source Serif 4-Display Black.ttf" postscriptfontname="SourceSerif4Roman-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -0,0 +1,274 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
|
||||
<map input="200" output="0"/>
|
||||
<map input="300" output="145"/>
|
||||
<map input="400" output="394"/>
|
||||
<map input="600" output="594"/>
|
||||
<map input="700" output="823"/>
|
||||
<map input="900" output="1000"/>
|
||||
</axis>
|
||||
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20"/>
|
||||
</axes>
|
||||
<sources>
|
||||
<source filename="../caption/master_0/SourceSerif-Italic_c0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_1/SourceSerif-Italic_c1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../caption/master_2/SourceSerif-Italic_c2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_0/SourceSerif-Italic_0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_1/SourceSerif-Italic_1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../text/master_2/SourceSerif-Italic_2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_0/SourceSerif-Italic_d0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_1/SourceSerif-Italic_d1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="../display/master_2/SourceSerif-Italic_d2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<variable-fonts>
|
||||
<variable-font name="SourceSerif4Variable-Italic">
|
||||
<axis-subsets>
|
||||
<axis-subset name="weight"/>
|
||||
<axis-subset name="optical"/>
|
||||
</axis-subsets>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>public.skipExportGlyphs</key>
|
||||
<array>
|
||||
<string>caron.alt</string>
|
||||
<string>commabelowcmb.alt</string>
|
||||
<string>f.liga</string>
|
||||
<string>f.ligalong</string>
|
||||
<string>tonos.cap</string>
|
||||
<string>dieresiscmb.tight</string>
|
||||
<string>turkicdsccmb</string>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
<instances>
|
||||
<instance name="Source Serif 4 Caption ExtraLight Italic" familyname="Source Serif 4" stylename="Caption ExtraLight Italic" filename="Source Serif 4-Caption ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionExtraLight" stylemapfamilyname="Source Serif 4 Caption ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Light Italic" familyname="Source Serif 4" stylename="Caption Light Italic" filename="Source Serif 4-Caption Light Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionLight" stylemapfamilyname="Source Serif 4 Caption Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Italic" familyname="Source Serif 4" stylename="Caption Italic" filename="Source Serif 4-Caption Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionRegular" stylemapfamilyname="Source Serif 4 Caption Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Semibold Italic" familyname="Source Serif 4" stylename="Caption Semibold Italic" filename="Source Serif 4-Caption Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionSemibold" stylemapfamilyname="Source Serif 4 Caption Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Bold Italic" familyname="Source Serif 4" stylename="Caption Bold Italic" filename="Source Serif 4-Caption Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBold" stylemapfamilyname="Source Serif 4 Caption Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Caption Black Italic" familyname="Source Serif 4" stylename="Caption Black Italic" filename="Source Serif 4-Caption Black Italic.ttf" postscriptfontname="SourceSerif4Italic-CaptionBlack" stylemapfamilyname="Source Serif 4 Caption Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText ExtraLight Italic" familyname="Source Serif 4" stylename="SmText ExtraLight Italic" filename="Source Serif 4-SmText ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextExtraLight" stylemapfamilyname="Source Serif 4 SmallText ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Light Italic" familyname="Source Serif 4" stylename="SmText Light Italic" filename="Source Serif 4-SmText Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextLight" stylemapfamilyname="Source Serif 4 SmallText Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Italic" familyname="Source Serif 4" stylename="SmText Italic" filename="Source Serif 4-SmText Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextRegular" stylemapfamilyname="Source Serif 4 SmallText Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Semibold Italic" familyname="Source Serif 4" stylename="SmText Semibold Italic" filename="Source Serif 4-SmText Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextSemibold" stylemapfamilyname="Source Serif 4 SmallText Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Bold Italic" familyname="Source Serif 4" stylename="SmText Bold Italic" filename="Source Serif 4-SmText Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBold" stylemapfamilyname="Source Serif 4 SmallText Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 SmText Black Italic" familyname="Source Serif 4" stylename="SmText Black Italic" filename="Source Serif 4-SmText Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SmTextBlack" stylemapfamilyname="Source Serif 4 SmallText Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 ExtraLight Italic" familyname="Source Serif 4" stylename="ExtraLight Italic" filename="Source Serif 4-ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-ExtraLight" stylemapfamilyname="Source Serif 4 ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Light Italic" familyname="Source Serif 4" stylename="Light Italic" filename="Source Serif 4-Light Italic.ttf" postscriptfontname="SourceSerif4Italic-Light" stylemapfamilyname="Source Serif 4 Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Italic" familyname="Source Serif 4" stylename="Italic" filename="Source Serif 4-Italic.ttf" postscriptfontname="SourceSerif4Italic-Regular" stylemapfamilyname="Source Serif 4 Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Semibold Italic" familyname="Source Serif 4" stylename="Semibold Italic" filename="Source Serif 4-Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-Semibold" stylemapfamilyname="Source Serif 4 Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Bold Italic" familyname="Source Serif 4" stylename="Bold Italic" filename="Source Serif 4-Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-Bold" stylemapfamilyname="Source Serif 4 Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Black Italic" familyname="Source Serif 4" stylename="Black Italic" filename="Source Serif 4-Black Italic.ttf" postscriptfontname="SourceSerif4Italic-Black" stylemapfamilyname="Source Serif 4 Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead ExtraLight Italic" familyname="Source Serif 4" stylename="Subhead ExtraLight Italic" filename="Source Serif 4-Subhead ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadExtraLight" stylemapfamilyname="Source Serif 4 Subhead ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Light Italic" familyname="Source Serif 4" stylename="Subhead Light Italic" filename="Source Serif 4-Subhead Light Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadLight" stylemapfamilyname="Source Serif 4 Subhead Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Italic" familyname="Source Serif 4" stylename="Subhead Italic" filename="Source Serif 4-Subhead Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadRegular" stylemapfamilyname="Source Serif 4 Subhead Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Semibold Italic" familyname="Source Serif 4" stylename="Subhead Semibold Italic" filename="Source Serif 4-Subhead Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadSemibold" stylemapfamilyname="Source Serif 4 Subhead Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Bold Italic" familyname="Source Serif 4" stylename="Subhead Bold Italic" filename="Source Serif 4-Subhead Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBold" stylemapfamilyname="Source Serif 4 Subhead Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Subhead Black Italic" familyname="Source Serif 4" stylename="Subhead Black Italic" filename="Source Serif 4-Subhead Black Italic.ttf" postscriptfontname="SourceSerif4Italic-SubheadBlack" stylemapfamilyname="Source Serif 4 Subhead Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display ExtraLight Italic" familyname="Source Serif 4" stylename="Display ExtraLight Italic" filename="Source Serif 4-Display ExtraLight Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayExtraLight" stylemapfamilyname="Source Serif 4 Display ExtraLight Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Light Italic" familyname="Source Serif 4" stylename="Display Light Italic" filename="Source Serif 4-Display Light Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayLight" stylemapfamilyname="Source Serif 4 Display Light Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Italic" familyname="Source Serif 4" stylename="Display Italic" filename="Source Serif 4-Display Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayRegular" stylemapfamilyname="Source Serif 4 Display Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Semibold Italic" familyname="Source Serif 4" stylename="Display Semibold Italic" filename="Source Serif 4-Display Semibold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplaySemibold" stylemapfamilyname="Source Serif 4 Display Semibold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Bold Italic" familyname="Source Serif 4" stylename="Display Bold Italic" filename="Source Serif 4-Display Bold Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBold" stylemapfamilyname="Source Serif 4 Display Bold Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Source Serif 4 Display Black Italic" familyname="Source Serif 4" stylename="Display Black Italic" filename="Source Serif 4-Display Black Italic.ttf" postscriptfontname="SourceSerif4Italic-DisplayBlack" stylemapfamilyname="Source Serif 4 Display Black Italic" stylemapstylename="regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -1,5 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="4.1">
|
||||
<!-- NOTE: this file is kept at format 4, to check that round-tripping it
|
||||
doesn't upgrade the format. -->
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="0" maximum="1000" default="0">
|
||||
<labelname xml:lang="en">Wéíght</labelname>
|
||||
@ -50,6 +52,13 @@
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="instance.ufo1" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest1.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
|
||||
<stylename xml:lang="fr">Demigras</stylename>
|
||||
<stylename xml:lang="ja">半ば</stylename>
|
||||
<familyname xml:lang="fr">Montserrat</familyname>
|
||||
<familyname xml:lang="ja">モンセラート</familyname>
|
||||
<stylemapstylename xml:lang="de">Standard</stylemapstylename>
|
||||
<stylemapfamilyname xml:lang="de">Montserrat Halbfett</stylemapfamilyname>
|
||||
<stylemapfamilyname xml:lang="ja">モンセラート SemiBold</stylemapfamilyname>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="20"/>
|
294
Tests/designspaceLib/data/test_v5.designspace
Normal file
294
Tests/designspaceLib/data/test_v5.designspace
Normal file
@ -0,0 +1,294 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes elidedfallbackname="Regular">
|
||||
<axis tag="wght" name="weight" minimum="200" maximum="1000" default="200">
|
||||
<labelname xml:lang="en">Wéíght</labelname>
|
||||
<labelname xml:lang="fa-IR">قطر</labelname>
|
||||
<map input="200" output="0"/>
|
||||
<map input="300" output="100"/>
|
||||
<map input="400" output="368"/>
|
||||
<map input="600" output="600"/>
|
||||
<map input="700" output="824"/>
|
||||
<map input="900" output="1000"/>
|
||||
<!-- All axes provide STAT information with the "labels" element. -->
|
||||
<labels>
|
||||
<label uservalue="200" userminimum="200" usermaximum="250" name="Extra Light">
|
||||
<labelname xml:lang="de">Extraleicht</labelname>
|
||||
<labelname xml:lang="fr">Extra léger</labelname>
|
||||
</label>
|
||||
<label uservalue="300" userminimum="250" usermaximum="350" name="Light"/>
|
||||
<label uservalue="400" userminimum="350" usermaximum="450" name="Regular" elidable="true"/>
|
||||
<label uservalue="600" userminimum="450" usermaximum="650" name="Semi Bold"/>
|
||||
<label uservalue="700" userminimum="650" usermaximum="850" name="Bold"/>
|
||||
<label uservalue="900" userminimum="850" usermaximum="900" name="Black"/>
|
||||
</labels>
|
||||
</axis>
|
||||
|
||||
<axis tag="wdth" name="width" minimum="50" maximum="150" default="100" hidden="1">
|
||||
<labelname xml:lang="fr">Chasse</labelname>
|
||||
<map input="50" output="10"/>
|
||||
<map input="100" output="20"/>
|
||||
<map input="125" output="66"/>
|
||||
<map input="150" output="990"/>
|
||||
<labels ordering="1">
|
||||
<label uservalue="50" name="Condensed"/>
|
||||
<label uservalue="100" name="Normal" elidable="true" oldersibling="true"/>
|
||||
<label uservalue="125" name="Wide"/>
|
||||
<!-- Allow specifying only one end of the range, the other is assumed to
|
||||
be infinity as does otlLib buildStatTable -->
|
||||
<label uservalue="150" userminimum="150" name="Extra Wide"/>
|
||||
</labels>
|
||||
</axis>
|
||||
|
||||
<!--
|
||||
Discrete axes provide a list of discrete values.
|
||||
No interpolation is allowed between these.
|
||||
-->
|
||||
<axis tag="ital" name="Italic" values="0 1" default="0">
|
||||
<labels>
|
||||
<!-- Discrete axes also provide STAT information. -->
|
||||
<label uservalue="0" name="Roman" elidable="true" linkeduservalue="1"/>
|
||||
<label uservalue="1" name="Italic"/>
|
||||
</labels>
|
||||
</axis>
|
||||
</axes>
|
||||
|
||||
<!-- Freestanding labels are analogues of STAT format 4 entries.
|
||||
They give names to freestyle locations. -->
|
||||
<labels>
|
||||
<label name="Some Style">
|
||||
<labelname xml:lang="fr">Un Style</labelname>
|
||||
<location>
|
||||
<dimension name="weight" uservalue="300"/>
|
||||
<dimension name="width" uservalue="50"/>
|
||||
<dimension name="Italic" uservalue="0"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Other">
|
||||
<location>
|
||||
<dimension name="weight" uservalue="700"/>
|
||||
<dimension name="width" uservalue="100"/>
|
||||
<dimension name="Italic" uservalue="1"/>
|
||||
</location>
|
||||
</label>
|
||||
</labels>
|
||||
|
||||
<rules processing="last">
|
||||
<rule name="named.rule.1">
|
||||
<conditionset>
|
||||
<condition name="axisName_a" minimum="0" maximum="1"/>
|
||||
<condition name="axisName_b" minimum="2" maximum="3"/>
|
||||
</conditionset>
|
||||
<sub name="a" with="a.alt"/>
|
||||
</rule>
|
||||
</rules>
|
||||
|
||||
<sources>
|
||||
<source filename="masters/masterTest1.ufo" name="master.ufo1" familyname="MasterFamilyName" stylename="MasterStyleNameOne">
|
||||
<familyname xml:lang="fr">Montserrat</familyname>
|
||||
<familyname xml:lang="ja">モンセラート</familyname>
|
||||
<lib copy="1"/>
|
||||
<features copy="1"/>
|
||||
<info copy="1"/>
|
||||
<glyph name="A" mute="1"/>
|
||||
<glyph name="Z" mute="1"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="width" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="masters/masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="MasterStyleNameTwo">
|
||||
<kerning mute="1"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="masters/masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="Supports" layer="supports">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="width" xvalue="20"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
|
||||
<variable-fonts>
|
||||
<!--
|
||||
If this element is present, all output targets must be listed within it.
|
||||
If it is not present, the full Designspace is the output, like in version 4.x.
|
||||
|
||||
Continuous axes can be included either:
|
||||
* in full,
|
||||
* or only on a reduced interval (different minimum-maximum),
|
||||
* or only at 1 discrete location
|
||||
Dicrete axes cannot be included in full, and we must specify a value
|
||||
(or the compiler should assume the default value).
|
||||
-->
|
||||
<variable-font name="Test_WghtWdth" filename="Test_WghtWdth_different_from_name.ttf">
|
||||
<!-- This one is the Roman (default location along ital),
|
||||
with full range for the Weight axis. -->
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width"/>
|
||||
</axis-subsets>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>com.vtt.source</key>
|
||||
<string>sources/vtt/Test_WghtWdth.vtt</string>
|
||||
</dict>
|
||||
</lib>
|
||||
</variable-font>
|
||||
<variable-font name="Test_Wght">
|
||||
<!-- This one is the Roman (default location along ital),
|
||||
with full range for the Weight axis. -->
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
</axis-subsets>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>com.vtt.source</key>
|
||||
<string>sources/vtt/Test_Wght.vtt</string>
|
||||
</dict>
|
||||
</lib>
|
||||
</variable-font>
|
||||
<variable-font name="TestCd_Wght">
|
||||
<!-- This one is the Roman (default location along ital),
|
||||
with full range for the Weight axis. -->
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width" uservalue="0"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="TestWd_Wght">
|
||||
<!-- This one is the Roman (default location along ital),
|
||||
with full range for the Weight axis. -->
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width" uservalue="1000"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="TestItalic_Wght">
|
||||
<!-- This one is the Italic, with full range for the Weight axis. -->
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Italic" uservalue="1"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="TestRB_Wght">
|
||||
<!-- As an example, this would be the Roman with a reduced range. -->
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight" userminimum="400" usermaximum="700" userdefault="400"/>
|
||||
<axis-subset name="Italic" uservalue="0"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
|
||||
<instances>
|
||||
<instance name="instance.ufo1" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest1.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
|
||||
<stylename xml:lang="fr">Demigras</stylename>
|
||||
<stylename xml:lang="ja">半ば</stylename>
|
||||
<familyname xml:lang="fr">Montserrat</familyname>
|
||||
<familyname xml:lang="ja">モンセラート</familyname>
|
||||
<stylemapstylename xml:lang="de">Standard</stylemapstylename>
|
||||
<stylemapfamilyname xml:lang="de">Montserrat Halbfett</stylemapfamilyname>
|
||||
<stylemapfamilyname xml:lang="ja">モンセラート SemiBold</stylemapfamilyname>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="20"/>
|
||||
</location>
|
||||
|
||||
<!-- The following elements are deprecated in v5.0. They can still be
|
||||
read, but they won't be written out again (they don't roundtrip). -->
|
||||
<!-- ROUNDTRIP_TEST_REMOVE_ME_BEGIN -->
|
||||
<glyphs>
|
||||
<glyph mute="1" unicode="0x123 0x124 0x125" name="arrow"/>
|
||||
</glyphs>
|
||||
<kerning/>
|
||||
<info/>
|
||||
<!-- ROUNDTRIP_TEST_REMOVE_ME_END -->
|
||||
|
||||
<lib>
|
||||
<dict>
|
||||
<key>com.coolDesignspaceApp.binaryData</key>
|
||||
<data>
|
||||
PGJpbmFyeSBndW5rPg==
|
||||
</data>
|
||||
<key>com.coolDesignspaceApp.specimenText</key>
|
||||
<string>Hamburgerwhatever</string>
|
||||
</dict>
|
||||
</lib>
|
||||
</instance>
|
||||
<instance name="instance.ufo2" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest2.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="400" yvalue="300"/>
|
||||
</location>
|
||||
<!-- ROUNDTRIP_TEST_REMOVE_ME_BEGIN -->
|
||||
<glyphs>
|
||||
<glyph unicode="0x65 0xc9 0x12d" name="arrow">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="120"/>
|
||||
<dimension name="width" xvalue="100"/>
|
||||
</location>
|
||||
<note>A note about this glyph</note>
|
||||
<masters>
|
||||
<master glyphname="BB" source="master.ufo1">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="20"/>
|
||||
<dimension name="width" xvalue="20"/>
|
||||
</location>
|
||||
</master>
|
||||
<master glyphname="CC" source="master.ufo2">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="900"/>
|
||||
<dimension name="width" xvalue="900"/>
|
||||
</location>
|
||||
</master>
|
||||
</masters>
|
||||
</glyph>
|
||||
<glyph name="arrow2"/>
|
||||
</glyphs>
|
||||
<kerning/>
|
||||
<info/>
|
||||
<!-- ROUNDTRIP_TEST_REMOVE_ME_END -->
|
||||
</instance>
|
||||
|
||||
<!--
|
||||
These instances will derive all their data from the data above.
|
||||
|
||||
Instances can specify their location either:
|
||||
- using the name of a location label
|
||||
- with design coordinates (xvalue="")
|
||||
- with user coordinates (uservalue="")
|
||||
- with a mix of both coordinate systems
|
||||
-->
|
||||
<instance location="asdf"/>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="600"/>
|
||||
<dimension name="width" xvalue="401" yvalue="420"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="10"/>
|
||||
<dimension name="width" uservalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="weight" uservalue="300"/>
|
||||
<dimension name="width" uservalue="130"/>
|
||||
<dimension name="Italic" uservalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
|
||||
<lib>
|
||||
<dict>
|
||||
<key>com.coolDesignspaceApp.previewSize</key>
|
||||
<integer>30</integer>
|
||||
</dict>
|
||||
</lib>
|
||||
</designspace>
|
@ -0,0 +1,206 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes elidedfallbackname="Regular">
|
||||
<axis tag="SRIF" name="serif" values="0 1" default="0">
|
||||
<labels>
|
||||
<label uservalue="0" name="Sans"/>
|
||||
<label uservalue="1" name="Serif"/>
|
||||
</labels>
|
||||
</axis>
|
||||
<axis tag="wght" name="weight" minimum="300" maximum="700" default="300">
|
||||
<map input="300" output="0"/>
|
||||
<map input="500" output="500"/>
|
||||
<map input="700" output="1000"/>
|
||||
<labels>
|
||||
<label uservalue="300" userminimum="300" usermaximum="400" name="Light"/>
|
||||
<label uservalue="500" userminimum="400" usermaximum="600" name="Medium"/>
|
||||
<label uservalue="700" userminimum="600" usermaximum="700" name="Bold"/>
|
||||
</labels>
|
||||
</axis>
|
||||
<axis tag="wdth" name="width" minimum="50" maximum="200" default="50">
|
||||
<map input="50" output="0"/>
|
||||
<map input="100" output="500"/>
|
||||
<map input="200" output="1000"/>
|
||||
<labels>
|
||||
<label uservalue="50" userminimum="50" usermaximum="75" name="Condensed"/>
|
||||
<label uservalue="100" userminimum="75" usermaximum="125" name="Normal" elidable="true"/>
|
||||
<label uservalue="200" userminimum="125" usermaximum="200" name="Extended"/>
|
||||
</labels>
|
||||
</axis>
|
||||
</axes>
|
||||
<labels>
|
||||
<label name="S1">
|
||||
<location>
|
||||
<dimension name="width" uservalue="158.9044"/>
|
||||
<dimension name="weight" uservalue="610.2436"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="S2">
|
||||
<location>
|
||||
<dimension name="width" uservalue="159.1956"/>
|
||||
<dimension name="weight" uservalue="642.2196"/>
|
||||
</location>
|
||||
</label>
|
||||
</labels>
|
||||
<rules>
|
||||
<rule name="fold_I_serifs">
|
||||
<conditionset>
|
||||
<condition name="width" minimum="0" maximum="328"/>
|
||||
<condition name="serif" minimum="0" maximum="0"/>
|
||||
</conditionset>
|
||||
<sub name="I" with="I.narrow"/>
|
||||
</rule>
|
||||
<rule name="fold_S_terminals">
|
||||
<conditionset>
|
||||
<condition name="width" minimum="0" maximum="1000"/>
|
||||
<condition name="weight" minimum="0" maximum="500"/>
|
||||
<condition name="serif" minimum="0" maximum="0.5"/>
|
||||
</conditionset>
|
||||
<sub name="S" with="S.closed"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="MutatorSansLightCondensed.ufo" name="master.MutatorMathTest.LightCondensed.0" familyname="MutatorMathTest" stylename="LightCondensed">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="MutatorSansBoldCondensed.ufo" name="master.MutatorMathTest.BoldCondensed.1" familyname="MutatorMathTest" stylename="BoldCondensed">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="MutatorSansLightWide.ufo" name="master.MutatorMathTest.LightWide.2" familyname="MutatorMathTest" stylename="LightWide">
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="MutatorSansBoldWide.ufo" name="master.MutatorMathTest.BoldWide.3" familyname="MutatorMathTest" stylename="BoldWide">
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="MutatorSansLightCondensed.ufo" name="support.crossbar" layer="support.crossbar">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="MutatorSansLightCondensed.ufo" name="support.S.wide" layer="support.S.wide">
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="MutatorSansLightCondensed.ufo" name="support.S.middle" layer="support.S.middle">
|
||||
<location>
|
||||
<dimension name="width" xvalue="569.078000"/>
|
||||
<dimension name="weight" xvalue="700"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="MutatorSerifLightCondensed.ufo" familyname="MutatorMathTest" stylename="SerifLightCondensed">
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="serif" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="MutatorSerifLightWide.ufo" familyname="MutatorMathTest" stylename="SerifLightWide">
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="serif" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<variable-fonts>
|
||||
<variable-font name="MutatorSansVariable_Weight_Width">
|
||||
<axis-subsets>
|
||||
<axis-subset name="weight"/>
|
||||
<axis-subset name="width"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="MutatorSansVariable_Weight">
|
||||
<axis-subsets>
|
||||
<axis-subset name="weight"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="MutatorSansVariable_Width">
|
||||
<axis-subsets>
|
||||
<axis-subset name="width"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="MutatorSerifVariable_Width">
|
||||
<axis-subsets>
|
||||
<axis-subset name="serif" uservalue="1"/>
|
||||
<axis-subset name="width"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
<instances>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="327"/>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="327"/>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="569.078"/>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="1000"/>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
<dimension name="serif" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance>
|
||||
<location>
|
||||
<dimension name="width" xvalue="0"/>
|
||||
<dimension name="serif" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
621
Tests/designspaceLib/data/test_v5_aktiv.designspace
Normal file
621
Tests/designspaceLib/data/test_v5_aktiv.designspace
Normal file
@ -0,0 +1,621 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" minimum="100" maximum="900" default="400">
|
||||
<map input="100" output="22"/>
|
||||
<map input="200" output="38"/>
|
||||
<map input="300" output="57"/>
|
||||
<map input="400" output="84"/>
|
||||
<map input="500" output="98"/>
|
||||
<map input="600" output="115"/>
|
||||
<map input="700" output="133"/>
|
||||
<map input="800" output="158"/>
|
||||
<map input="900" output="185"/>
|
||||
<labels ordering="1">
|
||||
<label uservalue="100" name="Hair"/>
|
||||
<label uservalue="200" name="Thin"/>
|
||||
<label uservalue="300" name="Light"/>
|
||||
<label uservalue="400" name="Regular" elidable="true" linkeduservalue="700"/>
|
||||
<label uservalue="500" name="Medium"/>
|
||||
<label uservalue="600" name="SemiBold"/>
|
||||
<label uservalue="700" name="Bold"/>
|
||||
<label uservalue="800" name="XBold"/>
|
||||
<label uservalue="900" name="Black"/>
|
||||
</labels>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" minimum="75" maximum="125" default="100">
|
||||
<labels ordering="0">
|
||||
<label uservalue="75" name="Cd"/>
|
||||
<label uservalue="100" name="Normal" elidable="true"/>
|
||||
<label uservalue="125" name="Ex"/>
|
||||
</labels>
|
||||
</axis>
|
||||
<axis tag="ital" name="Italic" minimum="0" maximum="1" default="0">
|
||||
<labels ordering="2">
|
||||
<label uservalue="0" name="Upright" elidable="true" linkeduservalue="1"/>
|
||||
<label uservalue="1" name="Italic"/>
|
||||
</labels>
|
||||
</axis>
|
||||
</axes>
|
||||
|
||||
<rules processing="last">
|
||||
<rule name="BRACKET.CYR">
|
||||
<conditionset>
|
||||
<condition name="Italic" minimum="0.1" maximum="1"/>
|
||||
</conditionset>
|
||||
<sub name="ghe.loclSRB" with="ghe.ital.loclSRB"/>
|
||||
<sub name="ghe.loclMKD" with="ghe.ital.loclMKD"/>
|
||||
<sub name="de.loclMKDSRB" with="de.ital.loclMKDSRB"/>
|
||||
<sub name="pe.loclMKDSRB" with="pe.ital.loclMKDSRB"/>
|
||||
<sub name="te.loclMKDSRB" with="te.ital.loclMKDSRB"/>
|
||||
<sub name="gje.loclMKD" with="gje.ital.loclMKD"/>
|
||||
<sub name="sha.loclMKDSRB" with="sha.ital.loclMKDSRB"/>
|
||||
</rule>
|
||||
<rule name="BRACKET.116.185">
|
||||
<conditionset>
|
||||
<condition name="Weight" minimum="116" maximum="185"/>
|
||||
<condition name="Width" minimum="75" maximum="97.5"/>
|
||||
</conditionset>
|
||||
<sub name="cent" with="cent.BRACKET.130"/>
|
||||
<sub name="dollar" with="dollar.BRACKET.130"/>
|
||||
</rule>
|
||||
</rules>
|
||||
|
||||
<sources>
|
||||
<source filename="AktivGroteskCd_Hair.ufo" name="Aktiv Grotesk Cd Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskCd_HairIt.ufo" name="Aktiv Grotesk Cd Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGrotesk_Hair.ufo" name="Aktiv Grotesk Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGrotesk_HairIt.ufo" name="Aktiv Grotesk Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskEx_Hair.ufo" name="Aktiv Grotesk Ex Hair">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskEx_HairIt.ufo" name="Aktiv Grotesk Ex Hair Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskCd_Rg.ufo" name="Aktiv Grotesk Cd">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskCd_It.ufo" name="Aktiv Grotesk Cd Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" familyname="Aktiv Grotesk">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGrotesk_Rg.ufo" name="Aktiv Grotesk Regular" layer="{126,100,0}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGrotesk_It.ufo" name="Aktiv Grotesk Italic {126,100,1}" layer="{126,100,1}">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskEx_Rg.ufo" name="Aktiv Grotesk Ex">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskEx_It.ufo" name="Aktiv Grotesk Ex Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskCd_Blk.ufo" name="Aktiv Grotesk Cd Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskCd_BlkIt.ufo" name="Aktiv Grotesk Cd Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGrotesk_Blk.ufo" name="Aktiv Grotesk Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGrotesk_BlkIt.ufo" name="Aktiv Grotesk Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskEx_Blk.ufo" name="Aktiv Grotesk Ex Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="AktivGroteskEx_BlkIt.ufo" name="Aktiv Grotesk Ex Black Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
|
||||
<variable-fonts>
|
||||
<variable-font name="AktivGroteskVF_WghtWdthItal">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width"/>
|
||||
<axis-subset name="Italic"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="AktivGroteskVF_WghtWdth">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="AktivGroteskVF_Wght">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="AktivGroteskVF_Italics_WghtWdth">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Width"/>
|
||||
<axis-subset name="Italic" uservalue="1"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
<variable-font name="AktivGroteskVF_Italics_Wght">
|
||||
<axis-subsets>
|
||||
<axis-subset name="Weight"/>
|
||||
<axis-subset name="Italic" uservalue="1"/>
|
||||
</axis-subsets>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
|
||||
<instances>
|
||||
<instance filename="instances/AktivGroteskCd_Hair.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_HairIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_Hair.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_HairIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_Hair.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_HairIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="22"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_Th.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_ThIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_Th.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_ThIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_Th.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_ThIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="38"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_Lt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_LtIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_Lt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_LtIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_Lt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_LtIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="57"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_Rg.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_It.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_Rg.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_It.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_Rg.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_It.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="84"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_Md.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_MdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_Md.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_MdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_Md.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_MdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="98"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="../build/instances/AktivGroteskCd_SBd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="../build/instances/AktivGroteskCd_SBdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="../build/instances/AktivGrotesk_SBd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="../build/instances/AktivGrotesk_SBdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="../build/instances/AktivGroteskEx_SBd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="../build/instances/AktivGroteskEx_SBdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="115"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_Bd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_BdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_Bd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_BdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_Bd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_BdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="133"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_XBd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_XBdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_XBd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_XBdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_XBd.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_XBdIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="158"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_Blk.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskCd_BlkIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_Blk.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGrotesk_BlkIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="100"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_Blk.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance filename="instances/AktivGroteskEx_BlkIt.ufo">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="185"/>
|
||||
<dimension name="Width" xvalue="125"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
242
Tests/designspaceLib/data/test_v5_decovar.designspace
Normal file
242
Tests/designspaceLib/data/test_v5_decovar.designspace
Normal file
@ -0,0 +1,242 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="BLDA" name="Inline" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRMD" name="Shearded" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRMC" name="Rounded Slab" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="SKLD" name="Stripes" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRML" name="Worm Terminal" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="SKLA" name="Inline Skeleton" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRMF" name="Open Inline Terminal" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRMK" name="Inline Terminal" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="BLDB" name="Worm" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="WMX2" name="Weight" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRMB" name="Flared" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRMA" name="Rounded" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="SKLB" name="Worm Skeleton" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRMG" name="Slab" minimum="0" maximum="1000" default="0"/>
|
||||
<axis tag="TRME" name="Bifurcated" minimum="0" maximum="1000" default="0"/>
|
||||
</axes>
|
||||
|
||||
<!-- Labels without location or just partly specified location are at the default location plus the explicitly given sub-locations. -->
|
||||
<labels>
|
||||
<label name="Default" elidable="true"/>
|
||||
<label name="Open">
|
||||
<labelname xml:lang="de">Offen</labelname>
|
||||
<location>
|
||||
<dimension name="Inline" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Worm">
|
||||
<location>
|
||||
<dimension name="Worm" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Checkered">
|
||||
<location>
|
||||
<dimension name="Inline Skeleton" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Checkered Reverse">
|
||||
<location>
|
||||
<dimension name="Inline Terminal" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Striped">
|
||||
<location>
|
||||
<dimension name="Stripes" uservalue="500"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Rounded">
|
||||
<location>
|
||||
<dimension name="Rounded" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Flared">
|
||||
<location>
|
||||
<dimension name="Flared" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Flared Open">
|
||||
<location>
|
||||
<dimension name="Inline Skeleton" uservalue="1000"/>
|
||||
<dimension name="Flared" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Rounded Slab">
|
||||
<location>
|
||||
<dimension name="Rounded Slab" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Sheared">
|
||||
<location>
|
||||
<dimension name="Shearded" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Bifurcated">
|
||||
<location>
|
||||
<dimension name="Bifurcated" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Inline">
|
||||
<location>
|
||||
<dimension name="Inline Skeleton" uservalue="500"/>
|
||||
<dimension name="Open Inline Terminal" uservalue="500"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Slab">
|
||||
<location>
|
||||
<dimension name="Slab" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Contrast">
|
||||
<location>
|
||||
<dimension name="Weight" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Fancy">
|
||||
<location>
|
||||
<dimension name="Inline Skeleton" uservalue="1000"/>
|
||||
<dimension name="Weight" uservalue="1000"/>
|
||||
<dimension name="Flared" uservalue="1000"/>
|
||||
</location>
|
||||
</label>
|
||||
<label name="Mayhem">
|
||||
<location>
|
||||
<dimension name="Rounded Slab" uservalue="750"/>
|
||||
<dimension name="Worm Terminal" uservalue="250"/>
|
||||
<dimension name="Inline Skeleton" uservalue="1000"/>
|
||||
<dimension name="Open Inline Terminal" uservalue="250"/>
|
||||
<dimension name="Inline Terminal" uservalue="250"/>
|
||||
<dimension name="Worm" uservalue="1000"/>
|
||||
<dimension name="Weight" uservalue="750"/>
|
||||
<dimension name="Flared" uservalue="500"/>
|
||||
<dimension name="Rounded" uservalue="500"/>
|
||||
<dimension name="Worm Skeleton" uservalue="1000"/>
|
||||
<dimension name="Slab" uservalue="750"/>
|
||||
<dimension name="Bifurcated" uservalue="500"/>
|
||||
</location>
|
||||
</label>
|
||||
</labels>
|
||||
|
||||
<sources>
|
||||
<source filename="DecovarAlpha-Regular24.ufo" name="master_Regular"/>
|
||||
<source filename="DecovarAlpha-Regular24SkelA.ufo" name="master_sklA">
|
||||
<location>
|
||||
<dimension name="Inline Skeleton" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24SkelD2.ufo" name="master_sklD2">
|
||||
<location>
|
||||
<dimension name="Stripes" xvalue="500"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24SkelD4.ufo" name="master_sklD4">
|
||||
<location>
|
||||
<dimension name="Stripes" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24SkelB2.ufo" name="master_sklB2">
|
||||
<location>
|
||||
<dimension name="Worm Skeleton" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermA.ufo" name="master_trmA">
|
||||
<location>
|
||||
<dimension name="Rounded" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermB.ufo" name="master_trmB">
|
||||
<location>
|
||||
<dimension name="Flared" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermC.ufo" name="master_trmC">
|
||||
<location>
|
||||
<dimension name="Rounded Slab" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermD.ufo" name="master_trmD">
|
||||
<location>
|
||||
<dimension name="Shearded" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermE.ufo" name="master_trmE">
|
||||
<location>
|
||||
<dimension name="Bifurcated" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermF.ufo" name="master_trmF">
|
||||
<location>
|
||||
<dimension name="Open Inline Terminal" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermG.ufo" name="master_trmG">
|
||||
<location>
|
||||
<dimension name="Slab" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermSkelA.ufo" name="master_trmK">
|
||||
<location>
|
||||
<dimension name="Inline Terminal" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24TermSkelB.ufo" name="master_trmL">
|
||||
<location>
|
||||
<dimension name="Worm Terminal" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24WeightMax1.ufo" name="master_wmx1">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="5"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24WeightMax1.5.ufo" name="master_wmx1.5">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="507.806"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24WeightMax2.ufo" name="master_wmx2">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24bldA.ufo" name="master_bldA">
|
||||
<location>
|
||||
<dimension name="Inline" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="DecovarAlpha-Regular24bldB.ufo" name="master_bldB">
|
||||
<location>
|
||||
<dimension name="Worm" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
|
||||
<instances>
|
||||
<!--
|
||||
This designspace defines LocationLabels (STAT format 4) for various
|
||||
points within the design space. In order to define instances at these
|
||||
locations, DS version 5 provides the `location="..."` attribute which
|
||||
means that the instance is in the same location as the LocationLabel
|
||||
with the given name.
|
||||
-->
|
||||
<instance location="Default" filename="DecovarAlpha-Default.ufo"/>
|
||||
<instance location="Open" filename="DecovarAlpha-Open.ufo"/>
|
||||
<instance location="Worm" filename="DecovarAlpha-Worm.ufo"/>
|
||||
<instance location="Checkered" filename="DecovarAlpha-Checkered.ufo"/>
|
||||
<instance location="Checkered Reverse" filename="DecovarAlpha-CheckeredReverse.ufo"/>
|
||||
<instance location="Striped" filename="DecovarAlpha-Striped.ufo"/>
|
||||
<instance location="Rounded" filename="DecovarAlpha-Rounded.ufo"/>
|
||||
<instance location="Flared" filename="DecovarAlpha-Flared.ufo"/>
|
||||
<instance location="Flared Open" filename="DecovarAlpha-FlaredOpen.ufo"/>
|
||||
<instance location="Rounded Slab" filename="DecovarAlpha-RoundedSlab.ufo"/>
|
||||
<instance location="Sheared" filename="DecovarAlpha-Sheared.ufo"/>
|
||||
<instance location="Bifurcated" filename="DecovarAlpha-Bifurcated.ufo"/>
|
||||
<instance location="Inline" filename="DecovarAlpha-Inline.ufo"/>
|
||||
<instance location="Slab" filename="DecovarAlpha-Slab.ufo"/>
|
||||
<instance location="Contrast" filename="DecovarAlpha-Contrast.ufo"/>
|
||||
<instance location="Fancy" filename="DecovarAlpha-Fancy.ufo"/>
|
||||
<instance location="Mayhem" filename="DecovarAlpha-Mayhem.ufo"/>
|
||||
</instances>
|
||||
</designspace>
|
139
Tests/designspaceLib/data/test_v5_discrete.designspace
Normal file
139
Tests/designspaceLib/data/test_v5_discrete.designspace
Normal file
@ -0,0 +1,139 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="Weight" values="400 700 900" default="400">
|
||||
<labels>
|
||||
<label uservalue="400" name="Regular" elidable="true" linkeduservalue="700"/>
|
||||
<label uservalue="700" name="Bold"/>
|
||||
<label uservalue="900" name="Black"/>
|
||||
</labels>
|
||||
</axis>
|
||||
<axis tag="wdth" name="Width" values="75 100" default="100">
|
||||
<labels>
|
||||
<label uservalue="75" name="Narrow"/>
|
||||
<label uservalue="100" name="Normal" elidable="true"/>
|
||||
</labels>
|
||||
</axis>
|
||||
<axis tag="ital" name="Italic" values="0 1" default="0">
|
||||
<labels>
|
||||
<label uservalue="0" name="Roman" elidable="true" linkeduservalue="1"/>
|
||||
<label uservalue="1" name="Italic"/>
|
||||
</labels>
|
||||
</axis>
|
||||
</axes>
|
||||
|
||||
<sources>
|
||||
<source filename="arial.ufo" name="Arial Regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="400"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="arialbd.ufo" name="Arial Bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="700"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="ariblk.ufo" name="Arial Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="900"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="ariali.ufo" name="Arial Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="400"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="arialbi.ufo" name="Arial Bold Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="700"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="ARIALN.ufo" name="Arial Narrow">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="400"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="ARIALNB.ufo" name="Arial Narrow Bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="700"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="ARIALNBI.ufo" name="Arial Narrow Bold Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="700"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="ARIALNI.ufo" name="Arial Narrow Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="400"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
|
||||
<instances>
|
||||
<instance name="Arial Regular">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="400"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Arial Bold">
|
||||
<!-- Should be stylemapstylename="bold" -->
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="700"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Arial Black">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="900"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Arial Italic">
|
||||
<!-- Should be stylemapstylename="italic" -->
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="400"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Arial Bold Italic">
|
||||
<!-- Should be stylemapstylename="bold italic" -->
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="700"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Arial Narrow">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="400"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Arial Narrow Bold">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="700"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Arial Narrow Bold Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="700"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance name="Arial Narrow Italic">
|
||||
<location>
|
||||
<dimension name="Weight" xvalue="400"/>
|
||||
<dimension name="Width" xvalue="75"/>
|
||||
<dimension name="Italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
90
Tests/designspaceLib/data/test_v5_original.designspace
Normal file
90
Tests/designspaceLib/data/test_v5_original.designspace
Normal file
@ -0,0 +1,90 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<!--
|
||||
NOTE: this file is the same as test_v4_original, except:
|
||||
- the format is 5,
|
||||
- source location width = 20 are not written out because it's the default
|
||||
- instance <glyphs>, <kerning>, <info> are removed because deprecated
|
||||
-->
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="0" maximum="1000" default="0">
|
||||
<labelname xml:lang="en">Wéíght</labelname>
|
||||
<labelname xml:lang="fa-IR">قطر</labelname>
|
||||
</axis>
|
||||
<axis tag="wdth" name="width" minimum="0" maximum="1000" default="15" hidden="1">
|
||||
<labelname xml:lang="fr">Chasse</labelname>
|
||||
<map input="0" output="10"/>
|
||||
<map input="15" output="20"/>
|
||||
<map input="401" output="66"/>
|
||||
<map input="1000" output="990"/>
|
||||
</axis>
|
||||
</axes>
|
||||
<rules processing="last">
|
||||
<rule name="named.rule.1">
|
||||
<conditionset>
|
||||
<condition name="axisName_a" minimum="0" maximum="1"/>
|
||||
<condition name="axisName_b" minimum="2" maximum="3"/>
|
||||
</conditionset>
|
||||
<sub name="a" with="a.alt"/>
|
||||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="masters/masterTest1.ufo" name="master.ufo1" familyname="MasterFamilyName" stylename="MasterStyleNameOne">
|
||||
<lib copy="1"/>
|
||||
<features copy="1"/>
|
||||
<info copy="1"/>
|
||||
<glyph name="A" mute="1"/>
|
||||
<glyph name="Z" mute="1"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="masters/masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="MasterStyleNameTwo">
|
||||
<kerning mute="1"/>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="masters/masterTest2.ufo" name="master.ufo2" familyname="MasterFamilyName" stylename="Supports" layer="supports">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance name="instance.ufo1" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest1.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
|
||||
<stylename xml:lang="fr">Demigras</stylename>
|
||||
<stylename xml:lang="ja">半ば</stylename>
|
||||
<familyname xml:lang="fr">Montserrat</familyname>
|
||||
<familyname xml:lang="ja">モンセラート</familyname>
|
||||
<stylemapstylename xml:lang="de">Standard</stylemapstylename>
|
||||
<stylemapfamilyname xml:lang="de">Montserrat Halbfett</stylemapfamilyname>
|
||||
<stylemapfamilyname xml:lang="ja">モンセラート SemiBold</stylemapfamilyname>
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
</location>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>com.coolDesignspaceApp.binaryData</key>
|
||||
<data>
|
||||
PGJpbmFyeSBndW5rPg==
|
||||
</data>
|
||||
<key>com.coolDesignspaceApp.specimenText</key>
|
||||
<string>Hamburgerwhatever</string>
|
||||
</dict>
|
||||
</lib>
|
||||
</instance>
|
||||
<instance name="instance.ufo2" familyname="InstanceFamilyName" stylename="InstanceStyleName" filename="instances/instanceTest2.ufo" postscriptfontname="InstancePostscriptName" stylemapfamilyname="InstanceStyleMapFamilyName" stylemapstylename="InstanceStyleMapStyleName">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="500"/>
|
||||
<dimension name="width" xvalue="400" yvalue="300"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>com.coolDesignspaceApp.previewSize</key>
|
||||
<integer>30</integer>
|
||||
</dict>
|
||||
</lib>
|
||||
</designspace>
|
646
Tests/designspaceLib/data/test_v5_sourceserif.designspace
Normal file
646
Tests/designspaceLib/data/test_v5_sourceserif.designspace
Normal file
@ -0,0 +1,646 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<designspace format="5.0">
|
||||
<axes>
|
||||
<axis tag="wght" name="weight" minimum="200" maximum="900" default="400">
|
||||
<map input="200" output="0"/>
|
||||
<map input="300" output="145"/>
|
||||
<map input="400" output="394"/>
|
||||
<map input="600" output="594"/>
|
||||
<map input="700" output="823"/>
|
||||
<map input="900" output="1000"/>
|
||||
<labels ordering="1">
|
||||
<label uservalue="200" userminimum="200" usermaximum="250" name="ExtraLight"/>
|
||||
<label uservalue="300" userminimum="250" usermaximum="350" name="Light"/>
|
||||
<label uservalue="400" userminimum="350" usermaximum="450" name="Regular" elidable="true"/>
|
||||
<label uservalue="600" userminimum="550" usermaximum="650" name="Semibold"/>
|
||||
<label uservalue="700" userminimum="650" usermaximum="750" name="Bold"/>
|
||||
<label uservalue="775" userminimum="750" usermaximum="800" name="ExtraBold"/>
|
||||
<label uservalue="900" userminimum="800" usermaximum="900" name="Black"/>
|
||||
</labels>
|
||||
</axis>
|
||||
<axis tag="opsz" name="optical" minimum="8" maximum="60" default="20">
|
||||
<labels ordering="0">
|
||||
<label uservalue="8" userminimum="8" usermaximum="12" name="Caption"/>
|
||||
<label uservalue="16" userminimum="12" usermaximum="18" name="SmallText"/>
|
||||
<label uservalue="20" userminimum="18" usermaximum="26" name="Text" elidable="true"/>
|
||||
<label uservalue="32" userminimum="26" usermaximum="48" name="Subhead"/>
|
||||
<label uservalue="60" userminimum="48" usermaximum="60" name="Display"/>
|
||||
</labels>
|
||||
</axis>
|
||||
<axis tag="ital" name="italic" values="0 1" default="0">
|
||||
<labels ordering="2">
|
||||
<label uservalue="0" name="Roman" elidable="true"/>
|
||||
<label uservalue="1" name="Italic"/>
|
||||
</labels>
|
||||
</axis>
|
||||
</axes>
|
||||
|
||||
<sources>
|
||||
<source filename="caption/master_0/SourceSerif_c0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="caption/master_1/SourceSerif_c1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="caption/master_2/SourceSerif_c2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="text/master_0/SourceSerif_0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="text/master_1/SourceSerif_1.ufo" familyname="Source Serif 4">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="text/master_2/SourceSerif_2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="display/master_0/SourceSerif_d0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="display/master_1/SourceSerif_d1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="display/master_2/SourceSerif_d2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</source>
|
||||
|
||||
<source filename="caption/master_0/SourceSerif-Italic_c0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="caption/master_1/SourceSerif-Italic_c1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="caption/master_2/SourceSerif-Italic_c2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="text/master_0/SourceSerif-Italic_0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="text/master_1/SourceSerif-Italic_1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="text/master_2/SourceSerif-Italic_2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="display/master_0/SourceSerif-Italic_d0.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="display/master_1/SourceSerif-Italic_d1.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="display/master_2/SourceSerif-Italic_d2.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
|
||||
<variable-fonts>
|
||||
<variable-font name="SourceSerif4Variable-Roman">
|
||||
<axis-subsets>
|
||||
<axis-subset name="weight"/>
|
||||
<axis-subset name="optical"/>
|
||||
<axis-subset name="italic" uservalue="0"/>
|
||||
</axis-subsets>
|
||||
<!-- The per-variable-font lib is to be merged into the global lib on
|
||||
conversion to a DS v4, overwriting keys in the global lib. -->
|
||||
<lib>
|
||||
<dict>
|
||||
<key>public.skipExportGlyphs</key>
|
||||
<array>
|
||||
<string>caron.alt</string>
|
||||
<string>commabelowcmb.alt</string>
|
||||
<string>tonos.cap</string>
|
||||
<string>f.ligalong</string>
|
||||
<string>dieresiscmb.tight</string>
|
||||
<string>IJ</string>
|
||||
<string>Tbar</string>
|
||||
<string>colontriangularmod</string>
|
||||
<string>crossmark</string>
|
||||
<string>ij</string>
|
||||
<string>overline</string>
|
||||
<string>similar</string>
|
||||
<string>tbar</string>
|
||||
<string>triangularbullet</string>
|
||||
<string>turkicdsccmb</string>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</variable-font>
|
||||
<variable-font name="SourceSerif4Variable-Italic">
|
||||
<axis-subsets>
|
||||
<axis-subset name="weight"/>
|
||||
<axis-subset name="optical"/>
|
||||
<axis-subset name="italic" uservalue="1"/>
|
||||
</axis-subsets>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>public.skipExportGlyphs</key>
|
||||
<array>
|
||||
<string>caron.alt</string>
|
||||
<string>commabelowcmb.alt</string>
|
||||
<string>f.liga</string>
|
||||
<string>f.ligalong</string>
|
||||
<string>tonos.cap</string>
|
||||
<string>dieresiscmb.tight</string>
|
||||
<string>turkicdsccmb</string>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</variable-font>
|
||||
</variable-fonts>
|
||||
|
||||
<instances>
|
||||
<instance postscriptfontname="SourceSerif4Roman-CaptionExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-CaptionLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-CaptionRegular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-CaptionSemibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-CaptionBold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-CaptionBlack">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText ExtraLight" postscriptfontname="SourceSerif4Roman-SmTextExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Light" postscriptfontname="SourceSerif4Roman-SmTextLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText" postscriptfontname="SourceSerif4Roman-SmTextRegular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Semibold" postscriptfontname="SourceSerif4Roman-SmTextSemibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Bold" postscriptfontname="SourceSerif4Roman-SmTextBold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Black" postscriptfontname="SourceSerif4Roman-SmTextBlack">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-ExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-Light">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="Regular" postscriptfontname="SourceSerif4Roman-Regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-Semibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-Bold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-Black">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-SubheadExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-SubheadLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-SubheadRegular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-SubheadSemibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-SubheadBold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-SubheadBlack">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-DisplayExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-DisplayLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-DisplayRegular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-DisplaySemibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-DisplayBold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Roman-DisplayBlack">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="0"/>
|
||||
</location>
|
||||
</instance>
|
||||
|
||||
<instance postscriptfontname="SourceSerif4Italic-CaptionExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-CaptionLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-CaptionRegular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-CaptionSemibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-CaptionBold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-CaptionBlack">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="8"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText ExtraLight Italic" postscriptfontname="SourceSerif4Italic-SmTextExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Light Italic" postscriptfontname="SourceSerif4Italic-SmTextLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Italic" postscriptfontname="SourceSerif4Italic-SmTextRegular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Semibold Italic" postscriptfontname="SourceSerif4Italic-SmTextSemibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Bold Italic" postscriptfontname="SourceSerif4Italic-SmTextBold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance stylename="SmText Black Italic" postscriptfontname="SourceSerif4Italic-SmTextBlack">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="16"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-ExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-Light">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-Regular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-Semibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-Bold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-Black">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="20"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-SubheadExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-SubheadLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-SubheadRegular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-SubheadSemibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-SubheadBold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-SubheadBlack">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="32"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-DisplayExtraLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="0"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-DisplayLight">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="145"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-DisplayRegular">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="394"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-DisplaySemibold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="594"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-DisplayBold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="823"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
<instance postscriptfontname="SourceSerif4Italic-DisplayBlack">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="1000"/>
|
||||
<dimension name="optical" xvalue="60"/>
|
||||
<dimension name="italic" xvalue="1"/>
|
||||
</location>
|
||||
</instance>
|
||||
</instances>
|
||||
</designspace>
|
@ -1,15 +1,25 @@
|
||||
# coding=utf-8
|
||||
|
||||
import os
|
||||
import sys
|
||||
import pytest
|
||||
import warnings
|
||||
import re
|
||||
|
||||
from fontTools.misc import plistlib
|
||||
from fontTools.designspaceLib import (
|
||||
DesignSpaceDocument, SourceDescriptor, AxisDescriptor, RuleDescriptor,
|
||||
InstanceDescriptor, evaluateRule, processRules, posix, DesignSpaceDocumentError)
|
||||
import pytest
|
||||
from fontTools import ttLib
|
||||
from fontTools.designspaceLib import (
|
||||
AxisDescriptor,
|
||||
AxisLabelDescriptor,
|
||||
DesignSpaceDocument,
|
||||
DesignSpaceDocumentError,
|
||||
DiscreteAxisDescriptor,
|
||||
InstanceDescriptor,
|
||||
RuleDescriptor,
|
||||
SourceDescriptor,
|
||||
evaluateRule,
|
||||
posix,
|
||||
processRules,
|
||||
)
|
||||
from fontTools.misc import plistlib
|
||||
|
||||
|
||||
def _axesAsDict(axes):
|
||||
"""
|
||||
@ -30,19 +40,22 @@ def _axesAsDict(axes):
|
||||
|
||||
|
||||
def assert_equals_test_file(path, test_filename):
|
||||
with open(path) as fp:
|
||||
with open(path, encoding="utf-8") as fp:
|
||||
actual = fp.read()
|
||||
|
||||
test_path = os.path.join(os.path.dirname(__file__), test_filename)
|
||||
with open(test_path) as fp:
|
||||
with open(test_path, encoding="utf-8") as fp:
|
||||
expected = fp.read()
|
||||
expected = re.sub(r"<!--(.|\n)*?-->", "", expected)
|
||||
expected = re.sub(r"\s*\n+", "\n", expected)
|
||||
|
||||
assert actual == expected
|
||||
|
||||
|
||||
def test_fill_document(tmpdir):
|
||||
tmpdir = str(tmpdir)
|
||||
testDocPath = os.path.join(tmpdir, "test.designspace")
|
||||
testDocPath = os.path.join(tmpdir, "test_v4.designspace")
|
||||
testDocPath5 = os.path.join(tmpdir, "test_v5.designspace")
|
||||
masterPath1 = os.path.join(tmpdir, "masters", "masterTest1.ufo")
|
||||
masterPath2 = os.path.join(tmpdir, "masters", "masterTest2.ufo")
|
||||
instancePath1 = os.path.join(tmpdir, "instances", "instanceTest1.ufo")
|
||||
@ -121,6 +134,10 @@ def test_fill_document(tmpdir):
|
||||
i1.postScriptFontName = "InstancePostscriptName"
|
||||
i1.styleMapFamilyName = "InstanceStyleMapFamilyName"
|
||||
i1.styleMapStyleName = "InstanceStyleMapStyleName"
|
||||
i1.localisedStyleName = dict(fr="Demigras", ja="半ば")
|
||||
i1.localisedFamilyName = dict(fr="Montserrat", ja="モンセラート")
|
||||
i1.localisedStyleMapStyleName = dict(de="Standard")
|
||||
i1.localisedStyleMapFamilyName = dict(de="Montserrat Halbfett", ja="モンセラート SemiBold")
|
||||
glyphData = dict(name="arrow", mute=True, unicodes=[0x123, 0x124, 0x125])
|
||||
i1.glyphs['arrow'] = glyphData
|
||||
i1.lib['com.coolDesignspaceApp.binaryData'] = plistlib.Data(b'<binary gunk>')
|
||||
@ -158,16 +175,21 @@ def test_fill_document(tmpdir):
|
||||
])
|
||||
r1.subs.append(("a", "a.alt"))
|
||||
doc.addRule(r1)
|
||||
# write the document
|
||||
# write the document; without an explicit format it will be 5.0 by default
|
||||
doc.write(testDocPath5)
|
||||
assert os.path.exists(testDocPath5)
|
||||
assert_equals_test_file(testDocPath5, 'data/test_v5_original.designspace')
|
||||
# write again with an explicit format = 4.1
|
||||
doc.formatVersion = "4.1"
|
||||
doc.write(testDocPath)
|
||||
assert os.path.exists(testDocPath)
|
||||
assert_equals_test_file(testDocPath, 'data/test.designspace')
|
||||
assert_equals_test_file(testDocPath, 'data/test_v4_original.designspace')
|
||||
# import it again
|
||||
new = DesignSpaceDocument()
|
||||
new.read(testDocPath)
|
||||
|
||||
assert new.default.location == {'width': 20.0, 'weight': 0.0}
|
||||
assert new.filename == 'test.designspace'
|
||||
assert new.filename == 'test_v4.designspace'
|
||||
assert new.lib == doc.lib
|
||||
assert new.instances[0].lib == doc.instances[0].lib
|
||||
|
||||
@ -197,6 +219,7 @@ def test_unicodes(tmpdir):
|
||||
instancePath1 = os.path.join(tmpdir, "instances", "instanceTest1.ufo")
|
||||
instancePath2 = os.path.join(tmpdir, "instances", "instanceTest2.ufo")
|
||||
doc = DesignSpaceDocument()
|
||||
doc.formatVersion = "4.1" # This test about instance glyphs is deprecated in v5
|
||||
# add master 1
|
||||
s1 = SourceDescriptor()
|
||||
s1.filename = os.path.relpath(masterPath1, os.path.dirname(testDocPath))
|
||||
@ -832,7 +855,7 @@ def test_updatePaths(tmpdir):
|
||||
|
||||
def test_read_with_path_object():
|
||||
import pathlib
|
||||
source = (pathlib.Path(__file__) / "../data/test.designspace").resolve()
|
||||
source = (pathlib.Path(__file__) / "../data/test_v4_original.designspace").resolve()
|
||||
assert source.exists()
|
||||
doc = DesignSpaceDocument()
|
||||
doc.read(source)
|
||||
@ -841,7 +864,7 @@ def test_read_with_path_object():
|
||||
def test_with_with_path_object(tmpdir):
|
||||
import pathlib
|
||||
tmpdir = str(tmpdir)
|
||||
dest = pathlib.Path(tmpdir) / "test.designspace"
|
||||
dest = pathlib.Path(tmpdir) / "test_v4_original.designspace"
|
||||
doc = DesignSpaceDocument()
|
||||
doc.write(dest)
|
||||
assert dest.exists()
|
||||
|
888
Tests/designspaceLib/designspace_v5_test.py
Normal file
888
Tests/designspaceLib/designspace_v5_test.py
Normal file
@ -0,0 +1,888 @@
|
||||
import re
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from fontTools.designspaceLib import (
|
||||
AxisDescriptor,
|
||||
AxisLabelDescriptor,
|
||||
DesignSpaceDocument,
|
||||
DiscreteAxisDescriptor,
|
||||
InstanceDescriptor,
|
||||
LocationLabelDescriptor,
|
||||
RangeAxisSubsetDescriptor,
|
||||
SourceDescriptor,
|
||||
ValueAxisSubsetDescriptor,
|
||||
VariableFontDescriptor,
|
||||
posix,
|
||||
)
|
||||
|
||||
from .fixtures import datadir
|
||||
|
||||
|
||||
def assert_descriptors_equal(actual, expected):
|
||||
assert len(actual) == len(expected)
|
||||
for a, e in zip(actual, expected):
|
||||
assert a.asdict() == e.asdict()
|
||||
|
||||
|
||||
def test_read_v5_document_simple(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5.designspace")
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.axes,
|
||||
[
|
||||
AxisDescriptor(
|
||||
tag="wght",
|
||||
name="weight",
|
||||
minimum=200,
|
||||
maximum=1000,
|
||||
default=200,
|
||||
labelNames={"en": "Wéíght", "fa-IR": "قطر"},
|
||||
map=[
|
||||
(200, 0),
|
||||
(300, 100),
|
||||
(400, 368),
|
||||
(600, 600),
|
||||
(700, 824),
|
||||
(900, 1000),
|
||||
],
|
||||
axisOrdering=None,
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(
|
||||
name="Extra Light",
|
||||
userMinimum=200,
|
||||
userValue=200,
|
||||
userMaximum=250,
|
||||
labelNames={"de": "Extraleicht", "fr": "Extra léger"},
|
||||
),
|
||||
AxisLabelDescriptor(
|
||||
name="Light", userMinimum=250, userValue=300, userMaximum=350
|
||||
),
|
||||
AxisLabelDescriptor(
|
||||
name="Regular",
|
||||
userMinimum=350,
|
||||
userValue=400,
|
||||
userMaximum=450,
|
||||
elidable=True,
|
||||
),
|
||||
AxisLabelDescriptor(
|
||||
name="Semi Bold",
|
||||
userMinimum=450,
|
||||
userValue=600,
|
||||
userMaximum=650,
|
||||
),
|
||||
AxisLabelDescriptor(
|
||||
name="Bold", userMinimum=650, userValue=700, userMaximum=850
|
||||
),
|
||||
AxisLabelDescriptor(
|
||||
name="Black", userMinimum=850, userValue=900, userMaximum=900
|
||||
),
|
||||
],
|
||||
),
|
||||
AxisDescriptor(
|
||||
tag="wdth",
|
||||
name="width",
|
||||
minimum=50,
|
||||
maximum=150,
|
||||
default=100,
|
||||
hidden=True,
|
||||
labelNames={"fr": "Chasse"},
|
||||
map=[(50, 10), (100, 20), (125, 66), (150, 990)],
|
||||
axisOrdering=1,
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(name="Condensed", userValue=50),
|
||||
AxisLabelDescriptor(
|
||||
name="Normal", elidable=True, olderSibling=True, userValue=100
|
||||
),
|
||||
AxisLabelDescriptor(name="Wide", userValue=125),
|
||||
AxisLabelDescriptor(
|
||||
name="Extra Wide", userValue=150, userMinimum=150
|
||||
),
|
||||
],
|
||||
),
|
||||
DiscreteAxisDescriptor(
|
||||
tag="ital",
|
||||
name="Italic",
|
||||
values=[0, 1],
|
||||
default=0,
|
||||
axisOrdering=None,
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(
|
||||
name="Roman", userValue=0, elidable=True, linkedUserValue=1
|
||||
),
|
||||
AxisLabelDescriptor(name="Italic", userValue=1),
|
||||
],
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.locationLabels,
|
||||
[
|
||||
LocationLabelDescriptor(
|
||||
name="Some Style",
|
||||
labelNames={"fr": "Un Style"},
|
||||
userLocation={"weight": 300, "width": 50, "Italic": 0},
|
||||
),
|
||||
LocationLabelDescriptor(
|
||||
name="Other", userLocation={"weight": 700, "width": 100, "Italic": 1}
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.sources,
|
||||
[
|
||||
SourceDescriptor(
|
||||
filename="masters/masterTest1.ufo",
|
||||
path=posix(str((datadir / "masters/masterTest1.ufo").resolve())),
|
||||
name="master.ufo1",
|
||||
layerName=None,
|
||||
location={"weight": 0.0, "width": 20.0},
|
||||
copyLib=True,
|
||||
copyInfo=True,
|
||||
copyGroups=False,
|
||||
copyFeatures=True,
|
||||
muteKerning=False,
|
||||
muteInfo=False,
|
||||
mutedGlyphNames=["A", "Z"],
|
||||
familyName="MasterFamilyName",
|
||||
styleName="MasterStyleNameOne",
|
||||
localisedFamilyName={"fr": "Montserrat", "ja": "モンセラート"},
|
||||
),
|
||||
SourceDescriptor(
|
||||
filename="masters/masterTest2.ufo",
|
||||
path=posix(str((datadir / "masters/masterTest2.ufo").resolve())),
|
||||
name="master.ufo2",
|
||||
layerName=None,
|
||||
location={"weight": 1000.0, "width": 20.0},
|
||||
copyLib=False,
|
||||
copyInfo=False,
|
||||
copyGroups=False,
|
||||
copyFeatures=False,
|
||||
muteKerning=True,
|
||||
muteInfo=False,
|
||||
mutedGlyphNames=[],
|
||||
familyName="MasterFamilyName",
|
||||
styleName="MasterStyleNameTwo",
|
||||
localisedFamilyName={},
|
||||
),
|
||||
SourceDescriptor(
|
||||
filename="masters/masterTest2.ufo",
|
||||
path=posix(str((datadir / "masters/masterTest2.ufo").resolve())),
|
||||
name="master.ufo2",
|
||||
layerName="supports",
|
||||
location={"weight": 1000.0, "width": 20.0},
|
||||
copyLib=False,
|
||||
copyInfo=False,
|
||||
copyGroups=False,
|
||||
copyFeatures=False,
|
||||
muteKerning=False,
|
||||
muteInfo=False,
|
||||
mutedGlyphNames=[],
|
||||
familyName="MasterFamilyName",
|
||||
styleName="Supports",
|
||||
localisedFamilyName={},
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.variableFonts,
|
||||
[
|
||||
VariableFontDescriptor(
|
||||
name="Test_WghtWdth",
|
||||
filename="Test_WghtWdth_different_from_name.ttf",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
RangeAxisSubsetDescriptor(name="Width"),
|
||||
],
|
||||
lib={"com.vtt.source": "sources/vtt/Test_WghtWdth.vtt"},
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="Test_Wght",
|
||||
axisSubsets=[RangeAxisSubsetDescriptor(name="Weight")],
|
||||
lib={"com.vtt.source": "sources/vtt/Test_Wght.vtt"},
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="TestCd_Wght",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
ValueAxisSubsetDescriptor(name="Width", userValue=0),
|
||||
],
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="TestWd_Wght",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
ValueAxisSubsetDescriptor(name="Width", userValue=1000),
|
||||
],
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="TestItalic_Wght",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
ValueAxisSubsetDescriptor(name="Italic", userValue=1),
|
||||
],
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="TestRB_Wght",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(
|
||||
name="Weight", userMinimum=400, userDefault=400, userMaximum=700
|
||||
),
|
||||
ValueAxisSubsetDescriptor(name="Italic", userValue=0),
|
||||
],
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.instances,
|
||||
[
|
||||
InstanceDescriptor(
|
||||
filename="instances/instanceTest1.ufo",
|
||||
path=posix(str((datadir / "instances/instanceTest1.ufo").resolve())),
|
||||
name="instance.ufo1",
|
||||
designLocation={"weight": 500.0, "width": 20.0},
|
||||
familyName="InstanceFamilyName",
|
||||
styleName="InstanceStyleName",
|
||||
postScriptFontName="InstancePostscriptName",
|
||||
styleMapFamilyName="InstanceStyleMapFamilyName",
|
||||
styleMapStyleName="InstanceStyleMapStyleName",
|
||||
localisedFamilyName={"fr": "Montserrat", "ja": "モンセラート"},
|
||||
localisedStyleName={"fr": "Demigras", "ja": "半ば"},
|
||||
localisedStyleMapFamilyName={
|
||||
"de": "Montserrat Halbfett",
|
||||
"ja": "モンセラート SemiBold",
|
||||
},
|
||||
localisedStyleMapStyleName={"de": "Standard"},
|
||||
glyphs={"arrow": {"mute": True, "unicodes": [291, 292, 293]}},
|
||||
lib={
|
||||
"com.coolDesignspaceApp.binaryData": b"<binary gunk>",
|
||||
"com.coolDesignspaceApp.specimenText": "Hamburgerwhatever",
|
||||
},
|
||||
),
|
||||
InstanceDescriptor(
|
||||
filename="instances/instanceTest2.ufo",
|
||||
path=posix(str((datadir / "instances/instanceTest2.ufo").resolve())),
|
||||
name="instance.ufo2",
|
||||
designLocation={"weight": 500.0, "width": (400.0, 300.0)},
|
||||
familyName="InstanceFamilyName",
|
||||
styleName="InstanceStyleName",
|
||||
postScriptFontName="InstancePostscriptName",
|
||||
styleMapFamilyName="InstanceStyleMapFamilyName",
|
||||
styleMapStyleName="InstanceStyleMapStyleName",
|
||||
glyphs={
|
||||
"arrow": {
|
||||
"unicodes": [101, 201, 301],
|
||||
"note": "A note about this glyph",
|
||||
"instanceLocation": {"weight": 120.0, "width": 100.0},
|
||||
"masters": [
|
||||
{
|
||||
"font": "master.ufo1",
|
||||
"location": {"weight": 20.0, "width": 20.0},
|
||||
"glyphName": "BB",
|
||||
},
|
||||
{
|
||||
"font": "master.ufo2",
|
||||
"location": {"weight": 900.0, "width": 900.0},
|
||||
"glyphName": "CC",
|
||||
},
|
||||
],
|
||||
},
|
||||
"arrow2": {},
|
||||
},
|
||||
),
|
||||
InstanceDescriptor(
|
||||
locationLabel="asdf",
|
||||
),
|
||||
InstanceDescriptor(
|
||||
designLocation={"weight": 600.0, "width": (401.0, 420.0)},
|
||||
),
|
||||
InstanceDescriptor(
|
||||
designLocation={"weight": 10.0, "Italic": 0.0},
|
||||
userLocation={"width": 100.0},
|
||||
),
|
||||
InstanceDescriptor(
|
||||
userLocation={"weight": 300.0, "width": 130.0, "Italic": 1.0},
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
def test_read_v5_document_decovar(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_decovar.designspace")
|
||||
|
||||
assert not doc.variableFonts
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.axes,
|
||||
[
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Inline", tag="BLDA"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Shearded", tag="TRMD"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Rounded Slab", tag="TRMC"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Stripes", tag="SKLD"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Worm Terminal", tag="TRML"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Inline Skeleton", tag="SKLA"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0,
|
||||
maximum=1000,
|
||||
minimum=0,
|
||||
name="Open Inline Terminal",
|
||||
tag="TRMF",
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Inline Terminal", tag="TRMK"
|
||||
),
|
||||
AxisDescriptor(default=0, maximum=1000, minimum=0, name="Worm", tag="BLDB"),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Weight", tag="WMX2"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Flared", tag="TRMB"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Rounded", tag="TRMA"
|
||||
),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Worm Skeleton", tag="SKLB"
|
||||
),
|
||||
AxisDescriptor(default=0, maximum=1000, minimum=0, name="Slab", tag="TRMG"),
|
||||
AxisDescriptor(
|
||||
default=0, maximum=1000, minimum=0, name="Bifurcated", tag="TRME"
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.locationLabels,
|
||||
[
|
||||
LocationLabelDescriptor(name="Default", elidable=True, userLocation={}),
|
||||
LocationLabelDescriptor(
|
||||
name="Open", userLocation={"Inline": 1000}, labelNames={"de": "Offen"}
|
||||
),
|
||||
LocationLabelDescriptor(name="Worm", userLocation={"Worm": 1000}),
|
||||
LocationLabelDescriptor(
|
||||
name="Checkered", userLocation={"Inline Skeleton": 1000}
|
||||
),
|
||||
LocationLabelDescriptor(
|
||||
name="Checkered Reverse", userLocation={"Inline Terminal": 1000}
|
||||
),
|
||||
LocationLabelDescriptor(name="Striped", userLocation={"Stripes": 500}),
|
||||
LocationLabelDescriptor(name="Rounded", userLocation={"Rounded": 1000}),
|
||||
LocationLabelDescriptor(name="Flared", userLocation={"Flared": 1000}),
|
||||
LocationLabelDescriptor(
|
||||
name="Flared Open",
|
||||
userLocation={"Inline Skeleton": 1000, "Flared": 1000},
|
||||
),
|
||||
LocationLabelDescriptor(
|
||||
name="Rounded Slab", userLocation={"Rounded Slab": 1000}
|
||||
),
|
||||
LocationLabelDescriptor(name="Sheared", userLocation={"Shearded": 1000}),
|
||||
LocationLabelDescriptor(
|
||||
name="Bifurcated", userLocation={"Bifurcated": 1000}
|
||||
),
|
||||
LocationLabelDescriptor(
|
||||
name="Inline",
|
||||
userLocation={"Inline Skeleton": 500, "Open Inline Terminal": 500},
|
||||
),
|
||||
LocationLabelDescriptor(name="Slab", userLocation={"Slab": 1000}),
|
||||
LocationLabelDescriptor(name="Contrast", userLocation={"Weight": 1000}),
|
||||
LocationLabelDescriptor(
|
||||
name="Fancy",
|
||||
userLocation={"Inline Skeleton": 1000, "Flared": 1000, "Weight": 1000},
|
||||
),
|
||||
LocationLabelDescriptor(
|
||||
name="Mayhem",
|
||||
userLocation={
|
||||
"Inline Skeleton": 1000,
|
||||
"Worm Skeleton": 1000,
|
||||
"Rounded": 500,
|
||||
"Flared": 500,
|
||||
"Rounded Slab": 750,
|
||||
"Bifurcated": 500,
|
||||
"Open Inline Terminal": 250,
|
||||
"Slab": 750,
|
||||
"Inline Terminal": 250,
|
||||
"Worm Terminal": 250,
|
||||
"Weight": 750,
|
||||
"Worm": 1000,
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
assert [i.locationLabel for i in doc.instances] == [
|
||||
"Default",
|
||||
"Open",
|
||||
"Worm",
|
||||
"Checkered",
|
||||
"Checkered Reverse",
|
||||
"Striped",
|
||||
"Rounded",
|
||||
"Flared",
|
||||
"Flared Open",
|
||||
"Rounded Slab",
|
||||
"Sheared",
|
||||
"Bifurcated",
|
||||
"Inline",
|
||||
"Slab",
|
||||
"Contrast",
|
||||
"Fancy",
|
||||
"Mayhem",
|
||||
]
|
||||
|
||||
|
||||
def test_read_v5_document_discrete(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_discrete.designspace")
|
||||
|
||||
assert not doc.locationLabels
|
||||
assert not doc.variableFonts
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.axes,
|
||||
[
|
||||
DiscreteAxisDescriptor(
|
||||
default=400,
|
||||
values=[400, 700, 900],
|
||||
name="Weight",
|
||||
tag="wght",
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(
|
||||
name="Regular",
|
||||
userValue=400,
|
||||
elidable=True,
|
||||
linkedUserValue=700,
|
||||
),
|
||||
AxisLabelDescriptor(name="Bold", userValue=700),
|
||||
AxisLabelDescriptor(name="Black", userValue=900),
|
||||
],
|
||||
),
|
||||
DiscreteAxisDescriptor(
|
||||
default=100,
|
||||
values=[75, 100],
|
||||
name="Width",
|
||||
tag="wdth",
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(name="Narrow", userValue=75),
|
||||
AxisLabelDescriptor(name="Normal", userValue=100, elidable=True),
|
||||
],
|
||||
),
|
||||
DiscreteAxisDescriptor(
|
||||
default=0,
|
||||
values=[0, 1],
|
||||
name="Italic",
|
||||
tag="ital",
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(
|
||||
name="Roman", userValue=0, elidable=True, linkedUserValue=1
|
||||
),
|
||||
AxisLabelDescriptor(name="Italic", userValue=1),
|
||||
],
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
def test_read_v5_document_aktiv(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_aktiv.designspace")
|
||||
|
||||
assert not doc.locationLabels
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.axes,
|
||||
[
|
||||
AxisDescriptor(
|
||||
tag="wght",
|
||||
name="Weight",
|
||||
minimum=100,
|
||||
default=400,
|
||||
maximum=900,
|
||||
map=[
|
||||
(100, 22),
|
||||
(200, 38),
|
||||
(300, 57),
|
||||
(400, 84),
|
||||
(500, 98),
|
||||
(600, 115),
|
||||
(700, 133),
|
||||
(800, 158),
|
||||
(900, 185),
|
||||
],
|
||||
axisOrdering=1,
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(name="Hair", userValue=100),
|
||||
AxisLabelDescriptor(userValue=200, name="Thin"),
|
||||
AxisLabelDescriptor(userValue=300, name="Light"),
|
||||
AxisLabelDescriptor(
|
||||
userValue=400,
|
||||
name="Regular",
|
||||
elidable=True,
|
||||
linkedUserValue=700,
|
||||
),
|
||||
AxisLabelDescriptor(userValue=500, name="Medium"),
|
||||
AxisLabelDescriptor(userValue=600, name="SemiBold"),
|
||||
AxisLabelDescriptor(userValue=700, name="Bold"),
|
||||
AxisLabelDescriptor(userValue=800, name="XBold"),
|
||||
AxisLabelDescriptor(userValue=900, name="Black"),
|
||||
],
|
||||
),
|
||||
AxisDescriptor(
|
||||
tag="wdth",
|
||||
name="Width",
|
||||
minimum=75,
|
||||
default=100,
|
||||
maximum=125,
|
||||
axisOrdering=0,
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(name="Cd", userValue=75),
|
||||
AxisLabelDescriptor(name="Normal", elidable=True, userValue=100),
|
||||
AxisLabelDescriptor(name="Ex", userValue=125),
|
||||
],
|
||||
),
|
||||
AxisDescriptor(
|
||||
tag="ital",
|
||||
name="Italic",
|
||||
minimum=0,
|
||||
default=0,
|
||||
maximum=1,
|
||||
axisOrdering=2,
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(
|
||||
name="Upright", userValue=0, elidable=True, linkedUserValue=1
|
||||
),
|
||||
AxisLabelDescriptor(name="Italic", userValue=1),
|
||||
],
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
assert_descriptors_equal(
|
||||
doc.variableFonts,
|
||||
[
|
||||
VariableFontDescriptor(
|
||||
name="AktivGroteskVF_WghtWdthItal",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
RangeAxisSubsetDescriptor(name="Width"),
|
||||
RangeAxisSubsetDescriptor(name="Italic"),
|
||||
],
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="AktivGroteskVF_WghtWdth",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
RangeAxisSubsetDescriptor(name="Width"),
|
||||
],
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="AktivGroteskVF_Wght",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
],
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="AktivGroteskVF_Italics_WghtWdth",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
RangeAxisSubsetDescriptor(name="Width"),
|
||||
ValueAxisSubsetDescriptor(name="Italic", userValue=1),
|
||||
],
|
||||
),
|
||||
VariableFontDescriptor(
|
||||
name="AktivGroteskVF_Italics_Wght",
|
||||
axisSubsets=[
|
||||
RangeAxisSubsetDescriptor(name="Weight"),
|
||||
ValueAxisSubsetDescriptor(name="Italic", userValue=1),
|
||||
],
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def map_doc():
|
||||
"""Generate a document with a few axes to test the mapping functions"""
|
||||
doc = DesignSpaceDocument()
|
||||
doc.addAxis(
|
||||
AxisDescriptor(
|
||||
tag="wght",
|
||||
name="Weight",
|
||||
minimum=100,
|
||||
maximum=900,
|
||||
default=100,
|
||||
map=[(100, 10), (900, 90)],
|
||||
)
|
||||
)
|
||||
doc.addAxis(
|
||||
AxisDescriptor(
|
||||
tag="wdth",
|
||||
name="Width",
|
||||
minimum=75,
|
||||
maximum=200,
|
||||
default=100,
|
||||
map=[(75, 7500), (100, 10000), (200, 20000)],
|
||||
)
|
||||
)
|
||||
doc.addAxis(
|
||||
AxisDescriptor(tag="CUST", name="Custom", minimum=1, maximum=2, default=1.5)
|
||||
)
|
||||
doc.addLocationLabel(
|
||||
LocationLabelDescriptor(
|
||||
name="Wonky", userLocation={"Weight": 800, "Custom": 1.2}
|
||||
)
|
||||
)
|
||||
return doc
|
||||
|
||||
|
||||
def test_doc_location_map_forward(map_doc: DesignSpaceDocument):
|
||||
assert map_doc.map_forward({"Weight": 400, "Width": 150, "Custom": 2}) == {
|
||||
"Weight": 40,
|
||||
"Width": 15000,
|
||||
"Custom": 2,
|
||||
}, "The mappings should be used to compute the design locations"
|
||||
assert map_doc.map_forward({"Weight": 400}) == {
|
||||
"Weight": 40,
|
||||
"Width": 10000,
|
||||
"Custom": 1.5,
|
||||
}, "Missing user locations should be assumed equal to the axis's default"
|
||||
|
||||
|
||||
def test_doc_location_map_backward(map_doc: DesignSpaceDocument):
|
||||
assert map_doc.map_backward({"Weight": 40, "Width": 15000, "Custom": 2}) == {
|
||||
"Weight": 400,
|
||||
"Width": 150,
|
||||
"Custom": 2,
|
||||
}, "The mappings should be used to compute the user locations"
|
||||
assert map_doc.map_backward({"Weight": 40}) == {
|
||||
"Weight": 400,
|
||||
"Width": 100,
|
||||
"Custom": 1.5,
|
||||
}, "Missing design locations should be assumed equal to the axis's default"
|
||||
assert map_doc.map_backward(
|
||||
{"Weight": (40, 50), "Width": (15000, 100000), "Custom": (2, 1.5)}
|
||||
) == {
|
||||
"Weight": 400,
|
||||
"Width": 150,
|
||||
"Custom": 2,
|
||||
}, "Only the xvalue of anisotropic locations is used"
|
||||
|
||||
|
||||
def test_instance_location_from_label(map_doc):
|
||||
inst = InstanceDescriptor(locationLabel="Wonky")
|
||||
assert inst.getFullUserLocation(map_doc) == {
|
||||
"Weight": 800,
|
||||
"Width": 100,
|
||||
"Custom": 1.2,
|
||||
}, "an instance with a locationLabel uses the user location from that label, empty values on the label use axis defaults"
|
||||
assert inst.getFullDesignLocation(map_doc) == {
|
||||
"Weight": 80,
|
||||
"Width": 10000,
|
||||
"Custom": 1.2,
|
||||
}, "an instance with a locationLabel computes the design location from that label, empty values on the label use axis defaults"
|
||||
|
||||
inst = InstanceDescriptor(locationLabel="Wonky", userLocation={"Width": 200})
|
||||
assert inst.getFullUserLocation(map_doc) == {
|
||||
"Weight": 800,
|
||||
"Width": 100,
|
||||
"Custom": 1.2,
|
||||
}, "an instance with a locationLabel uses the user location from that label, other location values are ignored"
|
||||
assert inst.getFullDesignLocation(map_doc) == {
|
||||
"Weight": 80,
|
||||
"Width": 10000,
|
||||
"Custom": 1.2,
|
||||
}, "an instance with a locationLabel computes the design location from that label, other location values are ignored"
|
||||
|
||||
|
||||
def test_instance_location_no_data(map_doc):
|
||||
inst = InstanceDescriptor()
|
||||
assert inst.getFullUserLocation(map_doc) == {
|
||||
"Weight": 100,
|
||||
"Width": 100,
|
||||
"Custom": 1.5,
|
||||
}, "an instance without any location data has the default user location"
|
||||
assert inst.getFullDesignLocation(map_doc) == {
|
||||
"Weight": 10,
|
||||
"Width": 10000,
|
||||
"Custom": 1.5,
|
||||
}, "an instance without any location data has the default design location"
|
||||
|
||||
|
||||
def test_instance_location_design_first(map_doc):
|
||||
inst = InstanceDescriptor(
|
||||
designLocation={"Weight": (60, 61), "Width": 11000, "Custom": 1.2},
|
||||
userLocation={"Weight": 700, "Width": 180, "Custom": 1.4},
|
||||
)
|
||||
assert inst.getFullUserLocation(map_doc) == {
|
||||
"Weight": 600,
|
||||
"Width": 110,
|
||||
"Custom": 1.2,
|
||||
}, "when both design and user location data are provided, design wins"
|
||||
assert inst.getFullDesignLocation(map_doc) == {
|
||||
"Weight": (60, 61),
|
||||
"Width": 11000,
|
||||
"Custom": 1.2,
|
||||
}, "when both design and user location data are provided, design wins (incl. anisotropy)"
|
||||
|
||||
|
||||
def test_instance_location_mix(map_doc):
|
||||
inst = InstanceDescriptor(
|
||||
designLocation={"Weight": (60, 61)},
|
||||
userLocation={"Width": 180},
|
||||
)
|
||||
assert inst.getFullUserLocation(map_doc) == {
|
||||
"Weight": 600,
|
||||
"Width": 180,
|
||||
"Custom": 1.5,
|
||||
}, "instance location is a mix of design and user locations"
|
||||
assert inst.getFullDesignLocation(map_doc) == {
|
||||
"Weight": (60, 61),
|
||||
"Width": 18000,
|
||||
"Custom": 1.5,
|
||||
}, "instance location is a mix of design and user location"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"filename",
|
||||
[
|
||||
"test_v4_original.designspace",
|
||||
"test_v5_original.designspace",
|
||||
"test_v5_aktiv.designspace",
|
||||
"test_v5_decovar.designspace",
|
||||
"test_v5_discrete.designspace",
|
||||
"test_v5_sourceserif.designspace",
|
||||
"test_v5.designspace",
|
||||
],
|
||||
)
|
||||
def test_roundtrip(tmpdir, datadir, filename):
|
||||
test_file = datadir / filename
|
||||
output_path = tmpdir / filename
|
||||
# Move the file to the tmpdir so that the filenames stay the same
|
||||
# (they're relative to the file's path)
|
||||
shutil.copy(test_file, output_path)
|
||||
doc = DesignSpaceDocument.fromfile(output_path)
|
||||
doc.write(output_path)
|
||||
# The input XML has comments and empty lines for documentation purposes
|
||||
xml = test_file.read_text(encoding="utf-8")
|
||||
xml = re.sub(
|
||||
r"<!-- ROUNDTRIP_TEST_REMOVE_ME_BEGIN -->(.|\n)*?<!-- ROUNDTRIP_TEST_REMOVE_ME_END -->",
|
||||
"",
|
||||
xml,
|
||||
)
|
||||
xml = re.sub(r"<!--(.|\n)*?-->", "", xml)
|
||||
xml = re.sub(r"\s*\n+", "\n", xml)
|
||||
assert output_path.read_text(encoding="utf-8") == xml
|
||||
|
||||
|
||||
def test_using_v5_features_upgrades_format(tmpdir, datadir):
|
||||
test_file = datadir / "test_v4_original.designspace"
|
||||
output_4_path = tmpdir / "test_v4.designspace"
|
||||
output_5_path = tmpdir / "test_v5.designspace"
|
||||
shutil.copy(test_file, output_4_path)
|
||||
doc = DesignSpaceDocument.fromfile(output_4_path)
|
||||
doc.write(output_4_path)
|
||||
assert 'format="4.1"' in output_4_path.read_text(encoding="utf-8")
|
||||
doc.addVariableFont(VariableFontDescriptor(name="TestVF"))
|
||||
doc.write(output_5_path)
|
||||
assert 'format="5.0"' in output_5_path.read_text(encoding="utf-8")
|
||||
|
||||
|
||||
def test_addAxisDescriptor_discrete():
|
||||
ds = DesignSpaceDocument()
|
||||
|
||||
axis = ds.addAxisDescriptor(
|
||||
name="Italic",
|
||||
tag="ital",
|
||||
values=[0, 1],
|
||||
default=0,
|
||||
hidden=True,
|
||||
map=[(0, -12), (1, 0)],
|
||||
axisOrdering=3,
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(
|
||||
name="Roman",
|
||||
userValue=0,
|
||||
elidable=True,
|
||||
olderSibling=True,
|
||||
linkedUserValue=1,
|
||||
labelNames={"fr": "Romain"},
|
||||
)
|
||||
],
|
||||
)
|
||||
|
||||
assert ds.axes[0] is axis
|
||||
assert_descriptors_equal(
|
||||
[axis],
|
||||
[
|
||||
DiscreteAxisDescriptor(
|
||||
tag="ital",
|
||||
name="Italic",
|
||||
values=[0, 1],
|
||||
default=0,
|
||||
hidden=True,
|
||||
map=[(0, -12), (1, 0)],
|
||||
axisOrdering=3,
|
||||
axisLabels=[
|
||||
AxisLabelDescriptor(
|
||||
name="Roman",
|
||||
userValue=0,
|
||||
elidable=True,
|
||||
olderSibling=True,
|
||||
linkedUserValue=1,
|
||||
labelNames={"fr": "Romain"},
|
||||
)
|
||||
],
|
||||
)
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
def test_addLocationLabelDescriptor():
|
||||
ds = DesignSpaceDocument()
|
||||
|
||||
label = ds.addLocationLabelDescriptor(
|
||||
name="Somewhere",
|
||||
userLocation={},
|
||||
elidable=True,
|
||||
olderSibling=True,
|
||||
labelNames={"fr": "Quelque part"},
|
||||
)
|
||||
|
||||
assert ds.locationLabels[0] is label
|
||||
assert_descriptors_equal(
|
||||
[label],
|
||||
[
|
||||
LocationLabelDescriptor(
|
||||
name="Somewhere",
|
||||
userLocation={},
|
||||
elidable=True,
|
||||
olderSibling=True,
|
||||
labelNames={"fr": "Quelque part"},
|
||||
)
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
def test_addVariableFontDescriptor():
|
||||
ds = DesignSpaceDocument()
|
||||
|
||||
vf = ds.addVariableFontDescriptor(name="TestVF", filename="TestVF.ttf")
|
||||
|
||||
assert ds.variableFonts[0] is vf
|
||||
assert_descriptors_equal(
|
||||
[vf], [VariableFontDescriptor(name="TestVF", filename="TestVF.ttf")]
|
||||
)
|
8
Tests/designspaceLib/fixtures.py
Normal file
8
Tests/designspaceLib/fixtures.py
Normal file
@ -0,0 +1,8 @@
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def datadir():
|
||||
return Path(__file__).parent / "data"
|
150
Tests/designspaceLib/split_test.py
Normal file
150
Tests/designspaceLib/split_test.py
Normal file
@ -0,0 +1,150 @@
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from fontTools.designspaceLib import DesignSpaceDocument
|
||||
from fontTools.designspaceLib.split import splitInterpolable, splitVariableFonts, convert5to4
|
||||
|
||||
from .fixtures import datadir
|
||||
|
||||
UPDATE_REFERENCE_OUT_FILES_INSTEAD_OF_TESTING = False
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"test_ds,expected_interpolable_spaces",
|
||||
[
|
||||
(
|
||||
"test_v5_aktiv.designspace",
|
||||
[
|
||||
(
|
||||
{},
|
||||
{
|
||||
"AktivGroteskVF_Italics_Wght",
|
||||
"AktivGroteskVF_Italics_WghtWdth",
|
||||
"AktivGroteskVF_Wght",
|
||||
"AktivGroteskVF_WghtWdth",
|
||||
"AktivGroteskVF_WghtWdthItal",
|
||||
},
|
||||
)
|
||||
],
|
||||
),
|
||||
(
|
||||
"test_v5_sourceserif.designspace",
|
||||
[
|
||||
(
|
||||
{"italic": 0},
|
||||
{"SourceSerif4Variable-Roman"},
|
||||
),
|
||||
(
|
||||
{"italic": 1},
|
||||
{"SourceSerif4Variable-Italic"},
|
||||
),
|
||||
],
|
||||
),
|
||||
(
|
||||
"test_v5_MutatorSans_and_Serif.designspace",
|
||||
[
|
||||
(
|
||||
{"serif": 0},
|
||||
{
|
||||
"MutatorSansVariable_Weight_Width",
|
||||
"MutatorSansVariable_Weight",
|
||||
"MutatorSansVariable_Width",
|
||||
},
|
||||
),
|
||||
(
|
||||
{"serif": 1},
|
||||
{
|
||||
"MutatorSerifVariable_Width",
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_split(datadir, tmpdir, test_ds, expected_interpolable_spaces):
|
||||
data_in = datadir / test_ds
|
||||
temp_in = Path(tmpdir) / test_ds
|
||||
shutil.copy(data_in, temp_in)
|
||||
doc = DesignSpaceDocument.fromfile(temp_in)
|
||||
|
||||
for i, (location, sub_doc) in enumerate(splitInterpolable(doc)):
|
||||
expected_location, expected_vf_names = expected_interpolable_spaces[i]
|
||||
assert location == expected_location
|
||||
vfs = list(splitVariableFonts(sub_doc))
|
||||
assert expected_vf_names == set(vf[0] for vf in vfs)
|
||||
|
||||
loc_str = "_".join(f"{name}_{value}"for name, value in sorted(location.items()))
|
||||
data_out = datadir / "split_output" / f"{temp_in.stem}_{loc_str}.designspace"
|
||||
temp_out = Path(tmpdir) / "out" / f"{temp_in.stem}_{loc_str}.designspace"
|
||||
temp_out.parent.mkdir(exist_ok=True)
|
||||
sub_doc.write(temp_out)
|
||||
|
||||
if UPDATE_REFERENCE_OUT_FILES_INSTEAD_OF_TESTING:
|
||||
data_out.write_text(temp_out.read_text(encoding="utf-8"), encoding="utf-8")
|
||||
else:
|
||||
assert data_out.read_text(encoding="utf-8") == temp_out.read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
|
||||
for vf_name, vf_doc in vfs:
|
||||
data_out = (datadir / "split_output" / vf_name).with_suffix(".designspace")
|
||||
temp_out = (Path(tmpdir) / "out" / vf_name).with_suffix(".designspace")
|
||||
temp_out.parent.mkdir(exist_ok=True)
|
||||
vf_doc.write(temp_out)
|
||||
|
||||
if UPDATE_REFERENCE_OUT_FILES_INSTEAD_OF_TESTING:
|
||||
data_out.write_text(
|
||||
temp_out.read_text(encoding="utf-8"), encoding="utf-8"
|
||||
)
|
||||
else:
|
||||
assert data_out.read_text(encoding="utf-8") == temp_out.read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"test_ds,expected_vfs",
|
||||
[
|
||||
(
|
||||
"test_v5_aktiv.designspace",
|
||||
{
|
||||
"AktivGroteskVF_Italics_Wght",
|
||||
"AktivGroteskVF_Italics_WghtWdth",
|
||||
"AktivGroteskVF_Wght",
|
||||
"AktivGroteskVF_WghtWdth",
|
||||
"AktivGroteskVF_WghtWdthItal",
|
||||
},
|
||||
),
|
||||
(
|
||||
"test_v5_sourceserif.designspace",
|
||||
{
|
||||
"SourceSerif4Variable-Italic",
|
||||
"SourceSerif4Variable-Roman",
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_convert5to4(datadir, tmpdir, test_ds, expected_vfs):
|
||||
data_in = datadir / test_ds
|
||||
temp_in = tmpdir / test_ds
|
||||
shutil.copy(data_in, temp_in)
|
||||
doc = DesignSpaceDocument.fromfile(temp_in)
|
||||
|
||||
variable_fonts = convert5to4(doc)
|
||||
|
||||
assert variable_fonts.keys() == expected_vfs
|
||||
for vf_name, vf in variable_fonts.items():
|
||||
data_out = (datadir / "convert5to4_output" / vf_name).with_suffix(".designspace")
|
||||
temp_out = (Path(tmpdir) / "out" / vf_name).with_suffix(".designspace")
|
||||
temp_out.parent.mkdir(exist_ok=True)
|
||||
vf.write(temp_out)
|
||||
|
||||
if UPDATE_REFERENCE_OUT_FILES_INSTEAD_OF_TESTING:
|
||||
data_out.write_text(temp_out.read_text(encoding="utf-8"), encoding="utf-8")
|
||||
else:
|
||||
assert data_out.read_text(encoding="utf-8") == temp_out.read_text(
|
||||
encoding="utf-8"
|
||||
)
|
61
Tests/designspaceLib/statNames_test.py
Normal file
61
Tests/designspaceLib/statNames_test.py
Normal file
@ -0,0 +1,61 @@
|
||||
from fontTools.designspaceLib import DesignSpaceDocument
|
||||
from fontTools.designspaceLib.statNames import StatNames, getStatNames
|
||||
|
||||
from .fixtures import datadir
|
||||
|
||||
|
||||
def test_instance_getStatNames(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_sourceserif.designspace")
|
||||
|
||||
assert getStatNames(doc, doc.instances[0].getFullUserLocation(doc)) == StatNames(
|
||||
familyNames={"en": "Source Serif 4"},
|
||||
styleNames={"en": "Caption ExtraLight"},
|
||||
postScriptFontName="SourceSerif4-CaptionExtraLight",
|
||||
styleMapFamilyNames={"en": "Source Serif 4 Caption ExtraLight"},
|
||||
styleMapStyleName="regular",
|
||||
)
|
||||
|
||||
|
||||
def test_not_all_ordering_specified_and_translations(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5.designspace")
|
||||
|
||||
assert getStatNames(doc, {"weight": 200, "width": 125, "Italic": 1}) == StatNames(
|
||||
familyNames={
|
||||
"en": "MasterFamilyName",
|
||||
"fr": "Montserrat",
|
||||
"ja": "モンセラート",
|
||||
},
|
||||
styleNames={
|
||||
"fr": "Wide Extra léger Italic",
|
||||
"de": "Wide Extraleicht Italic",
|
||||
"en": "Wide Extra Light Italic",
|
||||
},
|
||||
postScriptFontName="MasterFamilyName-WideExtraLightItalic",
|
||||
styleMapFamilyNames={
|
||||
"en": "MasterFamilyName Wide Extra Light",
|
||||
"fr": "Montserrat Wide Extra léger",
|
||||
"de": "MasterFamilyName Wide Extraleicht",
|
||||
"ja": "モンセラート Wide Extra Light",
|
||||
},
|
||||
styleMapStyleName="italic",
|
||||
)
|
||||
|
||||
|
||||
def test_detect_ribbi_aktiv(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5_aktiv.designspace")
|
||||
|
||||
assert getStatNames(doc, {"Weight": 600, "Width": 125, "Italic": 1}) == StatNames(
|
||||
familyNames={"en": "Aktiv Grotesk"},
|
||||
styleNames={"en": "Ex SemiBold Italic"},
|
||||
postScriptFontName="AktivGrotesk-ExSemiBoldItalic",
|
||||
styleMapFamilyNames={"en": "Aktiv Grotesk Ex SemiBold"},
|
||||
styleMapStyleName="italic",
|
||||
)
|
||||
|
||||
assert getStatNames(doc, {"Weight": 700, "Width": 75, "Italic": 1}) == StatNames(
|
||||
familyNames={"en": "Aktiv Grotesk"},
|
||||
styleNames={"en": "Cd Bold Italic"},
|
||||
postScriptFontName="AktivGrotesk-CdBoldItalic",
|
||||
styleMapFamilyNames={"en": "Aktiv Grotesk Cd"},
|
||||
styleMapStyleName="bold italic",
|
||||
)
|
167
Tests/varLib/stat_test.py
Normal file
167
Tests/varLib/stat_test.py
Normal file
@ -0,0 +1,167 @@
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from fontTools.designspaceLib import DesignSpaceDocument
|
||||
from fontTools.designspaceLib.split import Range
|
||||
from fontTools.varLib.stat import getStatAxes, getStatLocations
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def datadir():
|
||||
return Path(__file__).parent / "../designspaceLib/data"
|
||||
|
||||
|
||||
def test_getStatAxes(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5.designspace")
|
||||
|
||||
assert getStatAxes(
|
||||
doc, {"Italic": 0, "width": Range(50, 150), "weight": Range(200, 900)}
|
||||
) == [
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"flags": 0,
|
||||
"name": {
|
||||
"de": "Extraleicht",
|
||||
"en": "Extra Light",
|
||||
"fr": "Extra léger",
|
||||
},
|
||||
"nominalValue": 200.0,
|
||||
"rangeMaxValue": 250.0,
|
||||
"rangeMinValue": 200.0,
|
||||
},
|
||||
{
|
||||
"flags": 0,
|
||||
"name": {"en": "Light"},
|
||||
"nominalValue": 300.0,
|
||||
"rangeMaxValue": 350.0,
|
||||
"rangeMinValue": 250.0,
|
||||
},
|
||||
{
|
||||
"flags": 2,
|
||||
"name": {"en": "Regular"},
|
||||
"nominalValue": 400.0,
|
||||
"rangeMaxValue": 450.0,
|
||||
"rangeMinValue": 350.0,
|
||||
},
|
||||
{
|
||||
"flags": 0,
|
||||
"name": {"en": "Semi Bold"},
|
||||
"nominalValue": 600.0,
|
||||
"rangeMaxValue": 650.0,
|
||||
"rangeMinValue": 450.0,
|
||||
},
|
||||
{
|
||||
"flags": 0,
|
||||
"name": {"en": "Bold"},
|
||||
"nominalValue": 700.0,
|
||||
"rangeMaxValue": 850.0,
|
||||
"rangeMinValue": 650.0,
|
||||
},
|
||||
{
|
||||
"flags": 0,
|
||||
"name": {"en": "Black"},
|
||||
"nominalValue": 900.0,
|
||||
"rangeMaxValue": 900.0,
|
||||
"rangeMinValue": 850.0,
|
||||
},
|
||||
],
|
||||
"name": {"en": "Wéíght", "fa-IR": "قطر"},
|
||||
"ordering": 2,
|
||||
"tag": "wght",
|
||||
},
|
||||
{
|
||||
"values": [
|
||||
{"flags": 0, "name": {"en": "Condensed"}, "value": 50.0},
|
||||
{"flags": 3, "name": {"en": "Normal"}, "value": 100.0},
|
||||
{"flags": 0, "name": {"en": "Wide"}, "value": 125.0},
|
||||
{
|
||||
"flags": 0,
|
||||
"name": {"en": "Extra Wide"},
|
||||
"nominalValue": 150.0,
|
||||
"rangeMinValue": 150.0,
|
||||
},
|
||||
],
|
||||
"name": {"en": "width", "fr": "Chasse"},
|
||||
"ordering": 1,
|
||||
"tag": "wdth",
|
||||
},
|
||||
{
|
||||
"values": [
|
||||
{"flags": 2, "linkedValue": 1.0, "name": {"en": "Roman"}, "value": 0.0},
|
||||
],
|
||||
"name": {"en": "Italic"},
|
||||
"ordering": 3,
|
||||
"tag": "ital",
|
||||
},
|
||||
]
|
||||
|
||||
assert getStatAxes(doc, {"Italic": 1, "width": 100, "weight": Range(400, 700)}) == [
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"flags": 2,
|
||||
"name": {"en": "Regular"},
|
||||
"nominalValue": 400.0,
|
||||
"rangeMaxValue": 450.0,
|
||||
"rangeMinValue": 350.0,
|
||||
},
|
||||
{
|
||||
"flags": 0,
|
||||
"name": {"en": "Semi Bold"},
|
||||
"nominalValue": 600.0,
|
||||
"rangeMaxValue": 650.0,
|
||||
"rangeMinValue": 450.0,
|
||||
},
|
||||
{
|
||||
"flags": 0,
|
||||
"name": {"en": "Bold"},
|
||||
"nominalValue": 700.0,
|
||||
"rangeMaxValue": 850.0,
|
||||
"rangeMinValue": 650.0,
|
||||
},
|
||||
],
|
||||
"name": {"en": "Wéíght", "fa-IR": "قطر"},
|
||||
"ordering": 2,
|
||||
"tag": "wght",
|
||||
},
|
||||
{
|
||||
"values": [
|
||||
{"flags": 3, "name": {"en": "Normal"}, "value": 100.0},
|
||||
],
|
||||
"name": {"en": "width", "fr": "Chasse"},
|
||||
"ordering": 1,
|
||||
"tag": "wdth",
|
||||
},
|
||||
{
|
||||
"values": [
|
||||
{"flags": 0, "name": {"en": "Italic"}, "value": 1.0},
|
||||
],
|
||||
"name": {"en": "Italic"},
|
||||
"ordering": 3,
|
||||
"tag": "ital",
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def test_getStatLocations(datadir):
|
||||
doc = DesignSpaceDocument.fromfile(datadir / "test_v5.designspace")
|
||||
|
||||
assert getStatLocations(
|
||||
doc, {"Italic": 0, "width": Range(50, 150), "weight": Range(200, 900)}
|
||||
) == [
|
||||
{
|
||||
"flags": 0,
|
||||
"location": {"ital": 0.0, "wdth": 50.0, "wght": 300.0},
|
||||
"name": {"en": "Some Style", "fr": "Un Style"},
|
||||
},
|
||||
]
|
||||
assert getStatLocations(
|
||||
doc, {"Italic": 1, "width": Range(50, 150), "weight": Range(200, 900)}
|
||||
) == [
|
||||
{
|
||||
"flags": 0,
|
||||
"location": {"ital": 1.0, "wdth": 100.0, "wght": 700.0},
|
||||
"name": {"en": "Other"},
|
||||
},
|
||||
]
|
Loading…
x
Reference in New Issue
Block a user