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í
×
    dnes 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 0
    dnes 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 2
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 23
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 13
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 2
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 793 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    TeX – 7 (OpenType fonty)

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

    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.