我创建了我的书目,但是在作者和分号之间出现了不需要的空格,如下所示:
Author1[space1];[space2]author2;[...]
Author1;[space2]author2;[...]
到目前为止的代码如下:
\documentclass[
a4paper,
11pt,
parskip=half,
twoside,
openright,
pointlessnumbers,
headsepline,
bibtotoc,
DIV=15,
BCOR=1cm
]
{scrbook}
[...]
\usepackage{hyperref}
\hypersetup{
linktocpage,
colorlinks=true,
citecolor=black,
linkcolor=black,
urlcolor=black
}
[...]
\bibliographystyle{alphadin}
如果它有助于 [AE06] 的 Bibtex 条目:
@article{arbinger2006designing,
title={Designing with an embedded soft-core processor},
author={Arbinger, Don and Erdmann, Jeremy},
journal={Embedded cracking the code to systems development},
year={2006}
}
那么我该如何“删除”这个额外的空间?我希望你能帮助我解决这个问题。
答案1
alphadin
实施规范DIN 1505-2,现在已被(稍微不那么可怕的)取代(德国标准) ISO 690DIN 1505-2 使用分号(以及短划线和斜线)并在前导和后导空格。在这方面,该规范不符合德国传统,德国传统从不在分号前放置空格,但它也不完全符合法国传统,因为它不在冒号前放置空格。
该行为是硬编码的alphadin.bst
,必须通过修改.bst
文件来手动更改。
在您的机器上找到您想要更改的样式。您可以通过
kpsewhich alphadin.bst
在终端中输入来找到文件路径。如果失败,请从 CTAN 获取文件:https://ctan.org/tex-archive/biblio/bibtex/contrib/german/din1505将文件复制到 LaTeX 可以找到它的地方(https://texfaq.org/FAQ-inst-wlcf) – 当前文档的目录就可以了 – 然后重命名。许多 LaTeX 文件都要求您在其许可条款中重命名文件。但即使许可条款没有明确说明这一点,或者不要求您重命名已更改的文件,重命名已更改的文件也是非常好的做法。假设新名称是
alphadin-nospace.bst
" ; "
在文件中查找所有六次出现的并将其替换为"; "
。在我的副本中,相关行是- 408
- 415
- 449
- 483
- 502
- 1199
理想情况下,你应该在文件顶部放置一个关于更改的简短通知、你的姓名和日期。
保存修改并重命名的文件。
在您的文档中使用
\bibliographystyle{alphadin-nospace}
而不是。\bibliographystyle{alphadin}
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{arbinger2006designing,
title = {Designing with an embedded soft-core processor},
author = {Arbinger, Don and Erdmann, Jeremy},
journal = {Embedded cracking the code to systems development},
year = {2006},
volume = {14},
pages = {76-89},
}
\end{filecontents}
\documentclass{article}
\bibliographystyle{alphadin-nosp}
\begin{document}
\cite{arbinger2006designing}
\bibliography{\jobname}
\end{document}
自从米科给了同样的答案就在一分半钟前,让我试着用一点广告来证明这个答案的存在biblatex
。
如上所述,DIN 1505-2 已被 ISO 690 取代,因此继续使用alphadin
或任何其他样式都没有多大意义din1505
捆适用于新文档。(当然,除非您非常非常喜欢该样式所呈现的效果。)
可以使用 实现类似的风格biblatex
,对于这种小改动,它的灵活性要高得多。参见bibtex 与 biber 以及 biblatex 与 natbib 的比较,要切换到 biblatex 该怎么做?,Biblatex 与 Biber:配置我的编辑器以避免未定义的引用和自定义 biblatex 样式的指南欲了解更多有关 的介绍性帖子biblatex
。
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{arbinger2006designing,
title = {Designing with an embedded soft-core processor},
author = {Arbinger, Don and Erdmann, Jeremy},
journal = {Embedded cracking the code to systems development},
year = {2006},
volume = {14},
pages = {76-89},
}
\end{filecontents}
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=alphabetic]{biblatex}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}
\DeclareNameAlias{sortname}{family-given}
\DeclareDelimFormat{multinamedelim}{\addsemicolon\space}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}
\renewcommand*{\mkbibnamefamily}{\textsc}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,patent,thesis,unpublished]
{title}{#1\isdot}
\addbibresource{\jobname.bib}
\begin{document}
\cite{arbinger2006designing}
\printbibliography
\end{document}
答案2
作者(或编辑)姓名与分号之间的空格似乎是设计特点,而不是alphadin
参考书目样式的缺陷。也就是说,我能够在文件中找到不少于六个 [6!] 个实例" ; "
:函数中有 2 个format.names
,函数format.editors
、format.authors.organization
、format.editors.organization
和中各有 1 个format.crossref.editor
。
话虽如此,但绝对奇怪的是,编码字符串没有给出为"~; "
。使用~
before;
会禁止在分号前立即换行。允许在分号前立即换行肯定是印刷错误。
如果你更喜欢不是要在分号前有空格,我建议您按如下方式操作:
在您的 TeX 发行版中找到该文件
alphadin.bst
。复制此文件并将副本命名为 。alphadin-mod.bst
(不要直接编辑 TeX 发行版的原始文件。)在文本编辑器中打开文件
alphadin-mod.bst
。你用来编辑 tex 文件的程序就可以了。进行全局搜索和替换,更改
" ; "
为"; "
。总共六个实例应受到影响。将文件保存
alphadin-mod.bst
在主 tex 文件所在的目录中或 BibTeX 搜索的目录中。如果选择第二个选项,请确保适当更新 TeX 发行版的文件名数据库。在主 tex 文件中,将指令更改
\bibliographystyle{alphadin}
为\bibliographystyle{alphadin-mod}
并执行完整的重新编译循环:LaTeX、BibTeX,然后再执行两次 LaTeX。
祝您 BibTeX 愉快!
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@misc{ae:06,
title={Thoughts},
author={Arbinger, Don and Erdmann, Jeremy},
year={2006}
}
\end{filecontents}
\documentclass{scrbook}
\bibliographystyle{alphadin-mod}
\begin{document}
\cite{ae:06}
\bibliography{mybib}
\end{document}