DockLatex
Requirements
Goals
DockLatex offers an easy way to create, build and publish LaTeX documents.
The goals of this project are:
- Automate as much as possible, by using a Makefile or a Taskfile;
- To be agnostic of operating system;
- Provide an easy way to publish documents using 'Github Actions'.
Usage
To build a document once
This will try to convert the INPUT
file into a PDF file.
task build INPUT=src/sample/index.tex
make build INPUT=src/sample/index.tex
To watch a document and enable hot reload/rebuild
Continually update the PDF files whenever changes are made to source files.
task watch INPUT=src/sample/index.tex
make watch INPUT=src/sample/index.tex
To run some checks
This will run lacheck, chktex and latexindent on all the .tex
files recursively.
task lint INPUT=src/sample/index.tex
make lint INPUT=src/sample/index.tex
To remove build files
This will delete the build/
directory, deleting all the resulting PDF files that
were generated.
task clean
make clean
To convert to another format
Convert to Markdown
task pandoc INPUT=src/sample/index.tex OUTPUT=build/sample.md
make pandoc INPUT=src/sample/index.tex OUTPUT=build/sample.md
Convert to HTML
task pandoc INPUT=src/sample/index.tex OUTPUT=build/sample.html
make pandoc INPUT=src/sample/index.tex OUTPUT=build/sample.html
You can use any format supported by Pandoc.
Documentation
This project helps you to create beautiful PDFs, using LaTeX.
Document sources are in src/
. Each document live in its own unique directory in src/
.
The entry file must be named index.tex
in order to get built properly.
The resulting PDF files will be in the build/
directory.
Examples
The project comes with a handful of LaTeX sample projects:
src/analysis
andsrc/probability
: Computer Science Cheat Sheets from Flavio Schneider.src/presentation
: A sample presentationsrc/sample
: A sample pagesrc/umons
: Latex classes form uMons university.src/umons-*
: Example documents using uMons classes.src/ucl-beamer
: Sample document using UCL beamer templates.
FAQ
-
Why use Docker?
The use of Docker has been made in order to make that this would work equally on different OS. While Docker is not available on FreeBSD and being a user of FreeBSD it was a hard choice to make. Using Docker also help me to keep an up-to-date Texlive installation without all the hassle of updating stuff here and there.
-
Why use a Taskfile and a Makefile?
This project is a work in progress. I have not yet decided between Go Task or Make.
Todo / Ideas
Find a proper name- Decide between Go Task and Makefile.
- More documentation on how to use the command and create a new document
In a LaTex document, find a way to use local paths instead of paths from the root- Should we use a Makefile/Taskfile per document directory?
- Decide which example project(s) to include in the OpenSource version
Add a changelog- Create proper issues in Github