url 格式中的 abntex 和 hyphenat 问题

url 格式中的 abntex 和 hyphenat 问题

问题

我想禁用文档中的所有连字符,但我希望 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 页面上看起来像这样:

wrong bibitem formatting

如果我\usepackage[none]{hyphenat}从序言中删除,则相同的条目将具有所需的格式,但整个文本将被连字符。

right bibitem formatting

尝试过的解决方法

使用\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伪语言没有连字符规则。

相关内容