使用 fontspec 时脚注无法正确缩放。有办法解决这个问题吗?已经尝试过 realscripts 和 xltxtra,但没有成功。谢谢,
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\newcommand{\phont}[1]{\fontspec[Scale=#1]{Times New Roman}}
\begin{document}\noindent
{\phont{1} test\footnote{test}}\\
{\phont{2} test\footnote{test}}\\
{\phont{3} test\footnote{test}}\\
{\phont{1}test\textsuperscript{1}}\\
{\phont{2}test\textsuperscript{2}}\\
{\phont{3}test\textsuperscript{3}}
\end{document}
答案1
这是“设计使然”。LaTeX\footnote
将其脚注标记设置为字体\normalfont
。但是您想要当前文本字体。\textsuperscript
保留当前字体,字体大小除外。
可以通过重新定义来改变 LaTeX 的行为\@makefnmark
:
\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\newcommand{\phont}[1]{\fontspec[Scale=#1]{Times New Roman}}
\makeatletter
\renewcommand*{\@makefnmark}{%
\hbox{%
\@textsuperscript{%
% \normalfont % removed
\selectfont % added
\@thefnmark
}%
}%
}
\makeatother
\begin{document}
\vspace*{\fill}
\noindent
{\phont{1} test\footnote{test}}\\
{\phont{2} test\footnote{test}}\\
{\phont{3} test\footnote{test}}\\
{\phont{1}test\textsuperscript{1}}\\
{\phont{2}test\textsuperscript{2}}\\
{\phont{3}test\textsuperscript{3}}
\end{document}