
Estoy usando biblatex+biber y quiero lograr que después de imprimir los autores debe comenzar una nueva línea, luego se debe imprimir el título y nuevamente debe comenzar una nueva línea, donde el resto se imprime como de costumbre. Estesoluciónse acerca a mi problema, sin embargo, uso el estilo predeterminado y el título todavía no está en una línea separada.
Aquí hay un ejemplo
Author1, Author2, and Author3. Title. In: Proceedings. Ed. John Doe. World. 2017
y como debería verse
Author1, Author2, and Author3.
Title.
In: Proceedings. Ed. John Doe. World. 2017
A continuación se muestra un ejemplo de trabajo mínimo:
\documentclass{scrartcl}
\usepackage{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@inproceedings{inProc,
author = {Author11 and Author12 and Author13},
editor = {Editor1},
title = {Title1},
booktitle = {Booktitle1},
year = {2017},
pages = {50--67},
publisher = {Publisher1}
}
@article{article,
author = {Author21 and Author22},
title = {Title2},
journal = {Journal2},
year = {2007},
volume = {29},
number = {5},
pages = {29:1--29:27}
}
@book{book,
author = {Author31},
title = {Title3},
year = {1970},
publisher = {Publisher3}
}
@incollection{inCollection,
author = {Author4},
title = {Title4},
booktitle = {Booktitle4},
pages = {843--993},
editor = {Editor4},
chapter = {15},
volume = {B},
series = {Series4},
publisher = {Publisher4},
year = {1990}
}
@techreport{techreport,
author = {Author5},
institution = {Institution5},
number = {Number5},
pages = {Pages5},
title = {Title5},
year = {5}
}
@phdthesis{phdthesis,
author = {Author6},
title = {Title6},
school = {School6},
month = {Month6},
publisher = {Publisher6},
address = {Address6},
year = {6}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Respuesta1
El primer paso es
\DeclareDelimFormat[bib]{nametitledelim}{\newline\bibsentence}
para obtener una nueva línea después de los nombres.
Entonces necesitas algo para saltar a una nueva línea después del título. Desafortunadamente, no hay ningún delimitador estándar para redefinir aquí. La forma más sencilla que funcionó para todos los tipos de entrada fue la siguiente
\usepackage{xpatch}
\makeatletter
\def\do#1{
\ifcsdef{blx@bbx@#1}
{\xpatchbibdriver{#1}
{\printlist{language}%
\newunit\newblock}
{\printlist{language}%
\printunit{\newline\bibsentence}}
{}{}}
{}}
\abx@doentrytypes
\makeatother
Esto agrega una nueva línea después del idioma, que en todos los controladores estándar aparece justo después del título. Usamos el xpatch
paquete para cambiar los controladores de bibliografía y aplicar el cambio a todos los controladores con un bucle ( \abx@doentrytypes
es una macro interna que recorre todos).
MWE
\documentclass{scrartcl}
\usepackage{biblatex}
\usepackage{filecontents}
\DeclareDelimFormat[bib]{nametitledelim}{\newline\bibsentence}
\usepackage{xpatch}
\makeatletter
\def\do#1{
\ifcsdef{blx@bbx@#1}
{\xpatchbibdriver{#1}
{\printlist{language}%
\newunit\newblock}
{\printlist{language}%
\printunit{\newline\bibsentence}}
{}{}}
{}}
\abx@doentrytypes
\makeatother
\begin{filecontents*}{\jobname.bib}
@inproceedings{inProc,
author = {Author11 and Author12 and Author13},
editor = {Editor1},
title = {Title1},
booktitle = {Booktitle1},
year = {2017},
pages = {50--67},
publisher = {Publisher1}
}
@article{article,
author = {Author21 and Author22},
title = {Title2},
journal = {Journal2},
year = {2007},
volume = {29},
number = {5},
pages = {29:1--29:27}
}
@book{book,
author = {Author31},
title = {Title3},
year = {1970},
publisher = {Publisher3}
}
@incollection{inCollection,
author = {Author4},
title = {Title4},
booktitle = {Booktitle4},
pages = {843--993},
editor = {Editor4},
chapter = {15},
volume = {B},
series = {Series4},
publisher = {Publisher4},
year = {1990}
}
@techreport{techreport,
author = {Author5},
institution = {Institution5},
number = {Number5},
pages = {Pages5},
title = {Title5},
year = {5}
}
@phdthesis{phdthesis,
author = {Author6},
title = {Title6},
school = {School6},
month = {6},
publisher = {Publisher6},
address = {Address6},
year = {6}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Una solución alternativa a una bibliografía vaga como esta block=par
se analiza enEstilo de bibliografía para BibLaTeX similar a BibTeX+Beamer.
Respuesta2
La siguiente solución sólo dará el resultado deseado, si todas las entradas tienen "In:", por ejemplo, para artículos sin revista, no habrá una nueva línea.
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Neu93,
author = {John von Neumann},
title = {First Draft of a Report on the EDVAC},
journaltitle = {IEEE Ann. Hist. Comput. },
date = {1993},
volume = {15},
number = {4},
pages = {27--75},
}
\end{filecontents*}
\usepackage{biblatex}
\renewcommand*{\labelnamepunct}{\newunitpunct\par}
\renewbibmacro{in:}{\newline In:}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}