Установите размер между маленьким и нормальным размером - PullRequest
0 голосов
/ 10 октября 2018

Я использую пакет листингов и команду для установки размера шрифта в листинге:

\lstset{basicstyle = \small}

Я хотел бы изменить это, чтобы использовать размер шрифта, который находится на полпути между \ small и\нормальный размер.Что-то вроде этого не работает:

\lstset{basicstyle = 0.5\small+0.5\normalsize}

Есть ли способ установить размер шрифта так, как я хочу?

1 Ответ

0 голосов
/ 11 октября 2018

Это зависит от настроек класса вашего документа.Например, \small для опции класса документа 10pt - это 9pt, а \normalsize - 10pt (конечно, из-за опции класса).См. Какой размер шрифта (pt) \Large и т. Д.? 1008 * для других размеров, основанных на \documentclass.Исходя из этого, установите basicstyle на 9.5pt (с соответствующим пропуском базовой линии на полпути) вручную с помощью \fontsize{9.5}{11.5}\selectfont или используйте следующий автоматический расчет с помощью \smalltonormalsize в качестве переключателя шрифтов:

enter image description here

\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}
...