PC
Typesetting
Core tool is vscode here are my settings
plugins
- LaTeX Utilities
-
LaTeX Workshop
- This is the main plugin: Here’s install guide
- Spell Checker
-
gitlens
- free for students
- Todo Tree
- Bookmarks
- macros
Settings
"macros": {
"mathField": [
{
"command": "type",
"args": {
"text": "\\(\\)"
}
},
"cursorLeft",
"cursorLeft"
],
"mathcField": [
{
"command": "type",
"args": {
"text": "\\[\\]"
}
},
"cursorLeft",
"cursorLeft"
],
"mathField_jy": [
{
"command": "type",
"args": {
"text": "$$"
}
},
"cursorLeft"
],
"mathcField_jy": [
{
"command": "type",
"args": {
"text": "$$$$"
}
},
"cursorLeft",
"cursorLeft"
],
"mathField_md": [
{
"command": "type",
"args": {
"text": "\\\\(\\\\)"
}
},
"cursorLeft",
"cursorLeft",
"cursorLeft"
],
"mathcField_md": [
{
"command": "type",
"args": {
"text": "\\\\[\\\\]"
}
},
"cursorLeft",
"cursorLeft",
"cursorLeft"
]
},
"cSpell.userWords": [
"amsfonts",
"amssymb",
"amsthm",
"bijectivity",
"diffeomorphic",
"diffeomorphism",
"draculabg",
"draculafg",
"homeo",
"homotopy",
"htpc",
"injective",
"injectivity",
"Kauffman",
"Lipschitz",
"mathbb",
"mathjax",
"MCAL",
"MISRA",
"OEM",
"QAC",
"Reidemeister",
"reindexing",
"Simplicial",
"simplicially",
"surjective",
"surjectivity",
"unoriented",
"WLOG"
],
"cSpell.checkLimit": 1000,
"cSpell.minWordLength": 3,
"cSpell.diagnosticLevel": "Warning",
"cSpell.checkOnlyEnabledFileTypes": false,
"cSpell.autoFormatConfigFile": true,
"cSpell.maxNumberOfProblems": 1000,
"cSpell.showAutocompleteSuggestions": true,
"cSpell.suggestionMenuType": "quickFix",
"cSpell.allowCompoundWords": true,
"cSpell.patterns": [
],
"cSpell.languageSettings": [
{
"languageId": "latex",
"patterns": [
{
"name": "LaTexMacrosMultiLine",
"pattern": "",
"description": "Match against all LaTex Macros"
}
]
}
],
"editor.renderWhitespace": "all",
"files.trimTrailingWhitespace": true,
"latex-workshop.intellisense.unimathsymbols.enabled": true,
"latex-workshop.message.warning.show": false,
"latex-workshop.latexindent.args": [
"-c",
"%DIR%/",
"%TMPFILE%"
],
"latex-workshop.view.pdf.hand": true,
"latex-workshop.latex.autoBuild.run": "onSave",
"latex-workshop.latex.recipe.default": "latexmk (lualatex)",
"latex-workshop.latex.autoClean.run": "onFailed",
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.bind.enter.key": false,
"latex-workshop.hover.preview.scale": 0.5,
"latex-workshop.intellisense.update.aggressive.enabled": true,
"latex-workshop.synctex.afterBuild.enabled": true,
"latex-workshop.latex.recipes": [
{
"name": "latexmk 🔃",
"tools": [
"latexmk"
]
},
{
"name": "latexmk (latexmkrc)",
"tools": [
"latexmk_rconly"
]
},
{
"name": "latexmk (lualatex)",
"tools": [
"lualatexmk"
]
},
{
"name": "pdflatex ➞ bibtex ➞ pdflatex × 2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
{
"name": "Compile Rnw files",
"tools": [
"rnw2tex",
"latexmk"
]
},
{
"name": "Compile Jnw files",
"tools": [
"jnw2tex",
"latexmk"
]
},
{
"name": "tectonic",
"tools": [
"tectonic"
]
}
],
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-shell-escape",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"name": "lualatexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-lualatex",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"name": "latexmk_rconly",
"command": "latexmk",
"args": [
"%DOC%"
],
"env": {}
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-shell-escape",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
],
"env": {}
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
],
"env": {}
},
{
"name": "rnw2tex",
"command": "Rscript",
"args": [
"-e",
"knitr::opts_knit$set(concordance = TRUE); knitr::knit('%DOCFILE_EXT%')"
],
"env": {}
},
{
"name": "jnw2tex",
"command": "julia",
"args": [
"-e",
"using Weave; weave(\"%DOC_EXT%\", doctype=\"tex\")"
],
"env": {}
},
{
"name": "jnw2texmintex",
"command": "julia",
"args": [
"-e",
"using Weave; weave(\"%DOC_EXT%\", doctype=\"texminted\")"
],
"env": {}
},
{
"name": "tectonic",
"command": "tectonic",
"args": [
"--synctex",
"--keep-logs",
"%DOC%.tex"
],
"env": {}
}
],
(Optional) Autobuild on push to trunk github action
name: publish pdf
on:
push:
branches:
- main # Set a branch to deploy
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v2
- name: Compile LaTeX document
uses: xu-cheng/latex-action@v2
with:
latexmk_use_lualatex: true
root_file: "*.tex"
glob_root_file: true
- name: Bump version and push tag
id: tag_version
uses: mathieudutour/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Create a GitHub release
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.tag_version.outputs.new_tag }}
name: Release ${{ steps.tag_version.outputs.new_tag }}
body: ${{ steps.tag_version.outputs.changelog }}
- name: Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.tag_version.outputs.new_tag }}
files: |
*.pdf
*.tex
Development
Package manager
Using a package manager makes life a little easier here’s what I use on windows Choco.
Version Control
choco install git.install -y
For personal and academic work I use git with github for a production environment. I also maintain a local gogs server for local mirrors.
I interact with local repositories with the vscode vs plugin. Rarely I use the comand line if vscode can’t do what I need. I’ve found gitkraken is a very accessable tool for new git users.
For professional work I use SVN.
C/C++
Code editor
I use vscode for editing code.
Debugger
I use visual studio 2022 for debugging.
Compiler and build
choco install ninja -y
choco install cmake -y
choco install llvm -y
Set the following:
CC="C:\Program Files\LLVM\bin\clang.exe"
CXX="C:\Program Files\LLVM\bin\clang++.exe"
Documentation engine/s
Doxygen is basically the only option but I present the results with sphinx and breathe info here
choco install doxygen.install -y
choco install sphinx -y
pip install sphinx_rtd_theme
pip install breathe
Testing
I use pytest tests run by cmake as ctest.
pip install pytest
Python
I use the latest lts python version. I use vscode as an editor and debugger. I use black for code formatting and flake8 for style checking.
choco install python -y
pip install flake8 flake8-black scipy numpy pytest pytest-flake8 pytest-html pytest-metadata pytest-pylint pytest-reportlog flake8-docstrings flake8-html
Academic Stuff
Citations
I use zotero for citation and pdf management between my ipad and windows pc.
Notes
I take notes with obsidian.
Presentations
Reveal.js
Decktape
decktape -s 1920x1080 <url for presentation> presentation.pdf
Ipad
Zotero
Obsidian
Goodnotes
Vectornator
Concepts
Anki
Quick Install List
choco install ninja -y
choco install cmake -y
choco install llvm -y
choco install doxygen.install -y
choco install sphinx -y
pip install sphinx_rtd_theme
pip install breathe
pip install pytest
pip install flake8 flake8-black scipy numpy pytest pytest-flake8 pytest-html pytest-metadata pytest-pylint pytest-reportlog flake8-docstrings flake8-html
For Tanglenomicon
We’re still in a design phase here’s a list of DB options we’re considering:
choco install mongodb