다른 문서에 줄을 조판하고 추가하는 매크로

다른 문서에 줄을 조판하고 추가하는 매크로

나는 긴 문서를 작성하여 여러 장으로 나누는 중입니다. 나는 \includemy 에서 와 같은 것을 사용하고 싶습니다 main.tex. 그리고 각 장의 조판은 특정 장의 를 main.tex조판 할 것입니다. \includeonly내가 아는 가장 가까운 해결책은 입니다 subfile. 사소한 문제(예: )에 대해서는 완전히 만족하지 않습니다 minitoc. 이를 위해 매크로를 코딩하는 방법이 있나요?

답변1

기본 \include\includeonly명령어만 있으면 될 것 같은데, 제가 잘못 이해하고 있는 것 같습니다.

다음 파일을 생성하고 주석 처리된 줄을 main.tex두 번 컴파일하면 \includeonlyLaTeX는 문서 전체를 처리하여 정확한 페이지 번호로 목차를 생성합니다.

그런 다음 해당 줄의 주석 처리를 제거하면 LaTeX는 파일과 해당 명령에 대한 인수(이 경우 )만 \includeonly처리합니다 . 목차에는 이전에 편집한 다른 장의 페이지 번호가 계속 반영됩니다.main\includech1


파일main.tex

\documentclass{book}
\usepackage{lipsum} % for dummy text

%\includeonly{ch1} % Uncomment after first compilation

\begin{document}

\title{Your Book}
\author{Your Name}
\maketitle

\tableofcontents

\include{ch1}
\include{ch2}
\include{ch3}

\end{document}

파일ch1.tex

\chapter{First}
\lipsum

파일ch2.tex

\chapter{Second}
\lipsum

파일ch3.tex

\chapter{Third}
\lipsum

편집: 컴파일 시 명령줄에 포함된 파일을 지정합니다.

또 다른 옵션은 명령줄에 포함할 파일을 정의하는 것입니다. \selection명령줄에서 명령을 정의합니다 .

\documentclass{book}
\usepackage{lipsum} % for dummy text

% Include files specified on the command line; 
% if no files specified, include everything
\ifx\selection\undefined\relax
\else
    \includeonly{\selection}
\fi

\begin{document}

\title{Your Book}
\author{Your Name}
\maketitle

\tableofcontents

\include{ch1}
\include{ch2}
\include{ch3}

\end{document}

그런 다음 다음 명령으로 컴파일하십시오.

pdflatex "\def\selection{ch1} \input main"

다음을 사용하여 이를 자동화할 수 있습니다.쉘 스크립트:

(파일 latex-selection.sh:)

#! /bin/sh
EXCERPT=$1
MAIN=$2
pdflatex "\\def\\selection{$EXCERPT} \\input $MAIN"

만 포함하려면 ch2as를 호출합니다 ./latex-selection.sh ch2 main.

관련 정보