initial commit

This commit is contained in:
khannurien
2026-01-17 08:51:25 +01:00
commit 750d82eb32
47 changed files with 1925 additions and 0 deletions

54
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,54 @@
FROM mcr.microsoft.com/devcontainers/base:ubuntu
# Install dependencies for TeX Live installation and usage
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
perl \
biber \
wget \
fontconfig \
make \
git \
curl \
python3 \
python3-pygments \
&& rm -rf /var/lib/apt/lists/*
# Set non-root user provided by Microsoft base image
ARG USERNAME=vscode
# Switch to user home directory
USER $USERNAME
WORKDIR /home/$USERNAME
# Set TeX Live paths and update environment
ENV TEXLIVE_INSTALL_PREFIX="/usr/local/texlive"
ENV TEXLIVE_INSTALL_TEXDIR="${TEXLIVE_INSTALL_PREFIX}/2025"
ENV PATH="${TEXLIVE_INSTALL_TEXDIR}/bin/x86_64-linux:${PATH}"
# Download and install TeX Live 2025 as root
RUN wget -q https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz && \
tar -xzf install-tl-unx.tar.gz && \
rm install-tl-unx.tar.gz && \
cd install-tl-* && \
echo "selected_scheme scheme-full" > texlive.profile && \
echo "TEXDIR ${TEXLIVE_INSTALL_TEXDIR}" >> texlive.profile && \
echo "TEXMFCONFIG /home/vscode/.texlive2025/texmf-config" >> texlive.profile && \
echo "TEXMFVAR /home/vscode/.texlive2025/texmf-var" >> texlive.profile && \
echo "instopt_adjustpath 1" >> texlive.profile && \
echo "tlpdbopt_autobackup 0" >> texlive.profile && \
sudo perl ./install-tl --profile=texlive.profile --no-interaction && \
cd .. && rm -rf install-tl-*
# User-writeable directories for TeX Live and LuaLaTeX
ENV TEXMFCONFIG="/home/vscode/.texlive2025/texmf-config"
ENV TEXMFVAR="/home/vscode/.texlive2025/texmf-var"
ENV LUAOTFLOAD_HOME="/home/vscode/.texlive2025/texmf-var/luatex-cache"
ENV LUAOTFLOAD_DB="/home/vscode/.texlive2025/texmf-var/luatex-cache/database.sqlite"
# Install latexmk
RUN sudo tlmgr option autobackup 0 && \
sudo tlmgr install latexmk && \
sudo tlmgr path add
# Set the working directory back to a neutral location
WORKDIR /workspace

View File

@@ -0,0 +1,121 @@
{
"name": "LaTeX Dev Container",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
"customizations": {
"vscode": {
"settings": {
// VSCode text editor settings
"editor.fontSize": 16,
"editor.tabSize": 2,
"editor.lineHeight": 1.8,
"editor.cursorBlinking": "phase",
"editor.unicodeHighlight.nonBasicASCII": false,
"editor.wordWrap": "on",
"editor.wrappingStrategy": "advanced",
"editor.wordBasedSuggestions": "off",
// "editor.quickSuggestions": {
// "other": "on",
// "comments": "off",
// "strings": "off"
// },
// "editor.acceptSuggestionOnEnter": "off",
// LaTeX Workshop settings
"latex-workshop.intellisense.package.enabled": true,
"latex-workshop.intellisense.unimathsymbols.enabled": true,
"latex-workshop.intellisense.citation.backend": "biblatex",
"latex-workshop.latex.outDir": "build",
"latex-workshop.latex.autoBuild.run": "onFileChange",
"latex-workshop.latex.autoBuild.interval": 3000,
"latex-workshop.synctex.afterBuild.enabled": true,
"latex-workshop.view.autoFocus.enabled": false,
"latex-workshop.view.pdf.reload.transition": "fade",
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.view.pdf.zoom": "auto",
"latex-workshop.latex.tools": [
{
"args": [
"-shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"-out2dir=.",
"-pdflatex",
"-e",
"$bibtex='biber %O %S';",
"%DOC%"
],
"command": "latexmk",
"name": "latexmk + pdflatex + biber"
},
{
"args": [
"-shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"-out2dir=.",
"-xelatex",
"-e",
"$bibtex='biber %O %S';",
"%DOC%"
],
"command": "latexmk",
"name": "latexmk + xelatex + biber"
},
{
"args": [
"-shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"-out2dir=.",
"-lualatex",
"-e",
"$bibtex='biber %O %S';",
"%DOC%"
],
"command": "latexmk",
"name": "latexmk + lualatex + biber"
}
],
"latex-workshop.latex.recipes": [
{
"name": "latexmk + lualatex + biber",
"tools": [
"latexmk + lualatex + biber"
]
},
{
"name": "latexmk + xelatex + biber",
"tools": [
"latexmk + xelatex + biber"
]
},
{
"name": "latexmk + pdflatex + biber",
"tools": [
"latexmk + pdflatex + biber"
]
}
],
"latex-workshop.latex.recipe.default": "lastUsed"
},
"extensions": [
"james-yu.latex-workshop",
"wayou.vscode-todo-highlight"
]
}
},
"remoteUser": "vscode",
"updateRemoteUserUID": true,
"features": {}
}