ЛаТеX/Грешке и упозорења

Извор: Викикњиге

Шаблон:LaTeX/Top

LaTeX описује шта је подешавање куцања док га одрађује. Ако наиђе на нешто што не разуме или не може да уради, избациће грешку која говори шта није уреду. Може такође избацити упозорење за мање озбиљна стања.

Не паничите ако видите ове поруке грешака: честе су грешке куцања или погрешног уношења команди, заборављање на витичасте заграде, укуцавање косе црте уместо обичне цртице, или коришћење специјалног симбола грешком. Грешке се лако уоче и лако се исправе у свом уређивачу, и онда можете покренути LaTeX поново да би сте проверили да ли је све поправљено. Неке најчешће грешке су описане у наставку.

Поруке грешака[уреди]

Формат поруке грешке је увек исти. Поруке грешака почињу са знаком узвика на почетку линије, и дају опис грешке, који прати линија која почиње бројем, што се односи на линија-број у вашем документи који је LaTeX обрађивао када је грешка уочена. Овде је пример, који показује да је корисник погрешно откуцао \tableofcontents команду:

! Undefined control sequence.
l.6 \tableofcotnetns

Када LaTeX наиђе на овакву грешку, показује грешку и паузира. Морате укуцати неко од следећих слова да бисте наставили:

Кључ Значење
x Стати одмах и изаћи из програма.
q Наставити нечујно најбоље што може и не узнемиравај ме више са грешкама.
e Заустави програм али помери текст у мом уређивачу на место где си пронашао грешку (Ово једино ради ако користите уређивач са којим LaTeX може да комуницира).
h Покушај да ми даш више помоћи.
i (праћен исправком) значи убаци исправку уместо грешке и настави (Ово је само тренутна исправка како би фајл био процесован. Идаље морате да направите исправку у уређивачу).
r Покрени непрестани мод.Пробити се кроз све грешке, осим ако нема велике гомиле и не успе (100 грешака).

Неки системи (Emacs је један пример) покрећу LaTeX са "непрестаним" прекидачем укљученим, тако да увек процесира до краја фајла, необраћајући пажњу на грешке, или док ограничење није постигнуто.

Упозорења[уреди]

Упозорења не почињу са знаком узвика: они су само коментари од стране LaTeX-а о стварима које би требали да погледате, као што су предучагке и подвучене линије (често изазване од стране необичних повлака, на пример), страница које су кратке или дуге, и друге типографске префињености (већина која може бити игнорисана касније). За разлику од других система, који покушавају да сакрију неравнине у тексту (обично безуспешно) мешајући се у размаку слова, LaTeX узима поглед који би аутор или уређивач требао да учествује. Док је вероватно могуће поставити LaTeX-ове параметре тако да је размак довољно аљкав тако да нећете скоро уопште допити упозорење о лошим линијама или странама, само ћете одлагати ствари док не почнете да добијате жалбе од стране читача или објављивача.

Примери[уреди]

Само неке честе грешке су дате овде: Они који најчешће могу бити одстрањени од стране почетника. Ако пронађете грешку која ни приказана овде и није вам јасно шта да радите, тражите помоћ.

Већина грешака су саме по себи разумљиве али имати на уму да место на коме LaTeX примећује и пријављује грешке може касније бити у фајлу, а не на месту где су створене. На пример ако заборавите да затворите витичасту заграду која се затвара, реците, италикс, LaTeX неће пријавити ово све док се нешто друго не јави које се не може десити док се витичаста заграда не затвори (нпр. крај доукмента!)Неке заграде могу бити затворене само од стране људи који могу да читају и разумеју шта треба документ да значи или како да изгледа.

Почетници би требало да запамте да провере листу специјалних симбола: велики број грешака када учите LaTeX се јављају због случајног укуцавања специјалног симбола када нисте мислили. Ово нестаје после неколико дана када се навикнете на то.

Превише }[уреди]

	
! Превише }.
l.6 \date December 2004}

Разлог због LaTeX мисли да постоји превише } овде је зато што фали отворена витичаста заграда после \date контролне секвенце и пре речи Децембар, тако да је затварање витичасте заграде виђено као вишак (што и јесте!). Уствари, постоје друге ствари који могу да прате \date команду одвојену од датума у витичастој загради, тако да LaTeX не може погодити да ли сте пропустили отворену витичасту заграду све док не нађе затворену!

Недефинисана контрола секвенце[уреди]

! Недефинисана контрола секвенце.
l.6 \dtae
{December 2004}

У овом примеру, LaTeX се жали да непостоји таква команда ("контрола секвенце")као \dtae. Очигледно је погрешно укуцана, али само човек може уочити такву чињеницу: све што LaTeX зна је да \dtae није команда коју он познаје: недефинисана је. Грешке у куцању су најчешћи извор грешака. Неки уређивачи дозвољавају честе команде и окружења да буду убачена користећи падајући мени или иконице, који се могу користити како би се избегле ове грешке.

Не у Математичком моду[уреди]

! Недостаје $ убачен

Карактер који може само бити коришћен у математици је убачен у нормалан текст. Ако намеравате да користите математички мод онда користите $...$ или \begin{math}...\end{math} или користите 'брзи математички мод': \ensuremath{...}. Ако нисте намеравали да користите математички мод, онда можда покушавате да користите специјални карактер који је потребно укуцати на другачији начин; на пример _ ће бити претстављено као подскрипта оператора у математичком моду, и биће вам потребно \_ како би се добио доњи карактер.

Ово се такође може десити ако користите погрешно кодирање карактера, на пример коришћењe utf8 без "\usepackage[utf8]{inputenc}" или коришћењем iso8859-1 без "\usepackage[latin1]{inputenc}", постоје неколико карактера који декодирају формате, имајте на уму да изаберете прави.

Одбегли аргумент[уреди]

Одбегли аргумент?
{December 2004 \maketitle
! Параграф завршен пре \date је завршен.
<за поновно читање>
\par
l.8

Код ове грешке, затварање витичасте заграде је изостављена из датума. Супротно је од грешке зване превише }, и као резултат даје \maketitle покушавајући да форматира наслов странице док LaTeX идаље очекује више текста за датум! Док \maketitle ствара нови параграф на означеној насловној страни, ово је пронађено и LaTeX се жали да је претходни параграф завршен, али \date није још завршен.

Потпуна хкутија[уреди]

	
Потпуна \hbox (badness 1394) у параграфу
at lines 28--30
[][]\LY1/brm/b/n/10 Bull, RJ: \LY1/brm/m/n/10
Ac-count-ing in Busi-
[94]

Ово је упозорење које LaTeX не може развуче линију довољно широку да стане, не чинећи размаке већим него што су тренутно дозвољени. Поквареност (0-10,000) показује колико је ово строго (овде се може игнорисати поквареност од 1394). Говори које линије вашег фолдера су подешена за куцање када је пронађено ово, и број у квадратним заградама је број стране на коме је увређена линија иштампана. Кодови одвојени цртицама су слогови и стил фонта и величина се користи у линији. Игноришите их за тренутак.

Ово долази ако користите прелом реда, нпр., \\, и имате размак пре тога. Нормално TeX игнорише прекиде редова, пружајући пуне параграфе за недотеран текст. У овом случају неопходно је да се изведе прелом реда над једном линијом на крају претходне реченице.

Ово упозорење се може такође показати када се убацују слике. Може се избећи коришћењем \textwidth или могућом \linewidth опцијом, нпр. \includegraphics[width=\textwidth]{image_name}

Напуњена хкутија[уреди]

[101]
Напуњена \hbox (9.11617pt преширока) у параграфу
при редовима 860--861
[]\LY1/brm/m/n/10 Windows, \LY1/brm/m/it/10 see
\LY1/brm/m/n/10 X Win-

Напуњени \hbox значи да постоји повлачење или проблем оправдања: померање последње речи линије би учинило размаке у линији ширим од тренутног лимита; задржавање речи на линији би учинило размаке мањим од тренутног лимита, тако да је реч на левој линији, али са минимумом размака који дозвољен између речи, и која чини да линија иде преко ивице.

Упозорење је дато тако да можете наћи линију у коду од кога потиче проблем (у овом случају: 860-861) и поправити га. Линија у овом примеру је предугачка, преко 9пт. Изабрано повлачење смањује грешку која је приказана на крају линије (Win-). Бројеви линија и страница су већ дати. У овом случају, 9пт је много да би се игнорисало (преко 3мм), и потребна је мануелна корекција (као промена повлачења), или подењавање флексибилност има потребу за променом.

Ако "напуњена" реч укључује косу црту, као "input/output", ово би било типично слагање слога "input\slash output". Коришћењем \slash има исти ефекат као коришћење "/" карактера, осим што оно може да формира крај линије (са пратећим речима на старту следеће линије). "/" карактер који се типично користи у јединицама, као "mm/year" карактер, који не би требао да се растури преко више линија.

Упозорење се такође може разматрати када \end{document} ознака није укључена или је избрисана.

Лако примећивање напуњених хкутија у документу[уреди]

Да бисте лако пронашли локацију напуњене хкутије у вашем документу, можете направити да latex убаци црну линију где је линија предугачка:

\overfullrule=2cm

Недостајући пакет[уреди]

! LaTeX Error: File `paralisy.sty' not found.
Укуцати X за излаз или <RETURN> за наставак,
или укуцајте ново име. (Default extension: sty)
Укуцати ново име:

Када наиђете на \usepackage команду да LaTeX захтева коришћење одређеног пакета, тражиће фајл са одређеним именом и типом фајла.sty. In this case the user has mistyped the name of the paralist package, so it's easy to fix. Међутим, ако упишете име како треба, али пакет није инсталиран на вашем рачунару, мораћете да скинете и инсталирате да бисте наставили. Ако не желите да утичете на глобалну инсталацију рачунара, можете једноставно скинути са Интернета потребни .sty фајл и ставити га у исти фолдер документа који уређујете.

Упозорење пакета бабела: Нема подвучених шаблона који се учитавају за језик Х[уреди]

Иако је ово упозорење од стране Бабел пакета, а не од LaTeX-а, ова грешка је честа и (може) даје нека чудна повлачења (прекид речи) проблема у вашем документу. Нетачно повлачење правила може смањити уредност вашег документаA

Упозорење пакета бабела: Нису учитани подвучени шаблони за
(babel)                језик `Латински'
(babel)                Користићу учитане шаблоне за \language=0 уместо тога.

Ово се може десити након коришћења: (видети LaTeX/Интернационализација)

\usepackage[latin]{babel}

Решње није тешко, само инсталирајте језик који користите у вашем LaTeX дистрибуција.

Грешка пакета бабела: Нисте идаље учитали опцију Х.[уреди]

Ако је претходно подешен Х језик, и онда се одлучи за промену на Y, добићете ову грешку. Ово може деловати незгодно, пошто не постоји грешка у вашем коду ако нисте променили ништа. Одговор се налази у .aux фајл, где бабел дефинише ваш језик. Ако покушате компилацију други пут, требало би да ради. Ако не, избришите .aux file, онда ће све радити као уобичајно.

Нема грешке, али неће да компајлира[уреди]

Један чест узрок (pdf)LaTeX који се заглављује је заборављање укључења \end{document}

Софтвер који може проверити ваш .tex Code[уреди]

Постоје неколико програма који имају могућност провер LaTeX извора, са циљем проналаска грешака или назначавање лоше праксе, и пружање више помоћи (специјално почетницима) корисницима него уграђеним грешкама.T

  • nag (www.ctan.org/tex-archive/macros/latex/contrib/nag) је LaTeX пакет дизајниран да покаже на коришћење застарелих команди.
  • lacheck (www.ctan.org/tex-archive/support/lacheck) је доследна пробера која има намеру да примети грешке у коду. Доступан је као изворни код или је комајлиран за Виндоувс и ОС/2
  • chktex (baruch.ev-en.org/proj/chktex/) је LaTeX-ова семантичка провера доступна као изворни код за Unix системе.


Претходно: Ознаке и референцирање Индекс Следеће: Дужине