Makro zum Setzen und Hinzufügen einer Zeile zu einem anderen Dokument

Makro zum Setzen und Hinzufügen einer Zeile zu einem anderen Dokument

Ich schreibe ein langes Dokument und teile es in Kapitel auf. Ich möchte \includein meinem etwas wie verwenden main.tex, und dieser Satz jedes Kapitels würde das main.texmit einem \includeonlydes jeweiligen Kapitels setzen. Die mir am nächsten kommende Lösung ist subfile, die mich bei kleineren Problemen (z. B. bei ) nicht ganz zufriedenstellt minitoc. Gibt es eine Möglichkeit, dafür ein Makro zu codieren?

Antwort1

Es scheint, als ob die Grundlagen \includeund \includeonlyBefehle alles sind, was Sie brauchen, aber vielleicht verstehe ich das falsch.

Wenn Sie die folgenden Dateien erstellen und main.texzweimal mit \includeonlyauskommentierter Zeile kompilieren, verarbeitet LaTeX das gesamte Dokument und erstellt das Inhaltsverzeichnis mit genauen Seitenzahlen.

Wenn Sie die \includeonlyZeile dann auskommentieren, verarbeitet LaTeX die mainDatei und \includenur das Argument dieses Befehls (in diesem Fall ch1). Das Inhaltsverzeichnis enthält weiterhin die Seitenzahlen der anderen Kapitel, die Sie zuvor zusammengestellt haben.


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

Dateich1.tex

\chapter{First}
\lipsum

Dateich2.tex

\chapter{Second}
\lipsum

Dateich3.tex

\chapter{Third}
\lipsum

BEARBEITEN: Geben Sie die enthaltenen Dateien während der Kompilierung in der Befehlszeile an

Eine weitere Möglichkeit besteht darin, die einzubindenden Dateien in der Kommandozeile zu definieren. Wir definieren einen Befehl \selectionin der Kommandozeile:

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

Dann kompilieren Sie mit diesem Befehl:

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

Sie können dies automatisieren mit einemShell-Skript:

(Datei latex-selection.sh:)

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

Um nur einzuschließen ch2, rufen Sie als auf ./latex-selection.sh ch2 main.

verwandte Informationen