
Personalizei o estilo numérico do biblatex, a fim de reduzir os \newblock
comandos para entrada de tipos de procedimentos. O próximo passo é que títulos longos de inproceedings, que criam uma segunda linha, sejam recuados, para que a segunda linha comece alinhada com o início do título na primeira linha. O recuo é necessário (eu acho), por causa do rótulo “In:” na primeira linha.
Então, por um lado, preciso saber o comprimento do rótulo "In:" e, por outro lado, quero recuar a segunda linha e as seguintes com esse comprimento.
Aqui está o que eu tenho:
E o que eu quero:
Editar: esqueci de mencionar que existem vários rótulos diferentes como "In:". Por exemplo "doi:" e "URL:". Além disso, nem todos os blocos que possuem uma segunda linha devem ser recuados. Em vez disso, apenas os escolhidos especiais deveriam fazê-lo. Desculpe, esqueci disso.
Responder1
Você poderia modificar a definição da lista usada pelo bibliography
bibenambiente e uso \widthof
(fornecida pelocalc
pacote) para calcular o recuo necessário.
\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}