有没有办法(简单或其他方式)从特定字符下的另一种字体导入单个字符,或以其他方式改变该字符?
我使用的是这里,但有一个小问题——当\ae{}
与 一起使用时\textsc{}
,字体默认为小写。
可以通过从上述网站下载软件包然后使用以下代码来获得 MWE:
\documentclass[a4paper,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{garamond}
\renewcommand{\rmdefault}{ggm}\normalfont
\begin{document}
\garamond
Normal ligature: \ae{}
Capital ligature: \AE{}
Small Caps: \textsc{\AE{}, \ae{}, Isch\ae{}mia}
\end{document}
结果如下图所示(我也是在没有 Garamond 的情况下进行的,以确保这不仅仅是我的代码的问题)。
使用提供的字体 sfd 文件、FontForge 和给出的大部分说明这里,我已经能够生成一种字体来纠正该问题,但它会丢失大多数悬挂字体等等,或者更确切地说,它会偶尔使用它们。
有人知道如何指向 LaTeX 使用不同的字形,无论是标准大写字母的修改版本还是自建版本字体的字形?
答案1
小型大写字体只有 26 个无重音字母被实现为小型大写字母。要获得所有字符需要做很多工作。如果您只需要 æ,请执行以下步骤。
- 跑步
vftovp ggmrc8t.vf > ggmrc8t.vpl
ggmrc8t.vpl
使用文本编辑器打开生成的文件。找到以 开头的条目
CHARACTER O 346
并将其更改为(CHARACTER O 346 (CHARWD R 0.8552) (CHARHT R 0.5452) (CHARDP R 0.016) (COMMENT (KRN C v R 0.001) (KRN C y R 0.001) (KRN O 375 R 0.001) (KRN O 270 R 0.001) (KRN O 47 R -0.003) (KRN C t R 0.002) (KRN C w R -0.005) (KRN C x R -0.007) (KRN C V R -0.076) (KRN O 265 R 0.002) ) (MAP (SELECTFONT D 1) (SETCHAR O 306) ) )
运行 vftovp
ggmrc8t.vpl
并用新的文件替换相应的tfm
文件vf
。
我所做的是将字符映射到缩小尺寸的 Æ,并通过将 Æ 字符的尺寸缩放 80% 来计算新的高度和宽度。但是,尝试其他字符会失败,需要进行其他类似的调整。