LINUX.ORG.RU
ФорумTalks

Когда латех научится делать нормальные сообщения об ошибках?

 ,


0

1

Нет ничего лучше, чем набирать текст с формулами в латех, но, блин, нет ничего хуже, чем искать косяки в исходных файлах. 21-й век на дворе, даже gcc научился более менее показывать точное место, где я накосячил, а латех остался в 80-х годах.

Загадка. Что это значит:

(/usr/share/texmf-dist/tex/latex/amsfonts/ueus.fd)
(/usr/share/texmf-dist/tex/latex/amsfonts/ueuex.fd) [1] [2] [3] [4] [5]
[6] [7] <xymatrix 3x3 174> [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
[18] [19] [20] [21] [22] [23]
Overfull \hbox (7.49167pt too wide) in paragraph at lines 1955--1959
\T2A/ccr/m/n/10 � -�, � --� --�-.
   --�-�
[24] [25] [26] [27]
Overfull \hbox (5.7607pt too wide) in paragraph at lines 2267--2271
[]\T2A/ccr/m/n/10 . - $[][] \U/eur/m/n/10 v[]$ \T2A/ccr/m/n/10 
----  --� $[][] \OM
S/cmsy/m/n/10 k\U/eur/m/n/10 v[]\OMS/cmsy/m/n/10 k$
[28])
Runaway argument?
! File ended while scanning use of \language@active@arg".
<inserted text> 
                \par 
l.82 \sect{Nilpotent groups}{nilp}

? 
Я не привожу начальную километровую портянку всякой хреноты, которую латех пишет даже когда компиляция идет по плану.

Пишет про overfull \hbox в каких-то строках, но из-за использования \input эти номера строк мне ни о чём не говорят.

Может есть какие-нибудь патчи к латеху или оболочки или ещё хоть что-нибудь, что позволяет искать косяки быстрее чем со скоростью черепахи? Я, наверное, совсем неадекват, но я борюсь тупым бисектом, находя косячный участок в тексте, написанном после последней успешной компиляции. Самому смешно.



Последнее исправление: meduza (всего исправлений: 3)

Нет ничего лучше, чем набирать текст с формулами в латех

П-ф-ф-ф... Есть, спать, жрать, секс.... Да блин, я могу продолжать список занятий, которые лучше набора формул в латехе, несколько дней.

Stahl ★★☆
()

Думаю, что никогда. Как я понимаю, корни проблемы в том, что латех сам по себе собрание костылей для TeX. Ошибками гадит TeX, а что там происходит уровнем выше в макросах латеха, он и знать не знает. К сожалению, никакого избавления на горизонте не видно. Переписать бы весь этот ужас с нуля...

ptarh ★★★★★
()

Может есть какие-нибудь патчи к латеху или оболочки или ещё хоть что-нибудь, что позволяет искать косяки быстрее чем со скоростью черепахи?

Мда. В ответ на ошибку нажимаешь e и открывается редактор в строке с ошибкой (по крайней мере vim).

ziemin ★★
()
Ответ на: комментарий от ziemin

У меня он открывается на головном файле в строке, которая инклудит основной файл с текстом соответствующей главы. То есть совершенно бесполезно.

meduza
() автор топика
Ответ на: комментарий от meduza

Ну он ее и выдает в любом случае. Компилятор там настолько тупой, что даже не ловит банальную хрень типа «забыл скобку». Чего ты ожидаешь от системы, которая писалась в конце 70-х и с тех пор, по сути, росла только вширь? Все собираюсь взглянуть на ConTeXt, но без набора пакетов и он бесполезен. Так что скрипи зубами и страдай, компилируя после каждого абзаца. Все так работают :)

ptarh ★★★★★
()
Последнее исправление: ptarh (всего исправлений: 1)

Конкретно про твою проблему с номерами строк: а если заменить input на include то оно тоже не будет нормальные номера строк показывать?

Про overfull пока забей, это в последнюю очередь надо вычищать. Обычно, так бывает либо с картинками, либо если латех не знает как слова переносить.

Про твой \sect — что это такое? Я чую, это какой-то кастомный макрос с которым возникли проблемы. Посмотри в сторону него. Если нет то тогда искать методом тыка незакрытые тэги. Я поэтому люблю live preview — ошибку можно заметить сразу.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

\sect это просто

\newcommand{\sect}[2]{\newpage{\center \section*{\sf #1}}\input{#2}} 

С ним проблем нет, он везде работает. Ошибка в файле, который инклудится.

meduza
() автор топика

Латекс и БДСМ идут рядом, это нормально.

Deleted
()

даже gcc научился более менее показывать точное место, где я накосячил, а латех остался в 80-х годах.

потому что латех - это макросы со всеми вытекающими. Если ты породишь на C такое же количество макросов, то gcc тебе тоже будет писать кучу «бреда», мало соотносящегося с тем, что у тебя в исходнике.

deadman ★★
()
Ответ на: комментарий от ptarh

Переписать бы весь этот ужас с нуля...

Поддерживаю!

sergijoo
()
Ответ на: комментарий от Kroz

Не спасает. Как и Latexian и прочие. Проблема не в ide, а в самой структуре латеха.

ptarh ★★★★★
()
Ответ на: комментарий от ptarh

Самое ужасное, что он еще и на WEB написан, а не на одном из нормальных языков, так что разобраться в его ядре весьма сложно, уж те более постить туда патчи.

XVilka ★★★★★
()

А нет ли в твоем latex како-нибудь '-file-line-error', чтобы он точное место показывал именно так же, как и gcc?

t184256 ★★★★★
()
Ответ на: комментарий от maverik

Это очень и очень сложно. Но да, несколько велосипедов имеется. В частности сейчас тот самый TeX уже не используется. Используют pdfTeX. Мэйнстримом после pdfTeX идёт XeTeX.

Evgueni ★★★★★
()
Ответ на: комментарий от t184256

^C '  — встать на место ошибки в emacs+auctex. Срабатывает удачно примерно в том же проценте случаев, как и выясняется проблема по логам компиляции gcc. Есть несколько пакетов с помощью которых можно управлять степенью подробности логов.

Проблема топикастера возможно в том, что русский язык. В случае текста с латиницей лог попонятней будет (странные символы — это на самом деле текст). Была пара попыток запилить конвертер из внутренней кодировки в Unicode предпринята была, но в мэйнстрим не вошла.

Evgueni ★★★★★
()
Ответ на: комментарий от maverik

Не верю, что никто не взялся переписывать (La)TeX.

Еще велосипедов не хватало! Работает — не трожь!!!

Eddy_Em ☆☆☆☆☆
()

Кстати, прикольно:

echo "хРЮЙ, ОСЯРЭ БНК-МН-БНИ ТПНМР ОПЕД-ЯРЮБ-КЕМ ТСМЙ-ЖХ-ЕИ"|enca  
MS-Windows code page 1251
  LF line terminators

Я даже и не догадывался, что там это говнище.

А вот — нормальный выхлоп:

pdflatex Zhao.tex | iconv -f cp1251 -t koi8r
...
Overfull \hbox (3.12166pt too wide) in paragraph at lines 145--152
[]\T2A/cmr/m/n/12 Итак, пусть вол-но-вой фронт пред-став-лен функ-ци-ей $\OT1/c
mr/m/n/12 ^^H(\OML/cmm/m/it/12 x; y\OT1/cmr/m/n/12 )$\T2A/cmr/m/n/12 , за-дан-н
ой на еди-нич-ной окруж-

Overfull \vbox (2.89998pt too high) has occurred while \output is active
Overfull \hbox (139.0923pt too wide) has occurred while \output is active

Eddy_Em ☆☆☆☆☆
()

Может тех и не надо переписывать. Труп он и есть труп. Нужно что-то более революционное, причём ориентировка не только на печатную типографию, но и веб/гипертекст.

Я вот к чему. Восхищаясь удобством набора сообщений на math.SE, есть такая идея: может писать статьи также — в маркдауне с $-вставками!? На выходе получаем html, стиль задаём в css.

Профиты: (1) удобство и простота набора, (2) текст отдельно, стиль отдельно (вместо месива в .tex), (3) исходник легче читается.

В принципе маркдаун позволяет всё, что может понадобится в более-менее вменяемом тексте. Поправьте меня, если не так. Но по крайней мере на SE мне всегда markdown хватало для выражения своих мыслей.

Вот только html+css это всё таки веб-формат, предназначенный для интерактивного просматривания в веб. Для блогов сойдёт, но для печатных изделий нужно что-то более классическое.

Собсна, я уверен, что у меня эта мысля возникла не впервые. Какие есть наработки в этом направлении, кто знает?

meduza
() автор топика
Ответ на: комментарий от meduza

А теперь додумай, что

а) 1700+ пакетов в TeX Live 2013 зачем-то писались (на прошлой неделе я просмотрел все описания в рамках написания каталога и представляю что говорю). Каждый из них решает ту или иную (некоторые несколько) задач вёрстки.

б) Вёрстка нужна для _облегчения_ чтения текста

в) Упрощение вёрстки на компьютерах связано с низким разрешением устройств вывода aka экранов

г) Устройства вывода aka экраны только-только начинают приближаться к качеству печатных изданий

д) Вёрстка на экране вынуждена будет стать не менее изощрённой, чем вёрстка для бумаги. Читать — это труд и не нужно его специально усложнять дурной упрощённой вёрсткой.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от meduza

Ты, похоже, кроме худлита ничего и не читал. А то бы не называл единственную вменяемую систему верстки трупом!

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.