有时我会更改用于构建 latex 文档的字体来查看其外观。因此,我有一些使用不同字体构建的旧 pdf 文件。
在编译 PDF 时,是否有 latex 命令可以在其中打印用于文本和数学的官方字体名称或规格?所以这些信息不会丢失或难以找到?
我知道有些 PDF 阅读器会允许查找 PDF 中使用的字体,但有时很难找到,而且并非所有阅读器都具有此功能。我还喜欢将其打印在文档本身中,可能在页边空白处或作为脚注,以便于查看。
这是 MWE
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{baskervald}
\begin{document}
%\footnote{This document was compiled using text font \textFontName
%and math font \mathFontName}
This is some math $\sin(x)$
\end{document}
如果有办法的话,我想做类似上面注释的代码。假设文档中只使用一种字体,如上例所示。
例如,对于默认字体,我预计脚注将是
This document was compiled using text font "Computer Modern"
and math font "Computer Modern"
使用 TL 2018
答案1
我的答案可以在数学上得到改进,但它最多有 16 组,您可以检查
\makeatletter\meaning\mv@normal\makeatother
产生的结果以了解所涉及的内容。
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{baskervald}
\begin{document}
%\footnote{This document was compiled using text font \textFontName
%and math font \mathFontName}
This is some math $\sin(x)$.
\makeatletter
\edef\textFontName{\fontname\csname
\f@encoding/\f@family/\f@series/\f@shape/\f@size\endcsname}
\edef\mathFontName{\fontname\textfont0}
\edef\mathLetterFontName{\fontname\textfont1}
\makeatother
See\footnote{Text Font: \textFontName
Math Operator Font: \mathFontName
Math Letter Font: \mathLetterFontName\par
}
\end{document}
使用 xetex:
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{fontspec}
\begin{document}
%\footnote{This document was compiled using text font \textFontName
%and math font \mathFontName}
This is some math $\sin(x)$.
\makeatletter
\edef\textFontName{\fontname\csname
\f@encoding/\f@family/\f@series/\f@shape/\f@size\endcsname}
\edef\mathFontName{\fontname\textfont0}
\edef\mathLetterFontName{\fontname\textfont1}
\makeatother
See\footnote{Text Font: \texttt{\textFontName}
Math Operator Font: \texttt{\mathFontName}
Math Letter Font: \texttt{\mathLetterFontName}\par
}
\end{document}
答案2
是的,但它不会提供您想要的显示名称。\f@family
宏将扩展为类似于cmr
Computer Modern Roman 的内容,\the\fam
在数学模式下为数字。