如何创建一个类似于\verb的新LaTeX命令?

3
我现在已经使用LaTeX一段时间了,但从未真正动手声明过一个新命令,因为我尽量避免这样做。
然而,在我的文档中经常需要添加等宽文本,并使用\verb命令,这是可以的,但是verb字体大小比普通文本字体要大。所以,我需要更改字体大小,并撤消类似于\small{}\verb#My monospace code#\normalsize{}的操作。这不太方便,容易出错。
有更好的方法吗? 我可以为此定义一个新命令吗? 如何实现?
5个回答

3

为什么不使用\texttt{}命令来获得等宽字体的文本?

我不确定为什么\verb命令会给你比正常文字更大的文本(对我来说,\verb与普通文本完全相同,\texttt{}也是如此)。但是,如果您真的想要创建一个新命令来获得更小的等宽字体文本,您可以尝试在头文件中定义一个命令,如下所示:

\newcommand{\smalltt}[1]{{\small\texttt{#1}}}

其中[1]表示该命令需要一个参数(要变小和等宽的文本)。然后,当然您将使用它作为\smalltt{my smaller monospaced text.}


1
将以下代码放入由您的文档包含的 .sty 文件中: \renewcommand{\verbatim@font}{\ttfamily\small}

1

正如Noah所说,\verb文本和正常输出之间的大小不应该有差异。 建议发布一个完整的小例子,例如:

\documentclass{article}
\begin{document}
文本和 \verb|verbatim % text|.
\end{document}

如果您想挑选一些文本以保留格式并进行处理,则需要注意字符分类码的问题。 我建议您查看fancyvrb或listings软件包。


1

定义新的命令,使其像verbatim命令一样运行实际上是相当困难的。LaTeX verbatim包含了一些有用的内容。

如果您正在使用times包,则计算机现代verbatim字体与PostScript times字体不兼容。为了获得更适合的verbatim(打字机)字体,请尝试

\renewcommand{\ttdefault}{aett}

-1

让我举几个新命令的例子:

\newcommand{\zope}{Zope}

现在,无论我在Latex文本中的哪里给出\zope,它都会被替换为上面指定的文本。这样,如果我需要进行全局更改,我就可以做到。
\newcommand{\bi}{\begin{itemize}}
\newcommand{\ei}{\end{itemize}}

通过上述两个命令的帮助,现在我可以将我的列表写成:

\bi
\item 1st item
\item 2nd item 
\item and so on...
\ei

这说明了如何通过newcommand命令缩短某些命令。

现在让我们考虑一个带参数的newcommand。

\newcommand{\filepath}[1]{\verb!#1!}

要使用这个命令,我会写一些类似于 \filepath{abc.xml} 的内容,这将在处理该命令时被替换为 \verb!abc.xml!

另一个例子:

\newcommand{\ida}[1]{\textcolor{blue}{#1}}

通过这个帮助,\ida{myVariable} 将被替换为 \textcolor{blue}{myVariable} 我希望这个小教程能够有所帮助。

不错的例子,但是关键的是带 \verb 的那个不起作用。 - Will Robertson
1
让我修改一下,不能像\verb所期望的那样转义输入中的特殊字符是行不通的。 - Will Robertson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接