Gibt es ein LaTeX-Paket, das eine kurze Zusammenfassung aller Pakete bietet, die in einem LaTeX-Projekt enthalten sind?

Gibt es ein LaTeX-Paket, das eine kurze Zusammenfassung aller Pakete bietet, die in einem LaTeX-Projekt enthalten sind?

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.:

  1. 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.
  2. Online-Ressourcen: Websites wie Overleaf, LaTeX-Tutorial.com und Research Guides bieten Dokumentationen, Tutorials und Paketbeschreibungen.
  3. 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.
  4. 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):

  1. Wählen Sie die Namen der in den Präambeln geladenen Pakete mit einem beliebigen Tool aus grepoder bearbeiten Sie einfach manuell eine Kopie der Präambeln, um eine Liste der .sty-Namen zu erstellen.

  2. Erhalten Sie die Liste der Namen des Quell-CTAN-Pakets mit texdocund/odertlmgr

  3. Erhalten Sie mit tlmgrder Kurzbeschreibung des Pakets diese. Manuell wird es einfach ausgeführt tlmgr info -data name,shortdesc name1 name 2..., auf Fehler geprüft und die Ausgabe in einer CSV-Datei gespeichert.

  4. 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:

Bildbeschreibung hier eingeben

---
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

\listfilesWenn 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)
 ***********

verwandte Informationen