
저는 SIAM에서 제공하는 문서 클래스 내에서 pythontex를 사용하고 있습니다(참조http://www.siam.org/meetings/ns14/siam-wns-article.cls- 2018버전과 동일한 문제가 있는 2014버전의 경우 100줄 미만입니다.
내가 컴파일할 때
\documentclass{siam-wns-article}
\usepackage{pythontex}
\begin{document}
test
\end{document}
오류가 발생합니다.
\c@listing=\count122
./tmp.tex:5: \the 뒤에 `\relax'를 사용할 수 없습니다.
\c@float@유형
실제 예제의 출력은 괜찮습니다. 그러나 오류가 계속 발생하고 회의 주최자는 최종 진행을 위해 원본 텍스트 파일을 원할 것이라고 말했습니다. 그래서 DocumentClass에서 수정해야 할 사항을 알려드릴 수 있는지 확인하고 싶습니다. 그러나 나는 그것을 알아낼 수 없었습니다.
어떤 제안이 있으십니까?
답변1
문제는 다음에 설명된 대로입니다.https://github.com/gpoore/pythontex/issues/61그리고https://github.com/axelsommerfeldt/caption/issues/5
해결 방법: PythonTeX 부동 소수점에 대해 다른 이름을 사용하십시오(사용 여부에 관계없이).
\documentclass{siam-wns-article}
\usepackage{pythontex}
\setpythontexlistingenv{pylisting}
\begin{document}
test
\end{document}
문제에 대한 설명입니다. 패키지 가 로 정의되었는지 newfloat
테스트했는데 이는 잘못된 것입니다. 를 사용해야 합니다 . 이 패키지가 로드될 때 문제가 발생합니다 .\c@float@type
\ifdefined
\@ifundefined
listings
하다use \@ifundefined{c@float@type}
, 이는 \c@float@type
와 동일하게 유지된 \relax
다음 \ifdefined\c@float@type
true를 반환합니다. 사용 중인 SIAM 클래스가 로드됩니다 listings
.
.newfloat
답변2
David의 대답 대신 클래스 파일을 수정할 수 있습니다.
문제는 다음에서 발생한 것 같습니다.pythontex
와 사이의 비호환성listings
(후자는 클래스 파일에 의해 로드됩니다).
문제 GitHub 페이지의 주석 중 하나에서 언급했듯이 pythontex
이전에 로드하면 listings
문제가 해결됩니다(또는 목록을 전혀 로드하지 않음).
pythontex
그러니 미리 넣어 listings
두면 좋습니다.
답변3
오류 메시지는 카운터가 float@type
정의되지 않았음을 나타냅니다.
grep 'newcounter.*float@type' /usr/local/texlive/2017/texmf-dist/tex/latex/*/*.*
float.sty
따라서 가능한 수정 사항은 다음 과 같습니다.
\documentclass{siam-wns-article}
\usepackage{float}
\usepackage{pythontex}
\begin{document}
test
\end{document}
오류 없이 실행됩니다.
그러나 pythontex는 newfloat를 로드하므로 이것은 아마도 float와 newfloat가 모두 로드되는 것을 원하지 않고 다른 답변이 단서를 가리키고 약간의 추적을 통해 이것이 일반적인 문제라는 것을 알 수 있기 때문에 아마도 최선의 수정이 아닐 것입니다. 프리미티브 의 묘한 특징 때문 이라고 \@ifundefined{c@float@typ}
정의하는 부작용이 있는 라텍스 테스트 .\c@float@type
\relax
\csname
공교롭게도 다음 라텍스 릴리스에는 이 문제를 방지하기 위한 코드가 있을 것이지만 그동안 \c@float@type
정의되지 않은 상태로 다시 설정할 수 있습니다.
\documentclass{siam-wns-article}
\AtBeginDocument{%
\expandafter\ifx\csname c@float@type\endcsname\relax
\expandafter\let\csname c@float@type\endcsname\undefined
\fi
}
\usepackage{pythontex}
\begin{document}
test
\end{document}