是否有一個 LaTeX 包可以提供 LaTeX 項目中包含的所有包的簡要摘要描述?

是否有一個 LaTeX 包可以提供 LaTeX 項目中包含的所有包的簡要摘要描述?

我想知道是否存在一個 LaTeX 包,它可以掃描 LaTeX 專案中存在的所有包,然後從 CTAN 下載該 LaTeX 專案中包含的每個包的簡要摘要描述,然後列印在摘要格式作為最終文件的一部分。

我意識到還有其他方法可以找到簡短的摘要描述,例如:

  1. 「LaTeX Companion」一書:它提供了廣泛的軟體包清單以及簡短的描述。儘管它可能無法涵蓋所有軟體包,但它是一種寶貴的資源。
  2. 線上資源:Overleaf、LaTeX-Tutorial.com 和 Research Guides 等網站提供文件、教學和套件說明。
  3. 包文檔:許多包都帶有自己的文檔,通常以 PDF 文件形式提供。您可以搜尋套件名稱後面跟著「文件」來尋找這些資源。
  4. texdoc 指令:如果您有本機 LaTeX 安裝,則可以在終端機或命令提示字元中使用指令 texdoc <package_name> 來存取特定套件的文件。

我正在尋找一個包,它可以自動掃描我的 LaTeX 項目,編譯其中包含的所有 LaTeX 包的列表,然後從 CTAN 下載 LaTeX 項目中包含的每個 LaTeX 包的相應簡要摘要描述。

我的多年 LaTeX 專案文件中包含了數百個 LaTeX 包,其中許多我都忘記了它們的用途。我很高興每次排版項目時都能隨時獲得簡短的描述訊息。

答案1

這主要是一個仍處於起步階段(並且不會成熟)的想法,用於顯示 CTAN 描述而不是乳膠包。我擔心該範例在與其他一些軟體包一起使用時可能會出現很多問題,而且是在四開本中製作的,甚至可能表示例中的某些條目是錯誤的(抱歉,沒有時間檢查),但我認為展示想法,可能最好手動完成(以處理可能許多不同的情況):

  1. 使用某些工具選擇在前導碼中載入的套件的名稱,或grep僅手動編輯前導碼的副本以製作 .sty 名稱清單。

  2. texdoc使用和/或取得來源 CTAN 套件的名稱列表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)
 ***********

相關內容