这个问题与这里的其他几个问题密切相关,但我相信还没有人像这样提出(或回答)过这个问题。
是否可以更改字体大小verbatim
并Verbatim
使用比例参数?
例如,我知道我可以做
\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}