LaTeX プロジェクト内に含まれるすべてのパッケージの簡単な概要説明を提供する LaTeX パッケージはありますか?

LaTeX プロジェクト内に含まれるすべてのパッケージの簡単な概要説明を提供する LaTeX パッケージはありますか?

LaTeX プロジェクト内に存在するすべてのパッケージをスキャンし、その LaTeX プロジェクト内に含まれる各パッケージの簡単な概要説明を CTAN からダウンロードし、最終ドキュメントの一部として概要形式で印刷する LaTeX パッケージが存在するかどうか知りたいです。

簡単な概要説明を見つける方法は他にもあると思います。たとえば、

  1. 「LaTeX Companion」という本: 広範なパッケージのリストと簡単な説明が掲載されています。すべてのパッケージを網羅しているわけではありませんが、貴重なリソースとして役立ちます。
  2. オンライン リソース: Overleaf、LaTeX-Tutorial.com、Research Guides などの Web サイトでは、ドキュメント、チュートリアル、パッケージの説明が提供されています。
  3. パッケージのドキュメント: 多くのパッケージには独自のドキュメントが付属しており、多くの場合 PDF ファイルとして提供されています。パッケージ名の後に「ドキュメント」を付けて検索すると、これらのリソースを見つけることができます。
  4. texdoc コマンド: ローカルに LaTeX がインストールされている場合は、ターミナルまたはコマンド プロンプトで texdoc <package_name> コマンドを使用して、特定のパッケージのドキュメントにアクセスできます。

私は、LaTeX プロジェクトを自動的にスキャンし、そこに含まれるすべての LaTeX パッケージのリストをコンパイルし、LaTeX プロジェクト内に含まれる各 LaTeX パッケージの対応する簡単な概要説明を CTAN からダウンロードするパッケージを探しています。

数年にわたる LaTeX プロジェクト ファイルには数百の LaTeX パッケージが含まれていますが、その多くは何をするものか忘れてしまっています。プロジェクトをタイプセットするたびに、簡単な説明情報がすぐに利用できると便利です。

答え1

これは主にまだ初期段階のアイデアであり (成熟はしないでしょう)、LaTeX パッケージではなく CTAN の説明を表示します。この例は、そのままでは他のパッケージで使用する場合に多くの問題が発生する可能性があり、さらに Quarto で作成されており、表の例の一部のエントリが間違っている可能性もあります (申し訳ありませんが、確認する時間がありません)。しかし、このアイデアを表示することは、おそらく手動で行う方がよいと思います (おそらく多くの異なるケースに対処するため)。

  1. 何らかのツールを使用してプリアンブルにロードされたパッケージの名前を選択するかgrep、プリアンブルのコピーを手動で編集して .sty 名のリストを作成します。

  2. ソースCTANパッケージの名前のリストを取得するには、およびtexdoc/またはtlmgr

  3. tlmgrこれらのパッケージの簡単な説明を取得します 。手動で実行しtlmgr info -data name,shortdesc name1 name 2...、エラーをチェックし、出力を CSV ファイルに保存するだけです。

  4. CSV ファイルを使用すると、datatool(示されていませんが、他の質問に多くの例があります)、または Python または R (この例) を使用して簡単にテーブルを作成できます。

次のような前文があります:

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

次のように取得できます:

ここに画像の説明を入力してください

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

答え2

\listfiles最初のコマンドとして を呼び出すと( の前でも\documentclass)、ログの末尾に使用されたファイル (および多くの場合短い説明) が含まれます。例:

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

次の内容を含むログ ファイルがあります。

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

関連情報