정의되지 않은 참조 때문에 Xe (La) TeX 재실행시기를 결정하려고합니다. SCons mailing list에 관련 질문을 게시했으며 문제는 다음과 같습니다.XeTeX - 재실행이 필요할 때 감지합니다.
SCons 및 다른 빌드 시스템에서 XeLaTeX를 여러 번 실행해야하는 페이지 수 및 기타 참조가 때때로 감지되지 않습니다. 당신이 xelatex job
실행하면
\documentclass[oneside,12pt]{memoir}
\usepackage{xltxtra}
\usepackage[T1]{fontenc}
\makepagestyle{plain}
\makeoddfoot{plain}{}{}{Page \thepage\ of \arabic{lastpage}}
\makeevenfoot{plain}{}{}{Page \thepage\ of \arabic{lastpage}}
\begin{document}
\pagestyle{plain}
Page 1
\newpage
Page 2
\newpage
Page 3
\newpage
\end{document}
, 생산 년대 .PDF 페이지 번호가 "페이지 1 0", "0 페이지 2"및 "페이지 : 여기에 (우리가 job.tex
전화 할게) 예제 파일입니다 3 of 0 "으로 표시됩니다. xelatex job
를 두 번째로 실행하면 '페이지 1/3'등 (즉 올바른 페이지 수)이 표시됩니다.
수정하려면 SCons 메일 링리스트에서 xelatex를 실행하여 정의되지 않은 참조를 해결할 것인지 확인하는 것이 다음 정규 표현식을 변경하는 것입니다 (SCons.Tools.tex
버전 2.0.1.beta의 71 행). 20100627.r5064) :
- warning_rerun_str = '(^LaTeX Warning:.*Rerun)|(^Package \w+ Warning:.*Rerun)'
+ warning_rerun_str = '(^LaTeX Warning:.*Rerun)|(^Package \w+ Warning:.*Rerun)'\
+ '|(^No file \w+\.\w{3}\.$)'
실제로는 No file job.aux입니다. Xe (La) TeX는 항상 첫 번째 실행시 "No file job.aux"를 인쇄하므로 Xe (La) TeX는 항상 두 번 실행되기 때문에 모든 경우에이 방법이 적용됩니다. 결과적으로 job.aux
이 job.tex
과 job.pdf
사이의 중간 빌드 대상이되는 것과 같습니다.
내부에 문제가있다 : 어떤 정의 기준이없는 경우에도 일단 .aux
생산 번 .pdf
생산 회 호출의 Xe (라) 텍 (예컨대 \arabic{lastpage}
job.tex
에서 상기 제거). 분명히 정의되지 않은 참조가 없으면이 두 번째 호출은 불필요합니다.
내 질문에 : 재 컴파일이 필요한 정의되지 않은 참조 (예 : \ arabic {lastpage})가 있거나 없을 때 job.log
에 대한 정규 표현식 테스트를 통해 어떻게 알 수 있습니까?
읽어 주셔서 감사합니다.
안부,
브라이언