Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/seldridge/menus

Repository of food and drink menus created over the years
https://github.com/seldridge/menus

Last synced: about 1 month ago
JSON representation

Repository of food and drink menus created over the years

Awesome Lists containing this project

README

        

# 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](https://inkscape.org) -- used to convert .svg to .eps automatically
* [pdfpc](https://github.com/pdfpc/pdfpc) -- as the default presentation tool
* [impressive](http://impressive.sourceforge.net/) -- 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](https://github.com/organizations/bu-icsg/repositories/new).
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":

```bash
./configure
```

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

```bash
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