@airmark/quiver 0.38.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/package.json +3 -3
  2. package/quills/medal_citation/0.1.0/Quill.yaml +49 -55
  3. package/quills/medal_citation/0.1.0/example.md +13 -9
  4. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/TeXGyreTermes/GUST-FONT-LICENSE.txt +30 -0
  5. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/TeXGyreTermes/MANIFEST-TeX-Gyre-Termes.txt +201 -0
  6. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/TeXGyreTermes/README-TeX-Gyre-Termes.txt +317 -0
  7. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/TeXGyreTermes/texgyretermes-bold.otf +0 -0
  8. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/TeXGyreTermes/texgyretermes-bolditalic.otf +0 -0
  9. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/TeXGyreTermes/texgyretermes-italic.otf +0 -0
  10. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/TeXGyreTermes/texgyretermes-regular.otf +0 -0
  11. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/src/afam.typ +10 -71
  12. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/src/afcm.typ +10 -48
  13. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/src/citation.typ +57 -0
  14. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/src/config.typ +63 -0
  15. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/src/msm.typ +17 -52
  16. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/src/primitives.typ +64 -0
  17. package/quills/medal_citation/0.1.0/plate.typ +41 -24
  18. package/templates/medal_citation.md +10 -10
  19. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/LiberationSerif/LICENSE +0 -102
  20. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/LiberationSerif/LiberationSerif-Bold.ttf +0 -0
  21. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/LiberationSerif/LiberationSerif-BoldItalic.ttf +0 -0
  22. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/LiberationSerif/LiberationSerif-Italic.ttf +0 -0
  23. package/quills/medal_citation/0.1.0/packages/tonguetoquill-medal-citation/fonts/LiberationSerif/LiberationSerif-Regular.ttf +0 -0
@@ -0,0 +1,317 @@
1
+ ###########################################################################
2
+ ############ The TeX Gyre Collection of Fonts ############
3
+ ############ The font Termes ############
4
+ ###########################################################################
5
+
6
+ Font: TeX Gyre Termes
7
+ Authors: Bogus\l{}aw Jackowski and Janusz M. Nowacki
8
+ Version: 2.004
9
+ Date: 7 X 2009
10
+ Downloads: http://www.gust.org.pl/projects/e-foundry/tex-gyre/termes
11
+
12
+ License:
13
+ % Copyright 2006--2009 for TeX Gyre extensions by B. Jackowski
14
+ % and J.M. Nowacki (on behalf of TeX Users Groups).
15
+ % Vietnamese characters were added by Han The Thanh.
16
+ %
17
+ % This work can be freely used and distributed under
18
+ % the GUST Font License (GFL -- see GUST-FONT-LICENSE.txt)
19
+ % which is actually an instance of the LaTeX Project Public License
20
+ % (LPPL -- see http://www.latex-project.org/lppl.txt ).
21
+ %
22
+ % This work has the maintenance status "maintained". The Current Maintainer
23
+ % of this work is Bogus\l{}aw Jackowski and Janusz M. Nowacki.
24
+ %
25
+ % This work consists of the files listed
26
+ % in the MANIFEST-TeX-Gyre-Termes.txt file.
27
+
28
+ ###########################################################################
29
+ ############ A BRIEF DESCRIPTION OF THE PACKAGE ############
30
+ ###########################################################################
31
+
32
+ The current package contains the most recent version of the TeX Gyre
33
+ Termes family of fonts in the PostScript Type 1 and OpenType formats.
34
+ TeX Gyre Termes is based on the URW Nimbus Roman No9 L kindly released
35
+ by URW++ Design and Development Inc. under GFL (independently of the GPL
36
+ release accompanying Ghostscript). The Vietnamese glyphs were added
37
+ by Han The Thanh.
38
+
39
+ TeX Gyre Termes can be used as a replacement for the renowned
40
+ Times (new) Roman font (designed by Stanley Morison together with
41
+ Starling Burgess and Victor Lardent for the London newspaper ``The
42
+ Times''; it was first issued by the Monotype Corporation in 1932 --
43
+ see the article by Charles Bigelow for interesting details:
44
+ http://www.truetype-typography.com/articles/times.htm ).
45
+
46
+ Note that the widths of the TeX Gyre Termes glyphs are almost consistent with
47
+ the relevant Adobe metric data (for the glyphs from the Adobe Standard
48
+ Encoding):
49
+ ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles/base35/tib_____.afm
50
+ ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles/base35/tibi____.afm
51
+ ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles/base35/tii_____.afm
52
+ ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles/base35/tir_____.afm
53
+
54
+ Exceptions are: `logicalnot' and `minus' in the bold italic variant
55
+ (Adobe: 606, TeX Gyre: 570 which is consistent with other math glyphs)
56
+ and `exclamdown' in the regular italic variant (Adobe: 389, TeX Gyre: 333
57
+ which is consistent with the width of the `exclam' glyph).
58
+
59
+ * * *
60
+
61
+ The TeX Gyre project, following the Latin Modern project, aims at providing
62
+ a rich collection of diacritical characters in the attempt to cover as many
63
+ Latin-based scripts as possible. To our knowledge, the repertoire of
64
+ characters covers all European languages as well as some other Latin-based
65
+ alphabets such as Vietnamese and Navajo; at the request of users, recent
66
+ extensions (following the enhancement of the Latin Modern collection)
67
+ provide glyphs sufficient for typesetting of romanized transliterations
68
+ of Arabic and Sanskrit scripts. We have frequently used the information
69
+ presented by Michael Everson at the ``The Alphabets of Europe''
70
+ ( http://www.evertype.com/alphabets/ ) web site. If you know about European
71
+ languages that are not covered completely or if some glyphs have apparently
72
+ wrong shapes -- please let us know. Note, however, that Greek glyphs
73
+ bear provisional character.
74
+
75
+ The TeX Gyre Project was launched and is supported by TeX USERS GROUPS
76
+ (CS TUG, DANTE eV, GUST, NTG, TUG India, TUG). Hearty thanks to the
77
+ representatives of these groups and also to all people who helped with
78
+ comments, ideas, remarks, bug reports, objections, hints, consolations, etc.
79
+
80
+ * * *
81
+
82
+ The TeX Gyre Termes family consists of 4 text fonts: regular,
83
+ italic, bold and bold italic (qtmr, qtmri, qtmb, qtmbi).
84
+
85
+ The TeX Gyre Termes family can be freely used and distributed
86
+ under the GUST Font License (see above) which is actually
87
+ an instance of the LaTeX Project Public License
88
+ (LPPL; see http://www.latex-project.org/lppl.txt ).
89
+
90
+ * * *
91
+
92
+ The package consists of the files in the directories conforming
93
+ to the TeX Directory Structure (v. 1.1). The directories contain:
94
+
95
+ doc/fonts/tex-gyre this file, manifest, licence, test files,
96
+ and, moreover, selected files used as input
97
+ for generating OTFs (meant as a technical
98
+ documentation of the OTFs)
99
+ tex/latex/tex-gyre support for LaTeX (*.fd and *.sty files,
100
+ prepared by Marcin Woli\'nski)
101
+ fonts/enc/dvips/tex-gyre support for dvips (*.enc files);
102
+ NOTE: all fonts of the TeX Gyre family
103
+ share the same *.enc files with
104
+ a few exceptions: CS, QX, and RM encodings
105
+ for TeX Gyre Cursor (monospace) differ
106
+ from the standard ones (because of the
107
+ compatibility with Computer Modern
108
+ typewriter fonts requested by users),
109
+ and, moreover, CS, L7x, QX and RM encodings
110
+ for TeX Gyre Chorus exploit exceptionally
111
+ the `lslash_lslash' ligature
112
+ fonts/map/dvips/tex-gyre support for dvips (*.map files)
113
+ fonts/opentype/public/tex-gyre fonts in the OpenType format (*.otf files)
114
+ fonts/type1/public/tex-gyre PostScript (Type 1) font files and printer
115
+ font metric files (*.pfb and *.pfm,
116
+ respectively);
117
+ fonts/tfm/public/tex-gyre TeX font metric files (*.tfm) for:
118
+ -- CS (CSTUG) encoding (cs-*.tfm),
119
+ -- EC (Cork) encoding (ec-*.tfm),
120
+ -- L7x (Lithuanian) encoding (l7x-*.tfm),
121
+ -- QX (GUST) encoding (qx-*.tfm),
122
+ -- RM (Regular Math or OT1) encoding (rm-*.tfm),
123
+ -- Y&Y's TeX'n'ANSI aka LY1 encoding
124
+ (texnansi-*.tfm),
125
+ -- T5 (Vietnamese) encoding (t5-*.tfm),
126
+ -- Text Companion for EC fonts aka TS1
127
+ (ts1-*.tfm).
128
+ Encodings CS, EC, L7x, QX, RM, Y&Y, and T5
129
+ have their cap-small-caps counterparts
130
+ (*-sc.tfm).
131
+ fonts/afm/public/tex-gyre Adobe font metric files (*.afm);
132
+
133
+ Email contact: Bogus\l{}aw Jackowski aka Jacko, B_Jackowski@gust.org.pl
134
+
135
+ * * *
136
+
137
+ In ConTeXt, support for TeX Gyre Collection can be found in the typescript
138
+ definition files:
139
+
140
+ ... /tex/context/base/type-enc.tex
141
+ ... /tex/context/base/type-syn.tex
142
+ ... /tex/context/base/type-exa.tex
143
+ ... /tex/context/base/type-map.tex
144
+
145
+ Additional encoding and map files can be found under:
146
+
147
+ ... /texmf/fonts/map/pdftex/context
148
+ ... /texmf/fonts/enc/pdftex/context
149
+
150
+ * * *
151
+
152
+ All four font files, qtmb, qtmbi, qtmr, qtmri, contain the same repertoire
153
+ of 1089 characters, namely (these are the names used in Type 1 fonts):
154
+
155
+ A a a.sc Aacute aacute aacute.sc Abreve abreve abreve.sc Abreveacute
156
+ abreveacute abreveacute.sc Abrevedotbelow abrevedotbelow
157
+ abrevedotbelow.sc Abrevegrave abrevegrave abrevegrave.sc Abrevehookabove
158
+ abrevehookabove abrevehookabove.sc Abrevetilde abrevetilde abrevetilde.sc
159
+ Acaron acaron acaron.sc Acircumflex acircumflex acircumflex.sc
160
+ Acircumflexacute acircumflexacute acircumflexacute.sc Acircumflexdotbelow
161
+ acircumflexdotbelow acircumflexdotbelow.sc Acircumflexgrave
162
+ acircumflexgrave acircumflexgrave.sc Acircumflexhookabove
163
+ acircumflexhookabove acircumflexhookabove.sc Acircumflextilde
164
+ acircumflextilde acircumflextilde.sc Acute acute acute.dup acute.ts1
165
+ Acutecomb acutecomb Adblgrave adblgrave adblgrave.sc Adieresis adieresis
166
+ adieresis.sc Adotbelow adotbelow adotbelow.sc AE ae AE.dup ae.dup ae.sc
167
+ AEacute aeacute aeacute.sc Agrave agrave agrave.sc Ahookabove ahookabove
168
+ ahookabove.sc Alpha alpha Amacron amacron amacron.sc ampersand anglearc
169
+ angleleft angleright Aogonek aogonek aogonek.sc Aogonekacute aogonekacute
170
+ aogonekacute.sc approxequal Aring aring aring.sc Aringacute aringacute
171
+ aringacute.sc arrowdown arrowleft arrowright arrowup asciicircum
172
+ asciitilde asterisk asteriskmath at at.alt Atilde atilde atilde.sc B b
173
+ b.sc backslash baht bar Beta beta bigcircle blanksymbol born braceleft
174
+ braceright bracketleft bracketright Breve breve breve.ts1 Breveacute
175
+ breveacute brevebelow brevebelowcomb brevebelowinverted
176
+ brevebelowinvertedcomb Brevecomb brevecomb Brevegrave brevegrave
177
+ Brevehookabove brevehookabove Breveinverted breveinverted
178
+ Breveinvertedcomb breveinvertedcomb Brevetilde brevetilde brokenbar
179
+ bullet C c c.sc Cacute cacute cacute.sc Caron caron caron.ts1 Caroncomb
180
+ caroncomb Ccaron ccaron ccaron.sc Ccedilla ccedilla ccedilla.sc
181
+ Ccircumflex ccircumflex ccircumflex.sc Cdotaccent cdotaccent
182
+ cdotaccent.sc cedilla cedilla.dup cent cent.oldstyle centigrade Chi chi
183
+ Circumflex circumflex circumflex.dup Circumflexacute circumflexacute
184
+ Circumflexcomb circumflexcomb Circumflexgrave circumflexgrave
185
+ Circumflexhookabove circumflexhookabove Circumflextilde circumflextilde
186
+ colon colonmonetary comma commaaccent commaaccentcomb copyleft copyright
187
+ copyright.alt currency cwm cwmascender cwmcapital cyrBreve cyrbreve
188
+ cyrFlex cyrflex D d d.sc dagger daggerdbl dblbracketleft dblbracketright
189
+ dblGrave dblgrave dblgrave.ts1 dblGravecomb dblgravecomb dblverticalbar
190
+ Dcaron dcaron dcaron.sc Dcroat dcroat dcroat.sc Ddotbelow ddotbelow
191
+ ddotbelow.sc degree Delta delta diameter died Dieresis dieresis
192
+ dieresis.dup dieresis.ts1 Dieresisacute dieresisacute Dieresiscaron
193
+ dieresiscaron Dieresiscomb dieresiscomb Dieresisgrave dieresisgrave
194
+ discount divide divorced Dlinebelow dlinebelow dlinebelow.sc dollar
195
+ dollar.oldstyle dong Dotaccent dotaccent Dotaccentcomb dotaccentcomb
196
+ dotbelow dotbelowcomb dotlessi dotlessi.sc dotlessj dotlessj.dup
197
+ dotlessj.sc E e e.sc Eacute eacute eacute.sc Ebreve ebreve ebreve.sc
198
+ Ecaron ecaron ecaron.sc Ecircumflex ecircumflex ecircumflex.sc
199
+ Ecircumflexacute ecircumflexacute ecircumflexacute.sc Ecircumflexdotbelow
200
+ ecircumflexdotbelow ecircumflexdotbelow.sc Ecircumflexgrave
201
+ ecircumflexgrave ecircumflexgrave.sc Ecircumflexhookabove
202
+ ecircumflexhookabove ecircumflexhookabove.sc Ecircumflextilde
203
+ ecircumflextilde ecircumflextilde.sc Edblgrave edblgrave edblgrave.sc
204
+ Edieresis edieresis edieresis.sc Edotaccent edotaccent edotaccent.sc
205
+ Edotbelow edotbelow edotbelow.sc Egrave egrave egrave.sc Ehookabove
206
+ ehookabove ehookabove.sc eight eight.oldstyle eight.prop
207
+ eight.taboldstyle ell ellipsis Emacron emacron emacron.sc emdash endash
208
+ Eng eng eng.sc Eogonek eogonek eogonek.sc Eogonekacute eogonekacute
209
+ eogonekacute.sc Epsilon epsilon epsilon.alt equal Ereversed ereversed
210
+ ereversed.sc estimated Eta eta Eth eth eth.sc Etilde etilde etilde.sc
211
+ eturned eturned.sc Euro exclam exclamdown F f f.sc f_k ff ffi ffl fi five
212
+ five.oldstyle five.prop five.taboldstyle fl florin four four.oldstyle
213
+ four.prop four.taboldstyle fraction fraction.alt G g g.sc Gacute gacute
214
+ gacute.sc Gamma gamma Gbreve gbreve gbreve.sc Gcaron gcaron gcaron.sc
215
+ Gcedilla gcedilla Gcircumflex gcircumflex gcircumflex.sc Gcommaaccent
216
+ gcommaaccent gcommaaccent.sc Gdotaccent gdotaccent gdotaccent.sc
217
+ Germandbls germandbls germandbls.dup germandbls.sc gnaborretni Grave
218
+ grave grave.ts1 Gravecomb gravecomb greater greaterequal
219
+ greaterorequalslant guarani guillemotleft guillemotright guilsinglleft
220
+ guilsinglright H h h.sc Hbar hbar hbar.sc Hbrevebelow hbrevebelow
221
+ hbrevebelow.sc Hcircumflex hcircumflex hcircumflex.sc Hdieresis hdieresis
222
+ hdieresis.sc Hdotbelow hdotbelow hdotbelow.sc Hookabove hookabove
223
+ Hookabovecomb hookabovecomb horn Htilde htilde htilde.sc Hungarumlaut
224
+ hungarumlaut hungarumlaut.ts1 Hungarumlautcomb hungarumlautcomb hyphen
225
+ hyphen.alt hyphen.dup hyphen.prop hyphendbl hyphendbl.alt I i i.sc Iacute
226
+ iacute iacute.sc Ibreve ibreve ibreve.sc Icaron icaron icaron.sc
227
+ Icircumflex icircumflex icircumflex.sc Idblgrave idblgrave idblgrave.sc
228
+ Idieresis idieresis idieresis.sc Idieresisacute idieresisacute
229
+ idieresisacute.sc Idotaccent idotaccent.sc Idotbelow idotbelow
230
+ idotbelow.sc Igrave igrave igrave.sc Ihookabove ihookabove ihookabove.sc
231
+ IJ ij ij.sc Imacron imacron Imacron.alt imacron.alt imacron.alt.sc
232
+ imacron.sc infinity interrobang Iogonek iogonek iogonek.sc Iogonekacute
233
+ iogonekacute iogonekacute.sc Iota iota Itilde itilde itilde.sc J j j.sc
234
+ J_caron Jacute jacute jacute.sc jcaron jcaron.sc Jcircumflex jcircumflex
235
+ jcircumflex.sc K k k.sc Kappa kappa Kcedilla kcedilla Kcommaaccent
236
+ kcommaaccent kcommaaccent.sc L l l.sc Lacute lacute lacute.sc Lambda
237
+ lambda Lcaron lcaron lcaron.sc Lcedilla lcedilla Lcommaaccent
238
+ lcommaaccent lcommaaccent.sc Ldot ldot ldot.sc Ldotbelow ldotbelow
239
+ ldotbelow.sc Ldotbelowmacron ldotbelowmacron ldotbelowmacron.sc leaf less
240
+ lessequal lessorequalslant linebelow linebelowcomb lira logicalnot longs
241
+ lozenge lscript Lslash lslash lslash.sc Ltilde ltilde ltilde.sc M m m.sc
242
+ Macron macron Macron.alt macron.alt macron.dup macron.ts1 macronbelow
243
+ macronbelowcomb Macroncomb macroncomb married Mdotbelow mdotbelow
244
+ mdotbelow.sc mho minus minusplus Mu mu mu.alt multiply musicalnote N n
245
+ n.sc Nacute nacute nacute.sc naira nbspace Ncaron ncaron ncaron.sc
246
+ Ncedilla ncedilla Ncommaaccent ncommaaccent ncommaaccent.sc Ndotaccent
247
+ ndotaccent ndotaccent.sc Ndotbelow ndotbelow ndotbelow.sc nine
248
+ nine.oldstyle nine.prop nine.taboldstyle notequal Ntilde ntilde ntilde.sc
249
+ Nu nu numbersign numero O o o.sc Oacute oacute oacute.sc Obreve obreve
250
+ obreve.sc Ocaron ocaron ocaron.sc Ocircumflex ocircumflex ocircumflex.sc
251
+ Ocircumflexacute ocircumflexacute ocircumflexacute.sc Ocircumflexdotbelow
252
+ ocircumflexdotbelow ocircumflexdotbelow.sc Ocircumflexgrave
253
+ ocircumflexgrave ocircumflexgrave.sc Ocircumflexhookabove
254
+ ocircumflexhookabove ocircumflexhookabove.sc Ocircumflextilde
255
+ ocircumflextilde ocircumflextilde.sc Odblgrave odblgrave odblgrave.sc
256
+ Odieresis odieresis odieresis.sc Odotbelow odotbelow odotbelow.sc OE oe
257
+ OE.dup oe.dup oe.sc ogonek Ograve ograve ograve.sc ohm Ohookabove
258
+ ohookabove ohookabove.sc Ohorn ohorn ohorn.sc Ohornacute ohornacute
259
+ ohornacute.sc Ohorndotbelow ohorndotbelow ohorndotbelow.sc Ohorngrave
260
+ ohorngrave ohorngrave.sc Ohornhookabove ohornhookabove ohornhookabove.sc
261
+ Ohorntilde ohorntilde ohorntilde.sc Ohungarumlaut ohungarumlaut
262
+ ohungarumlaut.sc Omacron omacron omacron.sc Omega omega Omicron omicron
263
+ one one.oldstyle one.prop one.superior one.taboldstyle onehalf onequarter
264
+ Oogonek oogonek oogonek.sc Oogonekacute oogonekacute oogonekacute.sc
265
+ openbullet ordfeminine ordmasculine Orogate orogate orogate.sc Oslash
266
+ oslash Oslash.dup oslash.dup oslash.sc Oslashacute oslashacute
267
+ oslashacute.sc Otilde otilde otilde.sc P p p.sc paragraph paragraph.alt
268
+ parenleft parenright partialdiff percent period periodcentered permyriad
269
+ perthousand perthousandzero peso Phi phi phi.alt Pi pi pi.alt plus
270
+ plusminus Psi psi published Q q q.sc question questiondown
271
+ quillbracketleft quillbracketright quotedbl quotedblbase quotedblbase.ts1
272
+ quotedblleft quotedblright quoteleft quoteleft.dup quoteright
273
+ quoteright.dup quotesinglbase quotesinglbase.ts1 quotesingle
274
+ quotesingle.ts1 R r r.sc Racute racute racute.sc radical Rcaron rcaron
275
+ rcaron.sc Rcedilla rcedilla Rcommaaccent rcommaaccent rcommaaccent.sc
276
+ Rdblgrave rdblgrave rdblgrave.sc Rdotaccent rdotaccent rdotaccent.sc
277
+ Rdotbelow rdotbelow rdotbelow.sc Rdotbelowmacron rdotbelowmacron
278
+ rdotbelowmacron.sc recipe referencemark registered registered.alt Rho rho
279
+ rho.alt Ring ring Ringacute ringacute Ringcomb ringcomb ringhalfleft
280
+ ringhalfright S s s.sc Sacute sacute sacute.sc Scaron scaron scaron.sc
281
+ Scedilla scedilla scedilla.sc schwa Scircumflex scircumflex
282
+ scircumflex.sc Scommaaccent scommaaccent scommaaccent.sc Sdotbelow
283
+ sdotbelow sdotbelow.sc section semicolon servicemark seven seven.oldstyle
284
+ seven.prop seven.taboldstyle sfthyphen Sigma sigma sigma1 six
285
+ six.oldstyle six.prop six.taboldstyle slash space star sterling summation
286
+ suppress T t t.sc Tau tau Tcaron tcaron tcaron.sc Tcedilla tcedilla
287
+ tcedilla.sc Tcommaaccent tcommaaccent tcommaaccent.sc Tdieresis tdieresis
288
+ tdieresis.sc Tdotbelow tdotbelow tdotbelow.sc Theta theta theta.alt Thorn
289
+ thorn thorn.sc three three.oldstyle three.prop three.superior
290
+ three.taboldstyle threequarters threequartersemdash tie tieaccentcapital
291
+ tieaccentcapital.new tieaccentlowercase tieaccentlowercase.new Tilde
292
+ tilde tilde.dup tildebelow tildebelowcomb Tildecomb tildecomb tildelow
293
+ Tlinebelow tlinebelow tlinebelow.sc trademark Ttilde ttilde ttilde.sc
294
+ twelveudash two two.oldstyle two.prop two.superior two.taboldstyle U u
295
+ u.sc Uacute uacute uacute.sc Ubreve ubreve ubreve.sc Ubrevebelowinverted
296
+ ubrevebelowinverted ubrevebelowinverted.sc Ucaron ucaron ucaron.sc
297
+ Ucircumflex ucircumflex ucircumflex.sc Udblgrave udblgrave udblgrave.sc
298
+ Udieresis udieresis udieresis.sc Udieresisacute udieresisacute
299
+ udieresisacute.sc Udieresiscaron udieresiscaron udieresiscaron.sc
300
+ Udieresisgrave udieresisgrave udieresisgrave.sc Udotbelow udotbelow
301
+ udotbelow.sc Ugrave ugrave ugrave.sc Uhookabove uhookabove uhookabove.sc
302
+ Uhorn uhorn uhorn.sc Uhornacute uhornacute uhornacute.sc Uhorndotbelow
303
+ uhorndotbelow uhorndotbelow.sc Uhorngrave uhorngrave uhorngrave.sc
304
+ Uhornhookabove uhornhookabove uhornhookabove.sc Uhorntilde uhorntilde
305
+ uhorntilde.sc Uhungarumlaut uhungarumlaut uhungarumlaut.sc Umacron
306
+ umacron umacron.sc underscore undertie undertieinverted uni2010 uni2011
307
+ uni2423 Uogonek uogonek uogonek.sc Upsilon upsilon Uring uring uring.sc
308
+ Utilde utilde utilde.sc V v v.sc W w w.sc Wacute wacute wacute.sc
309
+ Wcircumflex wcircumflex wcircumflex.sc Wdieresis wdieresis wdieresis.sc
310
+ weierstrass Wgrave wgrave wgrave.sc won X x x.sc Xi xi Y y y.sc Yacute
311
+ yacute yacute.sc Ycircumflex ycircumflex ycircumflex.sc Ydieresis
312
+ ydieresis ydieresis.sc Ydotbelow ydotbelow ydotbelow.sc yen Ygrave ygrave
313
+ ygrave.sc Yhookabove yhookabove yhookabove.sc Ytilde ytilde ytilde.sc Z z
314
+ z.sc Zacute zacute zacute.sc Zcaron zcaron zcaron.sc Zdotaccent
315
+ zdotaccent zdotaccent.sc Zdotbelow zdotbelow zdotbelow.sc zero
316
+ zero.oldstyle zero.prop zero.slash zero.taboldstyle Zeta zeta
317
+
@@ -1,71 +1,10 @@
1
- #let font = "Liberation Serif"
2
-
3
- #let blank(v) = v == none or v == [] or v == ""
4
-
5
- #let ordinal(n) = {
6
- let mod = calc.rem(n, 10)
7
- let teen = n >= 11 and n <= 13
8
- let suffix = if teen or mod == 0 or mod >= 4 { "th" }
9
- else if mod == 1 { "st" }
10
- else if mod == 2 { "nd" }
11
- else { "rd" }
12
- str(n) + suffix
13
- }
14
-
15
- #let month-year(d) = upper(d.display("[month repr:long]")) + " " + str(d.year())
16
-
17
- #let citation(f) = {
18
- set page(paper: "us-letter", margin: 0pt)
19
- set text(font: font, size: 15pt, fill: black, hyphenate: false)
20
- set par(leading: 0.5em, spacing: 0.5em)
21
-
22
- place(top + left, dx: 187pt, dy: 32.6pt, image("medal-afam.png", width: 242.9pt))
23
-
24
- place(center + top, dy: 164.8pt, text(size: 21.5pt, weight: "bold")[DEPARTMENT OF THE AIR FORCE])
25
- place(center + top, dy: 208.1pt, text(size: 11.7pt, weight: "bold")[THIS IS TO CERTIFY THAT])
26
- place(center + top, dy: 222.7pt, text(size: 15.6pt, weight: "bold")[THE AIR AND SPACE ACHIEVEMENT MEDAL])
27
- // A later award centers the cluster under the medal name. Basic prints no line.
28
- let cluster = if blank(f.oak_leaf_cluster) or f.oak_leaf_cluster == "Basic" { none } else { upper(f.oak_leaf_cluster) }
29
- let drop = if cluster == none { 0pt } else { 16pt }
30
- if cluster != none {
31
- place(center + top, dy: 250pt + drop, text(size: 11.7pt, weight: "bold", cluster))
32
- }
33
- place(center + top, dy: 275pt + drop, text(size: 11.7pt, weight: "bold")[HAS BEEN AWARDED TO])
34
- place(center + top, dy: 293pt + drop, text(size: 9.8pt, upper(f.rank)))
35
- place(center + top, dy: 308.5pt + drop, text(size: 11.7pt, weight: "bold")[FOR])
36
- place(center + top, dy: 326.6pt + drop, text(size: 11.7pt, upper(f.service)))
37
- place(center + top, dy: 343.3pt + drop, text(size: 9.8pt)[#f.period_from #h(8pt) TO #h(8pt) #f.period_to])
38
- place(center + top, dy: 369.8pt + drop, text(size: 11.7pt, weight: "bold")[ACCOMPLISHMENTS])
39
- // The seal is 69.5pt tall and stays on the page, so the signature stops here.
40
- let sign-dy = 716pt
41
- let given-dy = sign-dy - 16pt
42
- let story-dy = 406.7pt + drop
43
- let story-h = given-dy - 8pt - story-dy
44
- // Half an inch keeps the 15pt lines off the page edge.
45
- let side = 36pt
46
- let story-w = 612pt - side - side
47
- let story = block(width: story-w, {
48
- set par(justify: true, leading: 0.5em, spacing: 0.65em)
49
- // A pasted line break reflows across the block.
50
- show linebreak: [ ]
51
- show parbreak: [ ]
52
- f.accomplishments
53
- })
54
- place(top + left, dx: side, dy: story-dy, block(width: story-w, height: story-h, clip: true, story))
55
-
56
- place(top + left, dx: 464.7pt, dy: sign-dy - 8pt, image("seal.png", width: 69.5pt))
57
- place(top + left, dx: 82.7pt, dy: given-dy, text(size: 11.7pt)[
58
- GIVEN UNDER MY HAND THIS
59
- #h(12pt)
60
- #if type(f.signed_on) == datetime {
61
- ordinal(f.signed_on.day())
62
- h(12pt)
63
- [DAY OF]
64
- h(12pt)
65
- month-year(f.signed_on)
66
- }
67
- ])
68
- place(top + left, dx: 82.7pt, dy: sign-dy, line(length: 211pt, stroke: 0.6pt))
69
- place(top + left, dx: 82.7pt, dy: sign-dy + 15.4pt, text(size: 11.7pt, f.commander_name))
70
- place(top + left, dx: 82.7pt, dy: sign-dy + 28.9pt, text(size: 11.7pt, f.commander_title))
71
- }
1
+ #import "citation.typ": citation as base
2
+
3
+ #let citation(f) = base(
4
+ f,
5
+ image-file: "medal-afam.png",
6
+ title: [DEPARTMENT OF THE AIR FORCE],
7
+ preamble: ([THIS IS TO CERTIFY THAT],),
8
+ medal-name: [THE AIR AND SPACE ACHIEVEMENT MEDAL],
9
+ awarded: [HAS BEEN AWARDED TO],
10
+ )
@@ -1,48 +1,10 @@
1
- #let font = "Liberation Serif"
2
-
3
- #let blank(v) = v == none or v == [] or v == ""
4
-
5
- #let citation(f) = {
6
- set page(paper: "us-letter", margin: 0pt)
7
- set text(font: font, size: 15pt, fill: black, hyphenate: false)
8
- set par(leading: 0.5em, spacing: 0.5em)
9
-
10
- // Headings sit 3pt right of the page center, matching the certificate.
11
- let heading(dy, size, weight, body) = {
12
- place(center + top, dx: 3pt, dy: dy, text(size: size, weight: weight, body))
13
- }
14
-
15
- place(top + left, dx: 203.3pt, dy: 57.7pt, image("medal-afcm.png", width: 211.6pt))
16
-
17
- heading(185.6pt, 24.5pt, "bold")[DEPARTMENT OF THE AIR FORCE]
18
- heading(226.2pt, 13.7pt, "bold")[THIS IS TO CERTIFY THAT]
19
- heading(246.3pt, 17.6pt, "bold")[THE AIR AND SPACE COMMENDATION MEDAL]
20
- // The medal name ends near 264pt and the next heading starts at 287pt.
21
- let cluster = if blank(f.oak_leaf_cluster) or f.oak_leaf_cluster == "Basic" { none } else { upper(f.oak_leaf_cluster) }
22
- if cluster != none {
23
- heading(267.5pt, 11.7pt, "bold", cluster)
24
- }
25
- heading(288.6pt, 13.7pt, "bold")[HAS BEEN AWARDED TO]
26
- heading(305.1pt, 9.8pt, "regular", upper(f.rank))
27
- heading(332.6pt, 13.7pt, "bold")[FOR]
28
- heading(359.6pt, 11.7pt, "regular", upper(f.service))
29
- heading(383.4pt, 9.8pt, "regular")[#f.period_from #h(8pt) TO #h(8pt) #f.period_to]
30
- heading(408.4pt, 13.7pt, "bold")[ACCOMPLISHMENTS]
31
- let side = 36pt
32
- let story-w = 612pt - side - side
33
- let story-dy = 447pt
34
- let story = block(width: story-w, {
35
- set par(justify: true, leading: 0.5em, spacing: 0.65em)
36
- show linebreak: [ ]
37
- show parbreak: [ ]
38
- f.accomplishments
39
- })
40
- place(top + left, dx: side, dy: story-dy, story)
41
-
42
- heading(716pt, 9.8pt, "regular")[GIVEN UNDER MY HAND]
43
- heading(730pt, 9.8pt, "regular", f.signed_on)
44
- place(top + left, dx: 465.6pt, dy: 720pt, image("seal.png", width: 69.7pt))
45
- place(top + left, dx: 82.8pt, dy: 746pt, line(length: 200pt, stroke: 0.6pt))
46
- place(top + left, dx: 82.8pt, dy: 754pt, text(size: 11.7pt, f.commander_name))
47
- place(top + left, dx: 82.8pt, dy: 768pt, text(size: 11.7pt, f.commander_title))
48
- }
1
+ #import "citation.typ": citation as base
2
+
3
+ #let citation(f) = base(
4
+ f,
5
+ image-file: "medal-afcm.png",
6
+ title: [DEPARTMENT OF THE AIR FORCE],
7
+ preamble: ([THIS IS TO CERTIFY THAT],),
8
+ medal-name: [THE AIR AND SPACE COMMENDATION MEDAL],
9
+ awarded: [HAS BEEN AWARDED TO],
10
+ )
@@ -0,0 +1,57 @@
1
+ #import "config.typ": *
2
+ #import "primitives.typ": *
3
+
4
+ // One certificate. A medal supplies its image, its title, the lines between the
5
+ // title and the medal's name, and the line that names the recipient; everything
6
+ // else is shared.
7
+ //
8
+ // - f (dictionary): oak_leaf_cluster, recipient, reason, period_from, period_to,
9
+ // accomplishments, signed_on, signer_name, signer_grade,
10
+ // signer_title, footer, an array of (label, value) pairs, and
11
+ // signing_field, a function (width, height) => the widget over the signing
12
+ // space.
13
+ // - preamble (array): lines at `preamble-size`, a line apart.
14
+ #let citation(
15
+ f,
16
+ image-file: none,
17
+ title: none,
18
+ preamble: (),
19
+ preamble-size: size.certify,
20
+ medal-name: none,
21
+ awarded: none,
22
+ ) = {
23
+ set page(paper: "us-letter", margin: 0pt)
24
+ set text(font: font, size: size.line, fill: black, hyphenate: false)
25
+ set par(spacing: 0pt)
26
+
27
+ let signer = (
28
+ if not blank(f.signer_name) { text(weight: "bold", f.signer_name) },
29
+ f.signer_grade,
30
+ f.signer_title,
31
+ ).filter(l => not blank(l))
32
+ closing-block(f.signed_on, signer, signing-field: f.signing_field)
33
+ footer-block(f.footer)
34
+
35
+ v(medal-image.top)
36
+ align(center, image(image-file, height: medal-image.height))
37
+ heading-line(title, above: pitch.title, size: size.title)
38
+ for (i, l) in preamble.enumerate() {
39
+ let above = if i == 0 { pitch.preamble * preamble-size } else { pitch.single }
40
+ heading-line(l, above: above, size: preamble-size)
41
+ }
42
+ heading-line(medal-name, above: pitch.medal, size: size.medal)
43
+ let cluster = f.oak_leaf_cluster
44
+ if not blank(cluster) {
45
+ heading-line(cluster, above: pitch.cluster, size: size.heading)
46
+ }
47
+ heading-line(awarded, above: pitch.awarded, size: size.heading)
48
+ heading-line(upper(f.recipient), above: pitch.recipient, bold: true)
49
+ heading-line([FOR], above: pitch.for-line)
50
+ heading-line(upper(f.reason), above: pitch.reason, bold: true)
51
+ let period = if not (blank(f.period_from) and blank(f.period_to)) [#f.period_from TO #f.period_to]
52
+ heading-line(period, above: pitch.single, bold: true)
53
+ heading-line([ACCOMPLISHMENTS], above: pitch.accomplishments, size: size.heading)
54
+ v(accomplishments.gap)
55
+
56
+ accomplishments-block(f.accomplishments, closing.given - closing.clearance)
57
+ }
@@ -0,0 +1,63 @@
1
+ // Type and geometry every citation shares, in points on a us-letter page.
2
+
3
+ #let font = "TeX Gyre Termes"
4
+
5
+ #let size = (
6
+ title: 22pt,
7
+ medal: 18pt,
8
+ certify: 16pt,
9
+ heading: 14pt,
10
+ line: 12pt,
11
+ )
12
+
13
+ // Baseline to baseline, from the line above; `title` from the medal image's foot,
14
+ // and `preamble` a multiple of the preamble's size.
15
+ #let pitch = (
16
+ title: 17.5pt,
17
+ preamble: 2.7,
18
+ medal: 32pt,
19
+ cluster: 18pt,
20
+ awarded: 30.5pt,
21
+ recipient: 28pt,
22
+ for-line: 29.5pt,
23
+ reason: 27.5pt,
24
+ accomplishments: 27pt,
25
+ single: 14pt,
26
+ )
27
+
28
+ #let medal-image = (top: 76pt, height: 136pt)
29
+
30
+ // The paragraph sets at the largest size that fits its space, down to `min`.
31
+ #let accomplishments = (
32
+ max: 10pt,
33
+ min: 8pt,
34
+ step: 0.25pt,
35
+ side: 72pt,
36
+ pitch: 1.01em,
37
+ // The clip's top stands `gap` below the ACCOMPLISHMENTS baseline, and the first
38
+ // baseline `top-edge` below the clip's top, room for an accented capital.
39
+ gap: 2.5pt,
40
+ top-edge: 0.9em,
41
+ )
42
+
43
+ #let closing = (
44
+ // The baseline of GIVEN UNDER MY HAND; the date's is a line below it.
45
+ given: 637pt,
46
+ // The paragraph ends this far above the "GIVEN UNDER MY HAND" baseline.
47
+ clearance: 20pt,
48
+ rule: 693pt,
49
+ column: 72pt,
50
+ rule-length: 180pt,
51
+ // The signer writes in the space this tall above the rule.
52
+ signing: 38pt,
53
+ name-drop: 13.5pt,
54
+ seal: (x: 459pt, y: 654pt, size: 68pt),
55
+ )
56
+
57
+ // The administrative line at the page foot: each entry's left edge, in the order
58
+ // Special Order, Condition, PAS, RDP.
59
+ #let footer = (
60
+ baseline: 751.5pt,
61
+ size: 8pt,
62
+ stops: (139pt, 251pt, 328pt, 467pt),
63
+ )
@@ -1,53 +1,18 @@
1
- #let font = "Liberation Serif"
1
+ #import "citation.typ": citation as base
2
+ #import "config.typ": size
2
3
 
3
- #let blank(v) = v == none or v == [] or v == ""
4
-
5
- #let citation(f) = {
6
- set page(paper: "us-letter", margin: 0pt)
7
- set text(font: font, size: 15pt, fill: black, hyphenate: false)
8
- set par(leading: 0.5em, spacing: 0.5em)
9
-
10
- // Headings sit 2.4pt right of the page center, matching the certificate.
11
- let heading(dy, size, weight, body) = {
12
- place(center + top, dx: 2.4pt, dy: dy, text(size: size, weight: weight, body))
13
- }
14
-
15
- place(top + left, dx: 187.6pt, dy: 47.3pt, image("medal-msm.png", width: 242.2pt))
16
-
17
- heading(162.7pt, 22.5pt, "bold")[THE UNITED STATES OF AMERICA]
18
- heading(188.0pt, 13.7pt, "regular")[TO ALL WHO SHALL SEE THESE PRESENTS, GREETING:]
19
- heading(203.9pt, 13.7pt, "regular")[THIS IS TO CERTIFY THAT THE PRESIDENT OF THE UNITED STATES OF]
20
- heading(219.8pt, 13.7pt, "regular")[AMERICA AUTHORIZED BY EXECUTIVE ORDER, 16 JANUARY 1969]
21
- heading(235.6pt, 13.7pt, "regular")[HAS]
22
- heading(251.5pt, 13.7pt, "regular")[AWARDED]
23
- heading(270.2pt, 17.6pt, "bold")[THE MERITORIOUS SERVICE MEDAL]
24
- // The medal name ends near 288pt and "TO" starts at 314pt.
25
- let cluster = if blank(f.oak_leaf_cluster) or f.oak_leaf_cluster == "Basic" { none } else { upper(f.oak_leaf_cluster) }
26
- if cluster != none {
27
- heading(293.5pt, 11.7pt, "bold", cluster)
28
- }
29
- heading(314.9pt, 12.7pt, "bold")[TO]
30
- heading(339.9pt, 9.8pt, "regular", upper(f.rank))
31
- heading(352pt, 12.7pt, "bold")[FOR]
32
- heading(366pt, 11.7pt, "regular", upper(f.service))
33
- heading(379pt, 9.8pt, "regular")[#f.period_from #h(8pt) TO #h(8pt) #f.period_to]
34
- heading(391pt, 12.7pt, "bold")[ACCOMPLISHMENTS]
35
- let side = 36pt
36
- let story-w = 612pt - side - side
37
- let story-dy = 429pt
38
- let story = block(width: story-w, {
39
- set par(justify: true, leading: 0.5em, spacing: 0.65em)
40
- show linebreak: [ ]
41
- show parbreak: [ ]
42
- f.accomplishments
43
- })
44
- place(top + left, dx: side, dy: story-dy, story)
45
-
46
- heading(694pt, 9.8pt, "regular")[GIVEN UNDER MY HAND]
47
- heading(706pt, 9.8pt, "regular", f.signed_on)
48
- place(top + left, dx: 82.7pt, dy: 726pt, line(length: 158pt, stroke: 0.6pt))
49
- place(top + left, dx: 271.8pt, dy: 718pt, image("seal.png", width: 69.6pt))
50
- place(top + left, dx: 82.7pt, dy: 734pt, text(size: 11.7pt, f.commander_name))
51
- place(top + left, dx: 82.7pt, dy: 748pt, text(size: 11.7pt, f.commander_grade))
52
- place(top + left, dx: 82.7pt, dy: 762pt, text(size: 11.7pt, f.commander_title))
53
- }
4
+ #let citation(f) = base(
5
+ f,
6
+ image-file: "medal-msm.png",
7
+ title: [THE UNITED STATES OF AMERICA],
8
+ preamble: (
9
+ [TO ALL WHO SHALL SEE THESE PRESENTS, GREETING:],
10
+ [THIS IS TO CERTIFY THAT THE PRESIDENT OF THE UNITED STATES OF],
11
+ [AMERICA AUTHORIZED BY EXECUTIVE ORDER, 16 JANUARY 1969],
12
+ [HAS],
13
+ [AWARDED],
14
+ ),
15
+ preamble-size: size.line,
16
+ medal-name: [THE MERITORIOUS SERVICE MEDAL],
17
+ awarded: [TO],
18
+ )