我正在寻找一个命令来返回字体大小类别和 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}
答案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}