환경 및 명령 외부의 항목을 무시하거나 플래그를 지정하는 방법

환경 및 명령 외부의 항목을 무시하거나 플래그를 지정하는 방법

LaTeX 문서의 서문에서 명령은 처리되지만 출력되는 모든 항목은 오류로 이어집니다 Missing \begin{document}.

\documentclass{article}
This leads to an error.
\begin{document}
\end{document}

환경 에서는 tikzpicturetikz 명령으로 해석될 수 없는 모든 것이 무시됩니다.

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  Something that is ignored
  \node {A};
  Something that is ignored
\end{tikzpicture}
\end{document}

질문:전용 환경 내에서 유사한 효과를 얻는 가장 쉬운 방법은 무엇입니까? 예를 들어, 문서

\documentclass{article}
\newenvironment{IgnoreOrFlagUnknownStuff}{}{}% ??? to be defined
\newenvironment{A}{\paragraph{A:}}{}
\newcommand\B[1]{\paragraph{B:} #1\par}
\begin{document}
\begin{IgnoreOrFlagUnknownStuff}
  Something to ignore or to complain about.
  \begin{A}
    This is OK.
  \end{A}
  Something to ignore or to complain about.
  \B{This is also OK.}
  Something to ignore or to complain about.
\end{IgnoreOrFlagUnknownStuff}
\end{document}

Something to ignore나머지를 처리하는 동안 문장 에 대해 불평하거나 무시해야 합니다 .

답변1

Enrico의 의견에 따르면 \nullfont.

\newenvironment{IgnoreUnknownStuff}{\nullfont}{}

Missing character: There is no S in font nullfont!그러면 로그 파일과 같은 경고가 생성되며 , 이는 설정을 통해 억제할 수 있습니다 \tracinglostchars=0. 무시된 항목은 여전히 ​​추가 수직 및 수평 공간을 초래할 수 있습니다. 아마도 hmode를 입력 및 종료하고 줄 끝에 공백을 추가하기 때문에 무시된 항목이 완전히 보이지 않게 되는 것은 아닙니다.

\everyparLaTeX 형식과 같은 무시된 항목에 대해 오류 메시지를 발행하려면 머리말의 문자에 대해 설정하여 hmode를 입력할 때 오류를 생성하는 데 사용할 수 있습니다 \everypar{\ErrorUnknownStuff}. 무시된 문자가 예상될 때마다 TeX가 vmode에 있는지 확인해야 합니다. 아래 명령을 참고하세요 \par.

\newenvironment{FlagUnknownStuff}%
  {\everypar{\ErrorUnknownStuff}%
   \nullfont
   \par
   \tracinglostchars=0
  }{}
\newcommand\ErrorUnknownStuff{\GenericError{}{Unknown Stuff}{}{}}
% Commands and environments that may appear in the environment
\newenvironment{A}{\normalfont\paragraph{A:}}{\par}
\newcommand\B[1]{{\normalfont\paragraph{B:} #1\par}}
\newcommand\C[1]{{\everypar{}\normalfont #1\par}}

\everypar\everypar{}hmode를 의도적으로 입력하기 전에 되돌려야 합니다 . 위의 정의에서는 \paragraph이 작업을 암시적으로 수행하지만 정의에서는 \C이를 명시적으로 수행해야 합니다.

왼쪽 이미지는 아래 코드의 결과입니다. 환경에 있는 4개의 무시 및 불평 행 각각에 대해 오류가 발행됩니다 FlagUnknownStuff. 오른쪽 이미지는 무시할 모든 줄을 제거할 때의 출력입니다. 간격의 차이를 확인하세요.

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

\documentclass{article}
\newenvironment{IgnoreUnknownStuff}{\nullfont}{}
\newenvironment{FlagUnknownStuff}%
  {\everypar{\ErrorUnknownStuff}%
   \nullfont
   \par
   \tracinglostchars=0
  }{}
\newcommand\ErrorUnknownStuff{\GenericError{}{Unknown Stuff}{}{}}
% Commands and environments that may appear in the environment
\newenvironment{A}{\normalfont\paragraph{A:}}{\par}
\newcommand\B[1]{{\normalfont\paragraph{B:} #1\par}}
\newcommand\C[1]{{\everypar{}\normalfont #1\par}}
\begin{document}
Before.
\begin{IgnoreUnknownStuff}
  Something to ignore.
  \begin{A}
    This is OK.
  \end{A}
  Something to ignore.
  \B{This is also OK.}%
  Something to ignore.
  \C{This also.}
  Something to ignore.
\end{IgnoreUnknownStuff}
In-between.
\begin{FlagUnknownStuff}
  Something to ignore and to complain about.
  \begin{A}
    This is OK.
  \end{A}
  Something to ignore and to complain about.
  \B{This is also OK.}
  Something to ignore and to complain about.
  \C{This also.}
  Something to ignore and to complain about.
\end{FlagUnknownStuff}
After.
\end{document}

관련 정보