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).
- 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"
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
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
.
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, likefmtlatex
src
-- Top-level repository for all source LaTeX files. Section files are expected to look likesec-XXX.tex
.bak
-- Contains the most recent backup of anything fed throughfmtlatex
bib
-- Directory containing all BibTeX filesfigures
-- Directory containing all figures including .svg vector graphicstemplates
-- Directory for LaTeX templates
submodules
-- Other git repositories that are used by this repopalette-art
-- Submodule that defines Colorbrewer colors for use in LaTeX