Projekt: Hesla Jednoty bratrské/Jannon
Instalace řezu Jannon Text Moderne do TeXu.
Teorie
editovat- Petr Olšák (2013-11-27): TeX – 6 (fonty)
Volba řezu
editovatV souboru maker si volím použitý font:
% fonty
\input ofs [sjannon] \loadingenc=1 % Olšákův fontový systém, ke stáhnutí na: ftp://math.feld.cvut.cz/pub/olsak/ofs/
% Moved to: http:/petr.olsak.net/ftp/olsak/ofs/
% \input ofs [sjbasker] % (pro případ Baskerville)
\setfonts [JannonTextModerne/10pt] % základní font pro Hesla
% \setfonts [JBaskervilleText/10pt] %
% \setfonts [ComputerModern/10pt] %
Pokud příslušný řez nemám nainstalovaný, dostanu v logu chybovou hlášku:
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdfcsplain 2019.3.4) 16 MAR 2019 13:21 entering extended mode restricted \write18 enabled. %&-line parsing enabled. encTeX v. Jun. 2004, reencoding enabled **hesla20.tex (./hesla20.tex The format: csplain <Apr. 2016>. The cs-fonts are preloaded and A4 size implicitly defined. The utf8->iso8859-2 re-encoding of Czech+Slovak alphabet activated by encTeX (/usr/share/texlive/texmf-dist/tex/generic/ofs/ofs.tex OFS (Olsak's Font System) based on plain initialized. <May 2004> \loadingenc=\count28 (/usr/share/texlive/texmf-dist/tex/generic/ofs/ofsdef.tex)) ! I can't find file `sjannon'. \next ... ^^X#1\let \next =\relax \else \input #1 \fi \next \readOFSoptions ...xt =\processOFSoption \next #1, ^^X, l.22 \input ofs [sjannon] \loadingenc=1 % Olšákův fontový systém, ke s...
Pokud bylo (na starším počítači HP EliteBook 8530w) vše správně nainstalováno, bylo v logu:
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdfcsplain 2018.10.13) 16 MAR 2019 14:03 entering extended mode restricted \write18 enabled. %&-line parsing enabled. encTeX v. Jun. 2004, reencoding enabled **hesla20.tex (./hesla20.tex The format: csplain <Jan. 2016a>. The cs-fonts are preloaded and A4 size implicitly defined. The utf8->iso8859-2 re-encoding of Czech+Slovak alphabet activated by encTeX (/home/petr/.texmf-var/tex/csplain/ofs.tex OFS (Olsak's Font System) based on plain initialized. <May 2004> \loadingenc=\count28 (/home/petr/.texmf-var/tex/csplain/ofsdef.tex)) (/home/petr/.texmf-var/tex/csplain/storm/sjannon.tex (/home/petr/.texmf-var/tex/csplain/storm/stormenc.tex (/home/petr/.texmf-var/tex/csplain/enc/ofs-8z.tex OFS (l.12): Characters + accents of 8z encoding defined. ) OFS (l.15): Characters + accents of fonts by Storm Type Foundry defined. OFS (l.22): "\copyright" is defined already, \characterdef ignored. OFS (l.125): "\P" is defined already, \characterdef ignored. OFS (l.128): "\copyright" is defined already, \characterdef ignored. )) OFS (l.24): Font family JannonTextModerne at10pt (enc=8z) activated: (/home/petr/.texmf-var/tex/csplain/enc/ofs-6s.tex OFS (l.14): Characters + accents of fonts by Storm Type Foundry defined. ) OFS (l.24): \rm () \bf (Bold) \it (Italic) \bi (BoldItalic) OFS (l.28): Define \mesf as \setfonts [-bf/14pt]. OFS (l.29): Define \dencf as \setfonts [-bf/mag1.0]. OFS (l.30): Define \denf as \setfonts [-bf/mag1.0]. OFS (l.32): Define \pisenf as \setfonts [-it/8.5pt]. OFS (l.33): Define \cislopisnef as \setfonts [-rm/8.5pt]. OFS (l.34): Define \svatf as \setfonts [-bf/mag1.0]. OFS (l.35): Define \vyznamf as \setfonts [-it/mag1.0]. OFS (l.36): Define \zdrojf as \setfonts [-it/mag1.0]. OFS (l.37): Define \vysf as \setfonts [-rm/mag1.0]. OFS (l.38): Define \vyrocif as \setfonts [-it/8pt]. OFS (l.39): Define \reklf as \setfonts [-it/mag1.0]. OFS (l.40): Define \nadf as \setfonts [-bf/14pt]. OFS (l.41): Define \adrif as \setfonts [-it/mag1.0]. OFS (l.42): Define \tirf as \setfonts [/8.5pt]. OFS (l.43): Define \smallf as \setfonts [/8.5pt]. OFS (l.44): Define \citatf as \setfonts [-it/8.5pt]. OFS (l.45): Define \autorf as \setfonts [-it/8.5pt]. OFS (l.46): Define \monof as \setfonts [-tt/8.5pt]. cs hyphenation used (\language=5). \frenchspacing is set on. \pismobox=\box16 \zahskip=\dimen16 \linkaw=\dimen17 \oddpagehoffset=\dimen18 \evenpagehoffset=\dimen19 \heslonum=\count29 \cteninum=\count30 \datumbox=\box17 (./hes2001.tex [2{/home/petr/.texmf-var/fonts/map/pdftex/updmap/pdftex.map}] OFS (l.6): Loading single font JannonTextModerne-bf at14pt (enc=8z). OFS (l.9): Loading single font JannonTextModerne-it at10.0pt (enc=8z). OFS (l.11): Loading single font JannonTextModerne-it at8.5pt (enc=8z). OFS (l.13): Loading single font JannonTextModerne-bf at10.0pt (enc=8z). ... atd.
Adresáře
editovatPo dřívější instalaci TeX Live 2017 mám v domácím adresáři podadresář:
~/.texlive2017
a v něm podadresář
~/.texlive2017/texmf-var
atd. až
~/.texlive2017/texmf-var/fonts/tfm
Celá instalace má necelých 10 MB. Instalovat budeme do adresáře:
~/.texlive2017/texmf-var/fonts
Zde pak budeme mít podadresáře:
./enc ./map ./tfm ./type1
enc
editovat./enc/dvips/cs/*.enc
Encoding vektory: stormex.enc, stormex2.enc, stormex3.enc, storml2.enc, stormt1.enc (5 souborů)
Odpovídá kódování:
- StormExEncoding – Extra characters
- StormEx2Encoding – Extra characters
- StormEx3Encoding – Extra characters
- StormL2Encoding – upperset of XL2 encoding
- StormT1Encoding – very similar to standard T1 encoding
map
editovat./map/dvips/cs/storm.map
Propojení Encoding vektorů s 8bitovými metrikami TFM *.map – textový soubor, 12 řádků:
%%% Jannon Text sjnrg8z JannonTextModerne "StormL2Encoding ReEncodeFont" <storml2.enc <jannontm.pfb sjnbg8z JannonTextModerne-Bold "StormL2Encoding ReEncodeFont" <storml2.enc <jannotmb.pfb sjnrig8z JannonTextModerne-Italic "StormL2Encoding ReEncodeFont" <storml2.enc <jannotmi.pfb sjnbig8z JannonTextModerne-BoldItalic "StormL2Encoding ReEncodeFont" <storml2.enc <janntmbi.pfb sjnrg8t JannonTextModerne "StormT1Encoding ReEncodeFont" <stormt1.enc <jannontm.pfb sjnbg8t JannonTextModerne-Bold "StormT1Encoding ReEncodeFont" <stormt1.enc <jannotmb.pfb sjnrig8t JannonTextModerne-Italic "StormT1Encoding ReEncodeFont" <stormt1.enc <jannotmi.pfb sjnbig8t JannonTextModerne-BoldItalic "StormT1Encoding ReEncodeFont" <stormt1.enc <janntmbi.pfb sjnrg6s JannonTextModerne "StormExEncoding ReEncodeFont" <stormex.enc <jannontm.pfb sjnbg6s JannonTextModerne-Bold "StormExEncoding ReEncodeFont" <stormex.enc <jannotmb.pfb sjnrig6s JannonTextModerne-Italic "StormExEncoding ReEncodeFont" <stormex.enc <jannotmi.pfb sjnbig6s JannonTextModerne-BoldItalic "StormExEncoding ReEncodeFont" <stormex.enc <janntmbi.pfb
tfm
editovat./tfm/storm/sjn*.tfm
20 souborů:
- ./sjnbg6s.tfm
- ./sjnbg8t.tfm
- ./sjnbg8z.tfm
- ./sjnbig6s.tfm
- ./sjnbig8t.tfm
- ./sjnbig8z.tfm
- ./sjnrg6s.tfm
- ./sjnrg8t.tfm
- ./sjnrg8z.tfm
- ./sjnrig6s.tfm
- ./sjnrig8t.tfm
- ./sjnrig8z.tfm
- ./sjntmbi8t.tfm
- ./sjntmbi8z.tfm
- ./sjntmb8t.tfm
- ./sjntmb8z.tfm
- ./sjntmri8t.tfm
- ./sjntmri8z.tfm
- ./sjntmr8t.tfm
- ./sjntmr8z.tfm
type1
editovat./type1
Type1 = obvyklý formát fontů v PostScriptu.
Soubory:
- ./jannontm.pfb – regular, 397 glyfů
- ./jannotmb.pfb – bold, 394 glyfů
- ./jannotmi.pfb – italics, 404 glyfů
- ./janntmbi.pfb – bold italics, 399 glyfů
Info:
Soubory lze jej otevřít např. utilitou Fonty, která je i umožní nainstalovat do systému:
gnome-font-viewer --version Prohlížeč fontů GNOME 3.28.0
Zahučí všech 8 jader a běží: Web Content, což moc nechápu:
2688 ? Rl 2:30 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 7350 -prefMapSize 177585 -parentBuildID 20190410105841 -greomni /usr/lib/firefox/omni.ja -
Upravovat se dají např. pomocí w:en: FontForge
Poznámky
editovat./map/.../updmap/*.map
Tady v těch souborech se píše: maintained by the script updmap. Don't change this file directly. Edit texmf/web2c/updmap.cfg and run updmap to recreate this file. Tak je otázka, jestli to s tím jannonem neudělat také.
./pk/modeless/storm
Asi metafonty. Udělá se nějak samo – prázdné podadresáře
Instalace
editovatSoubory
editovatZkopíruji příslušné soubory do příslušných adresářů:
.texmf-var/fonts/enc/dvips/cs: stormex.enc stormex2.enc stormex3.enc storml2.enc stormt1.enc .texmf-var/fonts/map/dvips/cs: storm.map .texmf-var/fonts/tfm/storm: sjnbg6s.tfm sjnbg8t.tfm sjnbg8z.tfm sjnbig6s.tfm sjnbig8t.tfm sjnbig8z.tfm sjnrg6s.tfm sjnrg8t.tfm sjnrg8z.tfm sjnrig6s.tfm sjnrig8t.tfm sjnrig8z.tfm sjntmbi8t.tfm sjntmbi8z.tfm sjntmb8t.tfm sjntmb8z.tfm sjntmri8t.tfm sjntmri8z.tfm sjntmr8t.tfm sjntmr8z.tfm .texmf-var/fonts/type1/storm: jannontm.pfb jannotmb.pfb jannotmi.pfb janntmbi.pfb
Kouzla
editovatJak se dá očekávat, překopíroání souborů nestačí, nutno udělat ještě několik kouzel, aby TeX našel ty soubory, které potřebuje atd.
texhash
editovatAsi to bude to samé jako:
mktexlsr - create ls-R databases
mktexlsr is used to generate the ls-R databases used by the kpathsea library. It will create them for the specified directories, or for a default list if no directories are specified
sudo texhash texhash: Updating /usr/local/share/texmf/ls-R... texhash: Updating /var/lib/texmf/ls-R-TEXLIVEDIST... texhash: Updating /var/lib/texmf/ls-R-TEXMFMAIN... texhash: Updating /var/lib/texmf/ls-R... texhash: Done.
Nepomohlo.
pdfcsplain hesla20.tex
zase hlásí:
! I can't find file `sjannon'.
Zřejmě to vyvolal řádek:
\input ofs [sjannon] \loadingenc=1
Tak hledám a na svém starém počítači nacházím:
~/.texmf-var/tex/csplain/storm/sjannon.tex
Takže ještě raději hledám všechny stormy a ještě tam nacházím:
~/.texmf-var/tex/csplain/storm/stormenc.tex
Tak nakopíruji oba. A funguje, ani netřeba znova spouštět texhash
updmap
editovatNetřeba použít. (Naopak, posledně se tím něco pomrvilo.)
mktexpk
editovatTak ještě není všem problémům konec, pdfcsplain
projel všech 128 stránek Hesel a nakonec zahlásil:
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdfcsplain)
restricted \write18 enabled.
entering extended mode
encTeX v. Jun. 2004, reencoding enabled.
(./hesla20-mesice.tex The format: csplain <Apr. 2016>.
The cs-fonts are preloaded and A4 size implicitly defined.
The utf8->iso8859-2 re-encoding of Czech+Slovak alphabet activated by encTeX
(/usr/share/texlive/texmf-dist/tex/generic/ofs/ofs.tex
OFS (Olsak's Font System) based on plain initialized. <May 2004>
(/usr/share/texlive/texmf-dist/tex/generic/ofs/ofsdef.tex))
(/home/petr/.texlive2017/texmf-var/tex/csplain/storm/sjannon.tex
(/home/petr/.texlive2017/texmf-var/tex/csplain/storm/stormenc.tex
(/usr/share/texlive/texmf-dist/tex/generic/ofs/ofs-8z.tex)))
(/usr/share/texlive/texmf-dist/tex/generic/ofs/ofs-6s.tex)
cs hyphenation used (\language=5). \frenchspacing is set on. (./hes2001.tex
[2{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [3]
WARNING: unknown UTF-8 code: `– = ^^e2^^80^^93' (line: 92) [4] [5] [6]
[7] [8] [9]
Underfull \hbox (badness 2426) in paragraph at lines 348--350
[]\JannonTextModerne-bf/at10.0pt 25.sobota \JannonTextModerne-rm/at10pt Což-pa
k ne-víš? Což-pak jsi nesly-šel?
[10] [11]) (./hes2002.tex [12] [13] [14] [15] [16] [17] [18] [19] [20] [21]
[22]) (./hes2003.tex [23] [24] [25] [26] [27]
WARNING: unknown UTF-8 code: `– = ^^e2^^80^^93' (line: 178) [28] [29]
[30] [31] [32] [33]) (./hes2004.tex [34] [35] [36] [37] [38] [39] [40] [41]
[42] [43] [44]) (./hes2005.tex [45] [46] [47] [48] [49] [50] [51] [52] [53]
[54] [55]) (./hes2006.tex [56] [57] [58] [59] [60] [61] [62] [63] [64])
(./hes2007.tex [65] [66] [67] [68] [69] [70] [71] [72] [73] [74])
(./hes2008.tex [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85])
(./hes2009.tex [86] [87] WARNING: unknown UTF-8 code: `Ć =
^^c4^^86' (line: 91) [88] [89] [90] [91] [92] [93] [94] [95]) (./hes2010.tex
[96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106]) (./hes2011.tex
[107] [108] [109] [110] [111] [112] [113] [114] [115] [116]) (./hes2012.tex
[117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127]) [128] )
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 0+480/600 --dpi 480 sjnrig8z
mktexpk: don't know how to create bitmap font for sjnrig8z.
mktexpk: perhaps sjnrig8z is missing from the map file.
kpathsea: Appending font creation commands to missfont.log.
(see the transcript file for additional information)
!pdfTeX error: pdfcsplain (file sjnrig8z): Font sjnrig8z at 480 not found
==> Fatal error occurred, no output PDF file produced!
Tak co teď s tím?
V souboru ./map/dvips/cs/storm.map
mám řádek:
sjnrig8z JannonTextModerne-Italic "StormL2Encoding ReEncodeFont" <storml2.enc <jannotmi.pfb
Pak tu mám soubor:
./tfm/storm/sjnrig8z.tfm
Pak ale nerozumím té hlášce:
mktexpk: perhaps sjnrig8z is missing from the map file.
Co dělá mktexpk?
man mktexpk
mktexpk - create a PK file for a font mktexpk is used to generate a pk file from the Metafont source files or type1 sources for font, if possible.
Co je to takévé PK file?
- TeX FAQ: What are PK files? PK files (packed raster) are the canonical form of TeX font bitmaps. ...
- w:en: TeX font metric
Co v logu? Nic více, než bylo řečeno:
!pdfTeX error: pdfcsplain (file sjnrig8z): Font sjnrig8z at 480 not found
==> Fatal error occurred, no output PDF file produced!
Jo ještě se mi tu objevil soubor missfont.log
:
mktexpk --mfmode / --bdpi 600 --mag 0+480/600 --dpi 480 sjnrig8z
mktexpk --mfmode / --bdpi 600 --mag 0+480/600 --dpi 480 sjnrig8z
Tak něco mu asi ještě chybělo. Nevím co. Zkrátka jsem do adresáře ~/texmf-var
strčil vše, co jsem měl na starém počítači v adresáři ~/.texmf-var
, a vše běží jako po drátku. Kdybych to udělal rovnou, ušetřil jsem si půlden práce a nemusel jsem nad ničím koumat, když by to fungovalo bez dalšího přemýšlení.