我在引用方面遇到了麻烦。如所附屏幕截图所示,它们有时不能正确换行,而是产生错误overfull hbox
并破坏我的布局。
以下是我包含的相关包。
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[hyphens]{url}
\usepackage{jurabib}
\usepackage{pdfpages}
截图如下:
编辑:我刚刚发现这答案。既\usepackage{breakcites}
没有\usepackage{cite}
帮助,但\usepackage{microtype}
确实有。让我们看看它是否能解决所有换行问题。
答案1
你遇到的问题是,你生成的引用文本非常长,除了后面的断点之外基本上没有任何断点/
,如果段落中有很多这样的断点,那么可能就没有任何合法的换行符。如果你运行
\showhyphens{fairlylongword/fairlylongword/fairlylongword,2003}
您可以看到,只有在名字中 TeX 才能找到连字符点:
Underfull \hbox (badness 10000) in paragraph at lines 31--31
[] \T1/ptm/m/n/10 fair-ly-long-word/fairlylongword/fairlylongword,2003
原因是,一旦 TeX 发现单词中存在字母以外的其他内容,它就会停止连字符。
现在 jurabib 没有使用,/
但它\slash
在作者姓名之间使用来生成一个 / 和一个断点,这解释了为什么你得到了“(Straub/Weidemann/ ... Weidemann,2007)”,但没有得到“(Straub/Weide- ... mann/Weidemann,2007)”,这可能救了你一命。
所以问题是你想在哪里换行?如果你想尝试使用正常的连字规则对名称进行连字,那么你需要确保这个 / 不会停止连字。使用的技巧是在后面跟上\slash
一些不可见的空格(例如,\hspace{0pt}
因为这会导致开始一个新“单词”。
jurabib 包具有高度可定制性,您所要做的就是修改相应的命令(参见 jurabib 文档,或者如果您有 TLC2,请查看示例 12-5-39):
\renewcommand{\jbbtasep}{{\normalfont\slash\hspace{0pt}}}
\renewcommand{\jbbfsasep}{{\normalfont\slash\hspace{0pt}}}
\renewcommand{\jbbstasep}{{\normalfont\slash\hspace{0pt}}}
该领域还有更多可能性。