我正在使用 XeLaTeX、imakeidx 和 xindy,我想在索引条目中使用诸如"-
and之类的简写(软连字符和硬连字符允许在组成词内进行连字符连接,来自)。我想我需要在我的本地 xindy 样式文件中添加一些内容,但我不知道该添加什么。"=
[ngerman]babel
索引是食谱中的食谱列表,食谱名称是自动添加的,它们包含像这样的表达式Wirsing"=Kartoffel"=Bett
,xindy 会将其转换Wirsing=Kartoffel=Bett
为 而不是Wirsing-Kartoffel-Bett
在连字符处有断点,并且可能使用连字符Wir-sing
和Kar-tof-fel
。当我在食谱名称中说时,Wirsing-Kartoffel-Bett
它会变成一个非常长的不可断开的复合词,这会严重扰乱正确的换行。
因此,xindy 会丢失双引号,并保留其余的简写字符对。然而,我希望 xindy 做的是在排序时忽略简写字符,并在写入文件时将它们放回原处.ind
。
答案1
作为一种解决方法,我定义了新的命令(而不是简写),如下所示:
\newcommand{\HH}{\penalty1000-\hspace{0pt}}
并说Wirsing\HH Kartoffel\HH Bett
。虽然不漂亮也不优雅,但确实管用。
编辑:现在我很高兴使用 TeXLive 2013 而不是 2011(我的编辑器仍然指向旧目录),我也可以写
\newcommand{\HH}{\babelhyphen{hard}}
这稍微好一点,或者我可以用以下方式定义我自己的 babel 简写
\defineshorthand{...}{...}
并使用不被 xindy 吞噬的字符。
编辑:显然,使用|=
简写不起作用。整个条目将从索引中消失。