ЛаТеX/Посебни знакови

У овом поглављу бавићемо се питањима у вези са улазним кодирањем, дијакритичним знаковима слегања слога и посебним знаковима.

LaTeX

Почетак
  1. Увод100% завршен  Dec 13, 2015
  2. Инсталација100% завршен  Dec 13, 2015
  3. Инсталација додатних пакета 100% завршен  Dec 13, 2015
  4. Основе 100% завршен  Dec 13, 2015
  5. Како пронаћи помоћ 100% завршен  Dec 13, 2015

Заједнички елементи

  1. Структура документа 100% завршен  Dec 28, 2015
  2. Форматирање текста 100% завршен  Dec 27, 2015
  3. Форматирање параграфа 100% завршен  Јан 02, 2016
  4. Боје 100% завршен  Jan 10, 2016
  5. Слова100% завршен  Jan 10, 2016
  6. Структура листи 100% завршен  Jan 10, 2016
  7. Посебни знакови 100% завршен  Jan 10, 2016
  8. Интернационализација 100% завршен  Jan 10, 2016
  9. Ротација 100% завршен  Jan 10, 2016
  10. Табеле 100% завршен  Jan 10, 2016
  11. Стварање наслова 100% завршен  Jan 10, 2016
  12. Распоред стране 100% завршен  Jan 10, 2016
  13. Увоз графике 100% завршен  Jan 10, 2016
  14. Фигуре и натписи100% завршен  Jan 10, 2016
  15. Фусноте и Маргине100% завршен  Jan 10, 2016
  16. Хиперлинкови 100% завршен  Jan 10, 2016
  17. Ознаке и референцирање100% завршен  Jan 10, 2016

Механика

  1. Грешке и упозорења 75% завршен  Јан 02, 2016
  2. Дужине 100% завршен  Јан 02, 2016
  3. Бројачи 100% завршен  Јан 02, 2016
  4. Кутије 100% завршен  Јан 02, 2016
  5. Правила и носачи 100% завршен  Јан 02, 2016

Технички текстови

  1. Математика100% завршен  Jan 10, 2016
  2. Напреднија математика 75% завршен  Jan 10, 2016
  3. Теореме
  4. Хемијска графика 75% завршен  Јан 02, 2016
  5. Алгоритми 75% завршен  Јан 02, 2016
  6. Листирање изворног кода 100% завршен  Јан 02, 2016
  7. Лингвистика 75% завршен  Јан 02, 2016

Посебне стране

  1. Индексирање 75% завршен  Јан 02, 2016
  2. Речник 75% завршен  Јан 02, 2016
  3. Управљање библиографијом‎ 75% завршен  Jan 10, 2016
  4. Више библиографије

Посебни документи

  1. Писма 50% завршен  Јан 02, 2016
  2. Презентације 75% завршен  Јан 02, 2016
  3. Учитељски део 75% завршен  Jan 10, 2016
  4. Кратка биографија 50% завршен  Јан 02, 2016

Креирање графика

  1. Представљање процедуралних графика 100% завршен  Јан 02, 2016
  2. МетаПостови 0% завршен  Јан 02, 2016
  3. Слика 50% завршен  Јан 02, 2016
  4. PGF/TikZ 25% завршен  Јан 02, 2016
  5. PSTricks 50% завршен  Јан 02, 2016
  6. Xy-pic 25% завршен  Јан 02, 2016
  7. Прављење 3D графикa 75% завршен  Јан 02, 2016

Програмирање

  1. Макрои 100% завршен  Jan 10, 2016
  2. Обичан ТеХ‎ 100% завршен  Jan 10, 2016
  3. Креирање пакета 100% завршен  Jan 10, 2016
  4. Теме 75% завршен  Jan 10, 2016

Разно

  1. Модуларни Документи 100% завршен  Jan 10, 2016
  2. Заједничко писање LaTeX докумената 75% завршен  Jan 10, 2016
  3. Отпремање у друге формате 100% завршен  Jan 10, 2016

Помоћ и препоруке

  1. Најчешће постављана питања 100% завршен  Jan 10, 2016
  2. Савети и трикови 75% завршен  Jan 10, 2016

Додаци

  1. Аутори 0% завршен  Jan 10, 2016
  2. Линкови 0% завршен  Jan 10, 2016
  3. Ознаке пакета 0% завршен  Jan 10, 2016
  4. Примери LaTeX докумената 0% завршен  Jan 10, 2016
  5. Индекс 0% завршен  Jan 10, 2016
  6. Речник наредби 0% завршен  Jan 10, 2016

У следећем документу, позиваћемо се на посебне знакове за све симболе изутев 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 такође постаје најшире коришћено кодирање (На интернету, у модерним Јуниксима, итд.).

Бављење 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 датотека.

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 модификатор.

Спољашње везе

уреди

Напомене и референце

уреди
  1. За кратко објашњење о скуповима знакова, погледати овај чланак на Џоел Сполскијевом блогу.
  2. За детаљне информације о овом пакету, погледајте комплетна спецификација написана од стране аутора пакета.


Претходно: Структура листи Индекс Следеће: Интернационализација