預設如何使文字欄位內的文字變為粗體

預設如何使文字欄位內的文字變為粗體

我在新命令定義中嘗試了各種組合(fontWeight=bfseries、font=bfseries)以使輸入文字預設為粗體,但到目前為止尚未成功。如果有任何建議,我將不勝感激。微量元素:

\documentclass[11pt,a4paper]{article}
\usepackage[table]{xcolor}
\usepackage{hyperref,stackengine}
\newcommand{\TF}[2][5em]{\TextField[borderwidth=-0.2pt,
                           width=#1,
                           height=#1,  
                           charsize=12pt,
                           backgroundcolor=white!50!white,
                           color=black!100!black,
                           bordercolor=white!20!white,
                           name=#2
                           charWeight=\bfseries
                          ]{}}

\begin{document}
\fbox{\TF[12em, height=12pt, charsize=12pt,
     color=black!100!black, bordercolor=1 1 1]{d}}
\end{document}

答案1

嗯,這很難。與 PDF 中的普通文字不同,文字欄位中的字形不是從嵌入資源中獲取的,而是 PDF 檢視器必須動態生成的東西(畢竟沒有人知道使用者將在此類欄位中輸入哪些字元)。 PDF 參考沒有詳細說明如何建立此類字體資源,而是將其留給處理器,這意味著它在很大程度上取決於 PDF 檢視器。

因此 hyperref 不提供很多選項,您可以嘗試設定字體大小和顏色,但僅此而已。

使用 l3pdffield-testphase 您也可以指定字體名稱,但正如我上面所寫,不能保證每個查看者都會遵守該設定。如果他們找不到字體,他們可以回退到其他字體(或只是忽略該設定):

\DocumentMetadata{}
\documentclass{article} 
\usepackage{l3pdffield-testphase}
\usepackage{fontspec}
\setmainfont{DejaVuSans}
\begin{document}
\textbf{Some bold text}
\ExplSyntaxOn
\pdffield_textfield:n{name=name,font=DejaVuSans-Bold,width=5cm}
\ExplSyntaxOff

\end{document}

使用 adobe reader,這會在欄位中給出此字體:

在此輸入影像描述

相關內容