Šriftai ir Unicode varikliai
Ši pamoka aprašo kontekstą, kurį sukuria LaTeX interpretuodamas Unicode simbolius, ir kaip jis paveikia teksto įvedimą ir šriftų naudojimą. Sužinokite apie Unicode ir OpenType šriftų palaikymą.
Kai TeX ir LaTeX buvo pradėti plačiau naudoti, jie iš esmės susitvarkydavo tik su Europos kalbomis, nors buvo galimybė naudoti kitas abėcėles, tokias kaip graikų ir rusų.
Akcentai ir kirčiuotos raidės
TeX originaliu būdu akcentai ir kirčiuotos raidės buvo įvedamos naudojant komandas, tokias kaip \c{c}
, kad išvesti ç, ar \'e
– kad é. Nors kai kurie žmonės ir toliau naudoja šias įvesties komandas, nes jas galima lengvai surinkti ASCII klaviatūromis, kiti norėjo, kad būtų galima tiesiogiai naudoti jų lokalizuotų klaviatūrų klavišais įvedamus simbolius.
Prieš Unicode įvedimą LaTeX palaikė daugelį failų koduočių lentelių, kurių kiekviena leido tekstą natūraliai rašyti tam tikromis kalbomis, pavyzdžiui, naudojant latin1
kodavimą prancūzų vartotojai galėjo rašyti déjà vu
, o LaTeX išsiversdavo kirčiuotas raides į TeX komandas, kad gautų teisingą išvestį.
Šį metodą šiuolaikinis LaTeX vis dar naudoja, kai kompiliuojama su pdflatex
varikliu. Ir tokiu atveju daroma prielaida, kad visi failai yra Unicode’iniai (tiksliau, UTF-8 koduotės), jei nenurodyta kitaip. Nors šis variklis apsiriboja 8 bitų šriftais, dauguma Europos kalbų yra palaikomos.
Šriftų pasirinkimas
Šrifto parinkimas dirbant su pdflatex
naudoja patikimą LaTeX šriftų pasirinkimo schemą, ir šių laikų standartinis LaTeX turi paruošęs naudojimui daug šriftų. Pavyzdžiui, TeX Gyre yra aukštos kokybės šriftų rinkinys, atitinkantis daugumai žmonių gerai pažįstamus ir įprastus šriftus, kaip Times, Helvetica, Palatino ir pan. Įkelti šiuos šriftus į dokumentą yra taip pat paprasta, kaip įkelti paketą atitinkamu pavadinimu. Šrifto Times vizualus atitikmuo TeX Gyre šeimoje yra Termes:
\usepackage{tgtermes}
Naudojant pdflatex
, dauguma šriftų yra pasiekiami per paketus. Galite užmesti akį į LaTeX“ šriftų katalogą arba CTAN šriftų puslapį, kad pamatyti pasirinkimo galimybes. Taip pat galite paieškoti norimo šrifto internete, jei jis turi suderinamą su pdflatex
paketą. Jei patiko patentuotas šriftas, galite paieškoti tinkamo klono, kuris daugeliui pritaikymų būtų pakankamai panašus į originalą.
Unicode era
Kadangi pdflatex
gali naudoti tik 8 bitų failų koduotes ir 8 bitų šriftus, su juo negalima natūraliai pajungti šiuolaikinių OpenType šriftų ir lengvai persijunginėti tarp kelių kalbų, jei jose naudojamos skirtingos abėcėlės (scripts, jei naudoti techninį terminą). Yra du pdfTeX pakaitalai, natūraliai priimantys Unicode įvestį ir šiuolaikinius šriftus: XeTeX ir LuaTeX. Ant LaTeX dokumentų jie yra iškviečiami, nustačius jūsų redaktoriuje naudoti atitinkamai variklius xelatex
ir lualatex
.
Šiuose varikliuose šriftai pasirenkami fonspec
paketo komandomis, o paprastiems dokumentams tai gali atrodyti taip paprastai, kaip:
\usepackage{fontspec}
\setmainfont{texgyretermes-regular.otf}
Taip pasirenkamas TeX Gyre Termes šriftas, kaip ir pdflatex
pavyzdyje aukščiau. Pažymėtina, kad šis metodas veikia bet kuriam OpenType šriftui. Kai kuriuos šriftus, naudojamus su pdflatex
, taip pat galima naudoti su xelatex
ir lualatex
, pakrovus tinkamus paketus arba pajungus juos, kaip bet kurį jūsų kompiuteryje įdiegtą šriftą, naudojant paketą fontspec
, kaip parodyta aukščiau.
LaTeX šriftų kataloge taip pat rodomi šriftai, turintys OpenType versijas, todėl galite jį naudoti kaip šaltinį susirasti šriftus, taip pat kaip ir CTAN puslapį, irgi minėtą anksčiau.
Pasirinkus šriftą, bet koks tekstas Unicode koduotėje dabar gali būti surinktas ar nukopijuotas į įvesties dokumentą. Čia yra pavyzdys, kuriame matomos lotyniškos ir graikiškos raidės, taip pat CJK hieroglifai:
% !TEX xelatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont{texgyretermes-regular.otf}
\newfontfamily\cjkfont{FandolSong-Regular.otf}
\begin{document}
ABC → αβγ → {\cjkfont 你好}
\end{document}
Perjunginėjant kalbas paprastai svarbu pakeisti ir tokius dalykus kaip žodžių kėlimo šablonai ar panašiai, ir būtent babel
ir polyglossia
paketai pateikia patikimas komandas tokiam pakeitimui.