有没有办法执行配对命令?

有没有办法执行配对命令?

我想在编写文档时获取文档中字体的名称。

目前我还可以

\newcommand{\FntNmeTitleA}{Felix Titling Regular}
\newfontfamily\FontTitleA[LetterSpace=4.5]{Felix Titling}

\FontTitleA This Text is written in \FntNmeTitleA!

但如果我有很多字体并且想要获取当前名称,那就太糟糕了。有没有像许多编程语言中已知的方法:

\FontTitleA This Text is written in \FontTitleA.name!

干杯

答案1

在标准情况下,当前字体信息存储在一系列以 开头的内部宏中\f@

\documentclass{article}
\begin{document}
\makeatletter
  encoding \f@encoding\par
  family \f@family\par
  series \f@series\par
  shape \f@shape\par
  size \f@size\par
\makeatother
\end{document}

使用 pdfLaTeX 编译:

字体信息

使用 LuaLaTeX 或(一段时间后)XeLaTeX 进行编译:

Unicode 字体信息

使用 LuaLaTeX 中的自定义字体,使用fontspec

自定义字体

\documentclass{article}
\usepackage{fontspec}
\newfontfamily\sylfaen{Sylfaen}
\begin{document}
\sylfaen
\makeatletter
  encoding \f@encoding\par
  family \f@family\par
  series \f@series\par
  shape \f@shape\par
  size \f@size\par
\makeatother
\end{document}

相关内容