命令返回字体大小类别和字体大小(以 pt 为单位)

命令返回字体大小类别和字体大小(以 pt 为单位)

我正在寻找一个命令来返回字体大小类别和 pt 中的字体大小。

@Alan Munn 按照此方法采取以下方法SE帖子打印所有标准类的字体大小值:

\makeatletter
\newcommand\thefontsize[1]{{#1 The current font size is: \f@size pt\par}}
\makeatother

\begin{document}
\thefontsize\LARGE
\end{document}

The current font size is: 17.28pt

我想扭曲输出,以便它还打印字体大小类的标签

\newcommand\thefontsize[1]{{#1 FONTSIZECLASS is printed as \f@size pt \par}}

例如\LARGE

LARGE is printed as 17.28pt

如果不可行,也许可以扭转这种局面SE帖子打印The current font size is: XXpt时包括章节/节/小节,即The section font size is: 17.28pt

\makeatletter
\newcommand\thefontsize{The HEADING font size is: \f@size pt}
\makeatother

\begin{document}
\chapter{\thefontsize}
\section{\thefontsize}
...
\end{document}

@Peter Wilson 提出的解决方案:扩展 MWE 以供将来参考

\documentclass{article}
\makeatletter
\newcommand\getfontsizeofheading{The current font size is: \f@size pt}
% print given font size in point and in its "font size" (i.e. larger or smaller)
\newcommand\getfontsizeforfontsizeclass[1]{{\string #1 is printed as #1 \f@size pt\par}}
% print the entire string in the size of the fontsize (i.e. larger or smaller)
\newcommand\printfontsizeforfontsizeclass[1]{{#1 \string #1 is printed in \f@size pt\par}}
\makeatother

\begin{document}
\getfontsizeforfontsizeclass{\tiny}
\getfontsizeforfontsizeclass{\scriptsize}
\getfontsizeforfontsizeclass{\footnotesize}
\getfontsizeforfontsizeclass{\small}
\getfontsizeforfontsizeclass{\normalsize}
\getfontsizeforfontsizeclass{\large}
\getfontsizeforfontsizeclass{\Large}
\getfontsizeforfontsizeclass{\LARGE}
\getfontsizeforfontsizeclass{\huge}
\getfontsizeforfontsizeclass{\Huge}

\printfontsizeforfontsizeclass{\tiny}
\printfontsizeforfontsizeclass{\scriptsize}
\printfontsizeforfontsizeclass{\footnotesize}
...
\end{document}

...结果为(对于printfontsizeforfontsizeclassprintfontsizeforfontsizeclass

答案1

希望这可以帮您找到您想要的东西。

% fontdataprob.tex SE 552560

\documentclass{article}

\makeatletter
\newcommand{\thisfontsize}[1]{{#1 The \string #1'' font size is: \f@size pt\par}}
\newcommand{\printfontsize}[1]{{The \string #1'' font size is: #1 \f@size pt\par}}
\makeatother

\begin{document}
\thisfontsize{\LARGE}

\thisfontsize{\tiny}

\printfontsize{\LARGE}

\printfontsize{\tiny}
\end{document}

我展示了两种打印字体大小的方法。希望其中一种对你有用。

答案2

fontsize包提供了\printsamples命令来打印该包提供的所有(或部分)大小调整命令的示例文本。使用该命令\sampletext{}可以仅打印字体大小和行距的值:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
% A smoothly scalable font is required for some features:
%\usepackage{cochineal}
\usepackage{fontsize}
  \sampletext{}

\begin{document}
 
\printsamples{12.4pt}{10.5pt}[footnotesize,footnotesizer,footnotesizerr,footnotesizerrr,small,smallr,smallrr,smallrrr,normalsize,normalsizer,normalsizerr,normalsizerrr]

\printsamples{10.2pt}{8.7pt}[footnotesize,footnotesizer,footnotesizerr,footnotesizerrr,small,smallr,smallrr,smallrrr,normalsize,normalsizer,normalsizerr,normalsizerrr]

\end{document}

在此处输入图片描述

答案3

如果您使用标准类(无titlesec包),则可以使用一些卑鄙的技巧来访问用于标题的字体。

下面的代码没有优化,可以更好,但在文档中说\meaning\section并查看最后的部分更容易。

人们可以针对\chapter和设计出类似的技巧\part,但它们更加复杂。

\documentclass[12pt]{article}

\makeatletter
\newcommand{\getsectionfont}[1]{% #1 = sectional level
  \edef\section@font{\unexpanded\expandafter\expandafter\expandafter{\expandafter\@seventhofseven#1}}%
  \begingroup\section@font\edef\x{\endgroup\def\noexpand\section@size{\f@size}}\x
  \texttt{\string#1}: \texttt{\detokenize\expandafter{\section@font}}
  (\section@size pt)%
}
\newcommand\@seventhofseven[7]{#7}
\makeatother

\begin{document}

\getsectionfont{\section}

\getsectionfont{\subsection}

\getsectionfont{\subsubsection}

\getsectionfont{\paragraph}

\getsectionfont{\subparagraph}

\bigskip

\texttt{\meaning\section}

\end{document}

在此处输入图片描述

相关内容