164 Zeilen
3.9 KiB
Bash
Ausführbare Datei
164 Zeilen
3.9 KiB
Bash
Ausführbare Datei
#!/bin/bash
|
|
set -e # Bricht bei Fehlern sofort ab
|
|
|
|
TLMGR=$(which tlmgr)
|
|
TEXHASH=$(which texhash)
|
|
|
|
echo "=== Starte optimierte LaTeX-Konfiguration ==="
|
|
|
|
# 1. Optionale Updates (NUR aktivieren wenn zwingend nötig, sonst auskommentieren)
|
|
echo "Aktualisiere tlmgr und alle installierten Pakete..."
|
|
$TLMGR update --self --all
|
|
|
|
# 2. Nur deinstallieren, falls überhaupt vorhanden
|
|
if $TLMGR info texliveonfly | grep -q "installed: Yes"; then
|
|
echo "Deinstalliere veraltetes texliveonfly..."
|
|
$TLMGR remove texliveonfly
|
|
fi
|
|
|
|
# 3. ALLE Pakete gebündelt in EINEM Rutsch installieren (only scheme-minimal installed)
|
|
echo "Installiere alle benötigten LaTeX-Pakete parallel/gebündelt..."
|
|
$TLMGR install \
|
|
background \
|
|
beamer \
|
|
biblatex \
|
|
biblatex-ieee \
|
|
booktabs \
|
|
cancel \
|
|
caption \
|
|
ccicons \
|
|
circuitikz \
|
|
cleveref \
|
|
cm-unicode \
|
|
collection-fontsrecommended \
|
|
concmath-otf \
|
|
contour \
|
|
csquotes \
|
|
currfile \
|
|
datetime2 \
|
|
datetime2-english \
|
|
datetime2-german \
|
|
ean \
|
|
ean13isbn \
|
|
enumitem \
|
|
epigraph \
|
|
everypage \
|
|
filehook \
|
|
fmtcount \
|
|
fontawesome5 \
|
|
fontaxes \
|
|
fontmfizz \
|
|
fontspec \
|
|
imakeidx \
|
|
koma-script \
|
|
latexmk \
|
|
lastpage \
|
|
lineno \
|
|
listings \
|
|
ltablex \
|
|
luatexbase \
|
|
marginnote \
|
|
mathtools \
|
|
microtype \
|
|
minted \
|
|
ncctools \
|
|
newpx \
|
|
newtx \
|
|
newunicodechar \
|
|
ocr-b \
|
|
parskip \
|
|
pdfcol \
|
|
pdflscape \
|
|
pdfpages \
|
|
pgf \
|
|
pgfplots \
|
|
pict2e \
|
|
ragged2e \
|
|
scheme-basic \
|
|
scheme-infraonly \
|
|
scheme-minimal \
|
|
setspace \
|
|
sidecap \
|
|
siunitx \
|
|
steinmetz \
|
|
stix2-otf \
|
|
subfigure \
|
|
tcolorbox \
|
|
tikzfill \
|
|
titlesec \
|
|
trimspaces \
|
|
unicode-math \
|
|
upquote \
|
|
vmargin \
|
|
wrapfig \
|
|
xcharter \
|
|
xltabular \
|
|
xpatch \
|
|
xstring
|
|
|
|
echo "Deinstalliere unerwünschte LaTeX-Pakete..."
|
|
# 'ae' und 't1enc' wurden entfernt, da sie geschützte Systempakete sind.
|
|
# Liste der Pakete, die deinstalliert werden sollen (einfach mit Leerzeichen trennen)
|
|
PACKETS=("truncate")
|
|
|
|
for packet in "${PACKETS[@]}"; do
|
|
if tlmgr info "$packet" --only-installed >/dev/null 2>&1; then
|
|
echo "Lösche Paket: $packet..."
|
|
tlmgr remove "$packet" || true
|
|
else
|
|
echo "Paket '$packet' ist nicht installiert oder wurde bereits gelöscht."
|
|
fi
|
|
done
|
|
|
|
# extdash (in ncctools) \
|
|
|
|
# 4. Datenbank-Refresh (tlmgr install macht das oft automatisch, sicherheitshalber am Ende einmal)
|
|
echo "Aktualisiere LaTeX-Dateidatenbank..."
|
|
$TEXHASH
|
|
|
|
# 5. System-Abhängigkeiten prüfen und installieren (Biber & Ghostscript)
|
|
echo "Überprüfe Linux-Systemkomponenten..."
|
|
|
|
# Liste der zu installierenden Apt-Pakete
|
|
APT_PACKAGES=""
|
|
INSTALLED_PACKAGES=""
|
|
|
|
if ! command -v biber >/dev/null 2>&1; then
|
|
echo " -> biber fehlt und wird vorgemerkt."
|
|
APT_PACKAGES="$APT_PACKAGES biber"
|
|
else
|
|
echo " -> biber ist bereits installiert ($(biber --version | head -n 1))."
|
|
INSTALLED_PACKAGES="$INSTALLED_PACKAGES biber"
|
|
fi
|
|
|
|
if ! command -v gs >/dev/null 2>&1; then
|
|
echo " -> ghostscript (gs) fehlt und wird vorgemerkt."
|
|
APT_PACKAGES="$APT_PACKAGES ghostscript"
|
|
else
|
|
echo " -> ghostscript (gs) ist bereits installiert ($(gs --version | head -n 1))."
|
|
INSTALLED_PACKAGES="$INSTALLED_PACKAGES ghostscript"
|
|
fi
|
|
|
|
# Falls Pakete fehlen, gebündelt mit einmaligem apt-get update installieren
|
|
if [ -n "$APT_PACKAGES" ]; then
|
|
echo "Installiere fehlende Systemkomponenten:$APT_PACKAGES..."
|
|
sudo apt-get update && sudo apt-get install -y $APT_PACKAGES
|
|
else
|
|
# Formatierung: Entfernt führende Leerzeichen und ersetzt verbleibende durch Kommata
|
|
CLEAN_LIST=$(echo $INSTALLED_PACKAGES | sed 's/ /, /g')
|
|
echo " -> Alle notwendigen Systemkomponenten ($CLEAN_LIST) sind bereits installiert!"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Speicherplatz-Optimierung ==="
|
|
read -p "Möchtest du alle alten tlmgr-Paktebackups unwiderruflich löschen? (j/N): " response
|
|
if [[ "$response" =~ ^[jJ][aA]?$ || "$response" = "j" ]]; then
|
|
echo "Lösche alte Backups..."
|
|
$TLMGR backup --clean=0 --all
|
|
else
|
|
echo "Backups wurden beibehalten."
|
|
fi
|
|
|
|
echo "=== Fertig! ==="
|
|
echo "Reminder: Please update pull/push the ~/gitea/scripts : scripts.git repository!"
|