Ich hab' mal wieder ein Problem. Ich soll eine Übersicht über Personen machen, samt Bild, Vorname, Nachname und ein wenig Text. Da liegt es doch nahe, ein Makro zu schreiben, dem diese Variablen übergeben werden und dann dementsprechend ausgegeben werden. Alles kein Problem, funktioniert auch wunderbar. Das es aber recht viele Personen sind, und ich die Angabe des Bilds eigentlich redundante Information ist, da der Dateiname des Bilds immer "Nachname_Vorname.jpg" ist, habe ich mir gedacht, dass ich mir diesen Parameter eigentlich sparen könnte. Den bastle ich mir einfach im Makro zusammen. Doch irgendwie klappt das nicht so, wie ich es gerne hätte. Erschwerend kommt hinzu, dass die Namen Umlaute und ß enthalten, was bei Verwendung von UTF-8 nicht so toll ist. Die Dateinamen enthalten daher keine Umlaute, sondern z.B. "ae" statt "ä". Das habe ich mittels xstring gelöst.
Doch hier mal mein bisheriger Code:
\documentclass[a4paper]{scrreprt} \usepackage{graphicx} \usepackage{xstring} \newcommand{\verzeichnis}{test} \makeatletter \newcommand{\replacesonder}[1]{ \StrSubstitute{#1}{Ü}{Ue}[\@neu] \StrSubstitute{\@neu}{Ö}{Oe}[\@neu] \StrSubstitute{\@neu}{Ä}{Ae}[\@neu] \StrSubstitute{\@neu}{ß}{ss}[\@neu] \StrSubstitute{\@neu}{ü}{ue}[\@neu] \StrSubstitute{\@neu}{ö}{oe}[\@neu] \StrSubstitute{\@neu}{ä}{ae} } \makeatother \newcommand{\demo}[2] { \makeatletter \def\@bilddatei{bilder/\verzeichnis/\lowercase{#2}\_\lowercase{#1}.jpg} \IfFileExists{\csname @bilddatei\endcsname}{ \includegraphics[width=\textwidth]{\csname @bilddatei\endcsname} }{ \PackageWarning{\@bilddatei wurde nicht gefunden} } \makeatother } \begin{document} % Das funktioniert % \includegraphics[width=\textwidth]{bilder/\verzeichnis/mustermann_max.jpg} % Das nicht \demo{Max}{Mustehrmann} \end{document}
Hat jemand eine Lösung für mich, wie ich das umsetzen kann?