Skip to content

MooersLab/modular-annotated-bibliography-bibtex-latex

Repository files navigation

Version License: MIT

Template for making an enhanced annotated and illustrated bibliography with BibTeX in LaTeX

What is this? Annotated bibliography on steroids

An annotated bibliography summarizes notes about papers being read during a research project. It is one of several methods for working with the knowledge gleaned from reading.

Screenshot 2024-10-24 at 1 40 36 PM

This modular form enables the reuse of entries in annotated bibliographies for related projects. It has the following enhanced features that the classic annotated bibliography lacks:

  • No longer restrained by the annote field in BibTeX, which removes whitespaces, including blank lines between paragraphs.
  • Modular entries for easy reuse in related projects.
  • Images.
  • Tables.
  • Equations.
  • Code blocks.
  • Hyperlinks: internal and external.
  • Bibliographic entries can be reordered for subgrouping by category.
  • Table of contents, hyperlinked to sections
  • Index of terms.
  • Bibliography includes papers cited outside those listed in the annotated bibliography.
  • List of acronyms used.
  • List of glossary terms used.
  • List of mathematical notation.

Screenshot 2024-10-24 at 1 41 09 PM

Why LaTeX

It is the gold standard for typesetting scientific documents. This template can be used on Overleaf. It can also be used collaboratively online in Overleaf.

Drag-N-Drop install instructions for Overleaf.com

This is the fastest way to explore the features of this template. The files in overleaf-drag-n-drop.zip have been configured to run on Overleaf.

  1. Download the zip file: Modular-Annotated-Bibliography-BibTeX-Overleaf.zip.
  2. Upload this zip file into a new project on Overleaf.

The file mabib0573.tex will compile automatically to a PDF. The compile job should be free of warnings. The index and glossaries should be populated.

Local installation instructions

One-time directory creation

The modular bibliographic notes are stored in folders at the top level in the home directory. The global.bib file is stored in ~/Documents. Adjust the location and run the following:

mkdir ~/glossaries
mkdir ~/bibNotes
mkdir ~/imagesBlaine # Rename 

Bash Function to generate subfolder with required files

Edit the file paths as needed. Takes a project ID as the only argument. Assumes that the following folders are in you home directory:

  • bibNotes
  • glossaries
  • imagesBlaine

Customize the name of the last folder.

Run from the top level of your writing project directory. Upon reuse, delete the cp -R commands to avoid overwriting existing files.

function mabtex {
echo "Create a modular annotated bibliography (mab) subfolder and populate with required files with project number in the title."
if [ $# -lt 1 ]; then
  echo 1>&2 "$0: not enough arguments"
  echo "Usage1: mabibtex projectIndexNumber"
  return 2
elif [ $# -gt 1 ]; then
  echo 1>&2 "$0: too many projectIndexNumber"
  echo "Usage1: mabtex projectIndexNumber"
  return 2
fi
projectID="$1"
mkdir mab$1
cp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/compile.sh ./mab$1/.
cp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/apacannx.bst ./mab$1/.
cp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/mab0519.bib ./mab$1/mab$1.bib
cp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/mab0519.tex ./mab$1/mab$1.tex
cp -R ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/glossaries/glossary.tex ~/glossaries/.
cp -R ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/bibNotes ~/glossary/.
cp -R ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/notation.tex ~/glossary/.
cp -R ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/bibNotes/* ~/bibNotes/.
cp -R ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-bibtex-latex/imagesBlaine/* ~/imagesBlaine/.
}

Installation

  1. git clone this project to your software directory
  2. Copy the bash function and paste into your .bashrc or .zshrc file.
  3. source .bashrc or .zshrc
  4. cd project directory
  5. mabtex <projectID> to create subfolder for the annotated bibliography files.

Use

  1. Create one tex file per reference in the bibNotes folder.

    • Use the supplied examples as templates.
    • Use the citekey from BibLaTeX as the name of the bibNote file.
    • Use a blank line between paragraphs.
    • Note that text-wrapping figures is easier than text-wrapping tables.
    • Skip text-wrapping if it is too tedious.
    • As you work, add
      • figures
      • tables
      • equations
      • URLs (including links to videos)
      • citekeys to references in and out of the annotated bibliography
      • index macros
      • acronyms
      • glossary terms
      • math notation
  2. Use the citekey as the argument of the \bibentry macro inside a new subsection heading. This will inject the bibliography entry upon export to PDF.

  3. Using the section and subsection macros, you can cluster citations by topic and subtopic. You can lower the heading level to the subsubsection level for the bibliographic entry if you need the subsection heading for subgroups.

  4. The colored boxes indicate hyperlinks. Comment out the hyperref package in the preamble to disable.

  5. The \glsaddall command prints out the entire contents of a glossary file rather than only the entries used in the bibNote files.

  6. Compile to HTML to enjoy the output in your web browser.

  7. Compile to PDF to print and edit while traveling or away from the computer.

  8. Compiles locally with the full installation of texlive.

  9. Compiles in Textmate.app with the Option-R command or command-B in Sublime Text or C-c C-a in Emacs.

Format re-ordered list of citekeys

The script texList2inputs.py depends only on standard modules. It prepares a list of citekeys for inclusion in the body of the master main.tex file (labeled mabib0573.tex here). This eases reordering long lists of entries. Sample input papersAboutCoding.tex and output citations.tex files are provided.

Status:

Ready to use and enjoy on Overleaf. Works without warnings when using pdflatex, version 2024.

Running locally may require troubleshooting your LaTeX setup or your text editor's configuration for LaTeX.

Coming soon

  • Variants for org-mode.

Sources of funding

  • NIH: R01 CA242845
  • NIH: R01 AI088011
  • NIH: P30 CA225520 (PI: R. Mannel)
  • NIH: P20 GM103640 and P30 GM145423 (PI: A. West)

Update history

Version Changes Date
0.1 Initial commit. 2024 October 24
0.2 Edited folder names in bash script to be consistent with the analogous Typst project. 2024 October 27
0.3 Added working version of texList2inputs.py. 2024 October 29