O que causa esse erro discricionário?

O que causa esse erro discricionário?

Gostaria de compilar minha antiga tese de LaTeX em PDF. O texto foi criado em 1999 (emTeX, acredito) quando os computadores e as ferramentas eram um pouco diferentes - leia, estou retornando ao LaTeX depois de 14 anos; isso é tempo suficiente para esquecer tudo :) O babel não era usado para o tcheco naquela época.

Até agora, (depois de várias tentativas/falha, escavando as informações da minha memória e pesquisando um pouco), converti as fontes para UTF-8 e mudei o

\documentclass[a4paper,11pt]{report}
\usepackage{czech}

para

\documentclass[a4paper,11pt]{report}
\usepackage[czech]{babel}
\usepackage[utf8]{inputenc}

Ao executar o seguinte pdflatex --versionno Windows 7

pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/W32TeX)
kpathsea version 6.1.1
Copyright 2013 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
Compiled with libpng 1.5.16; using libpng 1.5.16
Compiled with zlib 1.2.7; using zlib 1.2.7
Compiled with xpdf version 3.03

(e executando o bibtex para o arquivo my.aux e executando novamente várias vezes o pdflatex pri98dis.tex, ainda recebo o seguinte problema relatado:

) [141] (./pri98dis.aux (./dekuji.aux) (./abstrakt.aux)
! Missing \endcsname inserted.
<to be read again> 
                   \unhbox 
l.223 ...`\discretionary {-}{}{}step}{{3.1.5}{52}}

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Improper alphabetic constant.
<to be read again> 
                   \discretionary 
l.223 ...`\discretionary {-}{}{}step}{{3.1.5}{52}}

A one-character control sequence belongs after a ` mark.
So I'm essentially inserting \0 here.

! Extra \endcsname.
\@newl@bel ... \bbl@tempa \csname #1@#2\endcsname 
                                                  \def \bbl@tempb {#3}\@safe...
l.223 ...`\discretionary {-}{}{}step}{{3.1.5}{52}}

I'm ignoring this, since I wasn't doing a \csname.

)

LaTeX Warning: There were undefined references.


LaTeX Warning: There were multiply-defined labels.

Esta [141]é a última página do documento. (Observe o ! Missing \endcsname inserted.e mais tarde o ! Extra \endcsname.)

Em pri98dis.aux(pertence ao documento principal), as linhas 222 e 223 ficam assim:

\@writefile{toc}{\contentsline {paragraph}{Krok modelov\IeC {\'e}ho \IeC {\v c}asu.}{52}}
\newlabel{time\unhbox \voidb@x \kern \z@ \char `\discretionary {-}{}{}step}{{3.1.5}{52}}

Parece que pertence à seguinte parte da fonte:

\paragraph{Krok modelového času.}

... text of one paragraph...

\begin{verbatim}
    in('EvQue', 'head', ?head_time);                               { 1 }
    in('EvQue', 'list', head_time, ?next_time);                    { 2 }
    out('EvQue', 'head', next_time);                               { 3 }
\end{verbatim}
\label{time-step}

Parece que o problema é causado de alguma forma pelo \label{time-step}.

Como posso resolver o problema?

(Obrigado e desejo a você um Feliz Ano Novo e todos os dias seguintes.)

Responder1

Muito provavelmente isso é causado por um pacote (abreviação da linguagem babel?) definindo -como ativo e depois tentando agir "normalmente" definindo-o como

\leavevmode\char`\-

Recebo quase o mesmo erro (contexto ligeiramente diferente, mas o mesmo

time\unhbox \voidb@x \char `\discretionary {-}{}{}step

do seguinte:

\documentclass{article}

\catcode`\-\active
\def-{\leavevmode\char`\-}

\begin{document}

aa \section{zzz\label{time-step}} aa

zzz\ref{time-step}

\end{document}

Se você não quiser alterar as macros, a maneira simples de evitar o erro é não usar -argumentos de rótulo, referência e citação.

informação relacionada