Ich habe mich gefragt, ob es ein LaTeX-Paket gibt, das alle in einem LaTeX-Projekt vorhandenen Pakete scannt und dann von CTAN eine kurze zusammenfassende Beschreibung aller in diesem LaTeX-Projekt enthaltenen Pakete herunterlädt, um sie dann als Teil der endgültigen Dokumentation im zusammenfassenden Format auszudrucken.
Mir ist bewusst, dass es andere Möglichkeiten gibt, die kurzen Zusammenfassungsbeschreibungen zu finden, z. B.:
- Das Buch „LaTeX Companion“: Es enthält eine umfangreiche Liste von Paketen mit kurzen Beschreibungen. Obwohl es möglicherweise nicht alle Pakete abdeckt, ist es eine wertvolle Ressource.
- Online-Ressourcen: Websites wie Overleaf, LaTeX-Tutorial.com und Research Guides bieten Dokumentationen, Tutorials und Paketbeschreibungen.
- Paketdokumentation: Viele Pakete verfügen über eine eigene Dokumentation, die oft als PDF-Datei verfügbar ist. Sie können nach dem Paketnamen gefolgt von „Dokumentation“ suchen, um diese Ressourcen zu finden.
- Der Befehl texdoc: Wenn Sie eine lokale LaTeX-Installation haben, können Sie den Befehl texdoc <Paketname> in Ihrem Terminal oder Ihrer Eingabeaufforderung verwenden, um auf die Dokumentation für ein bestimmtes Paket zuzugreifen.
Ich suche nach einem Paket, das mein LaTeX-Projekt automatisch scannt, eine Liste aller darin enthaltenen LaTeX-Pakete erstellt und dann von CTAN die entsprechende kurze Zusammenfassung der einzelnen LaTeX-Pakete herunterlädt, die in einem LaTeX-Projekt enthalten sind.
Meine mehrjährige LaTeX-Projektdatei enthält mehrere hundert LaTeX-Pakete, von denen ich bei vielen vergessen habe, was sie tun. Es wäre schön, wenn ich die Kurzbeschreibung jedes Mal zur Hand hätte, wenn ich mein Projekt setze.
Antwort1
Dies ist hauptsächlich eine Idee, die noch in den Kinderschuhen steckt (und nicht ausgereift sein wird), die CTAN-Beschreibung anstelle der Latex-Pakete anzuzeigen. Ich befürchte, dass das Beispiel, so wie es ist, viele Probleme bei der Verwendung mit einigen anderen Paketen haben könnte, außerdem in Quarto erstellt wurde und wahrscheinlich sogar einige Einträge im Tabellenbeispiel falsch sind (leider keine Zeit zum Überprüfen), aber ich denke, dass dies die Idee zeigt, die wahrscheinlich besser manuell umgesetzt wird (um wahrscheinlich viele verschiedene Fälle zu behandeln):
Wählen Sie die Namen der in den Präambeln geladenen Pakete mit einem beliebigen Tool aus
grep
oder bearbeiten Sie einfach manuell eine Kopie der Präambeln, um eine Liste der .sty-Namen zu erstellen.Erhalten Sie die Liste der Namen des Quell-CTAN-Pakets mit
texdoc
und/odertlmgr
Erhalten Sie mit
tlmgr
der Kurzbeschreibung des Pakets diese. Manuell wird es einfach ausgeführttlmgr info -data name,shortdesc name1 name 2...
, auf Fehler geprüft und die Ausgabe in einer CSV-Datei gespeichert.Mit der CSV-Datei lässt sich ganz einfach eine Tabelle erstellen
datatool
(wird nicht gezeigt, aber es gibt viele Beispiele in anderen Fragen) oder mit Python oder R (dieses Beispiel).
Also mit einer Präambel wie:
\usepackage{mathtools,amssymb}
\usepackage{newtx}
\usepackage{lipsum}
\usepackage[dvipsnames]{xcolor}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{nccmath}
\usepackage{wrapfig}
\usepackage{comment}
\usepackage{graphicx}
\usepackage{array}
\usepackage{tcolorbox}
\usepackage[edges]{forest}
Sie können welche wie folgt erhalten:
---
title: Styles and packages
format: pdf
engine: knitr
---
```{bash}
#| echo: false
#| include: false
#| cache: false
grep usepackage Document.tex > foo.txt
sed -i -n 's/[^{]*{\([^}]*\)}/\1\n/gp' foo.txt
sed -i '/^\s*$/d' foo.txt
sed -i 's/,/\n/g' foo.txt
echo "tlmgr info -data name,shortdesc " > CTANp.txt
awk '{ print "texdoc -l -I " $1 ".sty" }' foo.txt | xargs -I {} sh -c '{}' | sed -e 's/.*\/\(.*\)\/.*\.sty/\1/' >> CTANp.txt
tr '\n' ' ' < CTANp.txt > CTANp.sh
echo " > foo.csv " >> CTANp.txt
chmod u+x ./CTANp.sh
./CTANp.sh
```
Sort CTAN packages with short descriptions
```{r}
#| echo: false
#| cache: false
packages <- unique(read.csv("foo.csv", header = FALSE))
names(packages) <- c("CTAN","Description")
styles <- unique(read.csv("foo.txt", header = FALSE))
names(styles) <- c("sty")
knitr::kable(packages[order(packages$CTAN),],row.names = F)
```
\LaTeX{} packages (`{r} nrow(styles)`): `{r} styles$sty`
CTAN packages (`{r} nrow(packages)`): `{r} packages$CTAN`
Antwort2
\listfiles
Wenn Sie als erstes Kommando (sogar vor ) aufrufen \documentclass
, enthält das Log gegen Ende die verwendeten Dateien (und oft auch eine kurze Beschreibung). Beispiel:
\listfiles
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{example-image}
\end{document}
verfügt über eine Protokolldatei mit folgendem Inhalt:
*File List*
article.cls 2021/10/04 v1.4n Standard LaTeX document class
size10.clo 2021/10/04 v1.4n Standard LaTeX file (size option)
graphicx.sty 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
keyval.sty 2022/05/29 v1.15 key=value parser (DPC)
graphics.sty 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR)
trig.sty 2021/08/11 v1.11 sin cos tan (DPC)
graphics.cfg 2016/06/04 v1.11 sample graphics configuration
pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
l3backend-pdftex.def 2022-08-05 L3 backend support: PDF output (pdfTeX)
supp-pdf.mkii
epstopdf-base.sty 2020-01-24 v2.11 Base part for package epstopdf
epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
example-image.pdf Graphic file (type pdf)
***********