Dnešní pokračování seriálu o grafických možnostech sázecího systému TeX je věnováno ukázce možností dalších balíků maker a zejména možnostem METAFONTu.
Další prostředky, jak vytvářet grafiku (zejména nové znaky, fonty, loga či algebraicky snadno definovatelné křivky), poskytuje program METAFONT. Autorem tohoto programu není nikdo jiný než autor TeXu Don Knuth. Knuth použil METAFONT k vytvoření sad písem Computer Modern (písma běžně užívaná s TeXem, jimiž je také sázen tento Zpravodaj) a Concrete Roman (viz textové fonty odstavce s pohádkou v tomto článku). Znaky jsou definovány ve speciálním jazyce se syntaxí a částečně filosofií (makroprocesor) podobnou TeXu. Pro ilustraci uveďme kódy znaků "fajfka" a "tučná fajfka".
u# := 1/10pt#;
beginchar(33, 100u#, 100u#, 0);
z0 = (50u, 50u); z1 = (15u, 35u);
z2 = (25u, 7u); z3 = (52u, 50u);
z4 = (90u, 97u);
z10 = (18u, 25u); z20 = (25.5u, 4.5u);
pickup pencircle xscaled 17.5u yscaled 10u rotated 30;
draw z1 .. z10 .. z2;
pickup pencircle xscaled 10u yscaled 3u;
draw(z20 .. z3 .. z4);
endchar;beginchar(34, 100u#, 100u#, 0);
z0 = (50u, 50u); z1 = (15u, 50u);
z2 = (18u, 20u);
z3 = (55u, 50u); z4 = (90u, 90u);
z10 = (15u, 45u); z20 = (19.5u, 20u);
z21 = (25u, 25u); z40 = (87.5u, 88u);
pickup pencircle xscaled 27.5u yscaled 17.5u rotated 45;
draw z1 .. z10 .. z2;
pickup pencircle xscaled 18.5u yscaled 7.5u rotated 270;
draw(z20 .. z21 .. z40 .. z4);
endchar;
Máme-li k dispozici dostatečně bohatou sadu znaků, můžeme psát i obrázkové pohádky:
Byl jednou jeden
<chlapec> a
<děvčátko>. Babička jim
<napsala>
<dopis>, že je
<smutná>, že ji tak
dlouho nenavštívili. Tak
♥ babičce
<zatelefonovali>, že ji přijdou navštívit, aby napekla
koláče. Byly
<tři hodiny>, když se vydali
na cestu.
¤ svítilo,
<květiny>
kvetly a děti si
<zpívaly> pochodové písně. Našly
i
<čtyřlístek>. Přebrodily
≈, když
se začlo smrákat a vyšel
<měsíc>. Setmělo se a
na obloze se objevil i
<Mars>,
<Jupiter> a
<Saturn>. Chtěly
se
<vrátit>, ale nevědely již cestu zpět. Strhla
se
<bouřka>. Už si myslely, že
†,
když ...
1
A zazvonil
<zvonec> a pohádky je
<victorka>.
METAFONT si svou složitostí nezadá s TeXem, pro běžné smrtelníky však postačí základní informace, jak vygenerovat žádané fonty pro dané výstupní zařízení v potřebné rozlišovací schopnosti.
mfpic
Pro ty, kteří nechtějí vnikat hluboko do tajů METAFONTu, se nabízejí jednoduchá
makra s názvem mfpic
.
Zadávání takového obrázku je podobné jako u maker epic
a eepic
či v okolí picture
s tím rozdílem, že makra generují zdrojový text pro METAFONT.
Po prvním překladu TeXem musíme spustit METAFONT, abychom v dalším
průchodu TeXu již měli metrické informace spočítány; obrázek je pak automaticky
vysázen na požadovaném místě. O tom, že nejde o nic složitého,
svědčí i skutečnost, že vyčerpávající manuál k makrům mfpic
čítá 9 stran.
\opengraphsfile{eurotex}
\begin{mfpic}[1]{-160}{150}{-150}{105}
\pen{1.5}
\ellipse{(-110,90),70,40}
\label{-140}{85}{manuscript}
\ellipse{(0,75),70,40}
\label{-30}{70}{proof copy}
\ellipse{(0,-75),70,40}
\label{-30}{-77}{\LTEX\ file}
\ellipse{(-110,0),70,40}
\label{-137}{-5}{\ISIS}
\ellipse{(110,0),70,40}
\label{90}{-5}{DVI file}
....
\end{mfpic}
Tento způsob generování obrázků je lehce přenositelný a nevyžaduje zvládnutí rozsáhlých znalostí METAFONTu.
Všechny znaky a fonty použité v tomto článku jsou vytvořeny
v METAFONTu a jsou k dispozici (jsou public domain nebo freeware)
v univerzitním elektronickém archivu ftp.muni.cz
v adresáři
pub/tex/fonts
. V podadresáři mfsrc
jsou zdrojové texty
pro METAFONT. Speciální znaky použité v 'pohádce' najdete v balících
wasy.zip
a bbding.zip
. V pokladnici TeXových fontů dále
najdete arabštinu, řečtinu (α, ..., ω),
'cyrilici'2, Švabach
a desítky dalších písem. Seznam fontů dostupných v TeXových archívech
je možno nalézt v souboru ftp.muni.cz:/pub/tex/faqs/mflist.faq
,
krátký úvod do u lze nalézt tamtéž v souboru mf.faq
.
1 | Dopsání pohádky (a dokreslení <obrázků> - pozn.
edit. webové verze) ponecháme laskavému čtenáři jako cvičení.
... zpět do textu |
2 | azbuku (pozn. edit. webové verze)
... zpět do textu |