summaryrefslogtreecommitdiff
path: root/macros/luatex/optex/fams-ini.opm
blob: 5ecbfc361f18ea846821a55495db83caa6df35b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
%% This is part of OpTeX project, see http://petr.olsak.net/optex

% Version <2020-02-28>. Loaded in format and secondly on demand by \fontfam[catalog]

\_famtext {Special name for printing a catalogue:}

\_faminfo [Catalogue] {Catalogue of all registered font families} {fonts-catalog} {}
\_famalias [Catalog]

\_famtext {Computer Modern like family:}

\_faminfo [Latin Modern] {TeX Gyre fonts based on Coputer Modern} {f-lmfonts}
   { -,\nbold,\sans,\sans\nbold,\slant,\ttset,\ttset\slant,\ttset\caps,%
       \ttprop,\ttprop\bolder,\quotset: {\rm\bf\it\bi}
       \caps: {\rm\it}
       \ttlight,\ttcond,\dunhill: {\rm\it} \upital: {\rm} }
\_famalias [LMfonts] \_famalias [Latin Modern Fonts]

\_famtext {TeX Gyre fonts based o Adobe 35:}

\_faminfo [Termes] {TeX Gyre Termes fonts based on Times} {f-termes}
   { -,\caps: {\rm\bf\it\bi} }
\_famalias [Times]

\_faminfo [Heros] {TeX Gyre Heros fonts based on Helvetica} {f-heros}
   { -,\caps,\cond,\caps\cond: {\rm\bf\it\bi} }
\_famalias [Helvetica]

\_faminfo [Adventor] {TeX Gyre Adventor based on Avantgarde Book} {f-adventor}
   { -,\caps: {\rm\bf\it\bi} }
\_famalias [Avantgarde Book]

\_faminfo [Bonum] {TeX Gyre Bonum fonts based on Bookman} {f-bonum}
   { -,\caps: {\rm\bf\it\bi} }
\_famalias [Bookman]

\_faminfo [Pagella] {TeX Gyre Pagella fonts based on Palatino} {f-pagella}
   { -,\caps: {\rm\bf\it\bi} }
\_famalias [Palation]

\_faminfo [Schola] {TeX Gyre Schola fonts based on New Century} {f-schola}
   { -,\caps: {\rm\bf\it\bi} }
\_famalias [New Century]

\_faminfo [Cursor] {TeX Gyre Cursor fonts based on Courier} {f-cursor}
   { -,\caps: {\rm\bf\it\bi} }
\_famalias [Courier]

\_famtext {Other fonts:}

\_faminfo [Linux Libertine] {Free fonts typicaly installed in systems} {f-libertine}
   { -: {\rm\bf\it\bi} \semi: {\rm\it} 
     \caps,\sans,\mono,\caps\sans: {\rm\bf\it\bi} -: {\initials\displ\keybr} }
\_famalias [Libertine] \_famalias [LinLibertine]

\_faminfo [Antykwa Torunska] {Traditional Polish font family} {f-antt}
   { -,\cond,\caps, \caps\cond: {\rm\bf\it\bi} 
    \medium,\cond\medium, \light, \cond\light:{\rm\it} }
\_famalias [Antt]

\_faminfo [Baskerville] {Free vaiants of classical Baskerville} {f-baskerville}
   { -,\caps: {\rm\bf\it\bi} }
\_famalias [BaskevilleF]

\_faminfo [Technika] {Fonts from visual style of CTU in Prague} {f-technika} 
   { -,\light,\book, \caps, \caps\book: {\rm\bf\it\bi} -:{\stencil} }
\_famalias [CTU Technika]

\_faminfo [XCharter] {An extension of Bitstream Charter} {f-xcharter}
   { -,\slant,\caps,\caps\slant: {\rm\bf\it\bi} }

\_faminfo [GFSBodoni] {Based on Bodoni with greek letters} {f-gfsbodoni}
   { -: {\rm\bf\it\bi} }

\_endcode

Once you have prepared a font family file with the name `f-<famname>.opm` and \TeX/ is
able to see it in your filesystem then you can type \^`\fontfam``[<famname>]` and
the file is read, so the information about font family is loaded. The name
`<famname>` must be lowercase and without spaces in the file name
`f-<famname>.opm`. On the other hand the `\fontfam` command gives more tolerance: 
you can write uppercase letters and spaces here. The spaces are ignored and 
letters are converted to lowercase.
For example `\fontfam [LM Fonts]` is equivalent to \fontfam [LMfonts] and both
commands load the file `f-lmfonts.opm`.

You can use your font file in sense of previous paragraph without
registering it. But problem is that such families are not listed when
`\fontfam[?]` is used and it is not included in font catalogue when
`\fontfam[catalog]` is printed. The list of families taken in the catalogue and
listed on the terminal is declared in two files: `fams-ini.opm` and
`fams-local.opm`. The second file is optional. User can create it and write to
it the information about user-defined families using the same syntax as in
existed file `fams-ini.opm`. 

The information from the user's `fams-local.opm` file has precedence.
For example `fams-ini.opm` declares aliases Times$\to$Termes etc. If you
have original Times purchased from Adobe then you can register your
declaration about Times family in `fams-local.opm`. When an user write
`\fontfam[Times]` then orginal Times (no Termes) is used in such case.

The `fams-ini.opm` and `fams-local.opm` files use the macros
`\_famifo`, `\_famalias` and `\_famtext`. See the example from
`fams-ini.tex`:

{\everytt={\typosize[8/10]\_let\_printverbline=\_printcodeline \medskip}
 \def\docfile{fams-ini.opm}
\verbinput (3-27) fams-ini.opm
... etc.
}
\medskip

The \^`\_faminfo` commad has the syntax:
\begtt \catcode`\<=13
\_faminfo [<Family Name>] {<comments>} {<file-name>}
     { <mod-plus-vars> }
\endtt
%
The `<mod-plus-vars>` data is used only when printing catalogue. It consists with
one or more pairs `<mods>: {<vars>} <mods>: {<vars>}` etc.
For each pair: each modifiers (separated by comma) are applied to each <vars>
and prepared sample is printed. The `-` character means no modifiers 
should be applied.

The \^`\_famalias` declares an alias to the last
declared family. 

The \^`\_famtext` writes a line to the terminal and to the log file when all
families are listed.