\GetIdInfoAuxI 사용이 정의 및 기타 오류와 일치하지 않습니다.

\GetIdInfoAuxI 사용이 정의 및 기타 오류와 일치하지 않습니다.

이 최소 예제(최신 TeX Live 2012)에서 몇 가지 오류가 보고되었습니다. 최근 TeX Live 업데이트에서 오류가 발생했습니다.

\RequirePackage[l2tabu, orthodox]{nag}

\documentclass{scrbook}
\usepackage{morewrites}
\RequirePackage{listings}
\AtBeginDocument{%
  \RequirePackage{mdframed}
}

\begin{document}
\end{document}

안에 xparse.sty:

! of의 사용이 \GetIdInfoAuxI해당 정의와 일치하지 않습니다. l.66\GetIdInfo$ Id: xparse.dtx 4467 2013-03-12 08:29:05Z joseph $

안에 etoolbox.sty:

( c:/texlive/2012/texmf-dist/tex/latex/etoolbox/etoolbox.sty ! 누락 $삽입됨.

안에 mdframed.sty:

! TeX 용량을 초과했습니다 [input stack size=5000]. 죄송합니다. \etoolbox.sty-h@@k ->\etoolbox.sty-h@@k \etb@catcodes \undef \etb@catcodes l.72 \RequirePackage{etoolbox}[2011/01/03]

답변1

@DavidCarlisle의 답변은 이 문제의 원인을 자세히 설명하며 솔루션이 작동하는 동안 catcode 매직이 적은 솔루션을 사용하는 것이 더 나을 수 있습니다. \AtEndPreamble에서 제공하는 매크로를 사용하면 etoolbox오류가 발생하지 않도록 MWE를 다시 작성할 수 있습니다.

\RequirePackage[l2tabu, orthodox]{nag}
\documentclass{scrbook}

\usepackage{morewrites}
\RequirePackage{listings}
\usepackage{etoolbox}
\AtEndPreamble{%
  \RequirePackage{mdframed}
}

\begin{document}
\end{document}

mdframed처음부터 로딩을 연기할 이유가 없다고 생각합니다 .

답변2

nag 패키지는 $일반적인 정의에서 "활성"으로 변경됩니다.

\AtBeginDocument{\catcode`$\active}%$
\AtEndDocument{\catcode`$=3\relax}

문서 시작을 지연시켜 이로 인해 발생할 수 있는 충돌을 최소화하려고 합니다.

mdframed(xparse를 통해)는 $패키지 파일의 소스 제어 헤더를 구문 분석하는 데 사용됩니다. 이는 RequirePackageBeginDocument까지 지연되었기 때문에 실패합니다.

이에 대한 가장 확실한 해결책은 다음을 사용하는 것입니다.

\usepackage{mdframed}

오히려

\AtBeginDocument{%
  \RequirePackage{mdframed}
}

하지만 애초에 패키지 로딩이 지연된 이유에 따라 다릅니다.


주석에서 언급했듯이 패키지 로딩을 지연시키는 것은 \AtBeginDocumentLaTeX가 전역 글꼴 및 페이지 크기 구조를 설정한 후 의도한 것보다 늦게 패키지를 로드하므로 항상 위험하지만 다음과 같이 작동합니다.

\RequirePackage[l2tabu, orthodox]{nag}

    \documentclass{scrbook}
    \usepackage{morewrites}
    \RequirePackage{listings}
    \AtBeginDocument{%
      \edef\saveddcatcode{\the\catcode\expandafter`\string$}%
      \catcode`\$3 %
      \RequirePackage{mdframed}%
        \catcode`\$ \saveddcatcode\relax
    }

    \begin{document}
    \end{document}

관련 정보