# Návod na instalaci a použití fontů

| Instalace TeXové podpory | Instalace fontů | Test | Záludnosti | Vlastnosti | Makro OFS | Licence |

TeXová podpora fontů Střešovické písmolijny se (zatím) týká verze 3.5 Typokatalogu, pro počítač PC, formát PostScript Type1. Pokud dojde v novějších verzích fontů k výrazným změnám způsobujícím nekompatibilitu s touto TeXovou podporou, bude pro TeXistu lepší žádat v písmolijně verzi 3.5. Druhá možnost (pracnější) je k nové verzi vytvořit novou TeXovou podporu. Viz též poznámky k licencím.

## 1. Instalace TeXové podpory

Popíšeme, jak instalovat TeXovou podporu a vlastní fonty na UNIXových systémech. Na jiných systémech se to udělá analogicky s ohledem na nástroje používané v tomto systému.

Balíček stormtex.tgz se nejlépe instaluje na TeXové distribuci dodržující TDS (TeX Directory standard). Příkladem takové distribuce může být teTeX, nebo též TeX z TeXlive CD či třeba MikTeX pro MS Windows. Předpokládáme také, že TeXová instalace obsahuje csplain z CSTeXu, na kterém v závěru vyzkoušíme funkčnost fontů.

Symbolem `bash#` budeme níže značit prompt UNIXového shellu, který běží s takovými právy, aby šlo instalovat do texmf stromu. V příkladech níže předpokládáme, že tento texmf strom leží v /usr/share. V konkrétní distribuci systému a TeXu může ležet třeba v /usr/local/share nebo jinde; překontrolujeme to příkazem:

    bash# kpsewhich texmf.cnf
    /usr/share/texmf/web2c/texmf.cnf

Přejdeme nad strom `texmf` a rozbalíme balíček stormtex.tgz (ten je pro tento příklad připraven v `/tmp`).

    bash# cd /usr/share
    bash# zcat /tmp/stormtex.tgz | tar xvf -

Všechny potřebné soubory se rozbalí do podstromu `texmf/`. Nyní musíme ještě upravit některé konfigurační soubory. Popíšeme postup modifikace konfiguračních souborů přímo v `texmf/`. Pokud v TeXovém systému máme navíc adresář `texmf-var/` (nebo podobný) s kopiemi konfiguračních souborů, je lepší dělat změny tam.

    bash# vi texmf/dvips/config/config.ps

V souboru `config.ps` přidáme za řádek `"p psfonts.map"` řádek:

    p +storm.map

Dále pozměníme konfiguraci PDFTeXu:

    bash# vi texmf/pdftex/config/pdftex.cfg

a v souboru `pdftex.cfg` přidáme řádek:

    map +storm.map

Pokud se v souboru `texmf/web2c/mktex.cnf` vyskytuje řádek s `MT_FEATURES` obsahující slovo `fontmaps`, je vhodné toto slovo odstranit, aby se při generování bitmap programem `gftopk` neobjevovalo na terminálu varování o neúplné databázi `fontmaps`. Inkriminovaný řádek souboru `mktex.cnf` po úpravě může vypadat například takto:

    : ${MT_FEATURES=appendonlydir:varfonts}

Nakonec inicializujeme databázi jmen souborů pro TeX:

    bash# texhash

A to je všechno.

## 2. Instalace vlastních fontů ze Střešovické písmolijny

Každá rodina fontů je dodávána ve verzi CE a základní (někdy nazývaná US). Soubor znaků je v obou verzích fontů stejný. TeXová podpora je připravena pro verzi základní. Pokud máme jen verzi CE, určitě nám ve Střešovické písmolijně dodají bez dalších poplatků i verzi základní. Trváme-li, nicméně, na použití verze CE, budeme postupovat podle poznámky o těchto verzích v odstavci 5.2.

Postup instalace fontů je ukázán na příkladu rodiny fontů Jannon Text (základní verze), která je dodaná ze Střešovické písmolijny v archivu `JannonText.zip`.

    bash# unzip JannonText.zip
    bash# mv "Jannon Text" jannontext
    bash# cd jannontext
    bash# ls

Vidíme, že názvy fontů jsou s různě střídanými malými a velkými písmeny. To na UNIXech vadí. Potřebujeme mít všechny názvy malými písmeny:

    bash# for i in *; do
    > mv $i `echo $i | tr [A-Z] [a-z] `
    > done
    bash# ls

Nakonec instalujeme `*.pfb` do systému. Ostatní soubory (`*.pfm`, `*.afm` a jiné) nepotřebujeme. Pro fonty JannonText založíme například adresář `jannon`, abychom se v tom později vyznali. Na názvu adrersáře nezáleží:

    bash# mkdir -p /usr/share/texmf/fonts/type1/storm/jannon
    bash# cp *.pfb /usr/share/texmf/fonts/type1/storm/jannon/
    bash# texhash

A to je vše.

## 3. Test fontů

    bash# cd
    bash# cp /usr/share/texmf/doc/storm/stestik.tex .
    bash# vi stestik.tex

V editoru odkomentujeme ty fonty, které jsme si zakoupili. Soubor `stestik.tex` bude načten z hlavního souboru `stest.tex` (nebo `stestl.tex`), který nemusíme kopírovat, protože je umístěn v instalaci TeXu na vhodném místě. Můžeme proto rovnou testovat:

    bash# csplain stest
    bash# xdvi stest
    bash# dvips -j0 stest
    bash# gs stest.ps
    bash# lpr stest.ps
    bash# pdfcsplain stest
    bash# acroread stest.pdf
    bash# cslatex stestl
    bash# xdvi stestl

U příkazů `xdvi`, `gs` a `acroread` se předpokládá, že pracujeme v grafickém prostředí a příkazy vkládáme například do xtermu.

## 4. Technické záludnosti

Pokud se stane, že si xdvi a dvips vyžádá nějaký soubor `*.pfb`, který není v instalaci zanesen, může být problém v chybějící OSF verzi fontu. Řešení tohoto problému najdeme v odstavci 5.3.

Fonty ze Střešovické písmolijny obsahují více než 256 znaků, proto k nim existuje více TeXových metrik, aby tyto metriky pokryly všechny znaky ve fontu (odstavec 5.1). Použijí-li se v jednom dokumentu dvě metriky, které odkazují na stejný Type1 font, program dvips ve verzi linkované s modulem t1part (dnes skoro všechny používané verze) si na tom vyláme zuby. Projeví se to tak, že program vypíše na terminál (mimo jiné) zprávu:

    WARNING: Not all chars found.

a skutečně, plno znaků ve výstupním PostScriptovém souboru chybí. Tuto chybu programu dvips jsem už reportoval tvůrcům a údržbářům programu, takže se dá očekávat, že v budoucích verzích nastane změna k lepšímu. NICMÉNĚ se s tímto problémem dá žít. Jakmile se objeví příslušný WARNING, spusťte program dvips s parametrem `-j0` (ukázka byla uvedena v odstavci 3). V tomto případě se dvips nebude pokoušet vyhazovat z fontu nepoužité znaky a nedojde tedy k jeho zmatení. Takto vytvořený PostScriptový kód ale obsahuje kompletně downloadovaný font, který by mohl někdo neoprávněně bez zakoupení licence z kódu vykutat. Je proto naléhavě nutné takto vytvořený PostScript zpracovat jen na lokální tiskárně nebo v DTP studiu, ve kterém mají zakoupenu licenci ke Štormovým fontům, takže nebudou podléhat pokušení z dodaných PostScriptů tyto fonty kutat. Další možností je použít pdfTeX, který s vybíráním jen použitých znaků fontu nemá v tomto případě problémy.

Můžeme se ptát, proč jsem preventivně nezanesl do storm.map souboru pokyn pro downloadování ve tvaru `"<<"` místo `"<"`. Je to proto, že fonty jsou v pořádku a chyba je na straně dvips. Takové překlenování chyby by bylo dost nesystémové, neboť se dá očekávat, že chyba bude v novějších verzích dvips odstraněna.

PdfTeX verze 13d (a zřejmě nižší verze) obsahuje rovněž jednu hloupou chybu. Projeví se tak, že po spuštění acroreaderu na vytvořené PDF se objeví v rámečku podivné hlášení:

    The font 'Strašný-Název-Fontu' contains a bad /BBox. OK

Na prohlížení PDF dokumentu to nemá vliv, jen ta hláška je poněkud otravná. Řešením je upgrade na novější verze pdfTeXu, které tuto chybu už neobsahují. Pokud je pro Vás upgrade pdfTeXu příliš komplikovaná záležitost, existuje ještě jiné, méně systémové, ale funkční, řešení. Jde o to modifikovat pfb soubory editorem, u kterého máme jistotu, že nám nepomrší binární smetí, které v tom souboru musí zůstat přesně tak, jak je. Máme-li editor, na který se můžeme takto spolehnout, otevřeme v něm pfb soubor, najdeme v něm text

    /FontBBox { číslo číslo číslo číslo } readonly def

a nahradíme jej textem

    /FontBBox {číslo číslo číslo číslo}   readonly def

Čísla zachováme a zlikvidujete mezery na vnitřní straně závorek. Tyto dvě mezery musíme zase přidat před `"readonly def"`, protože modifikovaný soubor bezpodmínečně musí mít stejnou velikost v bytech, jako soubor původní, jinak se poškodí struktura pfb formátu a výsledek můžeme zahodit. Upravený font nakopírujeme do systému místo původního a pokud jsme použili skutečně dobrý editor, máme po problémech i ve starším pdfTeXu. Osobně jsem si udělal dvouřádkový sedový skriptík, kterým jsem protáhl všechny fonty během vteřiny, zatímco kompilace nového pdfTeXu pod starou knihovnou libc.so.5 by mi přidělala zbytečně mnoho vrásek.

GhostScript 7.0 obsahuje chybu, kvůli které neumí spolehlivě spolupracovat s programem `gsftopk`. Podrobnosti lze nalézt tady a tu. Chyba se projevuje náhodným a náhlým ukončením GhostScriptu při generování bitmapy s hlášením:

    gs died due to signal 13

Řešením je zaměnit verzi GhostScriptu za vyšší nebo nižší.

## 5. Vlastnosti fontů ze Střešovic v TeXu

### 5.1. Konvence názvů metrik

Protože textové fonty ze Střešovické písmolijny obsahují kolem 370 znaků a v jedné metrice pro TeX můžeme mít maximálně 256 znaků, existují ke každému Type1 fontu tři metriky. Názvy těchto metrik splňují doporučení od Karla Berryho. Písmeno "s" na začátku názvu jsem s Karlem Berrym osobně konzultoval a byl ochoten toto písmeno rezervovat pro Storm Type Foundry, ačkoli původně bylo rezervováno pro SUN. Způsob pojmenování metrik si vysvětlíme na příkladě rodiny fontů Jannon Text:

- `sjnrg8z ...` s: Storm Type Foundry (písmolijna), jn: rodina JanNon, r: Regular, g: text (navrženo pro běžné textové velikosti), 8z: kódování CSfontů
- `sjnrg6s ...` 6s: extra kódování, které společně s metrikou 8z pokrývá všechny znaky z dodaného Type1 fontu.
- `sjnrg8t ...` 8t: T1 kódování (podle Corku) pro uživatele, kteří používají v TeXu toto kódování. Upozorňuji, že množina znaků z fontu nepokrývá celé T1 kódování. Na některých pozicích (které naštěstí nesouvisí s českým nebo slovenským jazykem) zůstávají prázdná místa.

Většina fontů je řazena do rodin se čtyřmi variantami: Regular (antikva), Bold (tučný), Regular Italic (kurzíva) a Bold Italic (tučná kurzíva). Máme tedy například v kódování 8z tyto metriky:

    sjnrg8z  ... Regular,
    sjnbg8z  ... Bold,
    sjnrig8z ... Regular Italic,
    sjnbig8z ... Bold Italic.

Stejné názvy najdeme v kódování 6s a 8t. Dohromady tedy ke čtyřem zakoupeným fontům jedné rodiny existuje 12 TeXových metrik.

### 5.2. Verze fontů CE kontra verze základní

Jak již bylo řečeno v odstavci 2, fonty jsou písmolijnou dodávány ve dvou verzích: CE a základní. TeXová podpora je připravena pro verzi základní.

Tyto dvě verze fontů obsahují naprosto stejné znaky a stejné metrické údaje, liší se u nich pouze defaultní encoding vektor. Některé aplikace jsou závislé na nastavení tohoto defaultního encoding vektoru, a pro takové aplikace dodává Střešovická písmolijna verzi CE, která v defaultním encoding vektoru obsahuje všechny znaky české a slovenské abecedy.

TeXový software není na obsahu defaultního encoding vektoru vůbec závislý, protože fonty jsou zaneseny do storm.map včetně požadavku na okamžitou změnu encoding vektoru na takovou hodnotu, jaká je zanesena v odpovídajícím *.enc souboru. Principiálně tedy můžeme TeXu podstrčit místo základní verze fontu verzi CE bez žádné změny ve výsledku. Pokud jsme nuceni takovou věc udělat, musíme v souboru `texmf/dvips/config/storm.map` zaměnit název souboru `*.pfb` za ten, který chceme TeXu podstrčit a navíc změnit na stejném řádku interní název fontu přidáním písmen CE těsně před označením varianty. Například zaměníme JannonText-Italic za JannonTextCE-Italic tak, že změníme ve storm.map řádek

    sjnbig8z JannonText-BoldItalic "StormL2Encoding ReEncodeFont" <storml2.enc <jannotbi.pfb

za řádek

    sjnbig8z JannonTextCE-BoldItalic "StormL2Encoding ReEncodeFont" <storml2.enc <janntcei.pfb

Od této chvíle bude program dvips a pdfTeX namísto souboru `jannotbi.pfb` používat soubor `janntcei.pfb`, a přitom ve výsledku nepoznáme žádnou změnu.

### 5.3. Verze fontů OSF

Některé fonty obsahují navíc verzi OSF, která je shodná s verzí výchozí, pouze deset znaků: "0123456789" vypadá jinak. OSF je zkratka za Old Style Figures, tj. číslice jsou v OSF verzi skákavé, zatímco ve výchozí verzi jsou na lince.

Abych zbytečně nepřidával do seznamu rodin další rodiny pro verzi OSF, rozhodl jsem se verzi OSF využít (tam, kde je přítomna) v rozšířené metrice *6s. Například v souboru texmf/dvips/config/storm.map najdeme pro JannonText tyto řádky:

    sjnrg8z JannonText "StormL2Encoding ReEncodeFont" <storml2.enc <jannonte.pfb
    sjnrg8t JannonText "StormT1Encoding ReEncodeFont" <stormt1.enc <jannonte.pfb
    sjnrg6s JannonTextOSF "StormExEncoding ReEncodeFont" <stormex.enc <janntosf.pfb

Vidíme, že je zde výjimka z pravidla, že trojice metrik *8z, *8t a *6s přistupuje ke stejnému *.pfb fontu. Toto řešení má tu výhodu, že pokud existuje OSF verze k danému fontu, okamžitě přepnutím do rozšiřující metriky *6s můžeme využít skákavé číslice bez nutnosti přechodu na novou rodinu fontů.

Nevýhoda tohoto řešení může vzniknout tehdy, když jsme si zakoupili např. pouze rodinu JannonText a už nikoli JannonTextOSF. V takovém případě stávající obsah storm.map je pro nás velmi nevýhodný, protože přicházíme nejen o skákavé číslice (které nemáme zakoupeny), ale též o ostatní rozšiřující znaky. Existuje v takovém případě snadná pomoc: nahradíme řádek obsahující volání OSF fontu řádkem, kde je uvedena jen základní verze. Pro náš příklad tedy:

    sjnrg6s JannonText "StormExEncoding ReEncodeFont" <stormex.enc <jannonte.pfb

Metrika sjnrg6s má nyní sice nekonzistentní metrické údaje týkající se číslic, ale ty stejně nebudeme v této metrice používat, pokud nemáme zakoupenu verzi OSF. Hlavní je, že máme otevřen přístup k rozšiřujícím znakům zakoupeného fontu.

Aby nebylo nutno vytvářet při chybějící OSF verzi fontu takové řádky v souboru `storm.map` ručně, jsou tam už tyto alternativní řádky připraveny a zakryty procentem. Stačí tedy zakrýt procentem řádek odkazující na verzi OSF a odkrýt řádek, který je v souboru připraven jako alternativní.

Zde je seznam všech rodin, které mají verzi OSF:

       JannonAntikva
       JannonText
       Regent
       Serapion (OSF je implicitní, metrika *6s odkazuje na non-OSF verzi)
       Solpera
       Pentagramme

### 5.4. Ligatury

Skoro všechny fonty ze Střešovické písmolijny obsahují ligatury fi, fl, ff a většina z nich obsahuje i ligatury ffi ffl. Všechny tyto ligatury jsou v TeXu automaticky realizovány při použití metrik *8z a *8t.

Dále se v mnoha fontech nacházejí ligatury st, ct a ft. Tyto ligatury působí poněkud starodávně, proto nejsou v metrikách implicitně zapnuty. Protože (bohužel) ligační tabulku nelze ovlivnit makrem TeXu, je potřeba při použití těchto ligatur volit některou z těchto možností:

- v dokumentu nahradit výskyty dvojic st, ct makrem `\ligst`, `\ligct`.
- upravit metriku pomocí konverze tftopl, editace pl a zpětné konverze pltotf.

V kurzívách je velmi často obsaženo variantní písmeno "v" (s delší náběhovou čárkou). Je-li tomu tak, pak v metrikách *8z a *8t je implementována ligatura "v" s levým krajem slova, takže každé "v" na začátku slova se v TeXu promění ve variantní "v" automaticky.

### 5.5. Superrodina Dynamo Grotesk

Tato rodina vznikla jako výstup z Multiple Master fontu, ve kterém se měnila v šesti různých hodnotách celková šířka znaku a v pěti různých hodnotách duktus. Tvůrce fontu tak dostal 30 různých variant fontu v přímé verzi a dalších 30 variant v kurzívě, tedy dohromady 60 fontů.

Tyto fonty jsou v TypoKatalogu rozděleny do osmnácti klasických 4-řezových rodin tak, že tučná varianta v rámci rodiny má o dva stupně větší duktus než varianta základní. Vytvořme si názornou tabulku, kde směrem nahoru roste duktus a směrem doprava klesá celková šířka písmena. Použijeme přitom terminologii z Typokatalogu:

    black  (c) :   *          *         *       *          *           *
    bold   (b) :   *          *         *       *          *           *
    demi   (d) :  DXE         DE        D       DM         DC         DXC
    regular(r) :  RXE         RE        R       RM         RC         RXC
    light  (l) :  LXE         LE        L       LM         LC         LXC
               --------------------------------------------------------------
                 extra      extended  regular  semi-     condensed   extra
                extended                       condensed             condensed
                  (v)         (e)      (-)      (n)        (c)        (q)

Zkratkami DXE až LXC jsou zde označeny 4-řezové rodiny, kde jejich základní písmo má podle tabulky stanovený duktus. Tučná varianta má o dva stupně větší duktus, proto má tabulka nahoře ještě dva řádky.

Z tabulky je názorně vidět, že tučná varianta rodin "light" je totožná se základní variantou rodin "demi". Zakoupíme-li celou superrodinu Dynamo-Grotesk, dostáváme tedy namísto očekávaných 60 fontů hned 72 fontů tříděných do 18 rodin po čtyřech. Přitom ale, jak jsme si řekli, některé fonty se překrývají, ale v dodávce se jinak jmenují.

V TeXu jsou metriky důsledně pojmenovány tak, že nedochází k překrytí dvou různých názvů pro stejné písmo. Vychází se z výše uvedené tabulky. Pro duktus se používá písmen l, r, d, b, c, pro šířku písmen v, e, n, c a q (viz závorky v tabulce). Duktus se v názvu metriky označuje před kódováním a šířka písmena za ním. Takže například základní písmo rodiny DXE se v TeXu jmenuje `sdgd8zv` -- s: Střešovice, dg: DynaGrotesk, d: demi, 8z: kódování, v: extra extended.

Pro písmo, které je dodáváno stejné, ale v různých rodinách jinak nazvané, jsem pro zařazení do TeXu preferoval názvy z rodin "demi" před názvy z rodin "light". Pokud jsme v situaci, že máme zakoupenu rodinu "light", ale nikoli k ní odpovídající rodinu "Demi", budeme muset opravit soubor `texmf/dvips/config/storm.map`. Jde o to odstranit na jistých řádcích komentáře a na jiných je přidat. Například pro šířku XE vypadá odpovídající dvojice řádků před úpravou:

    sdgd8zv DynaGroteskDXE "StormL2Encoding ReEncodeFont" <storml2.enc <dynagdxe.pfb
    % sdgd8zv DynaGroteskLXE-Bold "StormL2Encoding ReEncodeFont" <storml2.enc <dynglxeb.pfb

a po úpravě:

    % sdgd8zv DynaGroteskDXE "StormL2Encoding ReEncodeFont" <storml2.enc <dynagdxe.pfb
    sdgd8zv DynaGroteskLXE-Bold "StormL2Encoding ReEncodeFont" <storml2.enc <dynglxeb.pfb

### 5.6. Překrývání názvů v některých rodinách

Některé fonty jsou sestaveny do 6-řezových rodin (například JannonAntikva a JannonText). Přitom v nabídce Střešovické písmolijny je taková 6-řezová rodina uváděna jako dvě rodiny 4-řezové, ve kterých se varianty Bold překrývají. Toto překrytí má za následek, že v nabídce mohou existovat dva PFB soubory různě se jmenující, ale obsahující stejný font.

Například superrodina Jannon je členěna takto:

    JannonAntikva               JannonText                  JannonTextCaps
    -------------               ----------                  --------------
    Jannon Antiqua              Jannon Text                 Jannon Caps
    Jannon Medium               Jannon Text Medium
    Jannon Demi-Gras            Jannon Text Bold            Jannon Caps Bold
    Jannon Italique             Jannon Text Italic          Jannon Caps Italic
    Jannon Medium Italique      Jannon Text Medium Italic
    Jannon Demi-Gras Italique   Jannon Text Bold Italic     Jannon Caps Bold Italic

Zakoupíme-li kompletní superrodinu Janon, dostáváme fonty členěny do standardních 4-řezových rodin JannonAntikva, JannonMedium, JannonText, JanonTextMedium a JannonTextCaps. Přitom rodiny JannonAntikva i JannonMedium obsahují shodnou variantu Bold, sice font Jannon Demi-Gras. Totéž platí pro tučnou variantu Italique. Stejně tak rodiny JannonText a JannonTextMedium mají stejnou variantu Bold a BoldItalic. Ačkoli se tyto fonty neliší, v dodávce se PFB soubory jinak jmenují.

V TeXu jsou názvy metrik pro superrodinu Janon následující (místo 8z lze dosadit třeba 8t nebo 6s):

                  JannonAntikva   JannonText   JannonCaps
                  -------------   ----------   ----------
    základní      sjnr8z          sjnrg8z      sjnrc8z
    Medium        sjnm8z          sjnmg8z
    Bold          sjnb8z *        sjnbg8z *    sjnbc8z
    Italic        sjnri8z         sjnrig8z     sjnric8z
    MediumItalic  sjnmi8z         sjnmig8z
    BoldItalic    sjnbi8z *       sjnbig8z *   sjnbic8z

Hvězdičkou jsou označeny fonty, které mohou mít v dodávce dva různé názvy .pfb souborů. Ve storm.map jsem preferoval pro tyto fonty .pfb soubory z rodin základních a nikoli z rodin "Medium". Pokud to někomu nevyhovuje (má například zakoupenou jen rodinu Medium), pak může odstranit na odpovídajících řádcích ve storm.map komentáře a dát je jinam.

## 6. TeXové makro OFS

OFS (Olšákův Font Systém) je makro, které umožní přehledně v TeXu vybírat rodiny fontů, jejichž názvy jsou v souladu s názvy z katalogu Střešovické písmolijny. Toto makro je z uživatelského pohledu stejné v plainu i LaTeXu. OFS pro plain má podobné vlastnosti jako NFSS LaTeXu zatímco OFS pro LaTeX vlastnosti NFSS využívá.

Předpokládejme, že budeme pracovat s rodinami Jannon a DynaGrotesk. V plainu zavedeme OFS například takto:

    \input ofs [sjannon, sdynamo]

přitom `sjannon.tex` a `sdynamo.tex` jsou soubory, ve kterých je deklarován přístup k fontům rodin Jannon a DynaGrotesk. Písmeno "s" na začátku názvů těchto souborů připomíná, že se jedná o deklarace fontů ze "S"třešovické písmolijny. Tyto soubory najdeme v adresáři texmf/csplain/storm/.

V LaTeXu zavedeme OFS například takto:

    \usepackage [sjannon, sdynamo] {ofs}

přitom `sjannon.sty` a `sdynamo.sty` jsou soubory, ve kterých je deklarován přístup k fontům rodin Jannon a DynaGrotesk. Písmeno "s" na začátku názvů těchto souborů připomíná, že se jedná o deklarace fontů ze "S"třešovické písmolijny. Tyto soubory najdeme v adresáři `texmf/cslatex/storm/`.

Po zavedení OFS v plainu i LaTeXu můžeme použít příkaz `\showfonts`, který nám ukáže seznam názvů rodin, které můžeme nadále používat. Po zavedení `sjannon` a `sdynamo` vypadá tento seznam následovně:

    OFS (l.2): The list of known font families:
    defaults:
       [CMRoman/]            \rm, \bf, \it, \bi, \sl
       [CMSans/]             \rm, \bf, \it,  -
       [CMTypewriter/]       \rm,  - , \it,  - , \sl
       [Times/]              \rm, \bf, \it, \bi
       [Helvetica/]          \rm, \bf, \it, \bi, \nrm, \nbf, \nit, \nbi
       [Courier/]            \rm, \bf, \it, \bi
    sjannon:
       [JannonAntikva/]      \rm, \bf, \it, \bi, \mr, \mi
       [JannonText/]         \rm, \bf, \it, \bi, \mr, \mi
       [JannonCaps/]         \rm, \bf, \it, \bi
    sdynamo:
       [DynaGroteskDXE/]     \rm, \bf, \it, \bi
       [DynaGroteskRXE/]     \rm, \bf, \it, \bi
       [DynaGroteskLXE/]     \rm, \bf, \it, \bi
        ... a dalších 15 rodin DynaGrotesk...

Prvních 6 rodin (označené jako defaults) není součástí dodávky Střešovické písmolijny, ale jsou defaultní součástí OFS. Jejich fonty jsou totiž přítomny v každé instalaci TeXu.

Za názvem rodiny vidíme přepínače variant, které je možné v rodině používat. Například pro rodinu JannonText jsou kromě standardních variant k dispozici ještě přepínače `\mr` (MediumRoman) a `\mi` (MediumItalic). Na druhé straně rodina CMTypewriter nemá ani standardní variantu Bold a BoldItalic.

Pokud chceme zavést deklarace všech rodin ze Střešovické písmolijny, můžeme v plainu psát

    \input ofs [skatalog]            nebo jen:  \input skatalog

a v LaTeXu:

    \usepackage [skatalog] {ofs}     nebo jen:  \usepackage {skatalog}

Příkaz `\showfonts` nyní vylistuje úctyhodný seznam 92 rodin s celkem 325 variantami:

    OFS (l.2): The list of known font families:
    defaults:
       [CMRoman/]            \rm, \bf, \it, \bi, \sl
       [CMSans/]             \rm, \bf, \it,  -
       [CMTypewriter/]       \rm,  - , \it,  - , \sl
       [Times/]              \rm, \bf, \it, \bi
       [Helvetica/]          \rm, \bf, \it, \bi, \nrm, \nbf, \nit, \nbi
       [Courier/]            \rm, \bf, \it, \bi
    sjannon:
       [JannonAntikva/]      \rm, \bf, \it, \bi, \mr, \mi
       [JannonText/]         \rm, \bf, \it, \bi, \mr, \mi
       [JannonCaps/]         \rm, \bf, \it, \bi
    santique:
       [AntiqueAncienne/]    \rm,  - , \it,  -
       [AntiqueModerne/]     \rm,  - , \it,  -
       [AntiqueRegent/]      \rm,  - , \it,  -
    sregent:
       [Regent/]             \rm, \bf, \it, \bi
    smedi:
       [Mediaeval/]          \rm, \bf, \it, \bi
       [MediaevalSC/]        \rm, \bf, \it, \bi
    sserap:
       [Serapion/]           \rm, \bf, \it, \bi
    sjbasker:
       [JBaskerville/]       \rm, \bf, \it, \bi, \mr, \mi
       [JBaskervilleText/]   \rm, \bf, \it, \bi, \mr, \mi
       [JBaskervilleTxN/]    \rm, \bf, \it, \bi
       [JBaskervilleCaps/]   \rm,  - , \it,  - , \mr, \mi
       [JBaskervilleTCaps/]  \rm,  - , \it,  - , \mr, \mi
    sbiblon:
       [Biblon/]             \rm, \bf, \it, \bi
       [BiblonCaps/]         \rm, \bf, \it, \bi
       [BiblonITC/]          \rm, \bf, \it, \bi
       [BiblonITCSwash/]     \rm, \bf, \it, \bi
       [BiblonITCCaps/]      \rm, \bf,  - ,  -
    shercul:
       [Hercules/]           \rm, \bf, \it, \bi, \mr, \mi
       [HerculesText/]       \rm, \bf, \it, \bi
    spreiss:
       [PreissigAntikva/]    \rm, \bf, \it, \bi
       [Preissig/]           \rm, \bf, \it, \bi
       [PreissigText/]       \rm, \bf, \it, \bi
       [PreissigOzdoby/]     \rm,  - ,  - ,  -
       [Preissig1918/]       \rm,  - ,  - ,  -
    styfa:
       [TyfaITC/]            \rm, \bf, \it, \bi, \mr, \mi
       [TyfaText/]           \rm, \bf, \it, \bi, \mr, \mi
       [TyfaTextCaps/]       \rm, \bf,  - ,  -
    ssolpera:
       [Solpera/]            \rm, \bf, \it, \bi, \mr, \mi, \kr, \ki
    sdynamo:
       [DynaGroteskDXE/]     \rm, \bf, \it, \bi
       [DynaGroteskRXE/]     \rm, \bf, \it, \bi
       [DynaGroteskLXE/]     \rm, \bf, \it, \bi
       [DynaGroteskDE/]      \rm, \bf, \it, \bi
       [DynaGroteskRE/]      \rm, \bf, \it, \bi
       [DynaGroteskLE/]      \rm, \bf, \it, \bi
       [DynaGroteskD/]       \rm, \bf, \it, \bi
       [DynaGroteskR/]       \rm, \bf, \it, \bi
       [DynaGroteskL/]       \rm, \bf, \it, \bi
       [DynaGroteskDM/]      \rm, \bf, \it, \bi
       [DynaGroteskRM/]      \rm, \bf, \it, \bi
       [DynaGroteskLM/]      \rm, \bf, \it, \bi
       [DynaGroteskDC/]      \rm, \bf, \it, \bi
       [DynaGroteskRC/]      \rm, \bf, \it, \bi
       [DynaGroteskLC/]      \rm, \bf, \it, \bi
       [DynaGroteskDXC/]     \rm, \bf, \it, \bi
       [DynaGroteskRXC/]     \rm, \bf, \it, \bi
       [DynaGroteskLXC/]     \rm, \bf, \it, \bi
    slexongo:
       [LexonGothic/]        \rm, \bf, \it, \bi
       [LexonGothicSC/]      \rm, \bf,  - ,  -
       [LexonGothicHX/]      \rm,  - ,  - ,  - , \hdl, \xylo
    sidealgo:
       [IdealGothic/]        \rm, \bf, \it, \bi, \obli, \bobli
    sgenre:
       [Genre/]              \rm, \bf, \it, \bi, \mr, \mi
    smramor:
       [Mramor/]             \rm, \bf, \it, \bi, \lr, \li, \mr, \mi, \kr, \ki
       [MramorMedium/]       \rm, \bf, \it, \bi
       [MramorBook/]         \rm, \bf, \it, \bi
       [MramorLight/]        \rm, \bf, \it, \bi
       [MramorText/]         \rm, \bf, \it, \bi
    spenta:
       [Pentagramme/]        \rm, \bf, \it, \bi
    stitul:
       [Alcoholica/]         \rm, \bf, \it,  -
       [Monarchia/]          \rm, \bf,  - ,  -
       [MonarchiaText/]      \rm, \bf,  - ,  -
       [Clichee/]            \rm, \bf, \it, \bi
       [Regula/]             \rm,  - , \it,  -
       [Splendid/]           \rm, \bf, \it,  - , \script, \sans
       [Cobra/]              \rm, \bf,  - ,  -
       [ExcelScript/]        \rm,  - ,  - ,  - , \ext
       [ExcelScriptText/]    \rm,  - ,  - ,  - , \ext
       [Zeppelin/]           \rm, \bf,  - ,  - , \lr, \coll
       [Negro/]              \rm,  - ,  - ,  -
       [Farao/]              \rm, \bf,  - ,  - , \kr, \coll
       [Compur/]             \rm, \bf,  - ,  - , \lr
       [Bahnhof/]            \rm, \bf,  - ,  - , \kr, \ol, \sol
       [Rondka/]             \rm,  - ,  - ,  -
       [Tenebra/]            \rm,  - ,  - ,  - , \oldf, \shad
       [Aichel/]             \rm,  - ,  - ,  -
       [Traktoretka/]        \rm,  - ,  - ,  - , \ol, \shad
       [Evil/]               \rm,  - ,  - ,  -
       [Ozdoby/]             \rm,  - ,  - ,  -
       [Modell/]             \rm,  - , \it,  - , \env
       [Kompressor/]         \rm,  - , \it,  - , \ext, \exti
       [Libcziowes/]         \rm,  - ,  - ,  -
       [Ohrada/]             \rm,  - ,  - ,  -
       [Patzcuaro/]          \rm,  - ,  - ,  -
       [Plagwitz/]           \rm,  - ,  - ,  -

Pomocí příkazu `\setfonts [<JménoRodiny>/<velikost>]` nastavíme zvolenou rodinu a/nebo velikost fontů (některý parametr může být prázdný), přičemž mezi jednotlivými variantami lze pak přepínat pomocí uvedených přepínačů.

Příkaz `\fontusage` vypíše do logu a na terminál stručnou informaci o použití maker z OFS. Najdeme tam informaci o různých formátech parametrů pro `\setfonts` a zmínku o dalším příkazu `\fontdef` a dalších příkazech. Podrobnější informace najdeme v dokumentaci

texmf/doc/cstex/ofsdoc.tex

kterou lze zpracovat csplainem (bez nutnosti mít OFS instalované).

### 6.1. Specialita pro rodinu DynaGrotesk

Pokud zavedeme rodinu DynaGrotesk, máme k dispozici kromě možnosti přepínání do 18 čtyř-řezových rodin pomocí `\setfonts` ještě další dva příkazy, které umožní vybrat řez přímo z celé super-rodiny DynamoGrotesk. Jedná se o příkazy `\setdynamo` a `\changedynamo`.

    \setdynamo [varianta/duktus/šířka], kde
       "varianta" je jedna z možností:  "up" (nebo "rm") a "it"
       "duktus" je písmeno "L" (light), "R" (regular), "D" (demi),
                "B" (bold) nebo "K" (Black)
       "šířka" je zkratka "XE" (extra extended), "E" (extended), "R" (regular),
                "M" (medium), "C" (condensed), "XC" (extra condensed).

Pokud je nějaký parametr prázdný, aktuální volba tohoto parametru zůstává nezměněna. Defaultně je aktuální `[up/R/R]`.

Příklady:

    \setdynamo [up/D/E]  ... nastaví přímou variantu DemiExtended
    \setdynamo [it/K/XC] ... nastaví kurzívu BlackExtraCondensed
    \setdynamo [/R/R]    ... nastaví duktus i šířku jako Regular
                             aktuální varianta (kurzíva/přímá) je nezměněna.

    \setdynamo [it//]    ... nastaví kurzívu, aktuální duktus a šířka
                             zůstává zachována.
    \setfonts[/17pt]\setdynamo[//] ... nastaví aktuálně vybraný řez
                             ve velikosti 17pt.

`\changedynamo [znaky]` je příkaz, který umožní měnit variantu, duktus a šířku relativně k aktuálním parametrům. Můžeme se pohybovat po třídimensionální tabulce 6x5x2 (jedna vrstva tabulky je pro variantu "up" nakreslena v odstavci 5.5). Znak `"<"` přesune aktuální hodnotu doleva v tabulce, znak `">"` doprava, znak `"-"` dolů a `"+"` nahoru. Konečně znak `"*"` převede aktuální hodnotu na druhou vrstvu tabulky.

Po použití `\changedynamo [znaky]` je ještě potřeba potvrdit nový stav pomocí `\setdynamo [//]`. Teprve pak se font v nově nastavené variantě, duktu a šířce aktivuje.

Příklady:

    \setdynamo [up/D/C] ... tiskneme v přímé variantě DemiCondensed
    \changedynamo[>]\setdynamo[//] ... nyní to bude DemiExtraCondensed,
    \changedynamo[>]\setdynamo[//] ... jsme na kraji tabulky, nic se nezměnilo,
    \changedynamo[+]\setdynamo[//] ... tisk bude v BoldExtraCondensed
    \changedynamo[--]\setdynamo[//] ... a nyní RegularExtraCondensed
    \changedynamo[*<<<<+++]\SETDYNAMO[//] PříKLAD \DEF\BOLDDYNAMO{\CHANGEDYNAMO[++]\SETDYNAMO[//]} A BLACKEXTENDED DEFINICE: ... ITALIC.

### 6.2. Kódování fontů

LATEX: Přepínání mezi kódováním fontů probíhá zcela v režii NFSS. OFS v této věci nepřidává nic nového. FD soubory pro fonty ze Střešovické písmolijny jsou připraveny ve třech verzích: pro kódování IL2, T1 a SE1 (to poslední je připraveno pro extra metriky *6s). Při `\usepackage{czech}` se v cslatexu defaultně aktivuje kódování podle CSfontů (*8z). Chceme-li použít fonty *8t, můžeme například psát

    \usepackage [T1] {czech}

PLAIN: Implicitně se při zavedení OFS předpokládá kódování CSfontů. Pokud ale používáme speciální tcp/tcx tabulku tak, aby náš modifikovaný plain (podle licenčních pravidel se nemůže jmenovat plain ani csplain) pracoval s fonty podle T1 kódování, pak použijeme `\def\fotenc{8t}` před zavedením OFS.

### 6.3. Makra pro tisk jednotlivých znaků

Pomocí `tex testfont` si můžeme vytisknout tabulku znaků z metrik 8z, 8t a 6s. Všechny znaky můžeme tisknout "manuálně" pomocí `\char<číslo>` (pro základní metriku 8z nebo 8t) a `\extchar<číslo>`, což automaticky přepne do rozšiřující metriky 6s. Používáme-li například defaultní kódování 8z, pak na pozicích podle ASCII není přítomno 8 znaků:

        "   <   >   \   _   {   |   }

Pokud tyto znaky potřebujeme tisknout, pak můžeme použít sekvence:

    \extchar`\"  \extchar`\<  \extchar`\>  \extchar`\\
    \extchar`\_  \extchar`\{  \extchar`\|  \extchar`\}

protože v rozšiřující metrice 6s jsou tyto znaky na pozicích podle ASCII.

Po zavedení makra OFS můžeme použít pro tisk znaků též kontrolní sekvence uvedené níže v seznamu maker. Tato makra jsou též včetně ukázek uvedena ve "znakovníčku": schars.pdf.

Poznámky (použité v seznamu maker)

`*` : znak není přítomen v metrice 8z. Pokud pracujeme v tomto kódování, OFS automaticky použije metriku 6s.

`@` : znak není přítomen v metrice 8t. Pokud pracujeme v tomto kódování, OFS automaticky použije metriku 6s.

Poznámka k poznámkám: Jestliže TeX musí přepnout do metriky 6s uvnitř slova, pak v tomto slově nebude fungovat dělení slov a je ztracena informace o vyrovnání (kerning) se znakem zleva i zprava.

### Seznam maker pro tisk znaků

     @  \degree      ... stupneň, například: \degree C
     @  \euro        ... znak společné evropské měny
        \sterling    ... libra
    *@  \yen         ... Yen
    *@  \cent        ... setina dolaru
    *@  \franc       ... Frank
     @  \trademark   ... TM nahoře
     @  \copyright   ... C v kroužku
     @  \registered  ... R v kroužku
        \promile     ... znak promile, tisícina celku

        \clq         ... levá jednoduchá česká uvozovka (vypadá jako , )
        \crq         ... pravá jednoduchá česká uvozovka (vypadá jako ` )
        \clqq        ... levá dvojitá česká uvozovka (vypadá jako ,, )
        \crqq        ... pravá dvojitá česká uvozovka (vypadá jako `` )
        \flq         ... levá jednoduchá francouzská uvozovka (vypadá jako < )
        \frq         ... pravá jednoduchá francouzská uvozovka (vypadá jako > )
        \flqq        ... levá dvojitá francouzská uvozovka (vypadá jako << )
        \frqq        ... pravá dvojitá francouzská uvozovka (vypadá jako >> )
        \elq         ... levá jednoduchá anglická uvozovka (vypadá jako ` )
        \erq         ... pravá jednoduchá anglická uvozovka (vypadá jako ' )
        \elqq        ... levá dvojitá anglická uvozovka (vypadá jako `` )
        \erqq        ... pravá dvojitá anglická uvozovka (vypadá jako '' )
        \singleuv{text}                  ... vytiskne:  ,text`
        \doubleuv{text} nebo \uv{text}   ... vytiskne:  ,,text``
        \singlefuv{text}                 ... vytiskne:  >text<
        \doublefuv{text} nebo \fuv{text} ... vytiskne:  >>text<<
        \singleauv{text}                 ... vytiskne:  `text'
        \doubleauv{text} nebo \auv{text} ... vytiskne:  ``text''

    Pozn: následující sekvence \textXY pracují v textovém módu, zatímco
          jejich protějšky \XY jsou standardně definovány jen pro matematický mód.

    *@  \textleq        ... menší nebo rovno
    *@  \textgeq        ... větší nebo rovno
    *@  \textneq        ... škrtnuté rovnítko
    *@  \textneg        ... symbol logické negace
    *@  \textpm         ... plus mínus
    *@  \textminus      ... mínus
     @  \texttimes      ... symbol pro násobení
     @  \textdiv        ... symbol pro dělení
    *@  \textsum        ... symbol sumy
    *@  \textmu         ... mikro
    *@  \textDelta      ... Delta
    *@  \textinfty      ... nekonečno
    *@  \textradical    ... odmocnina
    *   \textbackslash  ... znak \
    *   \textbraceleft  ... znak {
    *   \textbraceright ... znak }
    *   \textless       ... je ostře menší
    *   \textgreater    ... je ostře větší

    *@  \onesuperior    ... malá jednička nahoře
    *@  \twosuperior    ... malá dvojka nahoře
    *@  \threesuperior  ... malá trojka nahoře
    *@  \onequarter     ... ligatura pro 1/4
    *@  \onehalf        ... ligatura pro 1/2
    *@  \threequarters  ... ligatura pro 3/4
    *@  \fraction       ... symbol vhodný pro zlomky ve tvaru a/b

    *@  \brokenbar      ... svislá čárka přerušená uprostřed
    *   \fullbar        ... svislá čárka
    *   \quotedbl       ... symbol jednotky palec ( " )
    *   \asciicircum    ... stříška ( ^ )
    *   \underscore     ... podtržítko ( _ )
    *   \asciitilde     ... vlnka ( ~ )
    *@  \ordfeminine    ... malé a nahoře
    *@  \ordmasculine   ... malé o nahoře

     @  \dag            ... jednoduchý křížek
     @  \ddag           ... dvojitý křížek
     @  \textbullet     ... puntík
     @  \ellipsis       ... tři tečky jako jeden znak ve fontu
        \dots           ... tři tečky jako makro, protože \ellipsis není nic moc
     @  \P              ... symbol konce odstavce
        \S              ... paragraf užívaný právníky

    *@  \varzero        ... skákavé číslice
    *@  \varone \vartwo \varthree \varfour \varfive
    *@  \varsix \varseven \vareight \varnine
    *@  {\vardigits 01233456789}

        \varv        ... variantní znak v (jen v některých kurzívách, jinak znak \pi)
     @  \ligct       ... ligatura ct
     @  \ligst       ... ligatura st
     @  \ligft       ... ligatura ft
     @  \longs       ... dlouhé es, vypadající spíše jako f bez příčky
     @  \longst      ... ligatura dlouhé es + t
     @  \florin      ... vypadá jako skloněné f

        \Eth           ... přeškrtnuté D
        \eth           ... přešktrnuté variantní d
    *   \Thorn         ... Thorn
    *   \thorn         ... thorn
    *@  \IJ            ... ligatura IJ
    *@  \ij            ... ligatura ij
        \exclamdown    ... obrácený vykřičník
        \questiondown  ... obrácený otazník
    *@  \periodcentered .. tečka kdesi uprostřed

        \i           ... i bez tečky (j bez tečky ve Štormových fontech není)
        \ss          ... německé ostré es
        \AE          ... ligatura AE
        \ae          ... ligatura ae
        \OE          ... ligatura OE
        \oe          ... ligatura oe
        \O           ... škrtnuté O
        \o           ... škrtnuté o
        \L           ... škrtnuté L
        \l           ... škrtnuté l

Znaky přístupné díky ligaturní tabulce v metrice fontu:

    --    ... krátká pomlčka (endash)
    ---   ... dlouhá pomlčka (emdash)
    fi    ... ligatura fi
    fl    ... ligatura fl
    ff    ... ligatura ff
    ffi   ... ligatura ffi
    ffl   ... ligatura ffl

Samostatné akcenty:

    \` {}  ... obrácená čárka (grave)
    \' {}  ... čárka (acute)
    \v {}  ... háček (caron)
    \u {}  ... oblouček usmívající (breve)
    \= {}  ... vodorovná čárka (macron)
    \r {}  ... kroužek (ring)
    \^ {}  ... stříška (circumflex)
    \. {}  ... tečka (dotaccent)
    \H {}  ... maďarská přehláska (hungarumlaut)
    \" {}  ... přehláska (dieresis)
    \~ {}  ... vlnka (tilde)
    \c {}  ... španělský ocásek (cedilla)
    \k {}  ... polský ocásek (ogonek)
    \m {},  \commaaccent    ... čárka (obvykle pod písmenem) jako akcent

Následující sekvence vytisknou samotný akcent vhodný pro umístění nad verzálkami (velkými písmeny).

    *@   \CAP` {}   \CAP' {}   \CAPv {}   \CAPu {}   \CAP= {}   \CAPr {}
    *@   \CAP^ {}   \CAP. {}   \CAPH {}   \CAP" {}   \CAP~ {}

Porovnejme: `\v X` versus `\CAPv X` . V druhém případě je háček mělčí. Pozor, některé fonty nemají variantní akcenty pro verzálky. V takovém případě sekvence `\CAP?` vytisknou stejný akcent nebo nevytisknou nic. Např. JanonText nemá odlišné akcenty, ale JannonAntikva má.

Seznam akcentovaných znaků, které jsou ve fontu kresleny jako jeden celek:

       \` A      \' A      \" A      \k A      \^ A      \u A   *  \~ A   *@ \= A
       \` a      \' a      \" a      \k a      \^ a      \u a   *  \~ a   *@ \= a
    *  \r A   *  \r a
       \v C      \' C      \c C   *@ \^ C   *@ \. C
       \v c      \' c      \c c   *@ \^ c   *@ \. c
       \v D      \v d   *  \= d
       \' E      \v E      \k E      \" E   *  \` E   *@ \u E   *  \^ E   *@ \= E
       \' e      \v e      \k e      \" e   *  \` e   *@ \u e   *  \^ e   *@ \= e
    *@ \. E   *@ \. e
    *  \u G   *@ \^ G   *@ \. G   *@ \c G   *  \u g   *@ \^ g   *@ \. g   *@ \c g
    *@ \' g
    *@ \^ H   *@ \= H   *@ \^ h   *@ \= h
       \' I      \^ I   *  \` I   *@ \~ I   *  \" I   *@ \= I   *@ \k I   *  \. I
       \' i      \^ i   *  \` i   *@ \~ i   *  \" i   *@ \= i   *@ \k i
    *@ \^ J   *@ \^ j
    *@ \c K   *@ \c k
       \v L      \' L   *@ \c L   *@ \. L      \v l      \' l   *@ \c l   *@ \. l
       \v N      \' N   *@ \c N   *  \~ N      \v n      \' n   *@ \c n   *  \~ n
    *@ \m n
       \' O      \^ O      \" O      \H O   *  \` O   *@ \= O   *@ \u O   *  \~ O
       \' o      \^ o      \" o      \H o   *  \` o   *@ \= o   *@ \u o   *  \~ o
       \' R      \v R   *@ \c R      \' r      \v r   *@ \c r
       \v S      \' S      \c S   *@ \m S   *@ \^ S
       \v s      \' s      \c s   *@ \m s   *@ \^ s
       \v T      \c T   *@ \m T   *@ \= T      \v t      \c t   *@ \m t   *@ \= t
       \r U      \' U      \" U      \H U   *@ \= U   *@ \u U   *  \^ U   *  \` U
       \r u      \' u      \" u      \H u   *@ \= u   *@ \u u   *  \^ u   *  \` u
    *@ \k U   *@ \~ U   *@ \k u   *@ \~ u
    *@ \^ W   *@ \^ w
       \' Y   *@ \^ Y   *  \" Y      \' y   *@ \^ y   *  \" y
       \v Z      \' Z      \. Z      \v z      \' z      \. z

Akcentové sekvence `\'`, `\``, `\v`, `\u`, `\=`, `\r`, `\^`, `\.`, `\H`, `\~`, `\"`, `\c`, `\k`, `\m`, po zavedení OFS vytisknou kompaktní akcentový znak právě tehdy, když ve fontu existuje (v základní nebo v rozšiřující metrice 6s). Jinak tyto sekvence vytisknou znak sestavený ze samostatného bázového znaku a samostatného akcentu.

### 6.4. Matematika

LATEX: Otázku sazby matematiky v LaTeXu jsem vůbec neřešil. LaTeXový uživatel asi použije nějaký balíček.

PLAIN: Otázku sazby matematiky jsem řešil velmi pečlivě. Makro OFS pro plain nabízí celou řadu příkazů na zavádění matematických rodin a matematických kódů. Pro uživatele je připraveno makro `\setmath[<velikost>/<velikost>/<velikost>]`, které nastaví matematické fonty pro základní/indexovou/indexindexovou velikost podle zadání. Dokud se toto makro nepoužije, TeX sází matematiku ve standardním ComputerModern ve velikostech 10/7/5. Prázdné parametry pro velikost (tj. `\setmath[//]`) znamenají, že se velkosti odvodí z aktuální velikosti textového fontu (pro indexy s koeficientem 0.7 a indexindexy s koeficientem 0.5).

Po použití příkazu \setmath se pro matematické proměnné použije kurzíva aktuální rodiny, pro znaky, jako sin, cos, číslice, závorky atd. se použije základní varianta aktuální rodiny a pro řecká písmena a mnoho dalších znaků se použije PostScriptový font Symbol. Žádný z matematických symbolů definovaných v plainu není ztracen.

Natahovací závorky a velké operátory zůstávají ve fontu Computer Modern, protože neexistuje volně šířená alternativa k těmto fontům. V produkci Střešovické písmolijny k těmto matematickým fontům také neexistuje alternativa.

Pokud má uživatel zakoupeny komerční matematické fonty, pak je relativně snadno implementuje do OFS pomocí příkazů `\loadmathfam` a dalších, které jsou důkladně popsány v dokumentaci k OFS.

Pokud máme pomocí \setfonts aktivovány fonty ze Střešovic a použijeme následně příkaz `\setmath`, TeX aktivuje následující sekvence, které budou v matematickém módu tisknout symboly ze Štormových fontů:

    + - /       ... (znaky plus, mínus, lomeno)
    0123456789  ... číslice
    f (), M {}  ... proměnné, závorky, interpunkce
    <   >       ... je menší, je větší

    \leq, \le,  \geq, \ge   ... je menší nebo rovno, je větší nebo rovno
    \neq, \ne,  \neg, \lnot ... není rovno, logická negace
    \pm         ... plus mínus
    \times      ... křížek pro operaci krát
    \div        ... děleno s dvojtečkou a čárkou dohromady
    \infty      ... nekonečno

    \onesuperior   ... malá jednička nahoře  (pracuje v textovém i math módu)
    \twosuperior   ... malá dvojka nahoře  (pracuje v textovém i math módu)
    \threesuperior ... malá trojka nahoře  (pracuje v textovém i math módu)
    \onequarter    ... ligatura 1/4  (pracuje v textovém i math módu)
    \onehalf       ... ligatura 1/2  (pracuje v textovém i math módu)
    \threequarters ... ligatura 3/4  (pracuje v textovém i math módu)
    \fraction      ... symbol vhodný pro zlomky (v textovém i math módu)
    \dagger        ... jednoduchý křížek
    \ddagger       ... dvojitý křížek
    \dag           ... jednoduchý křížek  (pracuje v textovém i math módu)
    \ddag          ... dvojitý křížek  (pracuje v textovém i math módu)
    \bullet        ... puntík  (pracuje v textovém i math módu)

Ostatní matematické symboly zůstávají tištěny ve fontu Symbol. Natahovací závorky a velké operátory jsou ponechány ve fontu Computer Modern.

## Stručné poznámky k licencím

Licenci k vlastním fontům uděluje Střešovická písmolijna. Stručně shrnuto, zaplacením licenčního poplatku můžete fonty používat na stanoveném počtu počítačů. Software zůstává ve vlastnictví Střešovické písmolijny a výhradním distributorem je Střešovická písmolijna. Po zaplacení máte právo na bezplatnou technickou podporu výrobků Střešovické písmolijny. Rozumí se tím pravděpodobně technická podpora na běžných komerčních systémech. Licence je k nalezení na www.pismolijna.cz.

TeXovou podporu k fontům Střešovické písmolijny věnuji Internetové veřejnosti pod licencí GPL. Hlavní důvod je ten, že nemohu sám zaručit stabilitu a neměnnost fontů, jako tomu je například u CS-fontů. Pokud Střešovická písmolijna udělá nové verze, bude asi potřeba, aby nějaký dobrovolník upravil k těmto verzím TeXovou podporu. Znění GNU GPL je po nainstalování balíku `stormtex.tgz` umístěno v `texmf/doc/storm/license.gpl`. Také je najdete tady.

Makro OFS věnuji Internetové veřejnosti zdarma k možnému použití i šíření pod podmínkou, že názvy použitých souborů, jako například `ofs.tex`, `ofs.sty`, jsou rezervovány pro tento balík a změnu verzí v balíku může provést jen autor. Přesný text licence je po nainstalování balíku `stormtex.tgz` uložen v `texmf/doc/cstex/readme.ofs`. Také jej najdete tady.