A set of gulp tasks to manage, package, and share LaTeX documents.
$ nvm install 16
$ nvm use
$ npm i
$ npm run work
I created this set of gulp tasks to help me manage my CV. I write my CV in LaTeX and publish it on S3 via a password protected zip archive.
I thought this workflow might be helpful to someone else, so I open sourced the tool.
Note that the tool will also work with any LaTeX document that you might want to make publicly available and password protected.
For some context about why I wrote this tool and how I'm using it, check out this article on Medium: https://medium.com/@coaxial/how-i-manage-my-cv-with-latex-gulp-s3-and-bitly-99694c01dd8
- Your document is written using LaTeX
- You want a publicly accessible, passworded protected version of your document
- You want this publicly accessible version to be hosted on S3
- You have a working
npm
andnode
(v16+) install - You have installed the
texlive-latex-extra
package (or equivalent)
The tool uses two configuration files: config.json
and aws_config.json
. I
suggest you use the example files config.example.json
+
aws_config.example.json
as templates. When you're done, save a copy and
remove .example
from the filenames.
Configuration options for the tool itself
Option | Usage |
---|---|
resume_filename |
The LaTeX filename for your resume within src_dir (see below) |
archive_filename |
Name used for the resulting compressed, password protected archive |
dist_dir |
Relative path to the directory where the archive will be saved to |
src_dir |
Relative path to the directory where your LaTeX files live |
If you're not using the default for
src_dir
, remember to add it to your.gitignore
Contains AWS specific configuration options
Option | Usage |
---|---|
key |
Your AWS key |
secret |
Your AWS secret |
bucket |
Name for the S3 bucket to upload the archive to |
region |
Which AWS region to save your archive in (cf. https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) |
If you are unfamiliar with S3, AWS' documentation is a good starting point: https://aws.amazon.com/documentation/s3/
The tool expects your LaTeX files to be located in the src_dir
specified in
config.json
. You can also add any custom LaTeX document class files needed to
build your document in this directory, pdflatex
will look for them there.
To illustrate, here is what my src_dir
directory looks like:
src/
├── coaxialcv.cls
├── coaxial.pdf
└── coaxial.tex
If you version control your LaTeX files, you can git clone your repo in
src_dir
with $ git clone user/repo src/
. You'll then be able to work on
your document from within the tool's repo while committing changes to the
documents repo.
Gulp task | Usage |
---|---|
work |
Gulp will watch for changes in src_dir and recompile to PDF. |
publish |
Will package, password protect, and upload the document to S3 |
While using the
work
task, I suggest opening the PDF file in a PDF viewer on half of your monitor, and your text editor on the other half. As you save your document in the text editor, the PDF view will update almost instantly, and you'll see the changes right away without switching windows.
There are a few other plumbing tasks that the porcelain tasks above depend on.
All of them are located in tasks/
, I modularized to help with maintenance and
readability. This is where to look if you're curious about how the tool works
under the hood.
For convenience, the work
and publish
gulp tasks are also runnable with
npm run {work,publish}
.
Yes please! Fork the repo, make your changes, update the README if needed, and make a pull request. Make sure your tests pass against Node v4 and Node v6 both; make sure you use modularization when appropriate, ES6, and promises.
If the work
task fails to run, check that the underlying bash script is working
properly by running it manually: ./lib/pdf_all.sh
.
If you have a question or an issue using the tool, open a GitHub issue for help.
MIT (c) Coaxial 2016