问题
我想禁用文档中的所有连字符,但我希望 bibtex URL 条目能够正确连字符,并且能够根据包正确链接hyperref
。因此,我abntex
在调用时使用参考书目格式时遇到了一些问题\usepackage[none]{hyphenation}
。
例子
此 bibtex 条目:
@ARTICLE{Engelhardt2008,
author = {Sebastian Engelhardt},
title = {The Economic Properties of Software},
journal = {Jena Economic Research Papers},
year = {2008},
volume = {45},
url = {http://zs.thulb.uni-jena.de/servlets/MCRFileNodeServlet/jportal_derivate_00119979/wp_2008_045.pdf}
}
放置在这样的文档中:
\documentclass{abnt}
\usepackage[brazilian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\usepackage{hyperref}
\usepackage{abnt-UFPR}
\usepackage{abntcite}
\usepackage[none]{hyphenat}
\begin{document}
\sloppy
\cite{Engelhardt2008}
\bibliography{test.bib}
\end{document}
将使abntex
格式如下:
\bibitem[Engelhardt 2008]{Engelhardt2008}
\abntrefinfo{Engelhardt}{ENGELHARDT}{2008}
{ENGELHARDT, S. The economic properties of software.
\emph{Jena Economic Research Papers}, v.~45, 2008.
Dispon{\'\i}vel em:
\htmladdnormallink{$<$http:\-/\-/zs\-.thulb\-.uni-jena\-.de\-/servlets\-/MCR%
FileNodeServlet\-/jportal\underline{\ }derivate\underline{ }00119979\-/wp\underline{\ }2008\underline{ }045\-.pdf$>$}{http://zs.thulb.uni-jena.de/servlets/MCRFileNodeServlet/jport%
al_derivate_00119979/wp_2008_045.pdf}.}
输出
在 A4 页面上看起来像这样:
如果我\usepackage[none]{hyphenat}
从序言中删除,则相同的条目将具有所需的格式,但整个文本将被连字符。
尝试过的解决方法
使用\usepackage[hyphens]{url}
将在编译时输出:
! LaTeX Error: Option clash for package url.
我也可以使用并将\usepackage{url}
所有 bibtex 条目参数更改url
为:
note = {Disponível em: $<$\url{http://zs.thulb.uni-jena.de/servlets/MCRFileNodeServlet/jportal_derivate_00119979/wp_2008_045.pdf}$>$}
但我真的不想这样做,因为我正在使用书目管理器来生成文件.bib
。
答案1
您可以尝试
\renewcommand{\-}{\penalty 0 }
就在参考书目之前。但是,非常值得怀疑的是,通过 加载的参考书目样式abnt
会对 URL 做出如此可怕的事情,而实际上只需在加载包\url{...}
时输入它们就足够了。url
这不会在断点处给出连字符(我认为这是正确的做法,因为读者无法区分真实的连字符或添加的连字符)。
然而,我发现在全球范围内抑制连字符使用也是值得怀疑的。
与使用不同的策略hyphenat
可以说
\begin{document}
\hyphenrules{nohyphenation}\exhyphenpenalty 10000
和
\hyphenrules{brazilian}\exhyphenpenalty 50
在参考书目之前,以便允许在其中使用连字符。TeX\exhyphenpenalty
使用此参数来决定是否在文档中的显式连字符(例如复合词)后换行;将其设置为 10000 会禁止该功能;50 是通常的值。nohyphenation
伪语言没有连字符规则。