METAFONT
   
METAFONT CSTUG


Jak dostat z METAFONTu to, co chcete

METAFONT vßm umo╛≥uje vytvo°it si vlastnφ font, ale v∞t╣ina u╛ivatel∙ TeXu ho nikdy nepou╛φvß. METAFONT, na rozdφl od TeXu, vy╛aduje nekterß specißlnφ nastavenφ. Ka╛dΘ v²stupnφ za°φzenφ, pro kterΘ se generuje font, pot°ebuje p°idru╛en² m≤d. M≤dy se definujφ pou╛itφm konvencφ mode_def popsan²ch na stran∞ 94 v The METAFONTbook (viz Knihy o TeXu a p°φbuznß literatura). Je pot°eba mφt soubor zpravidla nazvan² local.mf obsahujφcφ mode_defs, kterΘ budete pou╛φvat. Jestli╛e local.mf je╣t∞ neexistuje, dobr²m v²chozφm bodem m∙╛e b²t kolekce m≤d∙ od Karla Berryho, dostupnß jako CTANmodes-file. Lze ji pou╛φt jako local.mf beze zm∞n pro ,,dostateΦn∞ ╣irokou`` implementaci METAFONTu. V²pis nastavenφ pro nejr∙zn∞j╣φ v²stupnφ za°φzenφ b²vß takΘ pravideln∞ zve°ej≥ovßn v TUGboatu (viz Co je to TUG a TUGboat). Nynφ vytvo°te bßzov² soubor plain s pou╛itφm inimf, plain.mflocal.mf:

   % inimf
   This is METAFONT....
   **plain # napi╣te plain
   (output)
   *input local # zadejte toto
   (output)
   *dump # zadejte toto
   Beginning to dump on file plain....
   (output)
Tφm se vytvo°φ bßzov² soubor pojmenovan² plain.base (p°φpadn∞ n∞co podobnΘho; nap°φklad v MSDOSu to bude PLAIN.BAS), kter² je t°eba p°emφstit do adresß°e, jen╛ ve va╣em systΘmu obsahuje bßzovΘ soubory. (N∞kterΘ systΘmy obsahujφ i dva nebo vφce takov²ch adresß°∙, ka╛d² pro jinou ,,velikost`` pou╛itΘho METAFONTu.)

Nynφ se pot°ebujete ujistit, ╛e METAFONT p°i spu╣t∞nφ Φte tuto novou bßzi. Jestli╛e METAFONT naΦφtß na va╣em systΘmu implicitn∞ plain bßzi, jste p°ipraveni. Pod Unixem (za pou╛itφ b∞╛nΘ distribuce web2c) to tak skuteΦn∞ funguje, ale mohli bychom t°eba definovat p°φkaz mf, kter² vykonßvß virmf &plain naΦtenφm plain bßzovΘho souboru.

Obvykl² zp∙sob, jak vytvo°it font s plain METAFONTem, je zaΦφt °ßdkem

\mode=; mag=; input 
jako odpov∞∩ na v²zvu ,,**`` nebo na p°φkazovΘ °ßdce METAFONTu. (Pokud <jmΘno m≤du> je neznßmΘ nebo neplatnΘ, bude pou╛it implicitnφ m≤d a METAFONT vyrobφ v²stupnφ soubor nazvan² .2602gf) <Zv∞t╣enφ> je Φφslo v plovoucφ °ßdovΘ Φßrce nebo `magstep' (magstepy jsou definovßny v The METAFONTbook a v The TeXbook). Jestli╛e mag=<zv∞t╣enφ> je neplatnΘ, bude implicitn∞ 1 (magstep 0). Nap°φklad, pro generovßnφ cmr10 zv∞t╣enΘho na 12pt pro tiskßrnu epson byste m∞li napsat
   mf \mode=epson; mag=magstep 1; input cmr10
Poznamenejme, ╛e pod Unixem jsou znaky \; obvykle v uvozovkßch nebo se zp∞tn²m lomφtkem, tak╛e by to zpravidla m∞lo vypadat takhle:
   mf '\mode=epson; mag=magstep 1; input cmr10'

Pokud nemßte inimf nebo pot°ebujete specißlnφ m≤d, kter² nenφ v bßzi, m∙╛ete vlo╛it jeho p°φkazy do souboru (nap°. ln03.mf) a vyvolat ho za b∞hu p°φkazem \smode. Tak nap°φklad, aby se vytvo°il cmr10.300gf pro tiskßrnu LN03 za pou╛itφ souboru

   % This is ln03.mf as of 2/27/90
   % mode_def courtesy of John Sauter
   proofing:=0;
   fontmaking:=1;
   tracingtitles:=0;
   pixels_per_inch:=300;
   blacker:=0.65;
   fillin:=-0.1;
   o_correction:=.5;
(v╣imn∞te si nep°φtomnosti p°φkaz∙ mode_defenddef), je t°eba napsat
   mf \smode="ln03"; input cmr10
Tato technika nenφ jedinß, kterou byste sprßvn∞ m∞li pou╛φvat, ale m∙╛e se ukßzat u╛iteΦnß, jestli╛e mßte novou tiskßrnu a chcete experimentovat s parametry, Φi z n∞jak²ch jin²ch d∙vod∙ editujete pou╛φvanΘ parametry. Jakmile jste si jednou ujasnili p°φpustnou mno╛inu parametr∙, m∙╛ete je uplatnit p°i p°ebudovßnφ bßzovΘho souboru, kter² pou╛φvßte.

Souhrn v²╣e uvedenΘho od Geoffrey Tobina a upozorn∞nφ na nejΦast∞j╣φ nßstrahy a ·skalφ p°i pou╛φvßnφ METAFONTu lze nalΘzt v dokumentu CTANmf-beginners


KterΘ fontovΘ soubory je t°eba si nechat

METAFONT produkuje p°i svΘm b∞hu t°i soubory: metrikovΘ (tfm) soubory, soubory s generick²mi fonty (gf) a soubory s popisem p°ekladu (log). V╣echny tyto soubory majφ stejnΘ bßzovΘ jmΘno jako vstup, (nap°. pokud vstupnφ soubor byl cmr10.mf, v²stupem bude cmr10.tfm, cmr10.nnngf [5] a cmr10.log).

Pro prßci TeXu s fontem je zapot°ebφ tfm soubor, tak╛e si ho musφte nechat. Ale obyΦejn∞ chcete generovat tent²╛ font ve vφce velikostech a poka╛dΘ se bude (automaticky) generovat dal╣φ tfm soubor. Tyto soubory jsou stejnΘ, proto staΦφ nechat si jedin² z nich.

K v²rob∞ obrazovkovΘho nebo tiskovΘho v²stupu pot°ebuje dvi procesor rastrov² soubor fontu; to je to, co poskytuje gf soubor. Av╣ak, zatφmco d°φve pou╛φvanΘ dvi procesory um∞ly pracovat s gf soubory, modernφ procesory pou╛φvajφ komprimovanΘ rastrovΘ (pk) soubory. Proto je t°eba generovat pk soubor z gf souboru. Tohle za vßs ud∞lß program gftopk a jakmile je to jednou hotovo, m∙╛ete soubor gf odstranit.

Pokud nenastanou n∞jakΘ problΘmy, nem∞l by b²t soubor log nikdy pou╛it. Normßln∞ tedy nenφ t°eba nechßvat si jej.


Vyta╛enφ bitov²ch map z archφvu

V∞t╣ina lidφ, kte°φ zaΦφnajφ pou╛φvat TeX s laserovou tiskßrnou s rozli╣enφm 300 dpi (dots-per-inch) a fonty Computer Modern pro toto rozli╣enφ, je zßsobena mno╛stvφm TeXovsk²ch balφk∙. Na CTAN jsou takΘ dv∞ takovΘ sady: CTANpk300 (pro Φern² tisk) a CTANpk300w (pro bφl² tisk). Ale n∞kte°φ u╛ivatelΘ cht∞jφ poslat svou prßci na vysoce kvalitnφ sßzecφ stroje (obyΦejn∞ s rozli╣enφm 1270 dpi nebo vφce). TΘ╛ se Φast∞ji pou╛φvajφ 600 dpi laserovΘ tiskßrny. ProΦ archφvy a knihovny neposkytujφ bitovΘ mapy font∙ v t∞chto velikostech? D∙vody jsou dva:

  1. Pokud je bitovß mapa fontu vytvo°ena pomocφ METAFONTu, je t°eba znßt charakteristiky za°φzenφ; kdo m∙╛e v∞d∞t, jak² 600 Φi 1270 dpi p°φstroj vlastnφte? (Tahle nßmitka se samoz°ejm∞ stejn∞ dob°e t²kß 300 dpi tiskßren.)
  2. P°i vysok²ch rozli╣enφch jsou bitovΘ mapy objemnΘ. Kdo vφ, kterΘ fonty a s jakou velikostφ pot°ebujete?
Bylo by mo╛nΘ poskytovat v archφvech n∞jakou sadu 1270 dpi bitov²ch map font∙, ale zabralo by to spoustu mφsta a mo╛nß by to pro vßs nebylo to pravΘ.

Tak co s tφm? M∙╛ete si sami vytvo°it pot°ebnΘ fonty pomocφ METAFONTu; nenφ to tak slo╛itΘ a n∞kterΘ ovladaΦe vßm pomohou (dvips a ovladaΦe emTeXu) zkonstruovat p°φkazy METAFONTu. M∙╛ete se podφvat na CTAN do kolekce m≤d∙ METAFONTu Karla Berryho, do souboru CTANmodes-file. Na druhΘ stran∞, pokud vlastnφte PostScriptovΘ za°φzenφ, uva╛ujte o fontech ve formßtu Type 1. Je mo╛nΘ koupit v╣echny fonty Computer Modern v PostScriptovΘm tvaru od Blue Sky Research nebo od Y&Y (adresa viz KomerΦnφ implementace TeXu), Φi pou╛φt ve°ejn∞ p°φstupnou verzi Basila Malysheva v CTANps-type1 (kolekce Paradissa je kompletnφ, ale postupn∞ je nahrazovßna lep╣φ kolekcφ BaKoMa).


[5]
V╣imn∞te si, ╛e jmΘno souboru m∙╛e b²t p°etvo°eno u~takov²ch operaΦnφch systΘm∙ jako MSDOS, kterΘ nep°ipou╣t∞jφ dlouhΘ nßzvy soubor∙.


CSTUG
(c) 22.10.1999 13:30 Libor ⌐karvada, Tomß╣ Hudec, Ale╣ Vφtek
P°ipomφnky, opravy a zejmΘna odpov∞di na dal╣φ ΦastΘ otßzky posφlejte na adresu cstug-faq@cstug.cz
P°ipomφnky k HTML verzi posφlejte na adresu libor@fi.muni.cz nebo hudec@fi.muni.cz.