使用缩放更改 verbatim 和 Verbatim 中的字体大小

使用缩放更改 verbatim 和 Verbatim 中的字体大小

这个问题与这里的其他几个问题密切相关,但我相信还没有人像这样提出(或回答)过这个问题。

是否可以更改字体大小verbatimVerbatim使用比例参数?

例如,我知道我可以做

\setmonofont[Scale=0.8]{Menlo}

全局更改\texttt。从我在这里看到的答案中,我知道我可以verbatim使用

\makeatletter
\patchcmd{\@verbatim}
  {\verbatim@font}
  {\verbatim@font\small}
  {}{}
\makeatother

Verbatim使用调整

\begin{Verbatim}[fontsize=\small]

但假设我不想指定\small,而是使用比例因子,如 0.8。可以这样做吗?是否也有办法为所有Verbatim块修改它?

我正在使用 LuaLaTeX。

答案1

您可以定义一个命令,将字体大小设置为当前字体大小的一小部分。

\documentclass{article}
\usepackage{fontspec,xfp}
\usepackage{fancyvrb}

\setmonofont{Menlo}[Scale=MatchLowercase]

\makeatletter
\newcommand{\scalefont}[1]{%
  \edef\scale@fontsize{\fpeval{#1*\f@size}}%
  \edef\scale@fontbaselineskip{\fpeval{1.2*\scale@fontsize}}%
  \fontsize{\scale@fontsize}{\scale@fontbaselineskip}\selectfont
}
\makeatother

\begin{document}

This is normalsize with \texttt{monospaced text}
\begin{Verbatim}[fontsize=\scalefont{0.8}]
This is scaled 80%
\end{Verbatim}
Again normalsize
\begin{Verbatim}[fontsize=\scalefont{0.5}]
This is scaled 50%
\end{Verbatim}

\end{document}

在此处输入图片描述

相关内容