I am studying source2e.pdf and I have encountered something such as <*dircheck>, <*initex>, <*2ekernel>,<latexrelease>. I thought that they might be some sort of label to mark different parts of the LaTeX source - * probably means the beginning of a part and / probably means the end of a part. But as I continued to read they just didn't make much sense to me. And I didn't find anything that explains the use of these labels in source2e.pdf. The document just goes directly to the various .dtx files after the contents, without any explanation of the notation used in the document.

(I don't know what tags are suitable for this question, so I just chose a tag randomly. Someone else might choose a more appropriate tag.)


They are docstrip guards as moewe commented, you will see .ins files in that directory that control which guards are used when building each file.

Of the ones you mentioned:

dircheck code is used very early in the latex format unpacking to check the directory syntax, now all systems use / even windows, but originally we had to support VMS, flat mainframe file systems with no directory structure at all, filesystems with no extensions so article.sty was mapped to article in a subdirectory sty etc...

initex marks a block of code that is just used to when using initex for format creation

2ekernel is the bulk of the latex sources, that get extracted into latex.ltx

latexrelese marks old versions of the code that do not go into latex.ltx but are instead extracted into latexrelease.sty to allow rollback to previous versions.

The detailed syntax of these guards is described in the LaTeX Companion book, or more directly in the docstrip documentation (texdoc docstrip in texlive).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.