In meiner Anwendung erstelle ich (mittels einer Latex-Generierung) eine Tabelle mit Zahlen. Da diese Zahlen schwierige Namen haben können, muss ich sicherstellen, dass der Generator jedelegaler Windows-Nameein gültiger Latex-Dateipfad.
Ich habe mit dem Prozentzeichen begonnen, da ich sicher weiß, dass es in einigen der Dateien vorkommt. (Es ist ein Überbleibsel eines Namens, der ein "/"-Zeichen enthielt, das durch einen anderen Teil in "%2F" umgewandelt wurde.)
Das hat einiges kaputt gemacht, da ich offensichtlich häufig % verwende, um die Lesbarkeit des Codes zu verbessern. Die aktuelle Latex-Datei:
\documentclass{article}
\usepackage[a4paper, portrait]{geometry}
\usepackage{graphicx}
\usepackage{tabu}
\catcode`\%=12
\begin{document}
\begin{table}
\centering
\begin{tabu}{c}
\includegraphics{{"testing %"}}
\\%
\includegraphics{test2}
\end{tabu}
\end{table}
\end{document}
Nun besteht das Problem (wie zu erwarten) darin, dass das Prozentzeichen nicht mehr als „Hier Zeile fortsetzen“-Zeichen, sondern als einfaches Zeichen betrachtet und als solches gedruckt wird. Ich habe versucht, es \catcode
in die Tabellenzelle einzuschließen:
\begin{tabu}{c}
\catcode`\%=12
\includegraphics{{"testing %"}}
\catcode`\%=14
\\%
\includegraphics{test2}
\end{tabu}
Dies führt jedoch dazu, dass der Latex-Compiler mit „Datei beendete Scannung unter Verwendung von \tabu@collectbody“ abstürzt. Wie kann man das also zum Laufen bringen?
Antwort1
Sie können einen Befehl erstellen, der auf einen sicheren Prozentsatz erweitert
\documentclass{article}
\usepackage[a4paper, portrait]{geometry}
\usepackage{graphicx}
\usepackage{tabu}
\catcode`\%=12
\newcommand\pcnt{%}
\catcode`\%=14
\begin{document}
\begin{table}
\centering
\begin{tabu}{c}
\includegraphics{"testing \pcnt"}\\% this is a comment
\includegraphics{test2}
\end{tabu}
\end{table}
\end{document}