在微排版中引入或避免连字

在微排版中引入或避免连字

在德语中,有一个词像这样Wachstube

拆分成音节后含义不同:

  1. 瓦克斯管
  2. 瓦赫施图贝

没问题,当单词越过线时——可以像上面那样通过强制换行来解决。

但是,如何正确设置它而不使用任何换行符,以使其阅读效果最佳并得到其正确的含义?即将挑衅或避免某种连字符……

当然,这可能取决于所选的字体以及该字体中提供的连字。当单词不会越线时,让读者获得正确含义的正确方法是什么?

欢迎提供任何提示!

答案1

您可以使用selnolig包。它提供了一个接口来抑制某些模式中的连字。

需要fontspecLuaTeX。

\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}

在此处输入图片描述

相关内容