\iffalse incompleto cuando se utiliza un paquete de sintaxis con una cita

\iffalse incompleto cuando se utiliza un paquete de sintaxis con una cita

Por razones que desconozco, el siguiente código de látex minimizado produce un

(/opt/local/share/texmf-texlive/tex/latex/mdwtools/syntax.sty) (./text.aux)) ! \iffalse incompleto; todo el texto fue ignorado después de la línea 12.

error por pdflatex. Se deriva de mi documento donde comenzó el problema cuando intenté agregar el paquete de sintaxis:

\documentclass[a4paper,fontsize=12pt,parskip=half,toc=listofnumbered,toc=bib]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}


\usepackage{syntax}

\begin{document}

\begin{quotation}
As a rule of thumb, if you can tell which computer you are using, you are not using a distributed system.
\end{quotation} from \cite{DOS_Tanenbaum}

\end{document}

Parece que de alguna manera interfiere con bibtex, ya que cuando elimino \cite genera un pdf.

Respuesta1

La solución más sencilla es hacer \usepackage[nounderscore]{syntax}. Sin embargo, puedes corregir el uso en etiquetas o citas.

\documentclass{article}

\usepackage{syntax}

\makeatletter
\def\@uscore.{%
  \ifmmode
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  \sb
  {\@usc@re}%
}
\def\@usc@re{%
  \ifincsname
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {\string_}%
  {\textunderscore\@ifnextchar_{}{\usc@builtindischyphen}}%
}
\if@uscore
  \AtBeginDocument{%
    \catcode`\_\active%
    \begingroup%
    \lccode`\~`\_%
    \lowercase{\endgroup\protected\def~{\@uscore.}}%
  }
\fi


\begin{document}

This is an underscore ``_''; also \cite{DOS_Tanenbaum} and $a_1$

\end{document}

ingrese la descripción de la imagen aquí

información relacionada