
我自訂了biblatex的數字樣式,以減少\newblock
程式中輸入類型的命令。下一步是,應縮排建立第二行的長標題,以便第二行的開頭與第一行標題的開頭對齊。縮排是必要的(我認為),因為第一行中有“In:”標籤。
因此,一方面我需要知道「In:」標籤的長度,另一方面想要將第二行和後續行縮排這個長度。
這是我所擁有的:
我想要什麼:
編輯:我忘了提及,有幾個不同的標籤,例如「In:」。例如“doi:”和“URL:”。此外,並非所有具有第二行的區塊都應該縮排。相反,只有特殊選擇的人才應該這麼做。抱歉,我忘了。
答案1
您可以修改 bib 環境所使用的清單的定義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}