![缩写词在文本中未使用连字符](https://linux22.com/image/254594/%E7%BC%A9%E5%86%99%E8%AF%8D%E5%9C%A8%E6%96%87%E6%9C%AC%E4%B8%AD%E6%9C%AA%E4%BD%BF%E7%94%A8%E8%BF%9E%E5%AD%97%E7%AC%A6.png)
我正在使用最新版本的acronym
( acronym 2010/09/08 v1.36
) 和 Lualatex (版本beta-0.70.2-2012060719
),并且有一个由六个单词组成的长缩写词,该缩写词未正确连字。软件包showhyphens
显示文本中的第一个单词没有连字选项,尽管它在缩写列表中已正确连字。
LaTeX-Community.org:缩写包和连字符显示解决方案 GoLaTeX:连字符 mit 包缩写(德语) 但不幸的是,它们两个都不适合我。
还有其他解决方案吗?或者有人遇到(并解决)过类似的问题吗?
编辑:我准备了一个 MWE。然而,这是一个相当难以捉摸的错误。因此,我精简了文本,以至于我无法再删除任何包/文本,因为溢出的水平框不会显示。不过,我希望它有助于澄清我的问题。
\documentclass[DIV=calc,fontsize=12pt,titlepage=false]{scrartcl}
\usepackage{showhyphens}
\usepackage{fontspec}
\usepackage{microtype}
\newfontfeature{Microtype}{protrusion=default;expansion=false}
\setmainfont[Microtype]{Linux Libertine O}
\usepackage[ngerman,british]{babel}
\usepackage[smaller,printonlyused,withpage]{acronym}
\usepackage{bookmark}
\usepackage{booktabs}
\begin{document}
\hyphenation{Mi-ni-a-tur-netz-wer-ke}
Invertebrate neurons are larger than their vertebrate counterparts, which makes it easier to handle them.
This text is part of an interdisciplinary project: \ac{MIMU}.
\section*{List of abbreviations}
\begin{acronym}[MIMU]
\acro{MIMU}{Miniaturnetzwerke aus Insektenneuronen in multilateralen Umgebungen}
\end{acronym}
\end{document}
MWE 为我提供了以下文本和缩写列表的输出:
- 1:文本中的水平盒子过满
- 2:同一个单词(Miniaturnetzwerke)正确使用连字符
答案1
看起来该acronym
包将一些内容放在了第一次提到的首字母缩略词前面(一些代码写入文件以制作标签;我没有进一步分析它),这实际上抑制了首字母缩略词文本的第一个单词的连字符。
以下对前言的更改将修补错误的命令,以便重新建立连字。抱歉,修补模式很奇怪,但\patchcmd
似乎总是只替换第一个出现的情况(但 有两个\AC@acl
)。
\usepackage{etoolbox}
\makeatletter
\patchcmd\@acf{\AC@acl}{\AC@foo}{}{}
\patchcmd\@acf{\AC@acl}{\AC@foo}{}{}
\patchcmd\@acf{\AC@foo}{\hskip\z@\AC@acl}{}{}
\patchcmd\@acf{\AC@foo}{\hskip\z@\AC@acl}{}{}
\makeatother
\begin{document}
还请考虑 egregs 的建议:如果您正确地将德语文本标记为德语,您将获得更好的德语文本连字效果。
答案2
您应该声明该首字母缩略词是德语:
\documentclass[DIV=calc,fontsize=12pt,titlepage=false]{scrartcl}
\usepackage{showhyphens}
\usepackage[ngerman,british]{babel}
\usepackage[smaller,printonlyused,withpage]{acronym}
\usepackage{hyperref,bookmark}
\begin{document}
Invertebrate neurons are larger than their vertebrate counterparts, which makes it easier to handle them.
This text is part of an interdisciplinary project: \ac{MIMU}.
\section*{List of abbreviations}
\begin{acronym}[MIMU]
\acro{MIMU}{\foreignlanguage{ngerman}{Mi"-niaturnetzwerke aus Insektenneuronen in multilateralen Umgebungen}}
\end{acronym}
\end{document}
我不知道为什么第一个单词不能用连字符连接;不过,添加合适的连字符点似乎是一种解决方法。