嗯,这个问题很容易理解。(我正在写一个关于 LaTeX 的简短教程,想了解一些琐事 ;))。
答案1
TeX 直播
TeX Live 2012(2012-09-19)
$ egrep -c '\.sty$' ls-R
3381
$ egrep -c '\.cls$' ls-R
448
$ egrep -c '\.(sty|cls)$' texmf-dist/ls-R
3829
Windows 有findstr
,但它有一些限制。例如,如果文件没有以行结束标记结尾,它就无法检测 Unix 行结束或最后一行的结束。
的等价物wc -l
是find /c /v ""
,参见Windows 中“wc -l”的对应内容是什么?。
> findstr /c:.sty ls-R | find /c /v ""
> findstr /c:.cls ls-R | find /c /v ""
> findstr /c:.sty /c:.cls ls-R | find /c /v ""
不同的方法:
$ find texmf-dist/tex/latex \( -name \*.sty -or -name \*.cls \) | wc -l
3148
$ find texmf-dist/tex/generic \( -name \*.sty -or -name \*.cls \) | wc -l
191
$ find texmf-dist/tex \( -name \*.sty -or -name \*.cls \) | wc -l
3500
视窗:
> (cd texmf-dist\tex\latex && dir /s /b *.sty *.cls | find /c /v "")
> (cd texmf-dist\tex\generic && dir /s /b *.sty *.cls | find /c /v "")
> (cd texmf-dist\tex\tex && dir /s /b *.sty *.cls | find /c /v "")
但:
- 误报:
.sty
/.cls
不是 LaTeX 包或类的文件。 - 有些软件包将其工作划分为更小的单元(模块
tikz
,...),这些单元正式为 LaTeX 软件包。 - TeX Live 仅包含免费包和类的子集。
TeX 目录
2012-09-19
$ find catalogue/entries/ -exec grep -l '/macros/latex' {} \; | wc -l
2154
视窗:
> dir /s /b catalogue\entries | findstr /m /f:/ /c:/macros/latex | find /c /v ""
但:
- CTAN 中的所有软件包并非都在目录中。
- 外面有包
CTAN:macros/latex/
(例如pgf
)或者可以以不同格式使用的包。 - 一个目录条目可能包含多个包和类。
- 误报:驱动文件和其他东西(例如
pdftex-def
)。
答案2
在完整的 MiKTeX 安装中:
$ find . | grep '\.sty' | wc -l
3498
$ find . | grep '\.cls' | wc -l
349
因此大约有 3500 个样式文件和大约 350 个类文件。
答案3
MiKTeX 包管理器目前至少有 2371 个包。