LaTeX/Posebni znakovi
U ovom poglavlju bavićemo se pitanjima u vezi sa ulaznim kodiranjem, dijakritičnim znakovima sleganja sloga i posebnim znakovima.
U sledećem dokumentu, pozivaćemo se na posebne znakove za sve simbole izutev A-Za-z0-9 i engleskih znakova interpukcije.
Ovo poglavlje je usko vezano sa pitanjem kodiranja slova. Trebalo bi da pogledate Slova za ovu temu.
Nekim jezicima je često potreban namenski sistem unosa da bi olakšali pisanje dokumenta. Ovo je slučaj sa Arapskim, Kineskim, Japanskim, Korajanskim i drugim jezicima. Sa ovim pitanjem smo se posebno uzeli u koštac u internacionalizaciji.
Pravila za proizvodnju znakova sa dijakritičnim oznakama, kao što su akcenti, donekle se razlikuju u zavisnosti od toga da li ste u tekstualnom režimu, matematičkom režimu, ili okruženju označavanja.
Kodiranje ulaza
[uredi]Tehničko pitanje
[uredi]Većina modernih računarskih sistema vam dozvoljava da unosite slova nacionalnih pisama direktno sa tastature. Ako ste pukušali da unesete ove specijalne znakove u vašoj LaTeX izvornoj datoteci i kompajlirate, možda ste primetili da se oni uopšte ne štampaju.
LaTeX izvorni dokument je običan tekst fajl. Računar čuva informacije u binarnom formatu, ovo je sekvenca bitova (0 i 1). Da bismo prikazali običnu tekst datoteku, potreban nam je kod koji govori koja sekvenca bitova odgovara kojoj sekvenci znakova. Ova asocijacija se naziva kodiranje ulaza, kodiranje znakova, ili više neformalno charset.
Iz istoriskih razloga, postoje mnoga različita kodiranja ulaza. Postoji pokušaj ujedinjavanja svih kodiranja sa specifikacijom koja sadrži sve postojeće simbole koju su poznati iz ljudske istorije. Ova specifikacija je Unikod. Ona samo definiše tačke kodova, koje su vrojevi za simbole, ali ne način na koji su simboli zastupljeni u binarnom vrednošću. Zato, su unikod kodiranja glavna. Postoje više dostupnih unikod kodiranja, UTF-8 je jedan od njih.
ASCII kodiranje je kodiranje koje definiše 128 znakova na 7 bitova. Njegova široka primena je dovela do toga da velika količina kodiranja ima kompatabilnost sa ASCII, definisanjem prvih 128 znakova na isti način. Ostali znakovi se dodaju korišćenjem više bitova (8 ili više).
Ovo je zapravo veliki problem, pošto ako ne koristite tačna kodiranja da biste prikazali datoteku, pokazaće vam čudne znakove. Šta većina programa pokušava da uradi je da statistički pogodi kodiranje tako što će da analizira česte sekvence bitova. nažalost, ovo nije 100% bezbedno. Neki editori teksta se neće brinuti o pogađanju kodiranja i samo će koristiti uobičajeno kodiranje OS-a. Trebate uzeti u obzir da drugi ljudi možda neće biti u mogućnosti da direktno prikažu vaše ulazne datoteke na svojim računarima, zato što je uobičajeno kodiranje za tekst datoteku različito. Ovo neznači da korisnik ne može da koristi drugo kodiranje, pored uobičajenog, već samo znači da mora biti konfigurisano. Na primer, nemački preglas ä na OS/2 je kodiran kao 132, sa Latin1 je kodiran kao 228, dok u Cyrillic kodiranju cp1251 ovo slovo ne postoji uopšte. Zato trebate da razmislite o opreznom kodiranju.
Sledeća tabela pokazuje uobičajena kodiranja za neke operativne sisteme.
Operativni sistem | Uobičajeno kodiranje | |
---|---|---|
Zapadna latinica | Ćirilica | |
Modejni juniksi (*BSD, Mak OS X, GNU/Linuks) | utf-8 | utf-8 |
Mak (pre OS X) | applemac | maccyr |
Juniks (stari) | latin1 | koi8-ru |
Vindous | ansinew, cp1252 | cp1251 |
Dos, OS/2 | cp850 | cp866nav |
UTF-8 i Latin1 nisu kampatibilni. To znači da ako pokušate da otvorite Latin1-kodiranu datoteku koristeći UTF-8 dekodiranje, pokazaće vam čudne sibole samo ako ste koristili akcente, pošto su oba kodiranja ASCII nadskupa oni kodiraju klasična slova na isti način. Ne postoje mnoge prednosti u korišćenju Latin1 nad UTF-8, koje je tehnički superiorniji. UTF-8 takođe postaje najšire korišćeno kodiranje (Na internetu, u modernim Juniksima, itd.).
Strogo vas pozivamo da koristite UTF-8 kodiranje. Tehnički je superiornije većini (svim?) drugim kodiranjima, podržava celu Unikod specifikaciju (sve simbole koji su ikada postojali), i unazadno je kompatabilno sa ASCII. Latin1 nije univerzalno, i imati više kodiranja blizu je uvek bilo izvor problema.[1] |
Bavljenje LaTeX-om
[uredi]TeX koristi ASCII po normali. Ali 128 znakova nije dovoljno za podršku ne-engleskih jezika. TeX ima svoj način da reši ovaj problem sa kamndama za svako dijakritičko obeležavanje (pogledaj Odbegle kodove). Ali ako su nam potrebni akcenti i i drugi specijalni znakovi direktno u izvornoj datoteci, mi moramo da kažemo TeX-u da želimo da koristimo različito kodiranje.
Postoje nekoliko kodiranja dostupnih LaTeX-u:
- ASCII: Uobičajeno. Samo nagi engleski znakovi su podržani u izvornoj datoteci.
- ISO-8859-1 (takođe poznat i kao Latin 1): osmobitno kodiranje. Podržava većinu znakova za latinične jezike, ali to je sve.
- UTF-8: Unikod višebajtno kodiranje. Podržava kompletnu unikod specifikaciju.
- Drugi...
U nastavku ćemo pretpostaviti da želite da koristite UTF-8.
Postoje neki bitni koraci za specifikaciju kodiranja.
- Uverite se da vaš tekstualni editor dekodira datoteku u UTF-8.
- Uverite se da sačuva vašu dartoteku u UTF-8. Većina tekstualnih editora ne prave ovu razliku, ali neki prave, na primer Notepad++.
- Ako radite u terminalu, vodite računa da je podešen da podržava UTF-8 ulaz i izlaz. neki stari Juniks terminali možda ne podržavaju UTF-8. PuTTY nije podešen da koristi UTF-8 po normali, morate da ga konfigurišete.
- Recite LaTeX-u da je izvorna datoteka UTF-8 kodirana.
\usepackage[utf8]{inputenc}
|
inputenc [2] paket govori LaTeX-u koji je format kodiranja teksta vaših .tex datoteka.
Ako proverite kodiranje znakova (npr. koristeći Juniks file komandu), budite sigurni da vaša datoteka sadrži makar jedan specijalan znak, inače biće prepoznata kao ASCII (Što je logično jer je UTF-8 nadskup ASCII-ja). |
Inputenc paket takođe dozvoljava korisniku da promeni kodiranje unutar dokumenta pomoću komande \inputencoding{'ime kodiranja'}
.
\usepackage[utf8]{inputenc}
% ...
% У овој области
% UTF-8 кодирање је наведено.
% ...
\inputencoding{latin1}
% ...
% Овде кодирање текста је наведено као ISO Latin-1.
% ...
\inputencoding{utf8}
% Назад на UTF-8 кодирање.
% ...
|
Proširenje podrške
[uredi]LaTeX podrška za UTF-8 je prilično specifična: ona uključuje samo ograničen opseg unikod ulaznih znakova. Samo definiše one simbole za koje se zna da budu dostupni sa sadašnjim kodiranjem slova. Možete se naći u situaciji gde korišćenje UTF-8 može dovesti do greške:
! Package inputenc Error: Unicode char \u8:ũ not set up for use with LaTeX.
Ovo je zbog toga što utf8 definicija nužno nema mapiranje svih znakovnih simbola koje ste vi u stanju da uneseta na vašoj tastaturi. Takvi znakovi su na primer
ŷ Ŷ ũ Ũ ẽ Ẽ ĩ Ĩ
U tom slučaju, možda trebate da koristite utf8x opciju da definišete više znakovnih kombinacija. utf8x nije zvanično podržan,ali može biti dobar u nekim slučajevima. Međutim možda prekine kompatabilnost sa nekim paketima kao što su csquotes.
Druga mogućnost je da se držite utf8 i da definišete znakove sami. Ovo je lako:
\DeclareUnicodeCharacter{'codepoint'}{'TeX sequence'}
|
gde codepoint je unikodov pozicija koda željenog znaka. TeX sequence je ono što je za štampanje kada se znak koji se slaže sa pozicijom koda pronađe. Ovde možete naći pozicije kodova site. Pozicije kodova se lako istražuju na internetu. Primer:
\DeclareUnicodeCharacter{0177}{\^y}
|
Sada će unos 'ŷ' efektivno štampati 'ŷ'.
Sa XeTeX i LuaTeX, inputenc paket više nije potreban. Oba programa podržavaju UTF-8 direktno i dozvoljavaju upotrebu TTF i OpenType slova da podrže unikod znakove. Pogledajte slova odeljak za više informacija.
Odbegli kodovi
[uredi]Pored direktnog UTF-8 ulaza, LaTeX podržava sastav specijalnih znakova. Ovo je zgodno ako vašoj tastaturi nedostaju željeni akcenti i drugi dijakritični znakovi.
Sledeći akcenti mogu biti postavljeni nad slovima. Iako se slovo 'o' u većini ovih primera, akcenti mogu biti postavljeni na bilo koje slovo. Akcenti mogu biti čak i postavljeni iznad slova "koje nedostaje"; na primer, \~{}
proizvodi tildu iznad praznog prostora.
Sledeće komande se mogu koristiti samo u paragrafskom (uobičajenom) ili LD (levo-desno) režimu.
LaTeX komanda | Uzorak | Opis |
---|---|---|
\`{o} |
ò | grave akcenat |
\'{o} |
ó | akut |
\^{o} |
ô | cirkumfleks |
\"{o} |
ö | preglas, ili trema |
\H{o} |
ő | dugačak mađarski preglas (dupli oštri) |
\~{o} |
õ | tilda |
\c{c} |
ç | sedilja |
\k{a} |
ą | ogonek |
\l{} |
ł | štraftasto l (l sa crtom) |
\={o} |
ō | makron akcenat (crta iznad slova) |
\b{o} |
o | crta ispod slova |
\.{o} |
ȯ | tačka iznad slova |
\d{u} |
ụ | tačka ispod slova |
\r{a} |
å | kružić iznad slova (za å postoji posebna komanda \aa )
|
\u{o} |
ŏ | breve preko slova |
\v{s} |
š | ("v") iznad slova |
\t{oo} |
o͡o | "veza" (preokrenuto u) preko dva slova |
\o |
ø | precrtano o (o sa kosom crtom preko) |
Da postavite dijakritički znak iznad i ili j, tačkica mora biti uklonjena. verzija bez tačke ovih slova se postiže tako što ćete uneti \i
i \j
. Na primer:
\^\i
treba koristiti za i cirkumfleks 'î';\"\i
treba koristiti za i preglas 'ï'.
Ako bi dokument trebao kompletno da se napiše u jeziku kome su potrebni posebni dijakritični znaci nekoliko puta, onda korišćenje odgovarajuće konfiguracije dozvoljava dozvoljava ovim znakovima da budu napisani direktno u dokumentu. na primer, da bismo postigli lakše kodiranje of preglasa, babel paket se može konfigurisati kao \usepackage[german]{babel}
. ovo obezbeđuje kraće "o
za \"o
. Ovo je veoma korisno ako je nekom potrebno da koristi tekstualne akcente u oznakama, pošto obrnuta kosa crta neće biti prihvaćena inače.
Više informacija o jezičkim konfiguracijama se može pronaći na internacionalizacija odeljku.
Manje < i veće >
[uredi]Dva simbola '<' i '>' su ustvari ASCII simboli, ali ste možda primetili da će se oni štampati kao '¡' i '¿'. Ovo je problem kodiranja slova. Ako želite da oni štampaju svoje prave simbole, moraćete da koristite drugo kodiranje slova kao što je T1, učitano sa fontenc paketom. Pogledajte slova za više detalja o kodiranju slova.
Alternativno, oni se mogu štampati sa posvećenim komandama:
\textless
\textgreater
|
Evro € simbol valute
[uredi]Prilikom pisanja o novcu ovih dana, potreban vam je znak evra.
textcomp paket dolazi sa \texteuro
komandom koja vam daje simbol evra uparen sa vašim trenutnim sloviam teksta. U zavisnosti od slova koja ste izabrali ovo može biti poprilično daleko od zvaničnog simbola.
Zvanična verzija simbola evra je obezbeđena od strane eurosym. Učitajte ga u preambuli (opcionalno sa official izborom):
\usepackage[official]{eurosym}
|
Onda ga možete ubaciti sa \euro{}
komandom. Konačno, ako želite simbol evra koji se poklapa sa trenutnim stilom slova (npr, podebljana, kurzivna, itd.) možete da koristite drugu opciju:
\usepackage[gen]{eurosym}
|
opet možete da ubacite simbol evra sa \euro{}
.
Alternativno možete da koristite marvosym paket koji takođe pruža zvanični simbol evra.
\usepackage{marvosym}
% ...
\EUR{}
|
Sada kada ste uspeli sa štampanjem znaka evra, možda želite da dugme '€' na vašoj tastaturi stvarno štampa znak eura kao gore.
Postoji jednostavan način da to i uradite. Morate se uveriti da koristite UTF-8 kodiranje zajedno sa radećom \euro{}
ili \EUR{}
komandom.
\DeclareUnicodeCharacter{20AC}{\euro{}}
% or
\DeclareUnicodeCharacter{20AC}{\EUR{}}
|
Kompletan primer:
\usepackage[utf8]{inputenc}
\usepackage{marvosym}
\DeclareUnicodeCharacter{20AC}{\EUR{}}
|
Stepen, simbol za temperaturu i metematiku
[uredi]Najlakšti način da štampate temperaturne i ugaone vrednosti je da koristite \SI{value}{unit}
komandu iz siunitx paketa, koja radi i u tekstualnom i u matematičkom režimu:
\usepackage{amsmath}
\usepackage{siunitx}
%...
\SI{45}{\degree} угао.
Напоље је $\SI{17}{\degreeCelsius}$.
|
Za više informacija , pogledajte dokumentaciju siunitx paketa.
Česta greška je koristiti \circ
komandu. ona neće štampati ispravne znakove (iako $^\circ$
hoće). Koristite textcomp paket umesto prethodnog, koji obezbeđuje \textdegree
komandu.
\usepackage{textcomp}
%...
$45$\textdegree угао.
|
Za temperaturu, možete da koristite istu komandu ili da se odlučite za gensymb paket i napišite
\usepackage{gensymb}
\usepackage{textcomp}
%...
17\,\celsius % најбоље (са textcomp)
|
Neke tastature imaju simbol za stepen, možete ga koristiti direktno ako koristite UTF-8 i textcomp. Za bolje rezultate (kvalitet slova) preporučujemo vam upotrebu odgovarajućih slova, kao što su lmodern:
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}
% ...
17\,°C
17\,℃ % најбоље
|
Drugi simboli
[uredi]LaTeX ima mnogo simbola na raspolaganju. Većina njih su u domenu matematike, u kasnijim poglavljima ćemo pokriti kako da prostupimo njima. Za opšte tekstualne simbole, koristite sledeće komande:
Komanda | Uzorak | znak |
---|---|---|
\%
|
% | |
\$
|
$ | |
\{
|
{ | |
\_
|
_ | |
\P
|
¶ | |
\ddag
|
n/a | ‡ |
\textbar
|
n/a | | |
\textgreater
|
> | |
\textendash
|
n/a | – |
\texttrademark
|
n/a | ™ |
\textexclamdown
|
n/a | ¡ |
\textsuperscript{a}
|
a | |
\pounds
|
n/a | £ |
\#
|
# | |
\&
|
& | |
\}
|
} | |
\S
|
§ | |
\dag
|
n/a | † |
\textbackslash
|
n/a | \ |
\textless
|
< | |
\textemdash
|
n/a | — |
\textregistered
|
n/a | ® |
\textquestiondown
|
n/a | ¿ |
\textcircled{a}
|
n/a | ⓐ |
\copyright
|
n/a | © |
Ne pomenutoj u tabeli, tilda (~) se koristi u LaTeX kodu da proizvede ne-slomljiv prostor. Da dobijete odštampan znak tilda, napišite \~{}
ili \textasciitilde{}
.
A vidljiv razmak ␣ se može napraviti sa \textvisiblespace
.
Za neke interesantnije simbole, postskriptum ZipfDingbats slova su naraspolaganju zahvaljujući pifont paketu. Dodajte izjavu na vašoj preambuli: \usepackage{pifont}
. Zatim, će komanda \ding{number}
, odštampati naveden simbol.
U posebnim okruženjima
[uredi]Matematički režim
[uredi]Nekoliko od prethodnih i neki slični akcenti mogu takođe biti proizvedeni u matematičkom režimu. Sledeće komande se mogu koristiti samo u matematičkom režimu.
LaTeX komanda | Uzorak | Opis | Ekvivalente u tekstualnom režimu |
---|---|---|---|
\hat{o}
|
cirkumfleks | \^
| |
\widehat{oo}
|
šira verzija \hat preko više slova
|
||
\check{o}
|
vee ili znak štikliranja | \v
| |
\tilde{o}
|
tilda | \~
| |
\widetilde{oo}
|
šira verzija \tilde preko više slova
|
||
\acute{o}
|
akut | \'
| |
\grave{o}
|
grave akcenat | \`
| |
\dot{o}
|
tačka iznad slova | \.
| |
\ddot{o}
|
dve tačke iznad slova (preglas u tekstualnom režimu) | \"
| |
\breve{o}
|
breve | \u
| |
\bar{o}
|
makron | \=
| |
\vec{o}
|
vektor (strela) preko slova |
Prilikom primene akcenata nad slovima i
i j
, možete da koristite \imath i \jmath da nebi dozvolili da se tačke mešaju sa akcentima:
LaTeX komanda | Uzorak | Opis | Uzorak sa gornjom tačkom |
---|---|---|---|
\hat{\imath}
|
cirkumfleks nad slovom i bez gornje tačke
|
||
\vec{\jmath}
|
vektor (strela) iznad slova j bez gornje tačke
|
Okruženje uvlačenja teksta
[uredi]Neki od znakova akcenata korišćeni u tekstu imaju drugu primenu u okruženju uvlačenja teksta. U tom slučaju oni mogu biti napravljeni sa sledećom komandom:
\a'
za akut\a`
za grave akcenat\a=
za makron akcenat
Unikod ulaz tastature
[uredi]neki operativni sistemi pružaju tastaturnu kombinaciju za unošenje bilo koje unikod tačke koda, takozvanog unikod sastavni ključ.
Mnoge X aplikacije (*BSD i GNU/Linuks) podržavaju Ctrl+Shift+u kombinaciju.'u' simbol bi trebalo da se pojavi. unesite kod tačke i pritisnite enter ili space da bi stvarno odštampali znak. Primer:
<Ctrl+Shift+u> 20AC <space>
će odštampati znak evra.
Desktop okruženja kao što su GNOME i KDE mogu da imaju svojstvo prilagodljivog sastavnog ključa za zapamtljivije sekvence.
Xorg poseduje napredne izglede tastatura sa varijantama koji vam omogućavaju da lako unesete dosta znakova sa kombinacijom korišćenjem odgovarajućeg modifikatora, kao što je Alt Gr. To u mnogome zavisi od izabranih izgleda-varijanti, tako da vam mi predlažemo da se malo igrate sa vašom tastaturom, tako što ćete da pritisnete svako dugme dok držite pritisnuti Alt Gr modifikator.
Spoljašnje veze
[uredi]- Još nekoliko LaTeX akcenata i simbola
- NASA GISS: Akcenti
- Sveubuhvatna LATEX lista simbola
- PDF dokument sa dugačkom listom simbola koje pružaju različiti paketi
Napomene i reference
[uredi]- ↑ Za kratko objašnjenje o skupovima znakova, pogledati ovaj članak na Džoel Spolskijevom blogu.
- ↑ Za detaljne informacije o ovom paketu, pogledajte kompletna specifikacija napisana od strane autora paketa.