
Ich habe eine ganz konkrete Frage und hoffe, dass mir jemand von seinen Erfahrungen berichten kann.
Ich habe etwa 17.000 Textzeilen. Ich drucke diesen Text auf etwa 80 doppelseitige Seiten, die ich zerschneide und zu kleinen Büchern falte (hey, das ist ein Hobby!). Das bedeutet, dass der Text in kleinen Kästchen in einem seltsamen Muster über die ganze Seite verteilt sein muss. Genauer gesagt …
Diese Seite wird so ausgeschnitten, dass AB, CD, EF usw. und ihre Rückseiten in der Mitte gefaltet werden, um Seiten zu bilden. Diese gefalteten Rechtecke werden zum Binden ineinander gelegt, sodass der Text von A zur gegenüberliegenden Seite von C nach C zur gegenüberliegenden Seite von E nach E nach F nach ... fließen muss.
Sie verstehen, was ich meine. Hier ist also das Problem:
Mein Plan ist, C (oder vielleicht sed oder awk) zu verwenden, um den LaTeX-Code programmgesteuert zu generieren, der alle PDFs generieren sollte, die ich zum Ausdrucken brauche. Ich muss jedoch das Verhalten von LaTeX irgendwie ändern, wenn der Text über den unteren Rand eines dieser Felder hinausgeht. Das heißt, wenn Text über eine Grenze hinausgeht, wird er normalerweise einfach darunter fortgesetzt. In diesem Fall muss er an einer völlig anderen Stelle und auf einer völlig anderen Seite fortgesetzt werden. Aufgrund der enormen Größe dieses Projekts muss dies wirklich mithilfe eines Pakets oder so etwas geschehen.
Weiß jemand, wie das geht?
Antwort1
Zunächst erstellen Sie das Buch mit einem normalen LaTeX-Ansatz und lassen die Seiten auf die übliche Weise neu formatieren. Sie möchten Ihren Seiten eine geeignete Papiergröße usw. geben. Hier book.tex
wird mit dem unten angegebenen ein 26-seitiges Dokument erstellt book.pdf
, mit einem Brief auf jeder Seite. Wenn ich mittendrin eine zusätzliche Seite einfügen oder eine entfernen muss, überlasse ich das einfach LaTeX.
Da ich wusste, dass das Ergebnis ein kleines Buch sein würde, habe ich in diesem Buch jede Seite 3 x 3 Zoll groß gemacht, obwohl sie für Ihr kleines Buch letztendlich um den Faktor 2 verkleinert wird (obwohl das für den Prozess nicht notwendig ist … ich habe es einfach so gemacht).
\documentclass{article}
\usepackage[paperwidth=3in,paperheight=3in,margin=.5in]{geometry}
\usepackage{graphicx}
\newcommand\makebook[1]{\makebookhelp#1\relax}
\def\makebookhelp#1#2\relax{%
\scalebox{15}{#1}\clearpage%
\ifx\relax#2\else%
\makebookhelp#2\relax\fi%
}
\begin{document}
\centering
\makebook{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\end{document}
Nachdem ich mein Buch nun auf die normale Weise erstellt habe, stelle ich es (in diesem Fall auf Briefpapier) mithilfe dieses MWE in der richtigen Reihenfolge zusammen:
\documentclass{article}
\usepackage[paper=letterpaper,margin=1.25in]{geometry}
\usepackage{graphicx,ifthen,stackengine}
\newcounter{bookpage}
\fboxsep=-\fboxrule\relax
\newcommand\nullpage{\fbox{\rule{0pt}{1.5in}\rule{1.5in}{0pt}}}
\newcommand\showthepage[2]{%
\protect\fbox{\protect\includegraphics[width=1.5in,height=1.5in,page=#1]{#2}}%
}
\parindent 0in
\setstackgap{S}{0pt}
\begin{document}
\Shortstack
{
\showthepage{2}{book}%
\showthepage{3}{book}%
\showthepage{6}{book}%
\showthepage{7}{book}
\showthepage{10}{book}%
\showthepage{11}{book}%
\showthepage{14}{book}%
\showthepage{15}{book}
\showthepage{18}{book}%
\showthepage{19}{book}%
\showthepage{22}{book}%
\showthepage{23}{book}
\showthepage{26}{book}%
\nullpage%
\nullpage%
\nullpage}
\clearpage
\Shortstack
{
\showthepage{8}{book}%
\showthepage{5}{book}%
\showthepage{4}{book}%
\showthepage{1}{book}
\showthepage{16}{book}%
\showthepage{13}{book}%
\showthepage{12}{book}%
\showthepage{9}{book}
\showthepage{24}{book}%
\showthepage{21}{book}%
\showthepage{20}{book}%
\showthepage{17}{book}
\nullpage%
\nullpage%
\nullpage%
\showthepage{25}{book}}
\end{document}
Es wird ein zweiseitiges Dokument erstellt, das aus den 26 Tafeln (1,5 Zoll groß) von besteht book.pdf
und so zusammengesetzt ist, dass sich nach dem Schneiden die Seiten ABCD auf dem ersten Miniblatt, EFGH auf dem zweiten usw. befinden.
Wenn Ihre Bindungsanordnung von der oben gezeigten abweicht (wo Miniblätter vor der Bindung nicht verschachtelt wurden), ändern Sie einfach die Reihenfolge der \showthepage
Aufrufe, um das gewünschte Layout zu erhalten. Nachdem Sie das Layout für ein einzelnes Blatt Papier (das geschnitten wird) eingerichtet haben, habe ich es nicht getan, aber es wäre trivial, einen „Blattversatz“ in die Ausführung von zu implementieren \showthepage
. Auf diese Weise könnte eine Sammlung (in meinem Fall 32) von Aufrufen von \showthepage
in einem einzigen Makro gebündelt werden, und dieses Makro könnte sukzessive mit einem zunehmenden „Blattversatz“ erneut aufgerufen werden, um größere Dokumente nahtlos zu verarbeiten.
Hier sind die beiden Seiten, die aus der zweiten Zusammenstellung resultieren. Beim beidseitigen Drucken passt alles zusammen.
Antwort2
Wenn ich Ihre Frage richtig verstanden habe, interessieren Sie sich für eineDoppelheftlayout.Wenn ja, können Sie dies mit einigen bereits vorhandenen Latex-Paketen erreichen. Hier ist die Lösung mitBroschürePaket:
\documentclass{article}
\usepackage{lipsum}
\usepackage[print]{booklet}
\setpdftargetpages
\begin{document}
\lipsum[1-20]
\end{document}
Beachten Sie, dass die Ausgabe ohne print
Option \usepackage[print]{booklet}
wie ein normales Dokument aussehen würde. Laut Paketdokumentation funktioniert dies auch beim Duplexdruck problemlos (weitere Informationen finden Sie unter dem obigen Link).
Ein weiteres Paket, das Sie interessieren könnte (und das im Wesentlichen das Rückgrat von bildet booklet
), ist2 obenIch glaube, Sie können das gewünschte Ergebnis erzielen, indem Siepdfseitenauch. Wenn Sie suchen 2up
oder two up
auf booklet
dieser Website, können Sie weitere Lösungen für dieses Problem finden.