首先我要说的是,我对 LaTeX 没有太多经验。
我正在使用 BibLaTeX 和 Biber。
我的问题:我有一个(对齐的)参考书目,其中包含长 URL,其中包含长单词。BibLaTeX 在带有斜线的地方换行。但我想在下一个单词中换行。
在最小的例子中:我想在 Markt-beobachtung 处进行换行。
目的是使第二行中的字母、单词和斜线之间的空格不要太大。并且第二行不以 开头//
。
我现在已经尝试做了 3 个小时,所以我非常感谢您的帮助。
这是.tex
文件。
\documentclass[oneside]{scrbook}
\usepackage[backend=biber,style=alphabetic]{biblatex}
\usepackage[ngerman]{babel}
\bibliography{test_bib.bib}
\begin{document}
\cite{bundesnetzagentur}
\printbibliography
\end{document}
这就是test_bib.bib
:
@ONLINE{bundesnetzagentur,
author = {Bundesnetzagentur},
title = {Teilnehmerentwicklung im Mobilfunk},
year = {2012},
url = {http://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunikation/Marktbeobachtung/Mobilfunkteilnehmer/Mobilfunkteilnehmer_node.html },
hyphenation=ngerman
}
答案1
软件包biblatex
加载包url
。允许换行的字符列表由\UrlBreaks
和给出,每个字符的\UrlBigBreaks
格式为。有关更多信息,请阅读文档。\do\c
c
默认设置\UrlBreaks
为
\def\UrlBreaks{\do\.\do\@\do\\\do\/\do\!\do\_\do\|\do\;\do\>\do\]%
\do\)\do\,\do\?\do\'\do+\do\=\do\#}%
\def\UrlBigBreaks{\do\:\do@url@hyp}%
为了允许更多断点,您可以添加
\g@addto@macro{\UrlBreaks}{\UrlOrds}
对于普通符号,你可以这样做
\g@addto@macro{\UrlBreaks}{%
\do\/\do\a\do\b\do\c\do\d\do\e\do\f%
\do\g\do\h\do\i\do\j\do\k\do\l\do\m%
\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
\do\u\do\v\do\w\do\x\do\y\do\z%
\do\A\do\B\do\C\do\D\do\E\do\F\do\G%
\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
\do\O\do\P\do\Q\do\R\do\S\do\T\do\U%
\do\V\do\W\do\X\do\Y\do\Z}
字母后的断点。
以同样的方式,您可以设置命令\UrlNoBreaks
来定义不允许换行的符号/字母。默认设置为:
\def\UrlNoBreaks{\do\(\do\[\do\{\do\<}%
使用特殊符号的命令@
。因此您需要\makeatletter
/\makeatother
。请参考问题以及\makeatletter
\makeatother
做什么?了解更多信息。
答案2
这不是很好,但如果你想手动完成,那么你可以手动完成:
@online{bundesnetzagentur,
author = {Bundesnetzagentur},
title = {Teilnehmerentwicklung im Mobilfunk},
year = "2012",
addendum = "\texttt{\href{http://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunikation/Marktbeobachtung/Mobilfunkteilnehmer/Mobilfunkteilnehmer_node.html}{http://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunikation/Markt\\beobachtung/Mobilfunkteilnehmer/Mobilfunkteilnehmer\_node.html}}",
hyphenation=ngerman
}
注意:
- 它需要
hyperref
在文档的前言部分加载包。 - 正文中的 部分需要替换为 ,
href
以避免错误。_
\_
如果您不一定想要超链接,您可以删除\href
大括号中的第一个组,然后您就不需要加载该hyperref
包。
对 doi 地址也可以做类似的事情,例如:
addendum = "doi:\href{https://doi.org/10.1023/B:MOON.0000031922.78588.6d}{10.1023/B:MOON.0000031922.785\\88.6d}"