LINUX.ORG.RU

Перестали работать некоторые команды Latex

 


0

2

Давненько уже не касался Латеха, а тут приспичило. Взял свой старый исходник, который 100% рабочий и решил откомпилировать на PDFLatex. И тут мне выбило кучу неожиданных ошибок. Убрал лишнее

\documentclass[a4paper,12pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
%\usepackage{amsmath}
\usepackage[left=2cm,right=2cm,top=2cm, bottom=2cm]{geometry}
\usepackage[colorlinks=true, linkcolor=blue]{hyperref}

\begin{document}

   
  \tableofcontents
  \chapter{Теоретические задания} %поправил, спасибо.
  
  \section{Задание \No1}
    Текст
    
  \section{Задание \No2}
    Текст
  \section{Задание \No3}
    Текст
  \section{Задание \No4}
    Текст
  \section{Задание \No5}
    Текст
  \section{Задание \No6}
    Текст

    
     
 
\end{document}
Вываливается куча ошибок на каждую section по 4 строки вида:

undefined control sequence \section{Задание \No1}

и т.д.

Раньше такого не было => косяк произошел после обновления. Как исправить?

Заранее спасибо



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

В общем так: в TeX Live 2013 какие-то редиски (сказал бы как их звать на самом деле, но забанят) решили выкинуть команду \No из кириллической части babel по причине, что символ № типа есть на клавиатуре.

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

Я сделал так:

\usepackage[T2A]{fontenc}
\providecommand{\No}{\textnumero}

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

Тьфу-тьфу, меня сия доля минула: я до сих пор в арчике сижу, а т.к. уже полтора года не обновлялся, у меня еще 2012 техлив.

// там никакой [censored] часом не собрался отменить поддержку восьмибитных кодировок?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Я, как понимающий любовь к древностям, говорю тебе: юникод почти полностью готов — пора переходить.

Печалька в том, что в новых версиях есть весьма полезные вкусности.

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

Спасибо. Косяк в \No. Я думал в \section. Но все равно, согласитесь, так разумнее.

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

юникод почти полностью готов — пора переходить

У меня все в КОИ8. И я не вижу смысла конвертировать в юникод. Так же как не вижу смысла создавать новые файлы в юникоде. Зачем? Просто объем файла будет в 2 раза больше, а информации — ровно столько же!

Нет уж, только КОИ!

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

в новых версиях есть весьма полезные вкусности

TeX не обновлялся уже давным-давно, полностью стабилизировавшись! Из нового могут быть только поломанные пакеты, да некоторые новые. Но они легко вручную из CTAN'а ставятся.

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

хренасе! оно же железно должно было придерживаться принципов обратной совместимости. теперь блин, не только debian превратился в говно, но и texlive скатился. и самое главное, что эту гадость будут пихать в репозитории по умолчанию.

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

В документации к babel-russian предлагают самостоятельно переопределять \No в каждом документе.
Мне удобнее глобально переопределить в /usr/share/texmf-dist/tex/generic/babel-russian/russianb.ldf

\DeclareRobustCommand{\No}{\ifmmode{\nfss@text{\textnumero}}\else\textnumero\fi}

Кстати, а при \usepackage[ukrainian]{babel} всё нормально, не ругалось.

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

Это не TeX Live --- это тараканы в голове разработчиков babel-russian.

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

Поддержку восьмибитных кодировок дропают, поэтому если не предпринимать спец усилий, то проще жить в юникодном окружении. Собственно говоря, это основная причина.

В случаях многоязычных текстов юникод полезен.

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

Из-за улучшений в TeX Live 2012 я полностью перешёл на связку emacs-pdflatex-okular для редактирования/просмотра. Ранее это было emacs-latex-xdvi.

Печально, потому что кроме улучшений идут баги типа этого. Сейчас вообще идёт революция в виде xetex, по сему слом привычных настроек будет гарантировано.

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

xetex,

сколько же стилей придётся переделывать, сколько боли, страданий и скрежета зубовного.

если не предпринимать спец усилий, то проще жить в юникодном окружении.

эдик — фанатик, ему это объяснять бесполезно.

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

эдик — фанатик, ему это объяснять бесполезно.

Я его понимаю, потому что переход кроме неудобства переконвертации, несёт ещё проблемы несовместимости с пакетами, которые ориентировались только на латиницу. Тот же lstlistings --- очень удобен, но в случае unicode кириллицы в коде не допускается. Так же разного рода артефакты вылезают в самых разных и неожиданных местах, например в пакете, который отвечает за расстановку гитарных аккордов.

Так же возникает ещё одна не очень очевидная проблема: проблема равноправия символов aka возможность добавлять команды на русском, типа \итд. Это сразу нарушает обратную совместимость с тучей текстов, где переход с латиницы однозначно трактовался как окончание имени команды.

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

Есть ещё мелкие удобства в виде, например, нормального тире сразу без акронимов, знаков копилефта, символа евро и тому подобное.

Основную проблему я обозначил: восьмибитные кодировки дропают в мэйнстриме и повлиять на это мы не в состоянии.

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

Мне хватает задания командами. Букву ē я тоже пишу как \"е, так что все ОК.

восьмибитные кодировки дропают в мэйнстриме

Благо, в ctan'е хранятся старые пакеты. А можно просто не обновляться.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ну и зря, в смысле \«е --- ты лишаешься полнотекстового поиска.

Вопрос не в CTAN (хотя и в CTAN тоже --- бесконечно поддерживать старое легаси не всегда возможно) --- вопрос в Linux-окружении.

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

ты лишаешься полнотекстового поиска

Пофиг. Слов с буквой ē не так уж и много + у меня ее на клавиатуре нет (я уже много раз говорил, что на этой клавише у меня более нужные тильда и апостроф).

вопрос в Linux-окружении

Да, тупеют люди, портят все...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Слов с буквой ē не так уж и много

Их достаточно, чтобы лишиться поиска. dixi

Заведи нормальную клавиатуру, а то от твоей старой жир (с пальцев который попадает) поди уже не оттирается.

P.S. Для себя проблему с тильдой я решил, что у меня только строчная ё в emacsовской раскладке есть, а апостроф у меня используется только в латинице.

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

Как личное решение - отдельная «пишущая машинка» с законсервированным Linux-окружением и LaTeX-ом. Громоздко и глупо, может быть, зато без новостей.

anonymous
()
Ответ на: комментарий от Eddy_Em

Зачем столько букв? Достаточно лишь написать \def\No{\textnumero}!

Так предлагают в документации к пакету (на стр. 23) russianb.pdf

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