![修改或创建新的自动安装编码](https://linux22.com/image/370179/%E4%BF%AE%E6%94%B9%E6%88%96%E5%88%9B%E5%BB%BA%E6%96%B0%E7%9A%84%E8%87%AA%E5%8A%A8%E5%AE%89%E8%A3%85%E7%BC%96%E7%A0%81.png)
我正在尝试修改自动安装编码。理想情况下,我想用命令行参数或类似的东西来修补它,以便可以轻松重现该过程。如果这不合理,我想使用单独的编码。
我首先尝试修改原始文件,这样做有效,但更新后会失效。然后我尝试在同一个目录中创建一个带有文件名后缀的副本,希望它能覆盖默认文件,但这没有效果。
创建文件后,我运行:
mktexlsr
fmtutil --sys --all
updmap --sys
得到以下结构:
/opt/texlive/2017/texmf-dist/fonts/enc/dvips/fontools:
fontools_ly1.enc
fontools_ly1_CUSTOM.enc
fontools_ot1.enc
fontools_oml_CUSTOM.enc
fontools_t1.enc
fontools_ts1.enc
下一次尝试是创建 autoinst 未提供的编码,例如第一行:
/otftotfmOMLEncoding [
然后添加-encoding="OML,TS1,OT1,T1,LY1"
到autoinst
命令行。这会出现错误:
otftotfm: encoding 'oml' not found
我有什么选择?
答案1
来自autoinst
的手册页:
-encoding=encoding[,encoding]
为文本字体生成指定的编码。默认为“OT1,T1,LY1”。对于每种编码,
<encoding>.enc
应在某个otftotfm
可以找到的文件(全部小写!)中有一个。适用于 OT1、T1/TS1 和 LY1 的编码文件随附autoinst
。(这些文件被称为fontools_ot1.enc
等,以避免与其他包的名称冲突;fontools_
可以省略“ ”前缀。)
因此如果您请求-encoding="OML,TS1,OT1,T1,LY1"
,那么第一个编码autoinst
将查找需要名为oml.enc
或 的文件fontools_oml.enc
。fontools_oml_CUSTOM.enc
不是一个合适的名称。
然而,oml.enc
肯定不合适,因为这个文件会表明该文件包含官方的 OML 编码。fontools_oml.enc
可以工作,但只有当您的编码确实对应于 OML 编码时才应该使用它。
但是,目前还不清楚这些是否真的有用,因为不清楚您要做什么。在这里解释一下为什么要提供自定义编码文件,这样人们就可以更轻松地提供有用的建议。
无论如何,您都不应该更改或添加主 TEXMF 树中的文件。此树供您的 TeX 发行版使用,并由包管理器管理。(
tlmgr
或您的 Linux 发行版的包管理器。)
相反,您应该在您的个人 TEXMF 树或本地树中安装不同名称的文件的修改副本和附加文件。
kpsewhich -var TEXMFLOCAL
会告诉你当地树木的位置和
kpsewhich -var TEXMFHOME
那是你的个人树。