调整双破折号的字距

调整双破折号的字距

在弗吉尼亚·伍尔夫的小说中,她经常使用双破折号。在拉丁现代语中,两个破折号紧密相连,没有间隙。然而,在拉丁现代语中ebgaramond有一个小间隙,这很不愉快。

我在网上找到了这个办法:

\newcommand{\dmd}{{{---\kern-1pt---}\penalty\exhyphenpenalty}}

但是,它对我来说不起作用,我的代码在 LyX Preamble 中如下所示,文档类为Book KOMA-SCRIPT

\usepackage{ebgaramond} 
\usepackage[T1]{fontenc}
\newcommand{\dmd}{{{---\kern-1pt---}\penalty\exhyphenpenalty}}

相关文本:

这次聚会,多亏主人的热情款待,一直持续到下午。我走过大街时,美丽的十月日渐渐消逝,树叶纷纷从树上落下。一道又一道的大门似乎在我身后轻轻关闭。无数的执事将无数的钥匙插入上好油的锁中;宝库又要为下一个夜晚做好安全准备。穿过大街,你会看到一条路——我忘了​​它的名字——如果你向右拐弯,它就会带你到费纳姆。但时间还很充裕。晚餐要到七点半才开始。吃过这样的午餐后,几乎可以不吃晚餐。奇怪的是,一首诗在脑海中浮现,让人的双腿在路上跟着它移动。那些词句——

双破折号

答案1

这被称为 单杠,也称为引号破折号。它用于引出引用的文本(有时)。这是某些语言中打印对话的标准方法。

标准 TeX 字体不支持,但可以使用特殊宏来代替,或者直接使用破折号。

\newcommand\hemdash{\hbox{---}\kern-.5em---}    

你可以这样做:

\documentclass{article}
\newcommand\hemdash{\hbox{---}\kern-.5em---}
\begin{document}

This one, thanks to the hospitality of the host, had lasted 
far into the afternoon. The beautiful October day was fading and 
the leaves were falling from the trees in the avenue as I walked 
through it. Gate after gate seemed to close with gentle finality 
behind me. Innumerable beadles were fitting innumerable keys into 
well-oiled locks; the treasure-house was being made secure for another 
night. After the avenue one comes out upon a road---I forget its 
name---which leads you, if you take the right turning, along to Fernham. 
But there was plenty of time. Dinner was not till half-past seven. 
One could almost do without dinner after such a luncheon. It is strange 
how a scrap of poetry works in the mind and makes the legs move in 
time to it along the road. Those words\hemdash


\end{document}

答案2

在评论中,您要求提供一种不涉及修改内容文本而只涉及修改前言的解决方案。如果您将 LyX 的后端更改为 LuaTeX,这确实是可能的。我不使用 LyX,但他们的网站说这是 LyX 2.0 以上版本的一个选项。然后将前言更改为:

\usepackage{ebgaramond}
\usepackage{luatextra}
\begin{luacode*}
  local function translate(line)
      return string.gsub(line, "%-%-%-%-%-%-", "{---\\kern-.1em---}\\penalty\\exhyphenpenalty")
  end
  luatexbase.add_to_callback("process_input_buffer", translate, "Translate")
\end{luacode*}

请注意,您需要删除该\usepackage[T1]{fontenc}行。我们添加了一个 Lua 函数,该函数会在 TeX 的每一行中搜索 ------(每个行都-必须像 Lua 模式中一样进行转义%-),并将其替换为您找到的双破折号命令。它应该如下所示:

带有无间隙双破折号的文本

这源于这个答案。

相关内容