[cstex] LaTeX - užší font, ruština

Zdenek Wagner zdenek.wagner at gmail.com
Mon Oct 29 17:20:07 CET 2012


Dne 29. října 2012 16:44 Josef Tkadlec <tkadlec at fel.cvut.cz> napsal(a):
> To myslím není pravda - tak dostanu LM fonty místo EC fontů. Pro náhradu CS
> fontů by mělo být \usepackage [IL2]{fontec}. Pro běžné použití se nemusím o
> nic starat, ale "problém" nastane, poud chci použít název fontu.
>
> Pokud tomu rozumím, Latin Modern fonty mají být použitelné pro různá
> kódování fontů. Toho je dosaženo tím, že mají nějaké vlastní kódování, a
> mapovací tabulky z různých kódování fontů v LaTeXu (OT1, T1, IL2, ...).
> Takto "vybrané" fonty jsou označeny předponou (ec- pro T1, cs- asi pro IL2,
> ...). Takže
>
> \font\narrowfont lmr12 at 10pt
>
> zahlásí chybu, protože pro lmr12 nenajde MF zdroj ani odkaz na type1.
> Zatímco když napíšu
>
> \font\narrowfont ec-lmr12 at 10pt
>
> tak v .map souboru zjistí, že ec-lmr12 je T1-výběr fontu lmr12.
>
Ne! V .map je mapování TeXového jména (tedy jména tfm souboru) na PS
jméno a případně kódovací vektor, slant. Určitě bych tomu neříkal T1,
protože ligatury ``, --, --- ?` apod. v tomto vektoru nejsou.
Předpokládá se, že LaTeX s použitím informací v t1enc.def a
příslušných tfm překonvertuje znaky do tohoto kódovacího vektoru.

Font má podle NFSS2 pět orthogonálních atributů:
encoding/familyseries/shape/size

\usepackage[T1]{fontenc} změní encoding , T1, ale nemění další
atributy. rodiny cm* v kódování OT1 jsou původní CM fonty, rodiny cm*
v kódování IL2 jsou CS fonty, rodiny cm* v kódování T1 jsou EC fonty.
Podívejte se do souborů ot1cmr.fd, t1cmr.fd, il2cmr.fd.

\usepackage{lmodern} změní rodinu na lm*, nemění další atributy.
Podobně používáte \usepackage{times} pro změnu rodiny na Times.

Při použití příkazů NFSS2 se podle čtveřice
encoding/family/series/shape vytvoří jméno fd souboru. V něm se podle
"size function" zjistí jméno fontu (tedy tfm souboru) a jeho zvětšení,
jaké se má použít. S tímto údajem pak pracuje TeX při sazbě. dvips a
pdftex pak tohle jméno hledá v mapovací tabulce, protože PS i PDF
potřebují znát PS jméno. PFB soubor ani encoding vektor není nezbytně
nutný, pokud vím, že příjemce má stejný font se stejným PS jménem a
stejným enc. vektorem nainstalován. Pokud v mapovací tabulce není,
předpokládá se, že je to bitmapový font, který se generje metafontem.

Když použijete přímo \font, obcházíte mechanismus NFSS2. Pokud víte,
co děláte, můžete si to dovolit. Musíte si však dát velký pozor na to,
abyste nepoužil nějaké LaTeXové makro, které při své expanzi spoléhá
na to, že aktuální font lze zjistit pomocí standardních maker NFSS2.
Právě proto nemůže fungovat \bfseries, \itshape apod., protože NFSS
neví, že jste vnutil jiný font. Musíte si tedy nadefinovat vlastní
rodinu, zkopírovat fd soubory se správným názvem, vyměnit v nich jméno
rodiny a upravit size function.

> Josef Tkadlec
>
>
> Zdenek Wagner napsal(a):
>>
>> Dne 29. října 2012 15:04 Josef Tkadlec <tkadlec at fel.cvut.cz> napsal(a):
>>>
>>> Zdenek Wagner napsal(a):
>>>
>>>> Dne 29. října 2012 9:49 Josef Tkadlec <tkadlec at fel.cvut.cz> napsal(a):
>>>>>
>>>>>
>>>>> Dobrý den, může mi, prosím, někdo poradit s následujícími problémy?
>>>>>
>>>>> 1. Někdy potřebuji zúžit font (aby se text vešel do dané šířky - prosté
>>>>> zmenší textu sníží i výšku, což je škoda), například
>>>>>
>>>>> \usepackage [czech]{babel}
>>>>> \usepackage [cp1250]{inputenc}
>>>>> \usepackage [IL2]{fontenc}
>>>>> \font\narrowfont = csr12 at 10pt
>>>>>
>>>> To lze zařídit přepsáním .fd souborů, zaveďte si vlastní rodinu,
>>>> zkopírujte .fd pod příslušným jménem a udělejte si úpravy.
>>>>
>>>>> Chtěl bych přejít k latin modern fontům. Náhrada csr12 -> lmr12 (a
>>>>> změna
>>>>> fontenc na T1) nefunguje - při generování fontu se hledá lmr12.mf,
>>>>> který
>>>>> neexistuje (je lmr12.afm).
>>>>>
>>>> Nemáte správně nainstalovány soubory .map, nebo nemáte kompletní
>>>> instalaci LM fontů.
>>>
>>>
>>>
>>> Díky za nasměrování. Po delším zkoumání jsem zjistil, že musím k názvu
>>> fontu
>>> přidat kód použitého kódování fontu, pro T1 tedy místo lmr12 použít
>>> ec-lmr12.
>>>
>> Když napíšu:
>>
>> \usepackage{T1]{fontenc}
>> \usepackage{lmodern}
>>
>> mám jako default LM fonty místo CS fontů a nic víc není třeba.
>>
>>> S pozdravem,
>>> Josef Tkadlec
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz




More information about the csTeX mailing list