设置一个介于 small 和 normalsize 之间的大小

Dav*_*idS 4 latex tex

我正在使用列表包,在列表中设置字体大小的命令是:

\lstset{basicstyle = \small}
Run Code Online (Sandbox Code Playgroud)

我想修改它以使用介于 \small 和 \normalsize 之间的字体大小。像这样的东西不起作用:

\lstset{basicstyle = 0.5\small+0.5\normalsize}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以根据需要设置字体大小吗?

Wer*_*ner 5

这取决于您的文档类设置。例如,\small一个10pt文件下的类选项是9pt\normalsize10pt(当然,因为类选项)。请参阅什么点(pt)字体大小\Large等?对于基于\documentclass. 在此基础上,设定basicstyle9.5pt(与适当的中途基线跳过)通过手动\fontsize{9.5}{11.5}\selectfont或通过使用下面的计算自动化\smalltonormalsize作为字体开关:

在此处输入图片说明

\documentclass{article}

\usepackage{listings,xfp}
\usepackage{anyfontsize}

\makeatletter
{\small % Capture font definitions of \small
\xdef\f@size@small{\f@size}
\xdef\f@baselineskip@small{\f@baselineskip}
\normalsize % Capture font definitions for \normalsize
\xdef\f@size@normalsize{\f@size}
\xdef\f@baselineskip@normalsize{\f@baselineskip}
}
% Define new \smalltonormalsize font size
\newcommand{\smalltonormalsize}{%
  \fontsize
    {\fpeval{(\f@size@small+\f@size@normalsize)/2}}
    {\fpeval{(\f@baselineskip@small+\f@baselineskip@normalsize)/2}}%
  \selectfont
}
\makeatother

\begin{document}

\begin{lstlisting}[basicstyle = \ttfamily\small]
Hello world A
\end{lstlisting}

\begin{lstlisting}[basicstyle = \ttfamily\smalltonormalsize]
Hello world B
\end{lstlisting}

\begin{lstlisting}[basicstyle = \ttfamily\normalsize]
Hello world C
\end{lstlisting}

\end{document}
Run Code Online (Sandbox Code Playgroud)