Awesome
Latex Dev Container
Ultimate Latex development container for Visual Studio Code
<img height="250" src="https://raw.githubusercontent.com/qdm12/latexdevcontainer/master/title.svg?sanitize=true">Features
- Fastest way to code LaTex and produce a pdf file when saving your .tex file
- Uses texlive 2023
- Based on Debian Bullseye Slim, using qmcgaw/basedevcontainer
- Compatible with
amd64
andaarch64
- Two Docker images:
qmcgaw/latexdevcontainer:latest
(default) which uses the TexLive basic scheme and has an uncompressed image size of 467MBqmcgaw/latexdevcontainer:latest-full
which uses the TexLive full scheme and has an uncompressed image size of 4.2GB - most packages you would need are already installed.
- Comes with
tlmgr
to install more LaTex packages as needed - Latex compilation to pdf with latexmk
- Formatting on save using latexindent
- Latex linting using chktex built from source
- Using the LaTex-Workshop VScode extension
- Compatible with amd64,
ARM 64 bit, ARM 32 bit v6 and v7(TeXLive not available on ARM, create an issue if you need it) - Cross platform
- Easily bind mount your SSH keys to use with git
- Manage your host Docker from within the dev container, more details at qmcgaw/basedevcontainer
- Extensible with docker-compose.yml
- Minimal uncompressed image size of 467MB
Requirements
- Docker installed and running
- If you don't use Linux, share the directories
~/.ssh
and the directory of your project with Docker Desktop
- If you don't use Linux, share the directories
- Docker Compose installed
- VS code installed
- VS code remote containers extension installed
Setup for a project
- Setup your configuration files
-
With style 💯
docker run -it --rm -v "/yourrepopath:/repository" qmcgaw/devtainr:v0.4.0 -dev latex -path /repository -name projectname
Or use the built binary
-
Or manually: download this repository and put the .devcontainer directory in your project.
-
- Open the command palette in Visual Studio Code (CTRL+SHIFT+P) and select
Remote-Containers: Open Folder in Container...
and choose your project directory
Install LaTex packages
If you need for example the package lastpage
, open the integrated terminal in VS Code, select zsh
and enter:
tlmgr install lastpage
texhash
Update the Latex Docker image
-
Pull the docker image
docker pull qmcgaw/latexdevcontainer
-
Open the command palette in Visual Studio Code (CTRL+SHIFT+P) and select
Remote-Containers: Rebuild and Reopen in Container...
. ⚠️ this will erase your container shell history and custom latex packages you added on top of the base image.
More
devcontainer.json
-
You can change the
"postCreateCommand"
to be relevant to your situation. For example:"postCreateCommand": "tlmgr install acronym pgf && texhash",
-
You can change the extensions installed in the Docker image within the
"customizations/vscode/extensions"
array -
Other Latex settings can be changed or added in the
"customizations/vscode/settings"
object.
Development image
-
You can build the development image yourself:
docker build -t qmcgaw/latexdevcontainer -f Dockerfile https://github.com/qdm12/latexdevcontainer.git
-
You can extend the Docker image
qmcgaw/latexdevcontainer
with your own instructions.-
Create a file
.devcontainer/Dockerfile
withFROM qmcgaw/latexdevcontainer
-
Append instructions to the Dockerfile created. For example:
FROM qmcgaw/latexdevcontainer RUN tlmgr install lastpage
-
Modify
.devcontainer/docker-compose.yml
and addbuild: .
in the vscode service. -
Open the VS code command palette and choose
Remote-Containers: Rebuild container
-
-
You can bind mount a shell script to
/home/vscode/.welcome.sh
to replace the current welcome script
TODOs
- qmcgaw/basedevcontainer todos
License
This repository is under an MIT license unless indicated otherwise.