인용과 함께 구문 패키지를 사용할 때 불완전한 \iffalse

인용과 함께 구문 패키지를 사용할 때 불완전한 \iffalse

나에게 알려지지 않은 이유로 다음과 같은 최소화된 라텍스 코드는

(/opt/local/share/texmf-texlive/tex/latex/mdwtools/syntax.sty) (./text.aux)) ! 불완전함 \iffalse; 12행 이후의 모든 텍스트는 무시되었습니다.

pdflatex의 오류입니다. 구문 패키지를 추가하려고 할 때 문제가 시작된 내 문서에서 파생되었습니다.

\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}

\cite를 제거하면 pdf가 생성되기 때문에 어떻게 든 bibtex를 방해하는 것 같습니다.

답변1

가장 간단한 해결책은 다음과 같습니다 \usepackage[nounderscore]{syntax}. 그러나 레이블이나 인용의 사용법을 수정할 수 있습니다.

\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}

여기에 이미지 설명을 입력하세요

관련 정보