我使用 LuaLaTeX。
此 MWE 适用于无衬线字体,即 Calibri(在 Windows 上)
\documentclass{article}
\usepackage{fontspec}
\def\fntname{Calibri}
\setmainfont{\fntname}
\usepackage[pdfstartview = FitH]{hyperref}
\usepackage{xcolor}
\begin{document}
\def\textfield{123gzZ}
\textfield
\def\fieldname{fieldname}
\begin{Form}
\TextField[
name = \fieldname,
format = {
this.getField('\fieldname').textFont = '\fntname';
% this.getField('\fieldname').defaultStyle.fontFamily = ["\fntname", "serif"];
},
value = \textfield,
]
{}% fieldlabel
\end{Form}
\end{document}
使用衬线字体时,即\def\fntname{Times New Roman}
(在 Windows 上),字体仅适用于纯文本(第一行),但不适用于表单中的 TextField(第二行)。为什么?
我尝试使用this.getField('\fieldname').defaultStyle.fontFamily = ["\fntname", "serif"];
(从 JavaScript for Acrobat API 参考中读取),但没有任何变化。