可以发出这样的命令吗?
\fontsize{2\normalsize}{2\normalsize}\selectfont
答案1
您的请求无法直接实现。该命令\normalsize
不是维度,而是执行多项操作的命令。
当然,命令\normalsize
取决于字体大小。但它也取决于类。标准类在文件中定义了与所选字体大小相关的命令size1X.clo
。X
代表
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}