在德语中,有一个词像这样Wachstube
。
拆分成音节后含义不同:
- 瓦克斯管
- 瓦赫施图贝
没问题,当单词越过线时——可以像上面那样通过强制换行来解决。
但是,如何正确设置它而不使用任何换行符,以使其阅读效果最佳并得到其正确的含义?即将挑衅或避免某种连字符……
当然,这可能取决于所选的字体以及该字体中提供的连字。当单词不会越线时,让读者获得正确含义的正确方法是什么?
欢迎提供任何提示!
答案1
您可以使用selnolig
包。它提供了一个接口来抑制某些模式中的连字。
需要fontspec
LuaTeX。
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=Historic]{Linux Libertine O}
\usepackage{selnolig}
\begin{document}
\nolig{st}{s|t}
Wachstube
\keeplig{st}
Wachstube
\end{document}
selnolig
通过在节点列表中插入 whatit 来断开连字。不幸的是,这也会抑制参与断开连字的字母之间的字距调整。如果您必须调整它们之间的字距(无论出于何种原因),您必须从字体本身中删除连字。这以及添加一些自定义字距调整在 LuaTeX 和fonts.handlers.otf.addfeature
。
\documentclass{article}
\usepackage{fontspec}
\directlua{
fonts.handlers.otf.addfeature({
name = "kernst",
type = "kern",
data = {
["s"] = { ["t"] = 200 },
},
})
fonts.handlers.otf.addfeature({
name = "ligast",
type = "multiple",
data = {
["s_t"] = { "s", "t" },
},
})
}
\setmainfont[Ligatures=Historic]{Linux Libertine O}
\begin{document}
{
\addfontfeature{RawFeature=+kernst;+ligast}
Wachstube
}
Wachstube
\end{document}