macro para composição tipográfica e adição de uma linha a outro documento

macro para composição tipográfica e adição de uma linha a outro documento

Estou escrevendo um documento extenso e dividindo-o em capítulos. Eu gostaria de usar algo como \includeno meu main.tex, e que a composição de cada capítulo seria a tipografia main.texdo \includeonlycapítulo específico. A solução mais próxima que conheço é subfile, o que não me satisfaz inteiramente para questões menores (por exemplo, com minitoc). Existe alguma maneira de codificar uma macro para isso?

Responder1

Parece que o básico \includee \includeonlyos comandos são tudo que você precisa, mas talvez eu tenha entendido mal.

Se você criar os arquivos a seguir e compilar main.texduas vezes com a \includeonlylinha comentada, o LaTeX processará todo o documento e produzirá o índice com números de página precisos.

Se você descomentar a \includeonlylinha, o LaTeX processará o mainarquivo e \includeapenas o argumento desse comando (neste caso ch1). O índice ainda refletirá os números das páginas dos outros capítulos que você compilou anteriormente.


Arquivomain.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}

Arquivoch1.tex

\chapter{First}
\lipsum

Arquivoch2.tex

\chapter{Second}
\lipsum

Arquivoch3.tex

\chapter{Third}
\lipsum

EDIT: Especifique os arquivos incluídos na linha de comando no momento da compilação

Outra opção é definir os arquivos a serem incluídos na linha de comando. Definimos um comando, \selectionna linha de comando:

\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}

Em seguida, compile com este comando:

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

Você poderia automatizar isso com umscript de shell:

(arquivo latex-selection.sh:)

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

Para incluir apenas ch2, invoque as ./latex-selection.sh ch2 main.

informação relacionada