在回答这个问题时用向后的箭头替换连字符亨德里克·沃格特写道:
如果你遇到一种情况,你希望你的连字符是这样的
\hookleftarrow
,而菲利普的回答确实如此不是帮助,那么仍然可以选择创建虚拟字体。通过这种方式,您可以规避\hookleftarrow
来自不同字体的问题以及它不是单个字符的问题。这并不像听起来那么难:如果您需要这个,我可以填写详细信息。
我想了解这些“细节”以及特别是针对这个问题的解决方案。
答案1
您可以按照以下步骤创建带有 hookleftarrow 的虚拟字体。首先选择您想要作为基础字体的字体。在此示例中,我采用了 helvetica 克隆 (phvr8r)。从该字体创建属性列表格式,并将结果放入将用作虚拟字体属性列表文件 (vpl) 模板的文件中:
tftopl phvr8r.tfm > myfont.vpl
现在编辑此文件并在 vpl 文件的开头添加以下几行:
(MAPFONT D 0 (FONTNAME phvr8r))
(MAPFONT D 1 (FONTNAME cmmi10))
(MAPFONT D 2 (FONTNAME cmsy10))
这将加载phvr8r
(我们的基础字体)以及 hookleftarrow 所需的两种数学字体。现在我们要替换字体的连字符,因此查找条目 055(CHARACTER O 55
并将此条目替换为
(CHARACTER O 55
(CHARWD R 0.8)
(MAP
(SELECTFONT D 2)
(SETCHAR O 040)
(MOVELEFT R 0.200)
(SELECTFONT D 1)
(SETCHAR O 055)
)
)
我们从字体#2 中放置字符(八进制)040,并向左移动一点,并从字体 1 中放置字符 055。现在从属性列表中创建一个虚拟字体(这是一个vp
和一个文件):tfm
vptovf myfont
现在您的字体已可以使用(将其放在 TeX 可以找到的目录中 - 我使用了当前工作目录)。这是我的纯 TeX 测试文件:
\font\myfont=myfont
\hsize 4in
\myfont
A wonderful serenity has taken possession of my entire soul, like these sweet
mornings of spring which I enjoy with my whole heart. I am alone, and feel the
charm of existence in this spot, which was created for the bliss of souls like mine.
I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil
existence, that I neglect my talents. I should be incapable of drawing a single
stroke at the present moment; and yet I feel that I never was a greater artist than now.
\bye
答案2
Patrick 的方法确实很有效。但是,让 LaTeX 使用新字体有点复杂。这里有一个技巧,我将使用相同的字体作为示例。
mv phvr8r.tfm xphvr8r.tfm
tftopl xphvr8r.tfm > phvr8r.vpl
现在按照 Patrick 的建议编辑.vpl
文件,但要更改
(MAPFONT D 0 (FONTNAME phvr8r)) -> (MAPFONT D 0 (FONTNAME xphvr8r))
然后运行
vpltovf phvr8r.vpl
如果我们现在把这个测试文件写入同一目录中
\documentclass{article}
\pdfmapline{+xphvr8r NimbusSanL-Regu " TeXBase1Encoding ReEncodeFont " <8r.enc <uhvr8a.pfb}
\setlenght{\textwidth}{4in}
\begin{document}
\fontfamily{phv}\selectfont
A wonderful serenity has taken possession of my entire soul, like these sweet
mornings of spring which I enjoy with my whole heart. I am alone, and feel the
charm of existence in this spot, which was created for the bliss of souls like mine.
I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil
existence, that I neglect my talents. I should be incapable of drawing a single
stroke at the present moment; and yet I feel that I never was a greater artist than now.
\end{document}
我们将得到相同的输出。可以通过在中\pdfmapline
查找来获得的参数,方法是复制相关行并将其添加到其前面。phvr8r
pdftex.map
+x
这是因为 TeX 首先在当前目录中查找文件。这样做使得可以使用该phv
系列的标准字体描述文件。如果必须将新创建的虚拟字体用于更大的项目,最好定义一个新的字体系列名称并构建新的字体描述文件。