PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : for-Schleife



damont
14-04-2005, 10:06
Servus zusammen!

Ich moechte in LaTeX gerne eine Art for-Schleife realisieren, die mir ein 100-Seiten-Dokument zerlegt (for i = 1 to 100 do . . .). Jede Seite hat vier Folien, die ich einzeln auf jeweils einer Seite haben moechte. Hier der Code um eine (hier die erste) Seite zu zerlegen. Statt pages=1 kann man dann vielleicht eine Art Variable pages=i schreiben?

Gruss, Damont

\documentclass[a4paper,landscape]{article}
\usepackage[top=0cm,bottom=0cm,left=0cm,right=0cm]{geometry}
\usepackage{pdfpages}

\begin{document}
\includepdf[trim=0cm 8.5cm 13cm 0cm, clip, scale=1.7, pages=1]{folien-20040426}
\includepdf[trim=13cm 8.5cm 0cm 0cm, clip, scale=1.7, pages=1]{folien-20040426}
\includepdf[trim=0cm 0cm 13cm 9cm, clip, scale=1.7, pages=1]{folien-20040426}
\includepdf[trim=13cm 0cm 0cm 9cm, clip, scale=1.7, pages=1]{folien-20040426}
\end{document}

daswaldhorn
14-04-2005, 10:27
Dieses Problem ist doch bestimmt was für einen Serienbrief, oder?

Carsten

damont
14-04-2005, 10:44
Nein, Serienbrief kann ich mir in diesem Kontext schlecht vorstellen. Eher so etwas wie (Pseudocode)

\documentclass[a4paper,landscape]{article}
\usepackage[top=0cm,bottom=0cm,left=0cm,right=0cm]{geometry}
\usepackage{pdfpages}

\newcounter{i=1}

\begin{document}
\while{i<=100}{
\includepdf[trim=0cm 8.5cm 13cm 0cm, clip, scale=1.7, pages=i]{folien-20040426}
\includepdf[trim=13cm 8.5cm 0cm 0cm, clip, scale=1.7, pages=i]{folien-20040426}
\includepdf[trim=0cm 0cm 13cm 9cm, clip, scale=1.7, pages=i]{folien-20040426}
\includepdf[trim=13cm 0cm 0cm 9cm, clip, scale=1.7, pages=i]{folien-20040426}
\addtocounter{i}{1}
}
\end{document}

pospiech
14-04-2005, 10:57
Du kannst selbsverständlich FOR Schleifen in LaTeX verwenden, da LaTeX ja nichts andres als eine Makrosprache für TeX ist, und TeX auch Elemente einer Programmiersprache kennt.

Allerdings ist TeX was Programmieren angeht sehr gewöhnungsbedürftig. Es gibt z.B. keine Variablen, sondern nur Code, Zähler und Längen. Auswendig weiß ich den Code für FOR Schleifen nicht, aber du köntest dich mit der entsprechenden Doku zu TeX einlesen:

http://www.matthiaspospiech.de/latex/pakete/#tex

Matthias

damont
14-04-2005, 12:00
Danke zusammen. Auf die Schnelle habe ich dann doch ein kleines Java-Programm geschrieben:

import java.io.*;

public class it {

public static void main(String[] args) {

try {
Writer out = new BufferedWriter(new OutputStreamWriter(new
FileOutputStream("100f.tex")));

out.write("\\documentclass[a4paper,landscape]{article}\n");
out.write("\\usepackage[top=0cm,bottom=0cm,left=0cm,right=0cm]{geometry}\n");
out.write("\\usepackage{pdfpages}\n");
out.write("\\begin{document}\n");

for (int i = 1; i <= 100; i++) {
out.write("\\includepdf[trim=0cm 8.5cm 13cm 0cm, clip, scale=1.7, pages=" + i +
"]{folien-20040426}\n");
out.write("\\includepdf[trim=13cm 8.5cm 0cm 0cm, clip, scale=1.7, pages=" + i +
"]{folien-20040426}\n");
out.write("\\includepdf[trim=0cm 0cm 13cm 9cm, clip, scale=1.7, pages=" + i +
"]{folien-20040426}\n");
out.write("\\includepdf[trim=13cm 0cm 0cm 9cm, clip, scale=1.7, pages=" + i +
"]{folien-20040426}\n");
}

out.write("\\end{document}\n");
out.close();
} catch (Exception e) {}
}
}

daswaldhorn
14-04-2005, 13:00
na also, selbst ist der Mann... ;)

Carsten