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
[editovat]V 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
[editovat]Po 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
[editovat]Soubory
[editovat]Zkopí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
[editovat]Jak 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
[editovat]Asi 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
[editovat]Netřeba použít. (Naopak, posledně se tím něco pomrvilo.)
mktexpk
[editovat]Tak 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í.