自定义 biblatex 生成的参考书目列表

自定义 biblatex 生成的参考书目列表

我使用 BibLaTeX 进行书目管理,bibstyle=gost-numeric这并不常见,但问题与更常见的相同bibstyle=numeric。我希望用 生成的列表\printbibliography具有以下属性:每个列表条目的文本应以特定的(固定的)水平移位显示。我需要它与书目标题对齐。

目前,它有点未能对齐,正如您在此处看到的那样:

在此处输入图片描述

(我正在使用自定义parindent)。有什么想法可以实现这一点吗?

MWE 如下

\documentclass [fontsize=14pt, paper=a4, pagesize, DIV=calc] {scrartcl}

\usepackage[english,russian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}

\usepackage{paratype}
\usepackage{indentfirst}

\usepackage{csquotes}
\usepackage[
  backend=biber,
  hyperref=auto,
  language=auto,
  citestyle=numeric,
  bibstyle=numeric,
]{biblatex}
\addbibresource{biblio.bib}

\newlength\MyIndent
\setlength\MyIndent{1.25cm}
\setlength{\parindent}{\MyIndent}
\addtokomafont{sectioning}{\hspace{\MyIndent}}

\begin{document}

\addsec{Заключение}
We hope you find write\LaTeX\ useful, and please let us know if you have any feedback using the help menu above.

Помните, что на все пункты списка литературы должны быть ссылки. \LaTeX\ просто не добавит информацию об издании из bib-файла, если на это издание нет ссылки в тексте.

Для дальнейшего изучения \LaTeX\ рекомендуем книгу Львовского~\autocite{Lvo2003}.%~\autocite{BrPi2005}

\printbibliography
\end{document}

biblio.bib:

@MVBOOK{Lvo2003,
  author = {Львовский, Сергей Михайлович},
  title = {Набор и вёрстка в системе \LaTeX},
  year = {2006},
  language = {russian},
  publisher = {МЦНМО},
  location = {М.},
  hyphenation = {russian},
  url = {http://www.mccme.ru/free-books/llang/newllang.pdf}
}

答案1

您需要重新定义bibliography环境来实现您的目标。

因此,在你的序言中添加以下几行

\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
    \printfield{prefixnumber}%
    \printfield{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\dimexpr1.25cm-\labelwidth\relax}% <----- default is \biblabelsep
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

它适用于numericbibstyle 和 one gost-numeric,因为两者具有相同的原始定义。

MWE(注意babel必须加载 fontenc

\documentclass [fontsize=14pt, paper=a4, pagesize, DIV=calc] {scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[english,russian]{babel}

\usepackage{paratype}
\usepackage{indentfirst}

\usepackage{csquotes}
\usepackage[
  backend=biber,
  hyperref=auto,
  language=auto,
  citestyle=numeric,
  bibstyle=numeric,
]{biblatex}
\addbibresource{biblio.bib}

\newlength\MyIndent
\setlength\MyIndent{1.25cm}
\setlength{\parindent}{\MyIndent}
\addtokomafont{sectioning}{\hspace{\MyIndent}}

\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
    \printfield{prefixnumber}%
    \printfield{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\dimexpr1.25cm-\labelwidth\relax}% <----- default is \biblabelsep
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

\begin{document}

\addsec{Заключение}
We hope you find write\LaTeX\ useful, and please let us know if you have any feedback using the help menu above.

Помните, что на все пункты списка литературы должны быть ссылки. \LaTeX\ просто не добавит информацию об издании из bib-файла, если на это издание нет ссылки в тексте.

Для дальнейшего изучения \LaTeX\ рекомендуем книгу Львовского~\autocite{Lvo2003}.%~\autocite{BrPi2005}

\printbibliography
\end{document} 

输出

在此处输入图片描述

相关内容