允许在列表内联命令中的任意位置断字,且无需连字符

允许在列表内联命令中的任意位置断字,且无需连字符

在这里,我使用函数\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}

在此处输入图片描述

相关内容