
Ich versuche, eine kommentierte Bibliografie mit einem zusammenfassenden Absatz für jeden Eintrag zu erstellen, sodass der Nachtrag für jeden Eintrag in einer neuen Zeile eine Einrückungsebene tiefer als der Eintrag selbst erscheint.
Für jeden Eintrag mit
addendum = {Text.}
Folgendes scheint gut zu funktionieren und erzeugt genau das Ausgabeformat, das ich sehen möchte:
addendum = {\paragraph\indent{Text.}\\}
Ich versuche, eine automatische Konvertierung wie folgt durchzuführen:
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=addendum,
match=\regexp{(.*)},
fieldset=addendum,
replace={\\paragraph\{\\indent $1\} \\}
]
}
}
}
Allerdings gelingt es mir nicht, die Zeichen im Ersetzungsfeld richtig zu maskieren, und LaTeX erzeugt den Fehler:
Undefined control sequence.
\\ ->\let \reserved@e
\relax \let \reserved@f \relax \@ifstar {\let \reserv...
l.68 }
Ich komme damit nicht klar – definiere ich den Ausgabe-Regex falsch?
BEARBEITEN: Minimales funktionierendes Beispiel:
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 = {\paragraph\indent{\textbf{Annotation:} This is a test of simple annotations using biblatex.}\\}
}
test.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}
wobei Test 1 die Zitierung vor der Transformation und Test 2 die gewünschte Ausgabe ist.
Antwort1
Sie müssen nicht verwenden \DeclareSourcemap
, ein einfaches
\DeclareFieldFormat{addendum}{\paragraph\indent{\textbf{Annotation:}\addspace#1}\\}
ist ausreichend:
\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}
PS = Ich habe auch einige Codezeilen Ihres MWE geändert, siehe Kommentare.