更改 verbatim 环境的字体大小

更改 verbatim 环境的字体大小

我想在 Verbatim 环境中应用小字体,例如

{\small 
\begin{Verbatim}

1   double x, y;
2   double z, w;
3   main();
4   return 0;

\end{Verbatim}}

在命令之前\small和结束括号之后的}文本具有正常大小,这是很明显的,但是括号内的字体大小应该很小。

为什么此命令不适用于环境的内容?

答案1

您似乎正在使用fancyvrb,它已经具有您想要的功能:

\documentclass{article}
\usepackage{fancyvrb}
\usepackage{lipsum} % just for the example
\begin{document}

\lipsum*[3]
\begin{Verbatim}[fontsize=\small]
1   double x, y;
2   double z, w;
3   main();
4   return 0;
\end{Verbatim}
\lipsum[3]

\end{document}

在此处输入图片描述

答案2

正如所提到的更改 verbatim 环境的字体中,使用的默认字体verbatim\ttfamily,如 中设置的那样\verbatim@font。您可以创建用户界面来调整此字体,方法如下:

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum} % just for the example
\makeatletter
\newcommand{\verbatimfont}[1]{\renewcommand{\verbatim@font}{\ttfamily#1}}
\makeatother
\begin{document}

\lipsum*[3]
\verbatimfont{\small}%
\begin{verbatim}
1   double x, y;
2   double z, w;
3   main();
4   return 0;
\end{verbatim}
\lipsum[3]

\end{document}

答案3

包的宏verbatimbox可以将诸如以下内容的内容\small作为可选参数。在本例中,我选择了环境verbnobox,但该包中的其他宏可能更适合您的需求。

\documentclass{article}
\usepackage{verbatimbox}
\begin{document}
\noindent Normal Size
\begin{verbnobox}[\small]

1   double x, y;
2   double z, w;
3   main();
4   return 0;

\end{verbnobox}
Normal Size
\end{document}

在此处输入图片描述

此外,您可以要求软件包为您编号行,而不是手动执行:

\documentclass{article}
\usepackage{verbatimbox}
\begin{document}
\noindent Normal Size
\begin{verbnobox}[\tiny\arabic{VerbboxLineNo}\small\hspace{3ex}]
double x, y;
double z, w;
main();
return 0;
\end{verbnobox}
Normal Size
\end{document}

在此处输入图片描述

答案4

我推荐listings适合此目的的软件包。请参阅维基百科有关设置和我的 MWE 的简单说明如下:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}

\lstset{ %
language=C++,           % choose the language of the code
numbers=left,           % where to put the line-numbers
numberstyle=\tiny,      % the size of the fonts that are used for the line-numbers
basicstyle=\footnotesize    % the size of the fonts that are used for the line-numbers
}

\begin{document}
Lorem ipsum
{\footnotesize Lorem ipsum
\begin{lstlisting}
double x, y;
double z, w;
main();
return 0;
\end{lstlisting}
Lorem ipsum}
Lorem ipsum
\end{document}

为了强调不同的尺寸,我将其替换\small为:\footnotesize

输出内容

相关内容