Skip to content

Base environment for building LaTeX papers, presentations, and posters

Notifications You must be signed in to change notification settings

bu-icsg/latex-base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Base LaTeX Build Environment

This is a bare-bones environment for building LaTeX documents and presentations driven by latexmk and loosely based on Chris Batten's Automatic LaTeX Build System (but not using Chris' custom Ruby dependency chaser).

Optional Dependencies

  • Inkscape -- used to convert .svg to .eps automatically
  • pdfpc -- as the default presentation tool
  • impressive -- as an alternative presentation tool
  • pdftotext -- to run some checks on the generated PDF, e.g., looking for "TODO"

ICSG-specific Setup

Clone this repository (where $PAPER_NAME is the name of this paper):

git clone --origin upstream [email protected]:bu-icsg/latex-base $PAPER_NAME

Create a new repository on GitHub for your paper called $PAPER_NAME. You can just use this link. Add this remote repository, call it "origin", and push your initial changes using the -u option to make this the default push/pull target:

cd $PAPER_NAME
git remote add origin [email protected]:bu-icsg/$PAPER_NAME
git push -u origin master

Overview

This repository is intended to build four targets:

  • A LaTeX paper
  • A Beamer presentation with overlays (pseudo-animations/reveals)
  • A Beamer handout (the presentation without overlays)
  • A Beamer poster

First, you must edit CONFIG.m4 to define the name of the top level paper, presentation, and poster LaTeX files. Edit CONFIG.m4 changing the defines to point to the names of your top-level source files (e.g., mypaper, mypresentation). The Makefile expects to see corresponding LaTeX source files in the src directory (e.g., src/mypaper.tex). You can then get everything setup with the "not really a configure script":

./configure

This will populate a template Makefile with your defined paper/presentation. You can then just use make:

make

You may optionally use the format-build target by manually changing Makefile.in. This feeds all input files in the src directory that look like ^.*?sec-.+?\.tex (things like sec-introduction.tex) through Andrew Stacey's fmtlatex. This forcibly rewrites all input files into a one-sentence-per-line format. This format is strongly preferable when version controlling LaTeX files and helps avoid a one word modification from turning into a complete paragraph rewrite due to compulsive paragraphing reflow habits, e.g., emacs M-q tic. I have yet to encounter this breaking anything, but it is possible. All files are first backed up in src/bak.

Directory Structure

  • build -- Main build directory where all output files will be written. This includes .eps files generated by Inkscape. You should reference this directory when including .eps graphics.
  • scripts -- Defines certain helper build scripts, like fmtlatex
  • src -- Top-level repository for all source LaTeX files. Section files are expected to look like sec-XXX.tex.
    • bak -- Contains the most recent backup of anything fed through fmtlatex
    • bib -- Directory containing all BibTeX files
    • figures -- Directory containing all figures including .svg vector graphics
    • templates -- Directory for LaTeX templates
  • submodules -- Other git repositories that are used by this repo
    • palette-art -- Submodule that defines Colorbrewer colors for use in LaTeX

About

Base environment for building LaTeX papers, presentations, and posters

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published