为了更好地理解 (La)TeX,我正在分析 source2e.tex 文件,并且看到大量单独的.dtx
文件:
\DocInclude{ltdirchk} % System dependent initialisation
\DocInclude{ltplain} % LaTeX version of Knuth's plain.tex
\DocInclude{ltvers} % Current version date
\DocInclude{ltdefns} % Initial definitions.
\DocInclude{ltalloc} % Allocation of counters and others.
\DocInclude{ltcntrl} % Program control macros.
\DocInclude{lterror} % Error handling.
\DocInclude{ltpar} % Paragraphs.
\DocInclude{ltspace} % Spacing, line and page breaking.
\DocInclude{ltlogos} % Logos.
\DocInclude{ltfiles} % \input files and related commands
\DocInclude{ltoutenc} % Output encoding interface
\DocInclude{ltcounts} % Counters
\DocInclude{ltlength} % Lengths
\DocInclude{ltfssbas} % NFSS Base macros
\DocInclude{ltfsstrc} % NFSS Tracing (and tracefnt.sty)
\DocInclude{ltfsscmp} % NFSS1 Compatibility
\DocInclude{ltfssdcl} % NFSS Declarative interface
\DocInclude{ltfssini} % NFSS Initialisation
\DocInclude{fontdef} % fonttext.ltx/fontmath.ltx
\DocInclude{preload} % preload.ltx
\DocInclude{ltfntcmd} % \textrm etc
\DocInclude{ltpageno} % Page numbering
\DocInclude{ltxref} % Cross referencing
\DocInclude{ltmiscen} % Miscellaneous environment definitions.
\DocInclude{ltmath} % Mathematics set up.
\DocInclude{ltlists} % List and related environments
\DocInclude{ltboxes} % Parbox and friends
\DocInclude{lttab} % Tabbing tabular and array
\DocInclude{ltpictur} % Picture mode
\DocInclude{ltthm} % Theorem environments
\DocInclude{ltsect} % Sectioning
\DocInclude{ltfloat} % Floats
\DocInclude{ltidxglo} % Index and Glossary
\DocInclude{ltbibl} % Bibliography
\DocInclude{ltpage} % \pagestyle \raggedbottom \sloppy
\DocInclude{ltoutput} % Output routine
\DocInclude{ltclass} % Package & Class interface
\DocInclude{lthyphen} % Hyphenation (hyphen.ltx).
\DocInclude{ltluatex} % Luatex support
\DocInclude{ltfinal} % Last minute initialisations and dump
我在系统中哪里可以找到它们?我已经检查了 MiKTeX 2.9 文件夹,其中找到了目前我想要的大多数文件(例如 article.cls、geometry.sty)。
答案1
LaTeX2e 内核源代码位于其中sources/latex/base
:你应该能够通过以下方式找到它们
kpsewhich ltvers.dtx
在命令行(对我来说它给出c:/texlive/2018/texmf-dist/source/latex/base/ltvers.dtx
)。
由于 LaTeX 内核是大的(当前版本为 8820 行)。源代码需要具有某种逻辑结构,因此它们被分成不同的区域。例如,在 TikZ 中可以看到相同的情况,出于类似的原因,expl3
我也在进行类似的拆分。siunitx