LaTeX/Посебни знакови
У овом поглављу бавићемо се питањима у вези са улазним кодирањем, дијакритичним знаковима слегања слога и посебним знаковима.
У следећем документу, позиваћемо се на посебне знакове за све симболе изутев A-Za-z0-9 и енглеских знакова интерпукције.
Ово поглавље је уско везано са питањем кодирања слова. Требало би да погледате Слова за ову тему.
Неким језицима је често потребан наменски систем уноса да би олакшали писање документа. Ово је случај са Арапским, Кинеским, Јапанским, Корајанским и другим језицима. Са овим питањем смо се посебно узели у коштац у интернационализацији.
Правила за производњу знакова са дијакритичним ознакама, као што су акценти, донекле се разликују у зависности од тога да ли сте у текстуалном режиму, математичком режиму, или окружењу означавања.
Кодирање улаза
уредиТехничко питање
уредиВећина модерних рачунарских система вам дозвољава да уносите слова националних писама директно са тастатуре. Ако сте пукушали да унесете ове специјалне знакове у вашој LaTeX изворној датотеци и компајлирате, можда сте приметили да се они уопште не штампају.
LaTeX изворни документ је обичан текст фајл. Рачунар чува информације у бинарном формату, ово је секвенца битова (0 и 1). Да бисмо приказали обичну текст датотеку, потребан нам је код који говори која секвенца битова одговара којој секвенци знакова. Ова асоцијација се назива кодирање улаза, кодирање знакова, или више неформално charset.
Из историских разлога, постоје многа различита кодирања улаза. Постоји покушај уједињавања свих кодирања са спецификацијом која садржи све постојеће симболе коју су познати из људске историје. Ова спецификација је Уникод. Она само дефинише тачке кодова, које су вројеви за симболе, али не начин на који су симболи заступљени у бинарном вредношћу. Зато, су уникод кодирања главна. Постоје више доступних уникод кодирања, UTF-8 је један од њих.
ASCII кодирање је кодирање које дефинише 128 знакова на 7 битова. Његова широка примена је довела до тога да велика количина кодирања има компатабилност са ASCII, дефинисањем првих 128 знакова на исти начин. Остали знакови се додају коришћењем више битова (8 или више).
Ово је заправо велики проблем, пошто ако не користите тачна кодирања да бисте приказали датотеку, показаће вам чудне знакове. Шта већина програма покушава да уради је да статистички погоди кодирање тако што ће да анализира честе секвенце битова. нажалост, ово није 100% безбедно. Неки едитори текста се неће бринути о погађању кодирања и само ће користити уобичајено кодирање ОС-а. Требате узети у обзир да други људи можда неће бити у могућности да директно прикажу ваше улазне датотеке на својим рачунарима, зато што је уобичајено кодирање за текст датотеку различито. Ово незначи да корисник не може да користи друго кодирање, поред уобичајеног, већ само значи да мора бити конфигурисано. На пример, немачки преглас ä на ОС/2 је кодиран као 132, са Latin1 је кодиран као 228, док у Cyrillic кодирању cp1251 ово слово не постоји уопште. Зато требате да размислите о опрезном кодирању.
Следећа табела показује уобичајена кодирања за неке оперативне системе.
Оперативни систем | Уобичајено кодирање | |
---|---|---|
Западна латиница | Ћирилица | |
Модејни јуникси (*БСД, Мак ОС X, ГНУ/Линукс) | utf-8 | utf-8 |
Мак (пре ОС X) | applemac | maccyr |
Јуникс (стари) | latin1 | koi8-ru |
Виндоус | ansinew, cp1252 | cp1251 |
Дос, ОС/2 | cp850 | cp866nav |
UTF-8 и Latin1 нису кампатибилни. То значи да ако покушате да отворите Latin1-кодирану датотеку користећи UTF-8 декодирање, показаће вам чудне сиболе само ако сте користили акценте, пошто су оба кодирања ASCII надскупа они кодирају класична слова на исти начин. Не постоје многе предности у коришћењу Latin1 над UTF-8, које је технички супериорнији. UTF-8 такође постаје најшире коришћено кодирање (На интернету, у модерним Јуниксима, итд.).
Строго вас позивамо да користите UTF-8 кодирање. Технички је супериорније већини (свим?) другим кодирањима, подржава целу Уникод спецификацију (све симболе који су икада постојали), и уназадно је компатабилно са ASCII. Latin1 није универзално, и имати више кодирања близу је увек било извор проблема.[1] |
Бављење LaTeX-ом
уредиTeX користи ASCII по нормали. Али 128 знакова није довољно за подршку не-енглеских језика. TeX има свој начин да реши овај проблем са камндама за свако дијакритичко обележавање (погледај Одбегле кодове). Али ако су нам потребни акценти и и други специјални знакови директно у изворној датотеци, ми морамо да кажемо TeX-у да желимо да користимо различито кодирање.
Постоје неколико кодирања доступних LaTeX-у:
- ASCII: Уобичајено. Само наги енглески знакови су подржани у изворној датотеци.
- ISO-8859-1 (такође познат и као Latin 1): осмобитно кодирање. Подржава већину знакова за латиничне језике, али то је све.
- UTF-8: Уникод вишебајтно кодирање. Подржава комплетну уникод спецификацију.
- Други...
У наставку ћемо претпоставити да желите да користите UTF-8.
Постоје неки битни кораци за спецификацију кодирања.
- Уверите се да ваш текстуални едитор декодира датотеку у UTF-8.
- Уверите се да сачува вашу дартотеку у UTF-8. Већина текстуалних едитора не праве ову разлику, али неки праве, на пример Notepad++.
- Ако радите у терминалу, водите рачуна да је подешен да подржава UTF-8 улаз и излаз. неки стари Јуникс терминали можда не подржавају UTF-8. PuTTY није подешен да користи UTF-8 по нормали, морате да га конфигуришете.
- Реците LaTeX-у да је изворна датотека UTF-8 кодирана.
\usepackage[utf8]{inputenc}
|
inputenc [2] пакет говори LaTeX-у који је формат кодирања текста ваших .tex датотека.
Ако проверите кодирање знакова (нпр. користећи Јуникс file команду), будите сигурни да ваша датотека садржи макар један специјалан знак, иначе биће препозната као ASCII (Што је логично јер је UTF-8 надскуп ASCII-ја). |
Inputenc пакет такође дозвољава кориснику да промени кодирање унутар документа помоћу команде \inputencoding{'име кодирања'}
.
\usepackage[utf8]{inputenc}
% ...
% У овој области
% UTF-8 кодирање је наведено.
% ...
\inputencoding{latin1}
% ...
% Овде кодирање текста је наведено као ISO Latin-1.
% ...
\inputencoding{utf8}
% Назад на UTF-8 кодирање.
% ...
|
Проширење подршке
уредиLaTeX подршка за UTF-8 је прилично специфична: она укључује само ограничен опсег уникод улазних знакова. Само дефинише оне симболе за које се зна да буду доступни са садашњим кодирањем слова. Можете се наћи у ситуацији где коришћење UTF-8 може довести до грешке:
! Package inputenc Error: Unicode char \u8:ũ not set up for use with LaTeX.
Ово је због тога што utf8 дефиниција нужно нема мапирање свих знаковних симбола које сте ви у стању да унесета на вашој тастатури. Такви знакови су на пример
ŷ Ŷ ũ Ũ ẽ Ẽ ĩ Ĩ
У том случају, можда требате да користите utf8x опцију да дефинишете више знаковних комбинација. utf8x није званично подржан,али може бити добар у неким случајевима. Међутим можда прекине компатабилност са неким пакетима као што су csquotes.
Друга могућност је да се држите utf8 и да дефинишете знакове сами. Ово је лако:
\DeclareUnicodeCharacter{'codepoint'}{'TeX sequence'}
|
где codepoint је уникодов позиција кода жељеног знака. TeX sequence је оно што је за штампање када се знак који се слаже са позицијом кода пронађе. Овде можете наћи позиције кодова site. Позиције кодова се лако истражују на интернету. Пример:
\DeclareUnicodeCharacter{0177}{\^y}
|
Сада ће унос 'ŷ' ефективно штампати 'ŷ'.
Са XeTeX и LuaTeX, inputenc пакет више није потребан. Оба програма подржавају UTF-8 директно и дозвољавају употребу TTF и OpenType слова да подрже уникод знакове. Погледајте слова одељак за више информација.
Одбегли кодови
уредиПоред директног UTF-8 улаза, LaTeX подржава састав специјалних знакова. Ово је згодно ако вашој тастатури недостају жељени акценти и други дијакритични знакови.
Следећи акценти могу бити постављени над словима. Иако се слово 'o' у већини ових примера, акценти могу бити постављени на било које слово. Акценти могу бити чак и постављени изнад слова "које недостаје"; на пример, \~{}
производи тилду изнад празног простора.
Следеће команде се могу користити само у параграфском (уобичајеном) или ЛД (лево-десно) режиму.
LaTeX команда | Узорак | Опис |
---|---|---|
\`{o} |
ò | grave акценат |
\'{o} |
ó | акут |
\^{o} |
ô | циркумфлекс |
\"{o} |
ö | преглас, или трема |
\H{o} |
ő | дугачак мађарски преглас (дупли оштри) |
\~{o} |
õ | тилда |
\c{c} |
ç | седиља |
\k{a} |
ą | огонек |
\l{} |
ł | штрафтасто l (l са цртом) |
\={o} |
ō | макрон акценат (црта изнад слова) |
\b{o} |
o | црта испод слова |
\.{o} |
ȯ | тачка изнад слова |
\d{u} |
ụ | тачка испод слова |
\r{a} |
å | кружић изнад слова (за å постоји посебна команда \aa )
|
\u{o} |
ŏ | бреве преко слова |
\v{s} |
š | ("v") изнад слова |
\t{oo} |
o͡o | "веза" (преокренуто u) преко два слова |
\o |
ø | прецртано o (o са косом цртом преко) |
Да поставите дијакритички знак изнад i или j, тачкица мора бити уклоњена. верзија без тачке ових слова се постиже тако што ћете унети \i
и \j
. На пример:
\^\i
треба користити за i циркумфлекс 'î';\"\i
треба користити за i преглас 'ï'.
Ако би документ требао комплетно да се напише у језику коме су потребни посебни дијакритични знаци неколико пута, онда коришћење одговарајуће конфигурације дозвољава дозвољава овим знаковима да буду написани директно у документу. на пример, да бисмо постигли лакше кодирање of прегласа, бабел пакет се може конфигурисати као \usepackage[german]{babel}
. ово обезбеђује краће "o
за \"o
. Ово је веома корисно ако је неком потребно да користи текстуалне акценте у ознакама, пошто обрнута коса црта неће бити прихваћена иначе.
Више информација о језичким конфигурацијама се може пронаћи на интернационализација одељку.
Мање < и веће >
уредиДва симбола '<' и '>' су уствари ASCII симболи, али сте можда приметили да ће се они штампати као '¡' и '¿'. Ово је проблем кодирања слова. Ако желите да они штампају своје праве симболе, мораћете да користите друго кодирање слова као што је T1, учитано са fontenc пакетом. Погледајте слова за више детаља о кодирању слова.
Алтернативно, они се могу штампати са посвећеним командама:
\textless
\textgreater
|
Евро € симбол валуте
уредиПриликом писања о новцу ових дана, потребан вам је знак евра.
textcomp пакет долази са \texteuro
командом која вам даје симбол евра упарен са вашим тренутним словиам текста. У зависности од слова која сте изабрали ово може бити поприлично далеко од званичног симбола.
Званична верзија симбола евра је обезбеђена од стране eurosym. Учитајте га у преамбули (опционално са official избором):
\usepackage[official]{eurosym}
|
Онда га можете убацити са \euro{}
командом. Коначно, ако желите симбол евра који се поклапа са тренутним стилом слова (нпр, подебљана, курзивна, итд.) можете да користите другу опцију:
\usepackage[gen]{eurosym}
|
опет можете да убаците симбол евра са \euro{}
.
Алтернативно можете да користите marvosym пакет који такође пружа званични симбол евра.
\usepackage{marvosym}
% ...
\EUR{}
|
Сада када сте успели са штампањем знака евра, можда желите да дугме '€' на вашој тастатури стварно штампа знак еура као горе.
Постоји једноставан начин да то и урадите. Морате се уверити да користите UTF-8 кодирање заједно са радећом \euro{}
или \EUR{}
командом.
\DeclareUnicodeCharacter{20AC}{\euro{}}
% or
\DeclareUnicodeCharacter{20AC}{\EUR{}}
|
Комплетан пример:
\usepackage[utf8]{inputenc}
\usepackage{marvosym}
\DeclareUnicodeCharacter{20AC}{\EUR{}}
|
Степен, симбол за температуру и метематику
уредиНајлакшти начин да штампате температурне и угаоне вредности је да користите \SI{value}{unit}
команду из siunitx пакета, која ради и у текстуалном и у математичком режиму:
\usepackage{amsmath}
\usepackage{siunitx}
%...
\SI{45}{\degree} угао.
Напоље је $\SI{17}{\degreeCelsius}$.
|
За више информација , погледајте документацију siunitx пакета.
Честа грешка је користити \circ
команду. она неће штампати исправне знакове (иако $^\circ$
хоће). Користите textcomp пакет уместо претходног, који обезбеђује \textdegree
команду.
\usepackage{textcomp}
%...
$45$\textdegree угао.
|
За температуру, можете да користите исту команду или да се одлучите за gensymb пакет и напишите
\usepackage{gensymb}
\usepackage{textcomp}
%...
17\,\celsius % најбоље (са textcomp)
|
Неке тастатуре имају симбол за степен, можете га користити директно ако користите UTF-8 и textcomp. За боље резултате (квалитет слова) препоручујемо вам употребу одговарајућих слова, као што су lmodern:
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}
% ...
17\,°C
17\,℃ % најбоље
|
Други симболи
уредиLaTeX има много симбола на располагању. Већина њих су у домену математике, у каснијим поглављима ћемо покрити како да проступимо њима. За опште текстуалне симболе, користите следеће команде:
Команда | Узорак | знак |
---|---|---|
\%
|
% | |
\$
|
$ | |
\{
|
{ | |
\_
|
_ | |
\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 | © |
Не поменутој у табели, тилда (~) се користи у LaTeX коду да произведе не-сломљив простор. Да добијете одштампан знак тилда, напишите \~{}
или \textasciitilde{}
.
А видљив размак ␣ се може направити са \textvisiblespace
.
За неке интересантније симболе, постскриптум ZipfDingbats слова су нарасполагању захваљујући pifont пакету. Додајте изјаву на вашој преамбули: \usepackage{pifont}
. Затим, ће команда \ding{number}
, одштампати наведен симбол.
У посебним окружењима
уредиМатематички режим
уредиНеколико од претходних и неки слични акценти могу такође бити произведени у математичком режиму. Следеће команде се могу користити само у математичком режиму.
LaTeX команда | Узорак | Опис | Еквиваленте у текстуалном режиму |
---|---|---|---|
\hat{o}
|
циркумфлекс | \^
| |
\widehat{oo}
|
шира верзија \hat преко више слова
|
||
\check{o}
|
вее или знак штиклирања | \v
| |
\tilde{o}
|
тилда | \~
| |
\widetilde{oo}
|
шира верзија \tilde преко више слова
|
||
\acute{o}
|
акут | \'
| |
\grave{o}
|
grave акценат | \`
| |
\dot{o}
|
тачка изнад слова | \.
| |
\ddot{o}
|
две тачке изнад слова (преглас у текстуалном режиму) | \"
| |
\breve{o}
|
бреве | \u
| |
\bar{o}
|
макрон | \=
| |
\vec{o}
|
вектор (стрела) преко слова |
Приликом примене акцената над словима i
и j
, можете да користите \imath и \jmath да неби дозволили да се тачке мешају са акцентима:
LaTeX команда | Узорак | Опис | Узорак са горњом тачком |
---|---|---|---|
\hat{\imath}
|
циркумфлекс над словом i без горње тачке
|
||
\vec{\jmath}
|
вектор (стрела) изнад слова j без горње тачке
|
Окружење увлачења текста
уредиНеки од знакова акцената коришћени у тексту имају другу примену у окружењу увлачења текста. У том случају они могу бити направљени са следећом командом:
\a'
за акут\a`
за grave акценат\a=
за макрон акценат
Уникод улаз тастатуре
урединеки оперативни системи пружају тастатурну комбинацију за уношење било које уникод тачке кода, такозваног уникод саставни кључ.
Многе X апликације (*БСД и ГНУ/Линукс) подржавају Ctrl+Shift+u комбинацију.'u' симбол би требало да се појави. унесите код тачке и притисните enter или space да би стварно одштампали знак. Пример:
<Ctrl+Shift+u> 20AC <space>
ће одштампати знак евра.
Десктоп окружења као што су GNOME и KDE могу да имају својство прилагодљивог саставног кључа за запамтљивије секвенце.
Xorg поседује напредне изгледе тастатура са варијантама који вам омогућавају да лако унесете доста знакова са комбинацијом коришћењем одговарајућег модификатора, као што је Alt Gr. То у многоме зависи од изабраних изгледа-варијанти, тако да вам ми предлажемо да се мало играте са вашом тастатуром, тако што ћете да притиснете свако дугме док држите притиснути Alt Gr модификатор.
Спољашње везе
уреди- Још неколико LaTeX акцената и симбола
- NASA GISS: Акценти
- Свеубухватна LATEX листа симбола
- ПДФ документ са дугачком листом симбола које пружају различити пакети
Напомене и референце
уреди- ↑ За кратко објашњење о скуповима знакова, погледати овај чланак на Џоел Сполскијевом блогу.
- ↑ За детаљне информације о овом пакету, погледајте комплетна спецификација написана од стране аутора пакета.