Hallo! Kann sich jmd. erklären, warum das nicht geht? Open in writeLaTeX
% arara: pdflatex: { shell : yes } %shell escape erlauben! \documentclass{article} \usepackage{graphicx} \usepackage{datatool} \usepackage[overwrite=true]{getmap} % Mapliste anlegen ========================= \usepackage{filecontents} \begin{filecontents*}{test.csv} Seehalde 7, Bodman-Ludwigshafen, Deutschland Alte Potsdamer Straße 7, Berlin, Deutschland \end{filecontents*} % ====================================== \begin{document} \DTLsetseparator{,} \DTLloaddb[ noheader, keys={Strasse,Ort,Land} ]{maps}{test.csv} \verb+Das geht nicht :(+ \\ \DTLforeach*{maps}{\Strasse=Strasse,\Ort=Ort, \Land=Land}{ \getmap[file=\Ort]{\Strasse,\Ort,\Land} \texttt{\Strasse, \Ort} \\ \includegraphics[width=7.5cm]{\Ort.png} \\ } \verb+Einzeln geht es+ \getmap[file=bodensee1]{Seehalde 7,Bodman-Ludwigshafen,Deutschland} \includegraphics[width=7.5cm]{bodensee1.png} \\ \getmap[file=berlin1]{Alte Potsdamer Straße 7, 10785 Berlin,Deutschland} \includegraphics[width=7.5cm]{berlin1.png} \end{document} gefragt 04 Jul '14, 21:56 cis |
Wie von @Henri vermutet, ist das ist ein Expansionsproblem. Offenbar braucht Das Prinzip heißt: mit Open in writeLaTeX
\edef\x{% \noexpand\getmap[file=\Ort]{\Strasse,\Ort,\Land}% }\x Wenn man verhindern möchte, dass das Hilfsmakro aus Versehen irgendwas überschreibt (was bei Open in writeLaTeX
\begingroup \edef\x{\endgroup \noexpand\getmap[file=\Ort]{\Strasse,\Ort,\Land}% }\x Da Adressen aber Umlaute und scharfes s enthalten können, muss man mit der vollständigen Expansion etwas aufpassen: Open in writeLaTeX
\documentclass{article} \usepackage[utf8]{inputenc} \begin{document} \edef\x{ß}\show\x \end{document} gibt im log: Open in writeLaTeX
> \x=macro: ->\OT1\ss . l.4 \edef\x{ß}\show\x (mit anderem Font-Encoding ähnlich). Wir können aber mit Open in writeLaTeX
\begingroup \edef\x{\endgroup \noexpand\getmap[file=\expandonce\Ort]{% \expandonce\Strasse,\expandonce\Ort,\expandonce\Land }% }\x Für die Ich habe unten Das komplette Beispiel (bei dem ich die seltsamen Einsätze von Open in writeLaTeX
% arara: pdflatex: { shell : yes } \documentclass{article} \usepackage[utf8]{inputenc} \usepackage{graphicx} \usepackage{datatool} \usepackage[overwrite=true]{getmap} \usepackage{filecontents} \begin{filecontents*}{test.csv} Seehalde 7, Bodman-Ludwigshafen, Deutschland Alte Potsdamer Straße 7, Berlin, Deutschland \end{filecontents*} \begin{document} \DTLsetseparator{,} \DTLloaddb[ noheader, keys={Strasse,Ort,Land} ]{maps}{test.csv} \DTLforeach*{maps}{\Strasse=Strasse,\Ort=Ort, \Land=Land}{% \begingroup \edef\x{\endgroup \noexpand\getmap[file=Karte-\DTLcurrentindex]{% \expandonce\Strasse,\expandonce\Ort,\expandonce\Land }% }\x \texttt{\Strasse, \Ort} \par \includegraphics[width=7.5cm]{Karte-\DTLcurrentindex.png}\par } \end{document} beantwortet 04 Jul '14, 23:35 cgnieder Super! Werde es gleich nachher ausführlich testen.
(04 Jul '14, 23:49)
cis
Das 2. Beispiel ist jetzt glaub wieder ein getmap-Problem. Wenn man hier die Postleitzahl ergänzt, sollte auch das gehen - ich werde mich drum kümmern, die Liste zu erweitern - vll. geht es dann.
(04 Jul '14, 23:51)
cis
@cis Nein, das Problem war das scharfe s, siehe meine überarbeitete Antwort
(05 Jul '14, 00:08)
cgnieder
Ich hab mir übrigens mal den »Spaß« gemacht, dieselbe Expansion nur mit
(05 Jul '14, 15:00)
cgnieder
|
Mit Sicherheit wird
\Strasse,\Ort,\Land
im Argument von\getmap
nicht oder nicht richtig expandiert. Schonmal mit\expandafter
probiert?Ähm, nein :) Wo muß das hin? Im Text wird ja scheints alles richtig, wie man im Bild sehen kann - mhhh...
@cis @Henri mit
\expandafter
wirds hier schon recht mühsam,\edef
ist leichter, siehe meine Antwort