如何定义自定义逐字命令?

如何定义自定义逐字命令?

我不太确定如何描述这一点,但我想创建一个自定义命令,将其输入视为逐字逐句并允许对输出进行一些控制。

用伪代码来说,我想要:

\newcommand{\code}[1]{\verb{!#1!}}
\newcommand{\samp}[1]{{\normalfont\textsl{\verb!#1!}}}

(但这显然不起作用)

newverbs让我接近我需要的,但是例如

\RequirePackage{newverbs}
\newverbcommand{\code}{}{}

需要\code!~!而不是\code{~}

答案1

我准备了一些东西listings\lstset包。您可以通过自定义和命令来调整外观\lstdefinestyle。有关更多信息,请参阅文档。

\documentclass{standalone}
\usepackage{xcolor}
\usepackage{listings}
\lstset{
    basicstyle=\color{red}\itshape
}
\lstdefinestyle{inline}{
    columns=fullflexible,
    breaklines=false
}
\newcommand{\code}[1]{\lstinline[style=inline]!#1!}
\begin{document}
Here is some \code{verbatim} text.
\end{document}

输出将会像这样

使用 lstlisting 的逐字文本

答案2

这将使参数的内联转换为 catcode 12 个标记,但空格和百分号 (%) 除外,它仍将其视为忽略行中其余字符。因此,它将换行。但它不会在参数中遵守换行符。但作为内联命令,您不会希望它这样做。

正如约瑟夫赖特 (Joseph Wright) 指出的那样,不平衡的支架也会损坏此版本。

\documentclass{article}
\usepackage[T1]{fontenc}
\def\fauxverb#1{\textsl{\detokenize{#1}}}
\begin{document}
This is \fauxverb{\verbatim} text.
\end{document}

在此处输入图片描述

相关内容