
Estoy tratando de producir una bibliografía comentada, con un párrafo de resumen para cada entrada, de modo que el apéndice de cada bibentry aparezca en una nueva línea con un nivel de sangría más profundo que la entrada misma.
Para cada entrada con
addendum = {Text.}
lo siguiente parece funcionar bien y produce exactamente el formato de salida que quiero ver:
addendum = {\paragraph\indent{Text.}\\}
Estoy intentando realizar una conversión automática con lo siguiente:
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=addendum,
match=\regexp{(.*)},
fieldset=addendum,
replace={\\paragraph\{\\indent $1\} \\}
]
}
}
}
Sin embargo, parece que no puedo escapar correctamente los caracteres en el campo de reemplazo y LaTeX produce el error:
Undefined control sequence.
\\ ->\let \reserved@e
\relax \let \reserved@f \relax \@ifstar {\let \reserv...
l.68 }
No puedo entender esto. ¿Estoy definiendo la expresión regular de salida incorrectamente?
EDITAR: Ejemplo de trabajo mínimo:
prueba.bib
@article{test,
author = {Luigi P. Cordella and
Pasquale Foggia and
Carlo Sansone and
Mario Vento},
title = {A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs},
journal = {{IEEE} Trans. Pattern Anal. Mach. Intell.},
volume = {26},
number = {10},
pages = {1367--1372},
year = {2004},
doi = {10.1109/TPAMI.2004.75},
timestamp = {Sat, 12 Mar 2016 09:04:02 +0100},
addendum = {This is a test of simple annotations.}
}
@article{test2,
author = {Luigi P. Cordella and
Pasquale Foggia and
Carlo Sansone and
Mario Vento},
title = {A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs},
journal = {{IEEE} Trans. Pattern Anal. Mach. Intell.},
volume = {26},
number = {10},
pages = {1367--1372},
year = {2004},
doi = {10.1109/TPAMI.2004.75},
timestamp = {Sat, 12 Mar 2016 09:04:02 +0100},
addendum = {\paragraph\indent{\textbf{Annotation:} This is a test of simple annotations using biblatex.}\\}
}
prueba.tex
\documentclass[a4]{article}
\usepackage[backend=biber]{biblatex}
\bibliography{test}
% Sourcemap is placed here.
\begin{document}
Test 1 \cite{test}
Test 2 \cite{test2}
\printbibliography
\end{document}
donde la prueba 1 es la cita previa a la transformación y la prueba 2 es el resultado deseado.
Respuesta1
No es necesario utilizar \DeclareSourcemap
, un simple
\DeclareFieldFormat{addendum}{\paragraph\indent{\textbf{Annotation:}\addspace#1}\\}
es suficiente:
\documentclass{article} % [a4] is not a correct option
\usepackage[english]{babel}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
@article{test,
author = {Luigi P. Cordella and
Pasquale Foggia and
Carlo Sansone and
Mario Vento},
title = {A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs},
journal = {{IEEE} Trans. Pattern Anal. Mach. Intell.},
volume = {26},
number = {10},
pages = {1367--1372},
year = {2004},
doi = {10.1109/TPAMI.2004.75},
timestamp = {Sat, 12 Mar 2016 09:04:02 +0100},
addendum = {This is a test of simple annotations.}
}
@article{test2,
author = {Luigi P. Cordella and
Pasquale Foggia and
Carlo Sansone and
Mario Vento},
title = {A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs},
journal = {{IEEE} Trans. Pattern Anal. Mach. Intell.},
volume = {26},
number = {10},
pages = {1367--1372},
year = {2004},
doi = {10.1109/TPAMI.2004.75},
timestamp = {Sat, 12 Mar 2016 09:04:02 +0100},
addendum = {This is a test of simple annotations using biblatex.}
}
\end{filecontents}
\usepackage[backend=biber]{biblatex}
\usepackage{csquotes} % added
% New format for addendum field
\DeclareFieldFormat{addendum}{\paragraph\indent{\textbf{Annotation:}\addspace#1}\\}
\addbibresource{test.bib} % Not \bibliography{test}
\begin{document}
Test 1 \cite{test}
Test 2 \cite{test2}
\printbibliography
\end{document}
PD = También cambié algunas líneas de código de tu mwe, mira los comentarios.