babel 和 french 的 Hyperref 字体选择问题

babel 和 french 的 Hyperref 字体选择问题

如何更改文本形式的字体?

\documentclass{standalone}

\usepackage{xcolor}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[english,russian,french]{babel}
\usepackage{hyperref}

\begin{document}
    \pagestyle{empty}
    \begin{Form}
        \TextField[bordercolor=white
            ,borderwidth=0
            ,width=2.5in
            ,name=name.1
            ,format={
                var f = this.getField('name.1');
                f.textFont = 'Europe';
                f.userName = 'first name'
            }
            ,value=something
                    ,charsize=7pt]{Type:}
    \end{Form}
\end{document}

此示例不起作用。如果我打开 Adob​​e Acrobat Pro,它会显示表单字体是 helvetica。如果我更改 \usepackage[english,russian,french]{babel}\usepackage[english]{babel}或,则\usepackage[russian]{babel}一切正常。

答案1

软件包babel使用不同语言的简写字符。例如,如果加载了法语字体,则在前面插入一些空格,则;重新定义为活动字符。french

使用\shorthandoff\shorthandon可以禁用和启用简写字符:

\shorthandoff{;}%
\TextField...
\shorthandon{;}%

另一种可能性是使用\string(或 e-TeX 的\detokenize)。\string将下一个标记转换为具有 catcode“其他”(12,例如数字) 或“空格”(10) 的字符(如果该标记具有空格 (32) 的字符代码)。

\TextField[...
  format={... f.textFont = 'Europe'\string; ...},
  ....]{...}

另一个问题是字体嵌入。字体仅通过名称引用,并且必须安装在用户的系统中。

相关内容