Pocketmod mit LaTeX erstellen
Momentan bin ich dabei, mit LaTeX ein Pocketmod zu erstellen, einen Papier-Organizer der durch geschicktes Schneiden und Falten einer DIN A4 Seite entsteht: http://repocketmod.com/.
Da die Ausrichtung und Anordung der acht Seiten auf dem Blatt sehr individuell ist, verspricht dies recht interessant zu werden. Hier mein bisheriges Ergebnis:
Das Dokument zur Ausgabe eines 8-Seiten PDFs auf einer Seite:
\documentclass{scrartcl} \usepackage[screen,paperheight=21cm,paperwidth=29.7cm, left=0mm,right=0mm,top=0mm,bottom=0mm]{geometry} \usepackage[]{pdfpages} \begin{document} \includepdf[pages=-,nup=4x2,scale=1,frame=true]% {8seitentext2.pdf} \end{document} |
Ein erstes Beispiel (ohne rotierte Seiten) für den umzuarrangierenden Text:
\documentclass{scrartcl} \usepackage{forloop} \usepackage{graphicx} \pagestyle{empty} \newcounter{ct} \begin{document} \forloop{ct}{1}{\value{ct} < 9}{% \begin{center} \scalebox{80}{\thepage} \end{center} \clearpage } \end{document} |
Der Text mit richtiger Ausrichtung und Anordnung der Seiten:
\documentclass{scrartcl} \usepackage[]{graphicx} \pagestyle{empty} \newcounter{ct} \begin{document} \begin{center} \scalebox{40}{6} \end{center} \clearpage \begin{center} \scalebox{40}{7} \end{center} \clearpage \begin{center} \scalebox{40}{8} \end{center} \clearpage \begin{center} \scalebox{40}{1} \end{center} \clearpage \begin{center} \scalebox{40}{\rotatebox{180}{5}} \end{center} \clearpage \begin{center} \scalebox{40}{\rotatebox{180}{4}} \end{center} \clearpage \begin{center} \scalebox{40}{\rotatebox{180}{3}} \end{center} \clearpage \begin{center} \scalebox{40}{\rotatebox{180}{2}} \end{center} \clearpage \end{document} |
Da mich meine LaTeX-Kenntnisse verlassen, hab ich mal in de.comp.text.tex gepostet.
Nachtrag: Der Hinweis aus d.c.t.t auf pdfjamund pdfjam-pocketmod
,ein in pdfjam verfügbares Skript hat mich an pdftk erinnert, das auch unter Windows läuft. Hier die Lösung:
% Zerlegen der PDF Datei pdftk 8seitentext.pdf burst % Rotieren der vier Seiten um 180 Grad pdftk pg_0005.pdf cat 1-endS output out5.pdf pdftk pg_0004.pdf cat 1-endS output out4.pdf pdftk pg_0003.pdf cat 1-endS output out3.pdf pdftk pg_0002.pdf cat 1-endS output out2.pdf % Mergen in der richtigen Reihenfolge pdftk pg_0006.pdf pg_0007.pdf pg_0008.pdf pg_0001.pdf out5.pdf ou t4.pdf out3.pdf out2.pdf cat output fertig.pdf
Dieses Dokument wird dann über das pdfpages Paket zu 8 auf 1 Seite eingebunden
\documentclass{scrartcl} \usepackage[screen,paperheight=21cm,paperwidth=29.7cm, left=0mm,right=0mm,top=0mm,bottom=0mm]{geometry} \usepackage[]{pdfpages} \begin{document} \includepdf[pages=-,nup=4x2,scale=1,frame=true]{fertig.pdf} \end{document} |
Eine aufwändigere, aber elegantere Lösung, die innerhalb eines LaTeX-Laufs erledigt werden kann, ist die folgende. Sie nutzt das pgfpages
Paket von Till Tantau, das in den Ausgabeprozess der einzelnen Seiten eingreift:
\documentclass[21pt]{scrartcl} \usepackage[]{forloop} \usepackage[]{blindtext} \setlength{\parindent}{0pt} \usepackage[]{lmodern} \newcounter{ct} \usepackage{pgfpages} \edef\pgfpageoptionheight{\the\paperwidth} % landscaped by default \edef\pgfpageoptionwidth{\the\paperheight} \def\pgfpageoptionborder{0pt} \def\pgfpageoptionfirstshipout{1} \pgfpagesphysicalpageoptions {% logical pages=8,% physical height=\pgfpageoptionheight,% physical width=\pgfpageoptionwidth,% current logical shipout=\pgfpageoptionfirstshipout% } \pgfpageslogicalpageoptions{1} {% border shrink=\pgfpageoptionborder,% resized width=.25\pgfphysicalwidth,% border code=\pgfusepath{stroke},% resized height=0.5\pgfphysicalheight,% center=\pgfpoint{.875\pgfphysicalwidth}{.75\pgfphysicalheight}% }% \pgfpageslogicalpageoptions{2} {% border shrink=\pgfpageoptionborder,% resized width=.25\pgfphysicalwidth,% border code=\pgfusepath{stroke},% rotation=180,% resized height=0.5\pgfphysicalheight,% center=\pgfpoint{.875\pgfphysicalwidth}{.25\pgfphysicalheight}% }% \pgfpageslogicalpageoptions{3} {% border shrink=\pgfpageoptionborder,% resized width=.25\pgfphysicalwidth,% border code=\pgfusepath{stroke},% rotation=180,% resized height=0.5\pgfphysicalheight,% center=\pgfpoint{.625\pgfphysicalwidth}{.25\pgfphysicalheight}% }% \pgfpageslogicalpageoptions{4} {% border shrink=\pgfpageoptionborder,% resized width=.25\pgfphysicalwidth,% border code=\pgfusepath{stroke},% rotation=180,% resized height=0.5\pgfphysicalheight,% center=\pgfpoint{.375\pgfphysicalwidth}{.25\pgfphysicalheight}% }% \pgfpageslogicalpageoptions{5} {% border shrink=\pgfpageoptionborder,% resized width=.25\pgfphysicalwidth,% border code=\pgfusepath{stroke},% rotation=180,% resized height=0.5\pgfphysicalheight,% center=\pgfpoint{.125\pgfphysicalwidth}{.25\pgfphysicalheight}% }% \pgfpageslogicalpageoptions{6} {% border shrink=\pgfpageoptionborder,% resized width=.25\pgfphysicalwidth,% border code=\pgfusepath{stroke},% resized height=0.5\pgfphysicalheight,% center=\pgfpoint{.125\pgfphysicalwidth}{.75\pgfphysicalheight}% }% \pgfpageslogicalpageoptions{7} {% border shrink=\pgfpageoptionborder,% resized width=.25\pgfphysicalwidth,% border code=\pgfusepath{stroke},% resized height=0.5\pgfphysicalheight,% center=\pgfpoint{.375\pgfphysicalwidth}{.75\pgfphysicalheight}% }% \pgfpageslogicalpageoptions{8} {% border shrink=\pgfpageoptionborder,% resized width=.25\pgfphysicalwidth,% border code=\pgfusepath{stroke},% resized height=0.5\pgfphysicalheight,% center=\pgfpoint{.625\pgfphysicalwidth}{.75\pgfphysicalheight}% }% \begin{document} \forloop{ct}{1}{\value{ct} < 9}{% \blindtext \clearpage } \end{document} |
Nachtrag 2: Meine pgfpages-Version weist einen Fehler beim Rotieren von Seiten auf, der durch folgenden Patch der pgfpages.sty behoben werden kann.
% alt, geht nicht %\expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname\relax% % \pgfscope% %\else% % \pgflowlevel{\pgftransformrotate{\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname}}% %\fi% \pgfscope% geht \expandafter\ifx\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname\relax% \else% \pgflowlevel{\pgftransformrotate{\csname pgfpages@p@\the\pgf@cpn @rotation\endcsname}}% \fi%