我正在使用不包含项目符号 • (Unicode 中的 U+2022) 的字体输入文档。
为了用字体替换它,我尝试了以下方法:
\newfontfamily{\listitemi}{Arial}
\catcode`•=\active
\protected\def •{{\listitemi\char`\•}}
但我猜那里一定有什么事情非常不对劲。
此代码块基于newunicodechar
手册第 2 页,其中显示了类似的欧元符号 (€):
\newfontfamily{\eurofont}{⟨some font⟩}
\catcode‘€=\active
\protected\def €{{\eurofont\char‘\€}}
我知道我可以简单地使用这个newunicodechar
包,但是我想不用它来做。
答案1
这完美地工作:
\documentclass{article}
\usepackage{fontspec}
\newfontfamily{\bulletfont}{Arial}
\catcode`•=\active
\protected\def •{{\bulletfont\char`\•}}
\begin{document}
\pagestyle{empty} % so nothing is added
•
\end{document}
如果我调用pdffonts
生成的 PDF 文件,我会得到
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
NVYNAY+ArialMT CID TrueType Identity-H yes yes yes 4 0
另一方面,itemize
不直接使用•
,而是\textbullet
。因此只需添加一行:
\documentclass{article}
\usepackage{fontspec}
\newfontfamily{\bulletfont}{Arial}
\catcode`•=\active
\protected\def •{{\bulletfont\char`\•}}
\let\textbullet=•
\begin{document}
\pagestyle{empty} % so nothing is added
•
\begin{itemize}
\item
\end{itemize}
\end{document}