summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/optex/base/f-fraunces.opm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/optex/base/f-fraunces.opm')
-rw-r--r--Master/texmf-dist/tex/optex/base/f-fraunces.opm69
1 files changed, 69 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/optex/base/f-fraunces.opm b/Master/texmf-dist/tex/optex/base/f-fraunces.opm
new file mode 100644
index 00000000000..7684dbc4e8a
--- /dev/null
+++ b/Master/texmf-dist/tex/optex/base/f-fraunces.opm
@@ -0,0 +1,69 @@
+%% This is part of the OpTeX project, see http://petr.olsak.net/optex
+
+\_famdecl [Fraunces] \Fraunces {Display, "Old Style" soft serif typeface}
+ {\wonky} {\rm \bf \it \bi} {Bonum}
+ {[Fraunces-VariableFont_SOFT,WONK,opsz,wght]}
+ {\_def\_fontnamegen {[Fraunces-\_currV VariableFont_SOFT,WONK,opsz,wght]:-liga;%
+ axis={wght=\_f_getwght{+300},opsz=\_the\_f_opsz,soft=\_the\_f_soft};\_wonkyV\_fontfeatures}}
+
+% \_f_getwght{+300} returns \the\wght but if \bf or \bi is processed then it returns \wght+300.
+\_def \_f_getwght#1{\_if b\_ea\_ignoresecond\_famv \_the\_numexpr \_f_wght#1\_relax \_else \_the\_f_wght \_fi}
+
+\_wlog{\_detokenize{%
+Modifiers:^^J
+ \wonky ..... alternative strokes^^J
+ \thin ...... \rm, \it = Thin, \bf, \bi = Normal^^J
+ \light ..... \rm, \it = Light, \bf, \bi = Medium^^J
+ \normal .... \rm, \it = Normal, \bf, \bi = Bold^^J
+ \bolder .... \rm, \it = Medium, \bf, \bi = Black^^J%
+Variable font parameters:^^J
+ \wght ...... 100--1000 (default 400): weight of the strokes^^J
+ \opsz ...... 6--144 (default 14): optical size modifiation^^J
+ \ssoft ..... 0--100 (default 0): softness of serifs^^J
+ Use \wght=650 \ssoft=50 (for example). It acts like others font modifiers.^^J%
+Extended variants:^^J
+ \tf \ti .... Thin, ThinItalic^^J
+ \lf \li .... Light, LightItalic^^J
+ \mf \mi .... Medium, MediumItalic^^J
+ \kf \ki .... Black, BlackItalic^^J
+}}
+
+\_ifx\_f_wght\_undefined \_newcount\_f_wght \_f_wght=400 \_newpublic \_let\wght=\_f_wght \_fi
+\_ifx\_f_opsz\_undefined \_newcount\_f_opsz \_f_opsz=14 \_newpublic \_let\opsz=\_f_opsz \_fi
+\_ifx\_f_soft\_undefined \_newcount\_f_soft \_f_soft=0 \_newpublic \_let\ssoft=\_f_soft \_fi
+
+\_moddef \resetmod {\_fsetV wonky={} \_fvars {} {} Italic- Italic- }
+\_moddef \wonky {\_fsetV wonky=+ss01; }
+\_moddef \thin {\_f_wght=100 }
+\_moddef \light {\_f_wght=250 }
+\_moddef \normal {\_f_wght=400 }
+\_moddef \medium {\_f_wght=550 }
+\_let\_thinM=\thin \_let\_lightM=\light \_let\_mediumM=\medium
+
+\_famvardef \tf {\_thinM \_rm}
+\_famvardef \ti {\_thinM \_it}
+\_famvardef \lf {\_lightM \_rm}
+\_famvardef \li {\_lightM \_it}
+\_famvardef \mf {\_mediumM \_rm}
+\_famvardef \mi {\_mediumM \_it}
+\_famvardef \kf {\_mediumM \_bf}
+\_famvardef \ki {\_mediumM \_bi}
+
+\_initfontfamily % new font family must be initialized
+
+\_loadmath {[texgyrebonum-math]}
+
+\_endcode
+
+This is an example of a font-file used for a variable fonts.
+
+\begitems
+* Declare counters with the same names as parameters of axis.
+* Use `\_ifx\_...\_undefined` in order to more font-files with variable fonts can be loaded.
+* Use `axis={...}` in font features area in the `\_fontnamegen` macro.
+* Print about axis parameters of given font to the log using `\_wlog`.
+* The `\_f_getwght` macro should be declared same in all font-files with variable fonts.
+ It enables \bf and \bi variants implemented as the given shift of the current wght parameter.
+* You can declare more variants by `\famvardef`.
+* You can declare font modifiers and font variants using values of axis parameters.
+\enditems