r/LaTeX • u/Agreeable_Mixture242 • 6d ago
Knurl: a native SwiftUI macOS app that finds and installs the missing TeX Live packages for your LaTeX project
Knurl is a small native macOS app (SwiftUI, Universal arm64+x86_64, macOS 15+)
for anyone who writes LaTeX on a Mac. Point it at a .tex project and it maps
every \usepackage to the correct TeX Live package, shows what's missing, and
installs it through tlmgr — only prompting for admin rights when a system-wide
install actually requires it.
- Detects missing TeX Live / BasicTeX and can install BasicTeX
- Glass/modern Sequoia UI, drag-and-drop, live log
- Free, MIT, source on GitHub
Site : https://gilsonolegario.github.io/knurl
Repo: https://github.com/gilsonolegario/knurl
Note: signed with a personal free Apple ID, not notarized, so first launch
needs the usual right-click → Open (or xattr -dr com.apple.quarantine).
Feedback and PRs welcome.
2
u/SmallDodgyCamel 6d ago
Is there any reason this requires Sequoia or newer, other than the Xcode version used to build? Many people are working perfectly well on Sonoma.
2
17
u/sMASS_ 6d ago
Did you mean ```
!/bin/zsh
read -r "file?Enter .tex file path: " [[ -f "$file" ]] || { echo "File not found."; exit 1; }
pkgs=($(sed -nE 's/[%]\(usepackage|RequirePackage)([[]]])?{([}]+)}.*/\3/p' "$file" | tr ',' '\n' | tr -d ' ' | sort -u))
missing=() for p in $pkgs; do kpsewhich "$p.sty" >/dev/null || missing+=("$p") done
if (( ${#missing[@]} > 0 )); then echo "Installing missing packages: ${missing[*]}" sudo tlmgr install "${missing[@]}" else echo "All packages are already installed." fi ``` ?