fontspec 包和 \footnote 的缩放问题。

fontspec 包和 \footnote 的缩放问题。

使用 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}

结果

相关内容