
私は、inproceedings のエントリ タイプのコマンドを減らすために、biblatex の数値スタイルをカスタマイズしました\newblock
。次のステップは、2 行目を作成する inproceedings の長いタイトルをインデントして、2 行目が 1 行目のタイトルの先頭と揃うようにすることです。インデントは、1 行目の "In:" ラベルのために必要だと思います。
したがって、一方では「In:」ラベルの長さを知る必要があり、他方では 2 行目以降をこの長さでインデントする必要があります。
私が持っているものは次のとおりです:
そして私が望むもの:
編集: 言及するのを忘れていましたが、「In:」のようなラベルがいくつかあります。たとえば、「doi:」や「URL:」などです。さらに、2 行目があるすべてのブロックをインデントする必要はありません。代わりに、特別に選択されたブロックのみをインデントする必要があります。申し訳ありませんが、それを忘れていました。
答え1
bibenvironmentで使用されるリストの定義を変更しbibliography
、\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}