JuraBiB 的空白又太多了

JuraBiB 的空白又太多了

为什么 jurabib 会产生太多空白?已解决 我以为不会有其他问题,但 jurabib 似乎有更多隐藏的秘密,它会在空白处创建空格。请比较此 MWE:

\documentclass[]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\usepackage[]{jurabib}

\renewcommand*{\bibatsep}{,}

\begin{filecontents}{literatur.bib}

@BOOK{URH_6,
  title = {Urkundenregesten zur Tätigkeit des deutschen Königs- und Hofgerichts bis 1451},
  year = {1990},
  editor = {Bernhard Diestelkamp},
  author = {Friedrich Battenberg},
  volume = {6},
  series = {Quellen und Forschungen zur h\"ochsten Gerichtsbarkeit im alten Reich},
  address = {K\"oln},
  howcited = {1},
  shorttitle = {URH~6},
  volumetitle = {Die K\"onigszeit Karls IV. (1346\,--\,1355~M\"arz)}
}

\end{filecontents}
\begin{document}
Test\footcite{URH_6}.

\bibliography{literatur}
\bibliographystyle{jurabib}

\end{document}

输出如下: 在此处输入图片描述

这里哪个命令需要修改?

答案1

您可以尝试\renewcommand\jbedafti[1]{\ignorespaces}。在您的示例中,它可以工作。但我不能保证它不会在其他地方删除所需的空间。

答案2

乌尔里克·菲舍尔回答可能更容易实现,另一种解决方案是

\renewcommand\jbedafti[1]{\unskip}

但如果您想解决这个问题的根本原因,您可能需要看看jurabib.bst

原始文件jurabib.bst生成.bbl如下文件

 \jbbibargs {\bibnf {Battenberg} {Friedrich} {F.} {} {}\jbtiafed {\bibfnfont
  {;} \bibenf {Diestelkamp} {Bernhard} {B.} {} {} \edfont {\editorname}}}
  {Friedrich Battenberg} {au} {sexless} {\bibtfont {Urkundenregesten zur
  Tätigkeit des deutschen Königs- und Hofgerichts bis 1451}\bibatsep {}
  \volumeformat {6} Quellen und Forschungen zur h\"ochsten Gerichtsbarkeit im
  alten Reich\bibatsep {} \jbedafti {\edbyname {} Bernhard Diestelkamp,} Die
  K\"onigszeit Karls IV. (1346\,--\,1355~M\"arz),  \apyformat {K\"oln\bibbdsep
  {} 1990}} {\bibhowcited} \jbdoitem {{Battenberg}{Friedrich}{F.}{}{}}
  {{Diestelkamp}{Bernhard}{B.}{}{}} {} \bibAnnoteFile {URH_6}

并且在您的设置中\jbedafti简单地吞下它的单个参数,以便我们最终得到两个空格:一个在其参数之前\jbedafti,另一个在其参数之后。

可以通过将参数后的空格移到jbedafti参数中来删除有问题的空格,如下所示

  alten Reich\bibatsep {} \jbedafti {\edbyname {} Bernhard Diestelkamp, }Die

为此,我们需要编辑一些副本jurabib.bst

  1. 在您的机器上查找(在命令行中jurabib.bst输入)。kpsewhich jurabib.bst

  2. 将文件复制到 BibTeX 可以找到的地方(https://texfaq.org/FAQ-inst-wlcf,与您的文档相同的文件夹就可以了)并将其重命名为jurabib-sp.bst

  3. 打开jurabib-sp.bst并更换

      author empty$ not editor empty$ not and
          { "\jbedafti {\edbyname {} " editor * "," * * "} " * }
          'skip$
      if$
    

    在 ll. 2158-2161FUNCTION {book}

      author empty$ not editor empty$ not and
          { "\jbedafti {\edbyname {} " editor * ", }" * * }
          'skip$
      if$
    
  4. 在文件顶部添加一条简短通知,解释变更内容。包括变更日期和您的姓名。

jurabib.bst和之间的差异jurabib-sp.bst大致如下

--- jurabib.bst 2019-12-17 22:42:13.765457300 +0100
+++ jurabib-sp.bst  2019-12-17 22:31:40.788162100 +0100
@@ -1,3 +1,8 @@
+%%%% jurabib-sp.bst for https://tex.stackexchange.com/q/520746/35864
+%%%% 2019-12-17 MW
+%%%% small edit to the usage of \jbedafti
+%%%%
+%%%% the original file is distributed under GPL v2
 %%
 %% This is file `jurabib.bst',
 %% generated with the docstrip utility.
@@ -2156,7 +2161,7 @@
     { format.btitle "title" output.check }
   if$
   author empty$ not editor empty$ not and
-      { "\jbedafti {\edbyname {} " editor * "," * * "} " * }
+      { "\jbedafti {\edbyname {} " editor * ", }" * * }
       'skip$
   if$
   make.translators output

如果你不想执行这些步骤,你可以jurabib-sp.bsthttps://gist.github.com/moewew/b10236c49c6f574e53910e66cde83e57

然后使用

\bibliographystyle{jurabib-sp}

而不是\bibliographystyle{jurabib}在您的文档中。

\documentclass[]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\usepackage[]{jurabib}

\renewcommand*{\bibatsep}{,}

\begin{filecontents}{\jobname.bib}
@BOOK{URH_6,
  title = {Urkundenregesten zur Tätigkeit des deutschen Königs- und Hofgerichts bis 1451},
  year = {1990},
  editor = {Bernhard Diestelkamp},
  author = {Friedrich Battenberg},
  volume = {6},
  series = {Quellen und Forschungen zur h\"ochsten Gerichtsbarkeit im alten Reich},
  address = {K\"oln},
  howcited = {1},
  shorttitle = {URH~6},
  volumetitle = {Die K\"onigszeit Karls IV. (1346\,--\,1355~M\"arz)}
}
\end{filecontents}
\begin{document}
Test\footcite{URH_6}.

\bibliography{\jobname}
\bibliographystyle{jurabib-sp}
\end{document}

巴滕贝格,弗里德里希;迪斯特尔坎普(Diestelkamp),伯恩哈德(Bernhard)(Hrsg.):关于德国国王和宫廷法院的属性的起源法规,自 1451 年起,第 6 组,关于卡尔四世国王时代旧帝国最高法院属性的来源和研究。 (1346–1355 三月),科隆,1990 年

相关内容