¿Existe algún paquete LaTeX que proporcione una breve descripción resumida de todos los paquetes que se incluyen dentro de un proyecto LaTeX?

¿Existe algún paquete LaTeX que proporcione una breve descripción resumida de todos los paquetes que se incluyen dentro de un proyecto LaTeX?

Me preguntaba si existe un paquete LaTeX que escanee todos los paquetes que existen dentro de un proyecto LaTeX, luego descargue de CTAN una breve descripción resumida de cada uno de los paquetes que se incluyen dentro de ese proyecto LaTeX, para luego imprimirlo en formato de resumen como parte de la documentación final.

Me doy cuenta de que hay otras formas de ubicar las breves descripciones resumidas, por ejemplo:

  1. El libro "LaTeX Companion": proporciona una lista extensa de paquetes con breves descripciones. Aunque puede que no cubra todos los paquetes, constituye un recurso valioso.
  2. Recursos en línea: sitios web como Overleaf, LaTeX-Tutorial.com y Research Guides ofrecen documentación, tutoriales y descripciones de paquetes.
  3. Documentación del paquete: muchos paquetes vienen con su propia documentación, a menudo disponible como archivos PDF. Puede buscar el nombre del paquete seguido de "documentación" para encontrar estos recursos.
  4. El comando texdoc: si tiene una instalación local de LaTeX, puede usar el comando texdoc <nombre_paquete> en su terminal o símbolo del sistema para acceder a la documentación de un paquete específico.

Estoy buscando un paquete que escanee automáticamente mi proyecto LaTeX, compile una lista de todos los paquetes LaTeX incluidos y luego descargue de CTAN la breve descripción resumida correspondiente de cada uno de los paquetes LaTeX que se incluyen dentro de un proyecto LaTeX.

Tengo unos cientos de paquetes LaTeX incluidos en mi archivo de proyecto LaTeX de varios años, muchos de los cuales he olvidado lo que hacen. Sería bueno tener la información de descripción breve disponible cada vez que escriba mi proyecto.

Respuesta1

Esta es principalmente una idea aún en su infancia (y no madurará) para mostrar la descripción de CTAN en lugar de los paquetes de látex. Me temo que el ejemplo, tal como está, podría tener muchos problemas al usarlo con otros paquetes, además está hecho en Quarto y probablemente incluso alguna entrada en la tabla de ejemplo sea incorrecta (lo siento, no hay tiempo para verificar), pero Creo que eso muestra la idea, que probablemente sea mejor hacerlo manualmente (para tratar probablemente muchos casos diferentes):

  1. Seleccione los nombres de los paquetes cargados en los preámbulos con alguna herramienta grepo simplemente edite manualmente una copia de los preámbulos para hacer una lista de los nombres .sty.

  2. Obtenga la lista de nombres del paquete CTAN fuente con texdocy/otlmgr

  3. Obtenga con tlmgrla breve descripción del paquete de estos. Manualmente simplemente se ejecuta tlmgr info -data name,shortdesc name1 name 2..., verifica si hay errores y guarda el resultado en un archivo CSV.

  4. Con el archivo CSV es fácil hacer una tabla datatool(no se muestra, pero hay muchos ejemplos en otras preguntas), o con Python o R (este ejemplo).

Entonces con un preámbulo como:

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

Puedes obtener algunos como este:

ingrese la descripción de la imagen aquí

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

Respuesta2

Si llama \listfilescomo primer comando (incluso antes \documentclass), el registro contendrá los archivos utilizados (y a menudo una breve descripción) hacia el final. Por ejemplo:

\listfiles
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{example-image}
\end{document}

tiene un archivo de registro que contiene:

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

información relacionada