最简单的说法是:我需要“fj”连字符。这绝对至关重要,尤其是当我用冰岛语写作时,它绝对不能被忽略,它甚至比 fi 更常见。
以下是我发现的:
\usepackage{Alegreya}
此字体确实包含 fj 连字符,但我非常喜欢 Computer Modern。我在 TeX.SX 上看到了不同的答案,发现有人制作了一个好看的答案,但必须使用 来调用\fj
。我认为这真的很愚蠢。
有什么想法吗?IRC 上的一位热心人士发现了这一点: 计算机现代:extralig 包 但我无法让它工作,(我把它放入路径中,LaTeX 加载了包,但它什么也没做)
答案1
答案2
在使用 STIX2 之后,它看起来不错,但对我来说有点太重/太大胆了,我昨晚做了一个梦。这就是解决方案。通过使用黑客通过手动调整字距、创建fj
连字和\extraligfj
命令以及LuaLaTeX
即时文本替换,我创建了一个无缝的解决方案。
\ProvidesPackage{extralig}
\usepackage{xcolor}
\usepackage{luacode}
\newcommand{\extraligfj}{fi\llap{\textcolor{white}{\rule[-0.05em]{0.252em}{0.55em}}}\kern-0.01em\llap{\j}\kern-0.05em\relax}
\begin{luacode}
local function vartosrcvar ( line )
return string.gsub(line, "fj" , "\\extraligfj{}")
end
luatexbase.add_to_callback( "process_input_buffer", vartosrcvar, "var_to_srcvar")
\end{luacode}
将此代码保存为extralig.sty
您的.tex
文件目录并调用它将\usepackage{extralig}
完美运行!
显然是因为 Lua 代码你必须使用 LuaLaTeX 进行编译
您不需要将其作为一个包来使用,只需将所有内容复制到文档的相应位置,它也可以正常工作,但将其作为一个单独的包会更简洁。
这是如何运作的?
- 我定义了
\extraligfj
一个技巧,将i
infi
替换为j
,fj
通过一些手动字距调整实现完美的连字。(感谢这TeX.SX 帖子!) - 使用 LuaLaTeX,我使用代码将所有实例替换为
fj
我们\extraligfj
之前定义的。 - 所有这些都整齐地放置在里面
extralig.sty
并准备作为一个包无缝地加载到我们的文档中。
TL;DR 将代码片段保存为extralig.sty
并将其放在与文件相同的目录中.tex
,然后使用 加载它\usepackage{extralig}
。使用 LuaLaTeX。这只保证适用于 Computer Modern,不适用于其他字体(它们需要手动调整字距)。这样做后,fj 将自动连字。
优点:
- 我原本以为,由于被黑的字形的性质,换行符会出现一些非常奇怪的故障,但令我惊讶的是,即使在
f
和处断行,它也能完美地工作。j
- 只需要编译一次,因为 LuaTeX 可以即时运行,这就是它完全无缝、没有减速的原因。