Automatisches Einfügen von Bildern über eine Schleife

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


iPat167
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Do 3. Mai 2018, 14:17

Automatisches Einfügen von Bildern über eine Schleife

Beitrag von iPat167 »

Hallo,

ich habe folgendes Problem:
Für einen automatischen Report möchte ich alle Bilder (ca. 20-30) aus dem Ordner der Tex-Datei über eine Schleife einfügen. Über \whiledo funktioniert das auch wunderbar.
Jetzt habe ich allerdings das Problem, dass mir mein Postprocessing Programm (FEM Berechnungssoftware) die Bilder in folgender Dateibennenung abspeichert:

page_1_Seitenbezeichnung.png
page_2_Seitenbezeichnung.png
page_3_Seitenbezeichnung.png
...

Leider funktioniert mein Code bisher nur für folgende Konvention:

page-1.png
page-2.png
page-3.png
...

Probleme bereiten mir die "_" im Dateinamen sowie das ich die Seitenbezeichnung gerne als Kapitelüberschrift und Bildunterschrift verwenden möchte.
\documentclass[12pt]{scrartcl}
\usepackage{ifthen}
\usepackage{graphicx}
\newcounter{ct}

\newcommand{\bild}[1]{%
	\section{#1}
	\begin{figure}[h]
		\centering
		\includegraphics[width=1\textwidth]{#1}
		\caption{#1}
		\label{abb:#1}
	\end{figure}
	}

\begin{document}

\setcounter{ct}{0}											% counter auf 0 setzen

\whiledo{\value{ct} < 9999}
		{\stepcounter{ct}
			\IfFileExists{page-\arabic{ct}}{
			\bild{page-\arabic{ct}}
		}{}%
		}

\end{document}

Gast

Beitrag von Gast »

Der Unterstrich ist normalerweise nur im Mathemodus erlaubt und dient dann zur Kennzeichnung eines Index. Mit \string kann man jedoch ein normales Zeichen daraus machen:
\begin{filecontents*}{page_1.pdf}
%PDF-1.4
%%%%%
1 0  obj
<<
/Pages 2 0 R
/Type /Catalog
>>
 endobj
2 0  obj
<<
/Kids [3 0 R]
/Type /Pages
/Count 1
>>
 endobj
3 0  obj
<<
/Rotate 0
/Parent 2 0 R
/MediaBox [0 0 72 72]
 /Resources
<<
/ExtGState 4 0 R
/Font 5 0 R
/ProcSet [/PDF /Text]
>>
/pdftk_PageNum 1
/Type /Page
/Contents 6 0 R
>>
 endobj
4 0  obj
<<
/R7 7 0 R
>>
 endobj
5 0  obj
<<
/R8 8 0 R
>>
 endobj
6 0  obj
<<
/Length 135
>>
stream
q 0.1 0 0 0.1 0 0 cm
/R7 gs
10 w
0 G
0 0 m
720 720 l
0 720 l
720 0 l
S
0 g
q
10 0 0 10 0 0 cm BT
/R8 72 Tf
1 0 0 1 0 0 Tm
(A)Tj
ET
Q
Q

 endstream
 endobj
7 0  obj
<<
/Type /ExtGState
/OPM 1
>>
 endobj
8 0  obj
<<
/BaseFont /Times-Roman
/LastChar 65
/Subtype /Type1
/FontDescriptor 9 0 R
/Widths [722]
/Type /Font
/Encoding /WinAnsiEncoding
/FirstChar 65
>>
 endobj
9 0  obj
<<
/FontName /Times-Roman
/StemV 105
/CharSet (/A)
/Ascent 674
/Flags 65568
/Descent 0
/ItalicAngle 0
/MissingWidth 250
/FontBBox [0 0 706 674]
/Type /FontDescriptor
/CapHeight 674
>>
 endobj
10 0  obj
<<
/Producer (GPL Ghostscript 9.06)
/ModDate (D:20140426202438+01'00')
/CreationDate (D:20140426202438+01'00')
>>
endobj xref
0 11
0000000000 65535  f
0000000015 00000  n
0000000066 00000  n
0000000125 00000  n
0000000308 00000  n
0000000341 00000  n
0000000374 00000  n
0000000563 00000  n
0000000610 00000  n
0000000774 00000  n
0000000975 00000  n
trailer

<<
/Info 10 0 R
/Root 1 0 R
/Size 11
/ID [<4ca1370d594acd28b9d948a5e8b925c3> <4ca1370d594acd28b9d948a5e8b925c3>]
>>
startxref
1106
%%EOF
\end{filecontents*}
\documentclass[12pt]{scrartcl}
\usepackage{ifthen}
\usepackage{graphicx}
\newcounter{ct}

\newcommand{\bild}[1]{%
   \section{#1}
   \begin{figure}[h]
      \centering
      \includegraphics[width=1\textwidth]{#1}
      \caption{#1}
      \label{abb:#1}
   \end{figure}
   }

\begin{document}

\setcounter{ct}{0}                                 % counter auf 0 setzen

\whiledo{\value{ct} < 9999}
      {\stepcounter{ct}
         \IfFileExists{page\string_\arabic{ct}.pdf}{
         \bild{page\string_\arabic{ct}}
      }{}%
      }

\end{document}
Der Rest ist dagegen nicht so einfach, weil TeX keine Verzeichnisbefehle hat, man also nicht feststellen kann, wie die Datei page_Nr_* weiter heißt.

Siehe auch: https://texwelt.de/wissen/fragen/9344/w ... lesen/9404

iPat167
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Do 3. Mai 2018, 14:17

Beitrag von iPat167 »

Danke für den \string Befehl. Das funktioniert einwandfrei.

Das mit der fehlenden Unterstützung für Verzeichnisstruktur in LaTeX ist ärgerlich. Zur Not müsste ich den Umweg über ein "tcl-script" für einen TeX-Export im Postprocessor (HyperWorks) gehen, was allerdings sehr kompliziert wäre...

Vielleicht hat ja noch jemand eine andere Idee :)

Antworten