列出包时使用无空格的双下划线新命令

列出包时使用无空格的双下划线新命令

我知道,类似的问题已经有人问过,而且(大多数情况下)也回答过了。但我在写程序时,__log或者__inti__在框图或文本中遇到了困难。最简单的解决方案已经存在,即\newcommand{\twound}{\rule{2\dunder}{0.4pt}}在文本中定义和使用,效果很好。但是当我使用时listing package,tex 编译器会忽略它。提到的另一个解决方案是使用inline命令,但listing实际上对我来说不起作用。我在项目的类文件中定义了所述命令序列。但

\newcommand\li{%
    \lstinline[basicstyle = \verbfont\raggedright]}

抑制进一步的命令。可能\lstinline未完成。有什么帮助吗?

答案1

如果您希望使用,\lstline那么一种方法是通过literal替换模式。

literal={x}{y}n

替换xy并使其占据n字符的空间。在这里你可以写

literal={__}{\twound}2

__用符号替换\twound并在输出中将其视为两个字符宽度。

示例输出

如果希望双下划线更靠近符号,请将 替换2为。1

\documentclass{article}

\usepackage{listings}

\newlength\dunder
\settowidth\dunder{\_}
\newcommand{\twound}{\rule{2\dunder}{0.4pt}}

\begin{document}

\lstinline[literate={__}{\twound}2]{__inti__}

\end{document}

如果你想在文档中重复使用它,你可能更喜欢写

\lstset{literate={__}{\twound}2}

在序言中,然后使用

\lstinline{__inti__}

在文档正文中。

相关内容