Знак процента и пробел в имени файла изображения

Знак процента и пробел в имени файла изображения

В моем приложении я (с помощью латексной генерации) создаю таблицу, заполненную цифрами. Теперь, поскольку эти цифры могут иметь сложные названия, мне нужно убедиться, что генератор делает каждыйюридическое название windowsзаконный путь к файлу Latex.

Я начал со знака процента, поскольку я точно знаю, что он есть в некоторых файлах. (Это остаток от имени, содержащего знак «/», который преобразуется другой частью в «%2F»).

Теперь это сломало довольно много вещей, так как я, очевидно, часто использую % для читаемости кода, файл latex прямо сейчас:

\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}

Теперь (как и следовало ожидать) проблема в том, что знак процента больше не считается знаком "продолжение строки здесь", а является простым символом и печатается как таковой. Я попробовал включить внутрь \catcodeячейки таблицы:

\begin{tabu}{c}
\catcode`\%=12
\includegraphics{{"testing %"}}
\catcode`\%=14
\\%
\includegraphics{test2}
\end{tabu}

Но это ломает компилятор latex с "файл закончил сканирование с использованием \tabu@collectbody". Так как же заставить это работать?

решение1

Вы можете создать команду, которая расширяется до безопасного процента

\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}

Связанный контент