[Tex/LaTex] How to make an annotated bibliography

bibliographies

I have to make an annotated bibliography but frankly this is my first time doing something like this and the solutions online either a) Don't work or b) fly right over my head as such the annotated bibliography needs to looks as follows:

enter image description here

PLEASE PLEASE help anyone!! How Do I achieve this? Here is my current bib file:

@inproceedings{marolt2002neural,
  title={Neural networks for note onset detection in piano music},
  author={Marolt, Matija and Kavcic, Alenka and Privosnik, Marko},
  booktitle={Proceedings of the International Computer Music Conference},
  year={2002}
}

@inproceedings{marolt2000transcription,
  title={Transcription of polyphonic piano music with neural networks},
  author={Marolt, Matija},
  booktitle={Electrotechnical Conference, 2000. MELECON 2000. 10th Mediterranean},
  volume={2},
  pages={512--515},
  year={2000},
  organization={IEEE}
}

@inproceedings{bock2012polyphonic,
  title={Polyphonic piano note transcription with recurrent neural networks},
  author={Bock, S and Schedl, Markus},
  booktitle={Acoustics, Speech and Signal Processing (ICASSP), 2012 IEEE International Conference on},
  pages={121--124},
  year={2012},
  organization={IEEE}
}

@inproceedings{costantini2010svm,
  title={SVM based transcription system with short-term memory oriented to polyphonic piano music},
  author={Costantini, Giovanni and Todisco, Massimiliano and Perfetti, Renzo and Basili, Roberto and Casali, Daniele},
  booktitle={MELECON 2010-2010 15th IEEE Mediterranean Electrotechnical Conference},
  pages={196--201},
  year={2010},
  organization={IEEE}
}

@inproceedings{nava2004convolutional,
  title={A convolutional-kernel based approach for note onset detection in piano-solo audio signals},
  author={Nava, Gabriel Pablo and Tanaka, Hidehiko and Ide, Ichiro},
  booktitle={Int. Symp. Musical Acoust. ISMA},
  pages={289--292},
  year={2004}
}

@inproceedings{dixon2001learning,
  title={Learning to detect onsets of acoustic piano tones},
  author={Dixon, Simon},
  booktitle={Proceedings of the Workshop on Current Directions in Computer Music Research},
  pages={147--151},
  year={2001}
}

@article{poliner2006discriminative,
  title={A discriminative model for polyphonic piano transcription},
  author={Poliner, Graham E and Ellis, Daniel PW},
  journal={EURASIP Journal on Advances in Signal Processing},
  volume={2007},
  year={2006},
  publisher={Hindawi Publishing Corporation}
}

Here is my .tex file:

\documentclass{article}

\begin{document}
\maketitle
\newpage
\bibliographystyle{plain-annote}
\bibliography{sample}

\cite{marolt2002neural}

\end{document}

Best Answer

My inclination would not be to keep everything in the .bib file because of the specific formatting you seem to want. If the fields your example shows will be used of every single entry, without question, then something as simple as (assuming the use of biblatex)

\newcommand{\annote}[5]{%
  \begingroup
  \parindent 0pt%
  \hangafter 1%
  \hangindent 1em%
  \cite{#1}\space \fullcite{#1}\par
  \begin{quote}
  \textbf{Aim:}\quad #2\par%
  \textbf{Style/Type:}\quad #3\par%
  \textbf{Cross References:}\quad #4\par%
  \textbf{Summary:}\quad #5\par%
\end{quote}%
\endgroup
}

would work. Then all you use is something like:

\annote{marolt2002neural}
{To demonstrate the merit of inverse reinforcement learning techniques in deriving a probability distribution over a space of reward functions, given expert training data.}
{Conference Paper/Theoretical.}
{Algorithms and techiniques from this paper are employed by \cite{bock2012polyphonic}}
{In this paper \ldots}

But maybe the fields aren't static, and maybe this way is hard to remember which argument is for 'style' and which is the 'cross-reference' one. And maybe not all fields will be used for every entry. If you need flexibility, a "key-value" approach is better. Here you have lots of options. Here's one way:

\usepackage{xparse}
\ExplSyntaxOn
% set up the keys 'aim', 'style', 'xref', and 'summary'
\keys_define:nn { annotation }
 {
  % setup
  aim     .tl_set:N = \l_ann_aim_tl,
  style   .tl_set:N = \l_ann_style_tl,
  xref    .tl_set:N = \l_ann_xref_tl,
  summary .tl_set:N = \l_ann_summary_tl,
  % default values:
  aim     .initial:n = TODO!,
  style   .initial:n = TODO!,
  xref    .initial:n = [none],
  summary .initial:n = TODO!,
 }

% set the keys
\NewDocumentCommand{\annoteinfo}{ m }
 {
  \keys_set:nn { annotation } { #1 }
 }

% print and format the keys
\NewDocumentCommand{\printentry} {mm}
{
  \begingroup
  % how things should look:
  \parindent0pt \hangafter 1 \hangindent 1em%
  % provide the citation:
  \cite{#2}\space \fullcite{#2}\par
  % the keys will be used inside the quote environment
  \begin{quote}
  \annoteinfo{#1}
    \textbf{Aim:}\quad              \l_ann_aim_tl\par
    \textbf{Style:}\quad            \l_ann_style_tl\par
    \textbf{Cross-references:}\quad \l_ann_xref_tl\par
    \textbf{Summary:}\quad          \l_ann_summary_tl\par
  \end{quote}
  \endgroup
}

\ExplSyntaxOff

And so, putting it all together:

\documentclass{article}
% the following is used to make the example self-contained:
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@inproceedings{marolt2002neural,
  title={Neural networks for note onset detection in piano music},
  author={Marolt, Matija and Kavcic, Alenka and Privosnik, Marko},
  booktitle={Proceedings of the International Computer Music Conference},
  year={2002}
}

@inproceedings{marolt2000transcription,
  title={Transcription of polyphonic piano music with neural networks},
  author={Marolt, Matija},
  booktitle={Electrotechnical Conference, 2000. MELECON 2000. 10th Mediterranean},
  volume={2},
  pages={512--515},
  year={2000},
  organization={IEEE}
}

@inproceedings{bock2012polyphonic,
  title={Polyphonic piano note transcription with recurrent neural networks},
  author={Bock, S and Schedl, Markus},
  booktitle={Acoustics, Speech and Signal Processing (ICASSP), 2012 IEEE International Conference on},
  pages={121--124},
  year={2012},
  organization={IEEE}
}

@inproceedings{costantini2010svm,
  title={SVM based transcription system with short-term memory oriented to polyphonic piano music},
  author={Costantini, Giovanni and Todisco, Massimiliano and Perfetti, Renzo and Basili, Roberto and Casali, Daniele},
  booktitle={MELECON 2010-2010 15th IEEE Mediterranean Electrotechnical Conference},
  pages={196--201},
  year={2010},
  organization={IEEE}
}

@inproceedings{nava2004convolutional,
  title={A convolutional-kernel based approach for note onset detection in piano-solo audio signals},
  author={Nava, Gabriel Pablo and Tanaka, Hidehiko and Ide, Ichiro},
  booktitle={Int. Symp. Musical Acoust. ISMA},
  pages={289--292},
  year={2004}
}

@inproceedings{dixon2001learning,
  title={Learning to detect onsets of acoustic piano tones},
  author={Dixon, Simon},
  booktitle={Proceedings of the Workshop on Current Directions in Computer Music Research},
  pages={147--151},
  year={2001}
}

@article{poliner2006discriminative,
  title={A discriminative model for polyphonic piano transcription},
  author={Poliner, Graham E and Ellis, Daniel PW},
  journal={EURASIP Journal on Advances in Signal Processing},
  volume={2007},
  year={2006},
  publisher={Hindawi Publishing Corporation}
}
\end{filecontents*}

\usepackage[T1]{fontenc}
\usepackage[backend=biber, style=alphabetic]{biblatex}
\addbibresource{\jobname.bib}

\usepackage{xparse}

% If the fields are all required and are always the same
\newcommand{\annote}[5]{%
  \begingroup
  \parindent 0pt%
  \hangafter 1%
  \hangindent 1em%
  \cite{#1}\space \fullcite{#1}\par
  \begin{quote}
  \textbf{Aim:}\quad #2\par%
  \textbf{Style/Type:}\quad #3\par%
  \textbf{Cross References:}\quad #4\par%
  \textbf{Summary:}\quad #5\par%
\end{quote}%
\endgroup
}

% If the fields are not all required...
\ExplSyntaxOn
\keys_define:nn { annotation }
 {
  % setup
  aim     .tl_set:N = \l_ann_aim_tl,
  style   .tl_set:N = \l_ann_style_tl,
  xref    .tl_set:N = \l_ann_xref_tl,
  summary .tl_set:N = \l_ann_summary_tl,
  % defaults (change as needed)
  aim     .initial:n = TODO!,
  style   .initial:n = TODO!,
  xref    .initial:n = [none],
  summary .initial:n = TODO!,
 }


\NewDocumentCommand{\annoteinfo}{ m }
 {
  \keys_set:nn { annotation } { #1 }
 }

\NewDocumentCommand{\printentry} {mm}
{
  \begingroup
  % the next line does most of the visual formatting...
  \parindent0pt \hangafter 1 \hangindent 1em%
  \cite{#2}\space \fullcite{#2}\par
  % annotations are in the following environment...
  \begin{quote}
  \annoteinfo{#1}
    \textbf{Aim:}\quad              \l_ann_aim_tl     \par
    \textbf{Style:}\quad            \l_ann_style_tl   \par
    \textbf{Cross-references:}\quad \l_ann_xref_tl    \par
    \textbf{Summary:}\quad          \l_ann_summary_tl \par
  \end{quote}
  \endgroup
}

\ExplSyntaxOff

\begin{document}% ---------------------------------------------------

% These two entries are done the 'easy' way
\annote{marolt2002neural}
{To demonstrate the merit of inverse
  reinforcement learning techniques in deriving a probability
  distribution over a space of reward functions, given expert training
  data.}
{Conference Paper/Theoretical.}
{Algorithms and techiniques from
this paper are employed by \cite{bock2012polyphonic}}
{In this paper \ldots}

\annote{marolt2000transcription}
{Aim}
{Style}
{Cross-reference}
{Summary}

% these are the key-value entries
\printentry{
aim={To demonstrate things},
summary={This is the abstract},
}
{bock2012polyphonic}


\printentry{
style={Conference proceedings}
}
{costantini2010svm}

\printentry{
style={Info on style},
summary={Summary information goes here},
}
{nava2004convolutional}

\printentry{
aim={1},
style={2},
xref={3},
summary={4}}
{dixon2001learning}

\printentry{
aim={5},
style={6},
%xref={7},
summary={8}}
{poliner2006discriminative}


% this is how a bibliography is printed with biblatex
%\printbibliography

\end{document}

Note: This answer relies on biblatex (and biber, though it is not needed in this case) because it conveniently includes a \fullcite command.

Related Question