使用 Linux Libertine 字体的修饰字母大写 H

使用 Linux Libertine 字体的修饰字母大写 H

我希望能够在我的论文中使用修饰字母大写 H(Unicode 代码:U+ 1D34),其字体为 Linux Libertine。但它显示效果不佳。如果可能的话,我希望得到一些帮助(更改字体将是我的最后选择)。提前谢谢。

\documentclass[10pt,a4paper]{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine}

\begin{document}


pjèlè\char"1D34

\end{document}

答案1

使用在 浪荡子包裹我得到一块豆腐(因为根本没有显示任何字符,只是一个盒子):

\documentclass[10pt,a4paper]{article}
\usepackage{newunicodechar}
\usepackage{fontspec}
\setmainfont{LinLibertine_R.otf}

\begin{document}
pjèlèᴴ
\end{document}

1

这意味着字体没有相关字符。在这种情况下,恐怕除了更改字体之外别无选择,但好消息是,有一种方法可以仅更改某个特定字符的字体,如下所示:

\documentclass[10pt,a4paper]{article}
\usepackage{newunicodechar}
\usepackage{fontspec}
\setmainfont{LinLibertine_R.otf}
\newfontfamily\noto{NotoSerif}
\usepackage{newunicodechar}
\newunicodechar{ᴴ}{{\noto ᴴ}}

\begin{document}
pjèlèᴴ
\end{document}

2

答案2

这是最重要的事。我是认真的。

你应该做的第一件事总是当你得到一个缺失字符错误时,你会设置\tracinglostchars=3。由于 1980 年代的一些技术债务,当你请求当前字体没有的字符时,TeX 的默认行为是默默失败并在文件中间的某处打印一条错误消息.log\trachinglostchars=3覆盖此项并使错误成为错误。

事实上,没有理由不将其添加到所有文档中。如果维护者认为他们可以破坏与某些旧文档的向后兼容性,这些旧文档仅因为这个非常有用且重要的文档功能而编译,\tracinglostchars=3或者也许tracinglostchars=2仍然可以很好地编译它,并且至少通知你那里有问题,甚至可能是默认的。

如果没有这些,您将需要仔细检查文档的每一份草稿,希望您不会忽略任何缺失的字符。乏味、重复、容易出错、机械的苦差事需要人类花费很长时间才能完成,而这正是计算机被发明的原因。但你必须告诉他们确切地你需要他们做什么,否则他们就不会做。

但是大多数技术人员对此并不了解,而且搜索引擎发送给他们的所有教程都没有告诉他们这一点。

如果您不记得这个答案的其他内容,请记住这一点。

解决方案

然而,在这种情况下,这只能告诉您已经知道的事情:Linux Libertine 没有这个字符。

如果您需要 Libertine 的更多字形版本,首先要尝试 Khaled Hosny 的 Libertine/Biolinum 系列扩展,即 Libertinus 字体。不过,它们碰巧也没有涵盖这一特定字体。

因此,最好的方法是使用缩放的上标大写字母 H。这需要来自相同的字体系列并缩放到相对大小(从relsize),以便它可以在例如更大、更粗、无衬线的标题中工作。

\documentclass[10pt,a4paper]{scrarticle}
\tracinglostchars=3
\usepackage{libertinus}
\usepackage{relsize}
\usepackage{newunicodechar}

\newcommand\supH{\textsuperscript{\textsmaller[2]{H}}}
\newunicodechar{^^^^1d34}{\supH} % ᴴ

\begin{document}

\section*{Pjèlèᴴ}
pjèlèᴴ

\end{document}

Libertinus 样本

我还定义了别名\supH,如果您需要 ASCII 命令,可以输入\char"1D34别名。您可以将其更改为您喜欢的任何内容。然后我将 Unicode 字符设置为活动状态并让它调用此命令。

相关内容