abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    17.5. 13:44 | Nová verze

    Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    17.5. 12:22 | Komunita

    Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.

    Ladislav Hagara | Komentářů: 0
    17.5. 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

    Ladislav Hagara | Komentářů: 12
    16.5. 23:33 | Nová verze

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 1
    16.5. 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.5. 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    16.5. 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 10
    16.5. 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    16.5. 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    16.5. 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 9
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (77%)
     (5%)
     (10%)
     (8%)
    Celkem 355 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    TeX – 7 (OpenType fonty)

    12. 12. 2013 | Petr Olšák | Různé | 5129×

    Na konci 90. let ustoupily fonty generované Metafontem do pozadí a nejčastěji se i v TeXu používaly fonty Type1 (formát od Adobe). Vedle toho stály fonty formátu TrueType od Microsoftu, které ale měly pro obtahy implementovány jen kvadratické spliny na rozdíl od kubických a často byly postiženy nevhodnou implementací. DTP svět se jim tedy vyhýbal obloukem, případně před tiskem prováděl konverze, což fontům taky nepomohlo k lepší reputaci.

    Lidé v DTP rozlišovali počítače poněkud zjednodušeně na Mac a PC a na obou těchto platformách byla implementace fontů Type1 naprosto odlišná. To společně s faktem, že metriky a obtahy byly ve zvláštních souborech, nebylo příliš praktické. A tak na počátku milénia začali v Microsoftu pracovat na následníkovi formátu TrueType a jejich rival Adobe se k nim překvapivě přidal a vznikl formát OpenType. Metrika i obtahy jsou ve společném souboru a formát je nezávislý na platformě. V Linuxu máme možnost tyto fonty použít např. v implementaci X Window systému X.org, taky díky knihovnám pango, freetype, Qt a dalším a můžeme je použít pochopitelně v XeTeXu nebo v LuaTeXu.

    Obsah

    Zavedení fontu v klasickém TeXu

    link

    V klasickém TeXu potřebujeme mít zvlášť metriku fontu. S obtahy znaků pracuje až ovladač DVI. V TeXu píšeme:

     
    \font\prepinac=<metrika> % <metrika> se uvádí bez přípony .tfm 
    nebo: 
    \font\prepinac=<metrika> at<velikost>
    nebo: 
    \font\prepinac=<metrika> scaled<poměr zvětšení>
    
    například: 
    \font\fa=pzcmi8z at12.3pt   % font ve velikosti 12,3 bodů
    nebo: 
    \font\fb=pzcmi8z scaled1380 % základní velikost 10 bodů násobená 1,38
    
    V textu se pak přepínač fontu použije přirozeně například {\fa takto}. 
    

    V uvedené ukázce je použit font Zapf Chancery, ale to by poznal jen specialista na TeXové fonty, protože z názvu metriky pzcmi8z to nelze snadno poznat. Tyto zkrácené názvy metrik (motivované tím, že názvy souborů kvůli přenositelnosti na stařičkých systémech musejí být omezeny na 8+3) jsem vždy považoval za velkou nevýhodu v koncepci TeXového přístupu k fontům. Nevýhodu násobenou ještě skutečností, že TeX pochopitelně neposkytuje interaktivní nabídku dostupných fontů. Vytvořil jsem tedy někdy před deseti lety makro OFS, které dokáže generovat vzorníčky fontů, vypisuje na terminál a do logu přehledy fontů a umožňuje používat přirozené názvy. Při dnešním použití XeTeXu nebo LuaTeXu už toto makro pozbývá smyslu: je možné přímo používat skutečné názvy fontů a vzorníček ve formě interaktivní nabídky instalovaných fontů v systému obstará jiný program.

    Fonty v LaTeXu

    link

    LaTeXoví uživatelé ani v době před XeTeXem neměli potřebu se zabývat nečitelnými názvy metrik dostupných fontů. To řeší použitý styl. Uživatel se typicky s primitivním příkazem \font nesetká. Místo toho pracuje s předdefinovanými přepínači \textbf, \textit, atd. Může ale použít doplňkové styly, které zavádějí kompletní rodinu fontů dle názvu, například \usepackage{times}.

    Při nástupu verze 2e (na začátku 90. let) se stalo součástí LaTeXu Mittelbachovo makro NFSS (new font selection scheme), které vybírá fonty prostřednictvím tzv. fd souborů. V nich je implementováno propojení mezi zkratkami jednotlivých metrik a novými, podobně nesrozumitelnými, zkratkami použitými uvnitř LaTeXu. Uživatel nebo programátor stylu pak vybíral font pomocí maker NFSS. LaTeX navíc pomocí maker převzal do svých rukou i přepínání mezi kódováním fontů a veškerý text prostřednictvím aktivních znaků převáděl do interní na kódování nezávislé reprezentace LICR (LaTeX internal character representation) a ta byla expandována do kódování použitého fontu.

    Pro LaTeX je tedy přechod na XeTeX nebo LuaTeX jednoznačným vysvobozením z této složitosti. Není nutné žádné LICR. Pro výběr fontů je v tomto novém prostředí připraven balíček fontspec.

    Zavedení OpenType fontu v XeTeXu

    link

    XeTeX je prolinkován s fontovou knihovnou operačního systému (v Linuxu fontconfig) a dokáže také najít dle názvu souboru OpenType fonty v TeXové distribuci nebo v aktuálním adresáři. XeTeX z toho důvodu rozšiřuje možnosti příkazu \font takto:

     
    \font\prepinac="Jméno Fontu:<fontfeatures>" <at nebo scaled jako v klasickém TeXu> 
    nebo: 
    \font\prepinac="[jméno-otf-souboru]:<fontfeatures>" <at nebo scaled> 
    

    XeTeX dokáže najít podle jména fontu jen font instalovaný v systému. Dokáže pracovat jednak s plným názvem (obvykle s mezerami) i s kondenzovaným PostScriptovým názvem (bez mezer). Ukázka bude za chvíli následovat.

    Nepovinné parametry <fontfeatures> specifikují dodatečné parametry fontu a pohovoříme o tom za chvíli. Za názvem fontu (při hledání podle názvu) a před dvojtečku je možné navíc umístit přepínače /B, /I, nebo /BI, což způsobí zavedení fontu stejné rodiny, ale ve variantě Bold, Italic nebo BoldItalic. Druhá možnost, jak k fontu přistoupit, je použít jeho plný název nebo název souboru.

    Zavedení OpenType fontu v LuaTeXu

    link

    LuaTeX rozšiřuje příkaz \font stejně jako XeTeX, ovšem toto rozšíření je dostupné až po spuštění inicializačního luakódu. To lze udělat například pomocí \input luafonts nebo \input luaoftload.sty. Obě makra dělají z hlediska fontů to samé. První z nich (moje makro) zavede jen potřebný luakód, zatímco druhé makro řeší ještě plno dalších věcí, které s fonty zcela nesouvisejí, a je tedy obtížné zjistit, co to všechno dělá.

    LuaTeX nabízí další syntaktické možnosti parametru příkazu \font: prefix name nebo file a obklopení názvu fontu namísto uvozovek závorkami {, }. Mně se vyplatilo používat výhradně XeTeXový způsob zápisu, kterému LuaTeX taky rozumí. Toho se budu držet i v následujících ukázkách.

    Instalace OpenType fontu LinuxLibertine

    link

    Pro další ukázky možností OpenType fontů je v tomto článku použit font LinuxLibertine. Z uvedené stránky je možné stáhnout fonty v souborech *.otf. Dále se nabízí několik možností: fonty necháte jen v aktuálním adresáři (a budete je vyhledávat jen pomocí jména souboru), nebo je instalujete do  systému, nebo je instalujete mezi TeXové fonty. Také je můžete konvertovat do  Type1 pro použití v klasickém TeXu.

    Varianta instalace fontu do sytému: Soubory *.otf umístěte někam do /usr/share/fonts/. Pak pomocí příkazu fc-cache (spuštěným pod právy roota) obnovte databázi instalovaných fontů. Pomocí příkazu fc-list se můžete přesvědčit, že font je instalován.

    Varianta instalace do TeXového adresáře: Soubory *.otf umístěte někam do .../texmf-local/fonts/opentype/. Pak pomocí příkazu texhash (spuštěným pod právy roota) obnovte databázi názvů prohledávaných souborů.

    Varianta převodu OpenType fontu do Type1 a jeho instalace do TeXového adresáře: Tato možnost je popsána v dodatku F knížky TeX pro pragmatiky a umožní OpenType font použít i pdfTeXem nebo klasickým TeXem. O rozšířené možnosti OpenType fontů přitom nepřicházíme, neboť pro každou generovanou metriku nastavujeme příslušný Encoding vektor a sadu <fontfeatures>. Takových metrik (navázaných na stejný Type1 font) můžeme vygenerovat libovolně mnoho.

    Pomocí příkazu otfinfo -i soubor.otf je možné se podívat na základní parametry OpenType fontu (jeho plný název, komprimovaný PostScriptový název atd.). Je možné použít další přepínače příkazu a zjistit o fontu více informací. Můžete si to vyzkoušet.

    Ukázka zavedení OpenType fontu příkazem \font

    link

    Vyzkoušejte vytvořit následující soubor:

     
    % zavedení Lua-kódu pro LuaTeX. Při použití XeTeXu neuděláme nic: 
    \ifx\directlua\undefined \else \input luafonts \fi 
    \baselineskip=14pt % řádkování 
    
    \font\f="Linux Libertine O Italic" at12pt 
    \f Tady je textík ve vybraném fontu. 
    
    \font\f="Linux Libertine O/I" at12pt 
    \f Zavede se stejný font. 
    
    \font\f="LinLibertineOI" at12pt 
    \f Zavedený stejný font podle komprimovaného PostScriptového názvu. 
    
    \font\f="[LinLibertine_RI]" at12pt 
    \f Font zavedený podle názvu souboru. Znovu stejný font. 
    
    \end
    

    Tento soubor zpracujte příkazem xetex soubor nebo luatex soubor. V obou případech byste měli dostat stejný výsledek, pokud je font nainstalován v systému. Je-li font instalován jen v TeXovém adresáři, pak vyhledávání podle názvu fontu bude fungovat jen v LuaTeXu. Ten si automaticky obnovuje svou vlastní font-cache, kdykoli zjistí, že nemůže najít font. Tato font-cache se generuje jednak podle font-cache v systému a jednak podle souborů instalovaných v TeXovém adresáři.

    Speciální vlastnosti OpenType fontů

    link

    OpenType fonty umožňují natavit tzv. „fontfeatures“ (slovo „fontfeature“ nebudu překládat, bude mít ženský rod a zkratku FF). Typické využití FF je znázorněno ve fontu Linux Libertine na  této www stránce. FF lze rozdělit do tří skupin:

    • Některé znaky po zapnutí/vypnutí FF mohou být vykresleny jinak. Tj. jedna Unicode pozice sdílí více glyphů a výběr glyphu závisí na nastavené FF. Klasickou FF tohoto typu je nastavení malých kapitálek místo obvyklých mínusek (smcp). Do této kategorie patří taky výměna číslic za jinou sadu číslic (tnum tabulkové, pnum proporcionální, onum medievalové). Fonty taky mohou být vybaveny zmenšenými číslicemi a dalšími znaky posunutými nahoru (sups) nebo dolů (sinf).
    • Kontextové ligatury: určité sekvence znaků se promění v ligaturu, tedy ve speciální glyph. Základní FF tohoto typu je liga (ligatury fi, fl, atd.). Dále se mohou nabízet rozšířené ligatury aktivované pomocí FF hlig (historické ligatury jako ct), a dlig (ligatury typu tz). Do této skupiny lze zahrnout i proměnu zlomků (1/2, 1/4) na speciální glyph, je-li k dispozici. K tomu slouží FF frac.
    • Kerning mezi písmeny souvisí s FF kern. Tato FF by měla být implicitně zapnutá. Mezi kerning patří i možnost vystrčit znaky, které se objeví na okraji sloupce sazby, do strany (lfbd vlevo, rtbd vpravo).

    Povšimněte si, že FF se oddělují středníky, zapínají se (nepovinným) prefixem + a vypínají prefixem -:

     
    % Zavedení Lua-kódu pro LuaTeX. Při použití XeTeXu neuděláme nic: 
    \ifx\directlua\undefined \else \input luafonts \fi 
    
    \catcode‘-=11 % znak - může být součástí řídicí sekvence 
    \baselineskip=14pt % řádkování 
    
    % Základní font: 
    \def\basefont{Linux Libertine O} \def\atsize{at12pt}
    \font\f="\basefont" \atsize
    
    % Zkouška fontfeatures: 
    \font\f-caps  = "\basefont:+smcp" \atsize 
    \font\f-nolig = "\basefont:-liga" \atsize 
    \font\f-hligs = "\basefont:+hlig;+dlig" \atsize 
    \font\f-alt   = "\basefont:+hlig;+dlig;+salt" \atsize 
    \font\f-frac  = "\basefont:+frac" \atsize 
    \font\f-sup   = "\basefont:+sups" \atsize 
    \font\f-sub   = "\basefont:+sinf" \atsize 
    \font\f-odig  = "\basefont:+pnum;+onum" \atsize 
    
    \f 
    Tady je text ve fontu \basefont. 
    {\f-caps Zde jsou malé kapitálky}. 
    
    Vidíme, že font má zapnuty ligatury fi, fl. 
    {\f-nolig Nyní jsou vypnuty: fi, fl}. 
    
    Historické ligatury st, tz, jsou vypnuty a nyní 
    {\f-hligs jsou zapnuty ct, st, tz}. 
    
    Místo některých znaků je možné použít alternativy: 
    {\f-alt Y\&Y} namísto Y\&Y. 
    
    Zlomky vypadají takto: 1/2, 3/5 a 
    vytuněné zlomky vypadají jinak {\f-frac 1/2, 3/5, 1234/5678}. 
    
    Čísla 01234 normální pro tabulky a medievalové {\f-odig 1234567890}. 
    
    Dolní indexy: {\f-sub 123a4bc5}, horní indexy{\f-sup x}. 
    CH{\f-sub3}CH{\f-sub2}OH. 
    
    \end 
    

    Po zpracování ukázky XeTeXem nebo LuaTeXem byste měli dostat takový výsledek.

    Každý font může disponovat jinými FF, které jsou navíc seskupené do tzv. skriptů nebo jazykových skriptů s různými implicitními hodnotami. Je obtížné jednoduše zjistit, co je v obdrženém fontu dosažitelné a co je nastaveno jako implicitní. K fontu by tedy měla být přístupná dokumentace. Zavoláte-li FF, která ve fontu neexistuje, neprojeví se a žádného varování ani chyby se nedočkáte. Seznam FF včetně jejich podrobné specifikace je na  této stránce, ale písmolijny si mohou vymýšlet další a naopak zde uvedené nemusejí podporovat. Seznam FF podporovaných v daném fontu lze vypsat pomocí otfinfo -f soubor.otf.

    Font loader může podporovat na fontu nezávislé další FF. Například LuaTeX nabízí FF tlig, což aktivuje TeXovské ligatury --, --- atd. XeTeX má pro stejný účel FF ve tvaru přiřazení: mapping=tex-text.

    Další „jakoby FF“ může nabízet makro pro volbu fontů. V dokumentaci k balíčku fontspec je například uvedena FF pro barvu a průsvitnost fontu, FF pro velikost fontu atd. To vše je řešeno na úrovni makra.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ghibulo avatar 13.12.2013 19:35 ghibulo | skóre: 6 | blog: ghibulo
    Rozbalit Rozbalit vše Re: TeX – 7 (OpenType fonty)
    Pěkný článek, jen u toho posledního zdrojového textu je chyba, kvůli které to nejde přeložit - jde o ten znak za catcode, ... je tam použit "‘" a mělo by být "`".
    olsak avatar 14.12.2013 07:53 olsak | skóre: 29
    Rozbalit Rozbalit vše Re: TeX – 7 (TrueType fonty)
    Vzhledem k tomu, že se v systémech často vyskytují TryeType fonty a zaznamenávám na ně časté dotazy a také vzhledem k tomu, že se k fontům už nechci v seriálu vracet, zmíním TTF aspoň zde v komentáři.

    PdfTeX umí s TTF fonty pracovat zcela stejně jako s PFB (Type1) fonty. Tj. je třeba konverzními programy připravit TeXovou metriku *.tfm a překopírovat *.ttf soubory do TeXového adresáře. Nakonec je třeba doplnit údaje do map souboru. Postup je velmi přehledně vyložen zde. Jen doporučuji v případě pdfcsplainu použít soubor xl2.enc namísto souboru v článku zmíněném.

    LuaTeX umí vše, co pdfTeX, tedy práce s TTF fonty je v něm stejná jako v pdfTeXu.

    XeTeX s TTF fonty neumí pracovat způsobem jako pdfTeX. Místo toho k nim dokáže přirozeně přitoupit, jsou-li instalovány v systému.

    15.12.2013 23:31 Louda
    Rozbalit Rozbalit vše Re: TeX – 7 (OpenType fonty)
    určite neco dělam špatně když se pokouším to překládat v LuaLatexu že? Skrátka je to pro LuaTex a tim je to uzavřene, beru.

    No dovolte i prosim ale jednu naprosto laickou otázku kde by mi nekdo česky vysvetlil jaký je vlastně rozdíl mezi balíčkem polyglossia a babel. nemusíte zachazet do detailu jen staci v hrubých rysech, nebo klidně mě i odkázat na stránku konkrétní knihy v češtině, kde je toto rozvedeno. Děkuji.
    16.12.2013 08:09 vencas | skóre: 32
    Rozbalit Rozbalit vše Re: TeX – 7 (OpenType fonty)
    polyglossia podporuje více jazyků než babel (zejména se jedná o jazyky nepsané latinkou včetně jazyků psaných zprava doleva) a používá fontspec pro natahování fontů pro specifický jazyk. Z hlediska funkčnosti (aspoň v češtině) jsem si žádného rozdílu nevšiml, ale používám jen základní věci.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.