Biblatex: Сделать отступ во второй строке заголовка Inproceedings?

Biblatex: Сделать отступ во второй строке заголовка Inproceedings?

Я настроил числовой стиль biblatex, чтобы сократить \newblockкоманды для типов записей inproceedings. Следующий шаг — длинные заголовки inproceedings, которые создают вторую строку, должны быть отступлены, так чтобы вторая строка начиналась с начала заголовка в первой строке. Отступ необходим (я думаю) из-за метки "In:" в первой строке.

Итак, с одной стороны, мне нужно знать длину метки «In:», а с другой стороны, я хочу сделать отступ для второй и последующих строк на эту длину.

Вот что у меня есть:

введите описание изображения здесь

И что я хочу:

введите описание изображения здесь

Редактировать: Я забыл упомянуть, что есть несколько разных меток, таких как "In:". Например, "doi:" и "URL:". Кроме того, не все блоки, которые имеют вторую строку, должны иметь отступ. Вместо этого только специально выбранные должны. Извините, что я забыл об этом.

решение1

Вы можете изменить определение списка, используемого средой bibliographybibenvironment, и использовать \widthof(предоставленноеcalcпакет) для расчета необходимого отступа.

\documentclass{article}

\usepackage[block=par]{biblatex}

\usepackage{calc}

\newlength{\longblockindent}
\setlength{\longblockindent}{\widthof{In:~}}

\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
    \printfield{prefixnumber}%
    \printfield{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \addtolength{\leftmargin}{\longblockindent}% NEW
      \setlength{\itemindent}{-\longblockindent}% NEW
      \setlength{\listparindent}{-\longblockindent}% NEW
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

\newcommand*{\sometext}{Lorem ipsum dolor sit amet, consectetuer
    adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
    adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu
    libero, nonummy eget, consectetuer id, vulputate a, magna.}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@inproceedings{A01,
  author = {Author, A.},
  editor = {Buthor, B.},
  year = {2001},
  title = {Alpha},
  booktitle = {\sometext},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\begin{document}

\printbibliography

\end{document}

введите описание изображения здесь

Связанный контент