Eu queria saber se existe um pacote LaTeX que irá escanear todos os pacotes que existem dentro de um projeto LaTeX e, em seguida, baixar do CTAN uma breve descrição resumida de cada um dos pacotes incluídos nesse projeto LaTeX, para então ser impresso em formato de resumo como parte da documentação final.
Sei que existem outras maneiras de localizar as breves descrições resumidas, por exemplo:
- O livro "LaTeX Companion": Fornece uma extensa lista de pacotes com breves descrições. Embora possa não abranger todos os pacotes, serve como um recurso valioso.
- Recursos online: sites como Overleaf, LaTeX-Tutorial.com e Research Guides oferecem documentação, tutoriais e descrições de pacotes.
- Documentação do pacote: Muitos pacotes vêm com sua própria documentação, geralmente disponível como arquivos PDF. Você pode pesquisar o nome do pacote seguido de “documentação” para encontrar esses recursos.
- O comando texdoc: Se você tiver uma instalação local do LaTeX, poderá usar o comando texdoc <package_name> em seu terminal ou prompt de comando para acessar a documentação de um pacote específico.
Estou procurando um pacote que irá verificar automaticamente meu projeto LaTeX, compilar uma lista de todos os pacotes LaTeX incluídos e, em seguida, baixar do CTAN a breve descrição resumida correspondente de cada um dos pacotes LaTeX incluídos em um projeto LaTeX.
Tenho algumas centenas de pacotes LaTeX incluídos em meu arquivo de projeto LaTeX plurianual, muitos dos quais esqueci o que eles fazem. Seria bom ter uma breve descrição disponível sempre que eu digitasse meu projeto.
Responder1
Esta é principalmente uma ideia ainda em sua infância (e não irá amadurecer) para mostrar a descrição do CTAN em vez dos pacotes de látex. Receio que o exemplo, tal como está, possa ter muitos problemas para usar com alguns outros pacotes, além disso é feito em Quarto e provavelmente até alguma entrada na tabela de exemplo está errada (desculpe, não há tempo para verificar), mas eu acho que mostrar a ideia, que provavelmente é melhor feito manualmente (para lidar com provavelmente muitos casos diferentes):
Selecione os nomes dos pacotes carregados nos preâmbulos com alguma ferramenta
grep
ou apenas edite manualmente uma cópia dos preâmbulos para fazer uma lista dos nomes .sty.Obtenha a lista de nomes do pacote CTAN de origem com
texdoc
e/outlmgr
Obtenha com
tlmgr
a breve descrição do pacote destes arquivos . Manualmente é apenas executartlmgr info -data name,shortdesc name1 name 2...
, verificar se há erros e salvar a saída em um arquivo CSV.Com o arquivo CSV é fácil fazer uma tabela
datatool
(não mostrado, mas há muitos exemplos em outras questões), ou com python ou R (este exemplo).
Então, com um 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}
Você pode obter alguns como este:
---
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`
Responder2
Se você chamar \listfiles
o primeiro comando (mesmo antes de \documentclass
), o log conterá os arquivos usados (e geralmente uma breve descrição) no final. Por exemplo:
\listfiles
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{example-image}
\end{document}
tem um arquivo de log que contém:
*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)
***********