• Stars
    star
    173
  • Rank 212,442 (Top 5 %)
  • Language
    Dockerfile
  • License
    MIT License
  • Created almost 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

LaTeX development container for Visual Studio Code Remote Containers Development

Latex Dev Container

Ultimate Latex development container for Visual Studio Code

Build status Docker Pulls Docker Stars

Join Slack channel GitHub last commit GitHub commit activity GitHub issues

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 and aarch64
  • Two Docker images:
    • qmcgaw/latexdevcontainer:latest (default) which uses the TexLive basic scheme and has an uncompressed image size of 467MB
    • qmcgaw/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

Demo

Requirements

Setup for a project

  1. 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.

  2. 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

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

Install packages

Update the Latex Docker image

  1. Pull the docker image

    docker pull qmcgaw/latexdevcontainer
  2. 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.

    1. Create a file .devcontainer/Dockerfile with FROM qmcgaw/latexdevcontainer

    2. Append instructions to the Dockerfile created. For example:

      FROM qmcgaw/latexdevcontainer
      RUN tlmgr install lastpage
    3. Modify .devcontainer/docker-compose.yml and add build: . in the vscode service.

    4. 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

License

This repository is under an MIT license unless indicated otherwise.

More Repositories

1

gluetun

VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in.
Go
6,152
star
2

ddns-updater

Container to update DNS records periodically with WebUI for many DNS providers
Go
1,323
star
3

godevcontainer

Golang development container for Visual Studio Code Remote Containers Development
Dockerfile
246
star
4

gluetun-wiki

Home to the Markdown Wiki page for Gluetun
219
star
5

dns

Docker DNS server on steroids to access DNS-over-TLS from Cloudflare, Google, Quad9, Quadrant or CleanBrowsing
Go
208
star
6

deunhealth

Binary program to restart unhealthy Docker containers
Go
96
star
7

caddy-ui

UI for the Caddy proxy server
TypeScript
61
star
8

basedevcontainer

Base development Docker image used by other development Docker images
Shell
57
star
9

cod4-docker

Runs a Call of duty 4 Modern Warfare (cod4x) dedicated server in a Docker container.
Go
51
star
10

youtube-dl-docker

Download with youtube-dl using command line arguments or a configuration file + Automated updates
Shell
45
star
11

stackedit-docker

StackEdit 5.14.5 Server in a light Docker container
Go
43
star
12

rustdevcontainer

Rust development container for VSCode
Dockerfile
40
star
13

caddy-scratch

Caddy server 2.0.0 / 1.0.5 on Docker Scratch, all in 18MB / 35MB
Dockerfile
39
star
14

htmlspitter

NodeJS server to spit out HTML from loaded JS using Puppeteer
TypeScript
31
star
15

reprint

Golang deep copying, THE RIGHT WAY ℒ️
Go
31
star
16

hbc

API of homomorphic binary operations such as binary comparisons or binary divisions using the library HElib
C++
27
star
17

port-checker

Simple Docker container to test if a port works using a Golang server
Go
25
star
18

meemo

Run a lightweight Meemo server with database on Docker with docker-compose
Dockerfile
22
star
19

reactdevcontainer

React development container for Visual Studio Code
Dockerfile
22
star
20

btrfs-recover-scripts

Scripts to help you recover the latest files you have lost in a BTRFS volume
Shell
19
star
21

ss-server

Shadowsocks server to use with Docker and to integrate in other Go programs
Go
17
star
22

devtainr

Static binary tool to setup your development container in your repository
Go
14
star
23

binpot

The Docker based pot of binaries
Dockerfile
12
star
24

goshutdown

Go library to shutdown your goroutines gracefully and in a timely manner
Go
12
star
25

go-template

Golang server template
Go
12
star
26

VFIO-Arch-Guide

Windows 10 Parsec server setup for an Arch Linux host
12
star
27

golibs

Experimental Go libraries for my own projects
Go
10
star
28

docker-proxy-acl-alpine

A lightweight docker Unix socket proxy which restricts endpoint usage to allowed sections
Go
9
star
29

tinier

Make your videos, images and audio files tinier
Go
9
star
30

teamspeak-server-alpine

Minimalist Teamspeak 3 server Docker container
Shell
9
star
31

caddy-ui-server

Server responsible to serve the Caddy UI and communicate with the Caddy server API
Go
8
star
32

pingodown

Introduces latency on a UDP port for gaming purposes
Go
7
star
33

BitcoinUses

Big data analytics on how bitcoins are used since their creation
Java
7
star
34

xcputranslate

Simple CI translation from Docker CPU arch strings to other format
Go
7
star
35

welcome

Golang static binary I use on my servers when I login
Go
6
star
36

files

Periodically updated files and lists used by other projects and machines
6
star
37

gosplash

Go library to make initial log lines at a program start time
Go
5
star
38

updated

Go program to update files periodically
Go
5
star
39

gotree

Go library to build tree of files and directories
Go
5
star
40

rsync-docker

Rsync in 790KB Docker image & Rsync+SSH in 5.2MB Docker image
Shell
4
star
41

srv

srv is a small Go application to server static files over HTTP
Go
4
star
42

BillSplitter

Mobile website app to split your bill at a venue (backend and frontend)
JavaScript
4
star
43

nodedevcontainer

Dockerfile
3
star
44

govalid

Go library to validate and convert strings
Go
3
star
45

log

Go log library focused on humans and thread safety
Go
3
star
46

goservices

Go package to help manage Go long running services
Go
3
star
47

reinstall

PowerShell
3
star
48

blog

Static blog using Hugo
HTML
2
star
49

qdm12

2
star
50

omada

Omada controller bundled in a Docker image
Dockerfile
2
star
51

iptables

Docker container to run your iptables rules
Dockerfile
2
star
52

spigot-docker

Lightweight Docker container for Spigot server
Dockerfile
2
star
53

ThumbGifs

Generates intervals GIFs from video files for any length
Python
2
star
54

hitinc

HTTP server counter to count visitors, claps, upvotes
1
star
55

Staminaputations

Python
1
star
56

Staminapp

Android mobile application for the Stamina system
Java
1
star
57

reactserv

A Go HTTP server to serve React compiled code (no SSR)
Go
1
star
58

My-Computing-course

This is a course I will give about computing in general for people new to computing
Python
1
star
59

gosettings

Go package providing helper functions for working with settings
Go
1
star
60

cli-template

A template for cross platform, cross CPU binary CLI tools
Go
1
star
61

courses

TeX
1
star
62

templates

Github templates for various programming languages I use often
1
star
63

node-ts-template

NodeJS with Typescript template
JavaScript
1
star
64

wireguard-docker

Alpine docker image with Wireguard tooling (requires Wireguard in kernel)
Dockerfile
1
star