LaTeX 프로젝트에 포함된 모든 패키지에 대한 간략한 요약 설명을 제공하는 LaTeX 패키지가 있습니까?

LaTeX 프로젝트에 포함된 모든 패키지에 대한 간략한 요약 설명을 제공하는 LaTeX 패키지가 있습니까?

LaTeX 프로젝트 내에 존재하는 모든 패키지를 스캔한 다음 CTAN에서 해당 LaTeX 프로젝트 내에 포함된 각 패키지에 대한 간략한 요약 설명을 다운로드하여 인쇄할 수 있는 LaTeX 패키지가 있는지 궁금합니다. 최종 문서의 일부로 요약 형식을 제공합니다.

간단한 요약 설명을 찾는 다른 방법이 있다는 것을 알고 있습니다. 예:

  1. "LaTeX Companion" 책: 간략한 설명과 함께 광범위한 패키지 목록을 제공합니다. 모든 패키지를 다룰 수는 없지만 귀중한 리소스 역할을 합니다.
  2. 온라인 리소스: Overleaf, LaTeX-Tutorial.com 및 연구 가이드와 같은 웹사이트에서는 문서, 튜토리얼 및 패키지 설명을 제공합니다.
  3. 패키지 문서: 많은 패키지에는 자체 문서가 함께 제공되며 PDF 파일로 제공되는 경우가 많습니다. 이러한 리소스를 찾으려면 패키지 이름 뒤에 "documentation"을 검색하면 됩니다.
  4. texdoc 명령: 로컬 LaTeX 설치가 있는 경우 터미널이나 명령 프롬프트에서 texdoc <package_name> 명령을 사용하여 특정 패키지에 대한 설명서에 액세스할 수 있습니다.

LaTeX 프로젝트를 자동으로 스캔하고, 포함된 모든 LaTeX 패키지 목록을 컴파일한 다음, LaTeX 프로젝트에 포함된 각 LaTeX 패키지에 대한 간략한 설명을 CTAN에서 다운로드하는 패키지를 찾고 있습니다.

다년간의 LaTeX 프로젝트 파일에 수백 개의 LaTeX 패키지가 포함되어 있는데 그 중 상당수는 그 패키지가 무엇을 하는지 잊어버렸습니다. 프로젝트를 조판할 때마다 간단한 설명 정보를 쉽게 사용할 수 있으면 좋을 것 같습니다.

답변1

이것은 라텍스 패키지보다는 CTAN 설명을 보여주기 위한 초기 단계의 아이디어입니다(성숙하지는 않을 것입니다). 이 예는 있는 그대로 다른 패키지와 함께 사용하는 데 많은 문제가 있을 수 있고 게다가 Quarto에서 작성되었으며 아마도 표 예의 일부 항목도 잘못되었을 수 있습니다(죄송합니다. 확인할 시간이 없습니다). 아이디어를 보여주는 것이 아마도 수동으로 수행하는 것이 더 나을 것이라고 생각합니다(아마도 다양한 경우를 처리하기 위해).

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

관련 정보