Why is it so hard to find TeX sources in C? I know the full source code is included in the tex.web and pdftex.web files, but isn't there any way to convert them to plain C code?


2 Answers 2


It's hard to find them because they don't exist. TeX is written in Pascal (one of the many flavors of it), but the source is interspersed with description of the code in the Web system devised by Knuth and others as part of a "literate programming" project.

The commented source is in tex.web (and tex.ch, a supplementary file where adaptations for specific operating systems are defined); one can get a tex.tex file by running

weave tex.web

and then compiling the file with tex or pdftex. The program code is obtained by running

tangle tex.web

that produces tex.p.

Modern distributions translate the Pascal code into C with a helper program, but I don't think that the C code is particularly readable. If you have available a TeX Live distribution, you can say

texdoc tex

which will open a PDF file with the commented Pascal code.

  • 1
    > It's hard to find them because they don't exist. Well, they exist temporarily. Obviously they must exist, because they get fed to the C compiler. The conversion utility that the OP asked about (and which you mentioned in passing) is called web2c; it takes the tex.p output from tangle and converts it to tex.c
    – bubba
    Nov 24, 2012 at 6:54
  • Ths C sources that temporarily exist are C sources, but not the C source for TeX. Jun 12 at 8:21

The C source code to Y&Y TeX, a once commercial product (Windows), has been released as free software. You can download it from http://code.google.com/p/yytex/

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.