在这里,我使用函数\txtbrut
以打字机字体编写某些内容,例如文件名或 Python、Matlab 等中的函数。我使用listings
和来为代码着色,因为它在剪切名称方面比做得更好\texttt
。但它并不是 100% 可靠的,我在这里不需要与普通文本相同的约定。
我怎样才能修改我的函数\txtbrut
以便它允许在任何地方中断,而不需要连字符?
\documentclass{report}
\usepackage{fontspec}
\usepackage[hmargin=8cm,showframe]{geometry}
\usepackage{listings}
\newcommand*{\txtbrut}{\lstinline[basicstyle=\ttfamily]}%[
\begin{document}
\txtbrut{Iletaitunefoisunejeuneetjolieprincessequiaimaiteclaterlecranedesesennemis.txt}
\end{document}
答案1
在这里,我将 OP\txtbrut
与替代方案进行比较\alttxtbrut
。据我回忆,该\alttxtbrut
代码改编自 egreg 的答案之一\url
,作为宏的替代方案(也许有人可以提供链接)。即便如此,仍可能需要将段落放在 a 中sloppypar
才能获得正确的边距。
现在,如果需要非字母数字字符(我不确定他/她提到的语言的语法要求),则需要进行调整。
\documentclass{report}
%\usepackage{fontspec}
\usepackage[hmargin=8cm,showframe]{geometry}
\usepackage{listings}
\newcommand*{\txtbrut}{\lstinline[basicstyle=\ttfamily]}%
\newcommand\alttxtbrut[1]{\tbhelp#1\relax\relax\relax}
\def\tbhelp#1#2\relax{%
{\texttt{#1}}\penalty0\ifx\relax#2\else\tbhelp#2\relax\fi}
\begin{document}
\txtbrut{Iletaitunefoisunejeuneetjolieprincessequiaimaiteclaterlecranedesesennemis.txt}
\begin{sloppypar}% <--MAY BE NEEDED
\alttxtbrut{Iletaitunefoisunejeuneetjolieprincessequiaimaiteclaterlecranedesesennemis.txt}
This is the text that follows.
\end{sloppypar}
\end{document}