如何重置两次调用 \printbibliography 之间的水平间距?

如何重置两次调用 \printbibliography 之间的水平间距?

考虑以下代码:

\begin{filecontents}{biblio.bib}
  @article{Key1,
    title = {First title},
    author = {First author},
    shorthand = {ShortHand},
    keywords = {shorthanded}
  }

  @article{Key2,
    title = {Second title},
    author = {Second author}
  }
\end{filecontents}

\documentclass{article}

\usepackage[style=numeric]{biblatex}

\addbibresource{biblio.bib}

\begin{document}

My text cites both \cite{Key1} and \cite{Key2}.

\printbibliography[keyword=shorthanded]

\printbibliography[notkeyword=shorthanded]

\end{document}

这里我打印了两个通过关键词区分的不同参考书目,而第一种条目恰好是用简写(会议名称)引用的。

从输出中可以看出,由于第一个参考书目中的速记而产生的较大间距在打印第二个参考书目时得以保留。

输出

这在 MWE 中看起来不错,但在我的真实文档中,两个参考书目无论如何都是打印在不同的页面上(一个book类别中的不同章节*),因此不需要垂直对齐,而第二个中浪费的水平空间很烦人而且没用。

我如何重置第二次调用\printbibliography以便独立为其条目保留正确的水平空间?

答案1

您可以使用biblatex的选项locallabelwidth=true

我还建议使用\printshorthands而不是\printbibliography[keyword=shorthanded]。事实上,你可以完全放弃声明这样的关键字。例如,参见这个lockstep 的回答,并入下文。

\begin{filecontents}{biblio.bib}
  @article{Key1,
    title = {First title},
    author = {First author},
    shorthand = {ShortHand},
  }

  @article{Key2,
    title = {Second title},
    author = {Second author}
  }
\end{filecontents}

\documentclass{article}

\usepackage[style=numeric,locallabelwidth=true]{biblatex}

% from https://tex.stackexchange.com/a/44436/105447
\defbibcheck{noshorthand}{%
  \iffieldundef{shorthand}{}{\skipentry}%
}

\addbibresource{biblio.bib}

\begin{document}

My text cites both \cite{Key1} and \cite{Key2}.

\printshorthands

\printbibliography[check=noshorthand]

\end{document}

在此处输入图片描述

相关内容