图像文件名中的百分号和空格

图像文件名中的百分号和空格

在我的应用程序中,我(通过 latex 生成)创建了一个充满数字的表格。现在,由于这些数字可能具有难以命名的名称,因此我需要确保生成器使每个合法窗口名称合法的乳胶文件路径。

我从百分号开始,因为我确信它存在于某些文件中。(它是名称中包含“/”符号的残留部分,该符号被另一部分转换为“%2F”)。

现在这破坏了不少东西,因为我显然大量使用%来提高代码的可读性,现在是乳胶文件:

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

相关内容