使用 BibLaTeX 的参考书目间距(和两列)

使用 BibLaTeX 的参考书目间距(和两列)

我需要微调下图中标记为 A、B、C 和 D 的距离。有什么建议吗?

具体来说,我希望 B=0pt,并且其他三个都较小。

我正在使用 BibLaTeX 和两列:

\usepackage[backend=biber]{biblatex}
\usepackage{multicol}
...
\renewcommand{\bibfont}{\small}
\begin{multicols}{2}
    \printbibliography[heading=subbibliography]
\end{multicols}

距离

答案1

为了完整起见:如果想要以双列模式排版参考书目,但将参考书目标题保留为单列,请按以下步骤操作:

\begin{multicols}{2}[\printbibheading]
\printbibliography[heading=none]
\end{multicols}

答案2

一切都可以通过调整 biblatex 定义的长度和计数器来调整,请参阅§ 3.8.3 长度和计数器biblatex 文档,它清楚地解释了一切。 \bibhang处理 B 和 D,而\biblabelsep处理 C。对于 A 因素,它与参考书目标题的样式相关。

答案3

为了完整性,下面是一个包含各种参数的实用解决方案。请注意,\columnsep 设置在底部。

\documentclass[a4paper,11pt]{article}

\usepackage[margin=2cm]{geometry}
\usepackage{multicol}

\usepackage[english]{babel}
\usepackage{blindtext}

\usepackage[backend=biber]{biblatex}
    % To make biber work:
    \makeatletter
    \providecommand\bibstyle@faked{}
    \providecommand\bibdata@faked{}
    \AtBeginDocument{%
    \immediate\write\@mainaux{\noexpand\bibstyle@faked}%
    \immediate\write\@mainaux{\noexpand\bibdata@faked}}
    \makeatother

\defbibenvironment{bibliography}
    {\list
        {\printfield[labelnumberwidth]{labelnumber}}
        {\setlength{\labelwidth}{\labelnumberwidth}
        \setlength{\leftmargin}{10pt}
        \setlength{\labelsep}{4pt}
        \addtolength{\leftmargin}{\labelsep}
        \setlength{\itemsep}{0pt}
        \setlength{\parsep}{\bibparsep}}
        \renewcommand*{\makelabel}[1]{\hss##1}}
    {\endlist}
    {\item}

\bibliography{biblatex-examples}

\begin{document}

    \blindtext \nocite{*}

    \setlength{\columnsep}{12pt}
    \begin{multicols}{2}
        \renewcommand{\bibfont}{\small}
        \printbibliography[heading=subbibliography]
    \end{multicols}

\end{document}

相关内容