如何更改 colorbox 中使用的 verbatim 的字体大小?

如何更改 colorbox 中使用的 verbatim 的字体大小?

回答获取带有柔和灰色背景的逐字记录,如 tex.stackexchange 中所示

显示如何使文本具有灰色背景。但我无法使其以较小的字体显示。在答案下方评论说要做什么(我正在使用\tiny而不是\small但两者都不起作用)

\makeatletter\renewcommand\verbatim@font{\normalfont\tiny\ttfamily}

但这没有效果。一定是我使用方法不正确?

因此,我不会使上述答案中的评论变得混乱,而是提出一个新问题,询问如何更改逐字环境的字体大小,如上述答案所示。

我知道如何使用普通Verbatim命令来做到这一点。但不知道如何使用上面的代码。这是 MWE,其中的代码取自上面的答案。

\documentclass[12pt]{article}
\usepackage{fancyvrb,newverbs,xcolor}
\definecolor{cverbbg}{gray}{0.95}

\newenvironment{cverbatim} 
 {\SaveVerbatim{cverb}}
 {\endSaveVerbatim
  \flushleft\fboxrule=0pt\fboxsep=.5em
  \colorbox{cverbbg}{\BUseVerbatim{cverb}}%
  \endflushleft
}

\makeatletter\renewcommand\verbatim@font{\normalfont\tiny\ttfamily}

\begin{document}

This is my verbatim. How to make font tiny? now font size does not change

\begin{cverbatim}
int main() { 
printf("hello, world");

`Methods for first order ODEs:

return 0;
}
\end{cverbatim}

\end{document}

当使用编译时lualatex foo.tex给出

在此处输入图片描述

一切都很好,除了字体大小没有改变。我知道我可以明确地添加\tiny之前,然后添加\normalsize之后以使其工作,但我不想继续这样做。我希望逐字自动排版在\tiny字体中。

如何正确实现上述操作,以便逐字字体大小以较小的字体大小显示?

答案1

使用

\newenvironment{cverbatim}
{\SaveVerbatim{cverb}}
{\endSaveVerbatim
\tiny\flushleft\fboxrule=0pt\fboxsep=.5em % <<<<<<<<<<<<<<<<<<<<<<
    \colorbox{cverbbg}{\BUseVerbatim{cverb}}%
    \endflushleft
}

C

\makeatletter\renewcommand\verbatim@font{\normalfont\tiny\ttfamily}从你的代码中删除)

相关内容