字体大小选择 \normalsize 的倍数

字体大小选择 \normalsize 的倍数

可以发出这样的命令吗?

\fontsize{2\normalsize}{2\normalsize}\selectfont

答案1

您的请求无法直接实现。该命令\normalsize不是维度,而是执行多项操作的命令。

当然,命令\normalsize取决于字体大小。但它也取决于类。标准类在文件中定义了与所选字体大小相关的命令size1X.cloX代表

0 => 10pt
1 => 11pt
2 => 12pt

在文件中size10.clo \normalsize定义为

\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xpt\@xiipt
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}

其中的\@setfontsize\normalsize\@xpt\@xiipt意思是:

 \def\@xpt{10}
 \def\@xipt{10.95}
 \def\@xiipt{12}

\def\@setfontsize#1#2#3{\@nomath#1%
    \ifx\protect\@typeset@protect
      \let\@currsize#1%
    \fi
    \fontsize{#2}{#3}\selectfont}

要检测当前字体大小,请参阅如何在最终输出中显示正在使用的字体大小

您可以在那里找到代表当前字体大小的命令\f@size。要保存标准字体大小,请使用:

\edef\savefontsize{\f@size}

我可以想象以下例子:

\documentclass{article}

\makeatletter
\begingroup
\normalsize
\xdef\doublesize{\noexpand\fontsize{\noexpand\numexpr2*\f@size\noexpand\relax pt}{\noexpand\dimexpr\f@baselineskip+\f@baselineskip\noexpand\relax}\noexpand\selectfont}
\endgroup


\begin{document}
Text Text

\doublesize Text Text
\end{document}

答案2

查看该relsize包,它完全符合您的要求。MWE:

\documentclass{article}
\usepackage{blindtext,relsize}


\begin{document}
\thispagestyle{empty}

\textscale{2}{\blindtext\par}
{\relscale{2}\blindtext}\par}


\end{document}

答案3

它是相对于当前字体大小设置的:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tgpagella}

\makeatletter
\def\setFS#1{\@tempdima=\f@size pt\fontsize{#1\@tempdima}{\dimexpr #1\@tempdima+2pt}\selectfont}
\makeatother

\begin{document}
foo \setFS{1.5}bar \setFS{2}baz \normalsize
foobar

\end{document}

在此处输入图片描述

相关内容