대용량 문서를 작성 중인데, include/input을 사용하는 대신 패키지 \subimport*
의 명령을 사용합니다 import
. 이를 통해 친척 경로를 매우 쉽게 처리할 수 있습니다.
그러나 좋은 점은 참조를 깨지 않고 특정 파일만 포함하는 데 \include
사용할 수 있다는 것입니다 . \includeonly
에 대한 비슷한 명령이 있습니까 \subimport
?
편집하다
나는 이 문제를 해결할 수 있는 몇 가지 코드를 작성하려고 노력하고 있지만 LaTeX 지식은 실제로 매우 제한적입니다. 제가 이상한 의사코드 같은 것을 썼는데, 도움이 될까요?
\makeatletter
\AtBeginDocument{%
\let\origsubimport\subimport
\newcommand\subimportonly[1]{\let\somevar=#1}
\renewcommand\subimport[1]{\@ifstar
if #1 == letvar, use origsubimport*;
o/w just include aux?
}}
\makeatother
답변1
\subimport
의 모든 인스턴스를 업데이트 \subincludefrom
하고 경로에서 '.tex' 확장자를 제거합니다.
예를 들어 다음과 같이 사용됩니다 \subimport
.
\begin{document}
\subimport{intro/}{intro.tex}
\subimport{chap1/}{chap1.tex}
\subimport{discussion/}{discussion.tex}
\end{document}
다음과 같을 것이다:
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}
최소한 한 번 이상 컴파일한 후 토론(예:)만 포함하려는 경우 \includeonly
다음과 같이 서문에 추가할 수 있습니다.
\includeonly{discussion}
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}
그리고 문서에는 Discussion.tex만 포함됩니다. 이렇게 하면 작업 중이 아닌 섹션을 포함하지 않아 편집-컴파일-뷰 루프가 더 빨라지지만, 참조가 중단되는 것을 방지하기 위해 intro.tex 및 chap1.tex 포함에 *.aux 파일을 사용합니다.
@touhami님의 댓글 덕분에챕터를 별도로 (사전) 컴파일하여 컴파일 속도를 높이는 방법에 대한 답변입니다.그리고로컬 경로에 계층적 포함을 어떻게 수행합니까?에 대한 답변입니다.제가 점들을 연결하도록 도와주셔서요.
답변2
글을 쓰는 시점에서,기존 답변Debian/TeXLive 2019 (LaTeX2e <2020-02-02> patch level 5), import 6.0
또는 에서는 작동하지 않습니다 Windows/MiKTeX 2.9 (LaTeX2e <2019-10-01> patch level 3), import 6.1
. 둘 다 완전히 업데이트되었습니다.
불과 이틀 전인 2020-04-01 버전이 6.2
출시되었고CTAN에서 사용 가능. 해당 sty
파일을 수동으로 사용해도 문제가 해결되지 않았습니다.
그러던 중 문제가 발생했습니다(@Paul-Calcraft의 예를 빌려서).
\includeonly{discussion/discussion}
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}
즉, 전체 경로가 includeonly
. 그렇지 않으면 warning (pdf backend): no pages of output.
모든 문서 내용이 명령 안에 있으므로 매우 예상치 못한 인사말이 표시됩니다 subincludefrom
.