更改 verbatim 环境的字体,但不更改 \verb

更改 verbatim 环境的字体,但不更改 \verb

我在文档中同时使用了\begin{verbatim} ... \end{verbatim}\verb.something.。我希望的内容\begin{verbatim} ... \end{verbatim}以较小的字体显示。我发现,这正是我想要的。在该答案中,可以通过以下命令自定义逐字字体:

\makeatletter
\newcommand{\verbatimfont}[1]{\renewcommand{\verbatim@font}{\ttfamily#1}}
\makeatother

但我希望它可以自动应用于每个逐字环境。

然后我尝试转移回答了我的问题,但是这也使得内容变\verb.someting.小,这不是我想要的。

我还尝试定义一个像这样的自定义逐字环境:

\newenvironment{smallverbatim}{
\verbatimfont{\footnotesize}\noindent\ignorespaces\begin{verbatim}}%
{\par\noindent%
\ignorespacesafterend\end{verbatim}}

但这给了我:

! LaTeX Error: \begin{smallverbatim} on input line 526 ended by \end{itemize}.

有什么办法可以做我想做的事吗?

我需要的是某种用 替换每个 的宏\begin{verbatim}\verbatimfont{\footnotesize}\begin{verbatim}所以这应该不是不可能的,但我不知道如何去做。

答案1

LaTeXsverbatim环境不能在 中使用,因为它在源中\newenvironment查找。\end{verbatim}

但是有许多软件包具有改进的逐字功能。verbatim这里使用其中一个()。除其他外,它使您能够定义自己的逐字环境。

以下是一个例子:

\documentclass{article}
\usepackage{lipsum} % just for the example
\usepackage{verbatim}

\newenvironment{smallverbatim}%
{\small\verbatim}%
{\endverbatim}

\begin{document}

Test: \verb|something| \lipsum*[3]
\begin{smallverbatim}
1   double x, y;
2   double z, w;
3   main();
4   return 0;
\end{smallverbatim}
Test: \verb|something| \lipsum[3]

\begin{smallverbatim}
1   double x, y;
2   double z, w;
3   main();
4   return 0;
\end{smallverbatim}
Test: \verb|something| \lipsum[3]

\end{document}

相关内容