从 Python 脚本导入的 \textit{} 中的文件名中带有下划线

从 Python 脚本导入的 \textit{} 中的文件名中带有下划线

我正在尝试从 Python 脚本导入结果文件的名称并将其显示在报告中。在 LaTeX 模板中,我有一堆定义为的变量${variablename}。Python 脚本将其更改为实际变量值。我只对一个变量有问题,即文件名。

只要文件名不包含任何下划线,代码就可以正常工作。我尝试过放弃命令\texit{},使用\StrSubstitute(带\\_\bs\textunderscore)和数学模式。唯一有点效果的是数学模式,但我希望它显示为文本。使用数学模式时,文件名太长,以至于超出了页面范围。带\textit{}和不带下划线会分割文件名,就像我想要的那样。

我很茫然。

\documentclass[a4paper,11pt,titlepage]{article}
\usepackage[utf8]{inputenc}

\usepackage{booktabs} % professional tables
\usepackage{gensymb} % \degree and \celsius, try '$ texdoc gensymb'
\usepackage{amsmath, amsfonts, amssymb} % mathematical symbols
\usepackage{float, longtable, graphicx}

% end of preamble, start of document

\begin{document}

 -Code irrelevant to problem-

\section{Results}\label{sec:results}
The test results are taken from the file named \textit{${RESFILEname}}

-More irrelevant code-

\end{document}

答案1

对于文件名来说,最可靠的解决方案可能是添加

\usepackage{url}

然后使用包\path{my_file_name}命令url处理特殊符号,并允许换行。您可以自定义使用的字体,请参阅文件中的注释。

答案2

您可以使用 David Carlisle 所述的包url,但如果您希望文件名以斜体打印,我建议使用自定义字体定义自定义命令。

也就是说,将以下几行添加到您的文档中:

\usepackage{url}
\def\UrlFont{\it}                         % italic shape for the used font
\DeclareUrlCommand\itfile{\urlstyle{it}}  % declare new command \itfile

然后替换\textit{${RESFILEname}}\itfile{${RESFILEname}},这样就有

\documentclass[a4paper,11pt,titlepage]{article}
\usepackage[utf8]{inputenc}

\usepackage{booktabs} % professional tables
\usepackage{gensymb} % \degree and \celsius, try '$ texdoc gensymb'
\usepackage{amsmath, amsfonts, amssymb} % mathematical symbols
\usepackage{float, longtable, graphicx}

\usepackage{url}
\def\UrlFont{\it}                         % italic shape for the used font
\DeclareUrlCommand\itfile{\urlstyle{it}}  % declare new command \itfile

% end of preamble, start of document

\begin{document}

 -Code irrelevant to problem-

\section{Results}\label{sec:results}
The test results are taken from the file named \itfile{${RESFILEname}}

-More irrelevant code-

\end{document} 

相关内容