Have you seen this font before? This is Computer Modern and it’s used everywhere from exams sheets to research papers, all because it is default font in popular typesetting language LaTeX, known for its ability to diplay maths equations, as well as being the de facto standard of writing articles in many fields of science.

Which is surprising as LaTeX is a far less productive option compared to office suites, according to this study, it is much easier to make mistakes in LaTeX than word, something you don’t want on a research paper. So how did it against all odds, become the favourite of scientific communities?

Typesetting is the art of placing words on a page. Back in the 70s, it was usually done manually by professionals. However, this was not an option for Donald Knuth, as his publisher was too broke to afford one, instead they used computers to typeset his book, to which he was deeply dissatisfied with the poor results. Believing he can do better, he set out to create his own typesetting system for anyone to produce high-quality books with minimal effort.

This was no easy feat, as the system will have to know the dimensions of all characters to find the optimal arrangement of characters per line, and lines per page. It took him 7 years of typography, and by 1978, he released the first version of TeX along with the Computer Modern font.

After the initial learning curve, TeX slowly gained popularity among researchers. Soon words reached the American Math Society, who at the time was looking for a good digital typesetter. They quickly realised that TeX was exactly what they were looking for. Not only did they heavily promoted the use of TeX to members. Instead of waiting for new features to be added, they went ahead and extended TeX’s ability to typeset maths using its powerful macro system, publishing the first ever macro package - AMSTeX.

At the time TeX was able to produce high quality publications, but it was still very complicated to use. To make TeX accessible to everyone, 1984 LaTeX was created so macro packages such as AMSTeX can be used easily. This variant of TeX was so popular by 1990, it became the de facto standard in the scientific community.

Since then LaTeX has been adopted by students for note taking, some markdown editors even include it as a proper way to display maths equations. On the flip side, vanilla LaTeX is still the favourite of many experienced users. And as I see it, there is nothing more fun than perfecting your notes to the point people like it more than the textbook.

So have you hear of LaTeX before? What do you use LaTeX for? Let me know in the comments down below, anyways I’ll be seeing you in two weeks, have a good one.

  • @Treczoks
    link
    27 months ago

    I wrote papers and books in LaTeX 35 years ago, and was the TeX guy at our faculty.

    Now my son is at university and writes his papers in LaTeX.

    • @siriusmartOP
      link
      17 months ago

      so i was trying to write a LaTeX parser so i can convert it into markdown, and learnt a bit of TeX along the way. like im too young to have used TeX, but LaTeX is just a god bless piece of software for everyday people, no way anyone’s note taking with TeX

      • @Treczoks
        link
        17 months ago

        My son is actually doing his lecture notes in LaTeX. Live. He types about as fast as me.

  • @Audalin
    link
    17 months ago

    LaTeX is great (that is, nothing can really compete with it), but its design is an abomination at this point. There’re just too many different subsystems working in different paradigms with different conventions simultaneously, e.g.:

    • plain TeX with boxes, kerning, counters, lengths and so on;
    • LaTeX;
    • expl3;
    • TikZ/PGF is its own world with its own scary places. At the same time it relies too much on TeX/LaTeX to be fast or reliable;
    • Lua if you use LuaLaTeX.

    Good luck debugging if something doesn’t work immediately - each of the subsystems doesn’t know how the other subsystems work, most have their own independent error handling and reporting routines, so ~95% of errors don’t actually tell what’s wrong, and only ~50% somewhat help figuring out where there’s something that’s wrong. You have reasonable suspicions in most cases, but not always (especially if you’re in the process of writing a complex macro and you know your initial try is likely to be faulty - you just don’t know where and why exactly, even with plenty of experience). There’re no easy ways to debug macro expansion step-by-step.

    Here’re some fun exercises if you don’t realize how terrible the situation is:

    • Make a macro generating a table - a true tabular - with m rows and n columns (both macro parameters). In each cell, print the sum of the row number and the column number. (easy)
    • Set up the compilation process so that all compile files (.aux, .log &c.) end up in the build/ directory and not wherever your .tex files are. Now draw some nice TikZ pictures. Now set up TikZ externalization. (medium)
    • The same as the first exercise, but now apply word wrapping behaviour to table columns: if there’s no place for another column, the table should end, and a new table should continue from the next line (the numbering of columns must continue). Avoid columns getting past the line boundaries, even slightly. But you can’t break groups of 3 columns. Also draw horizontal red lines connecting the centres of horizontally adjacent cells within those groups of 3. (hard)

    I had to solve these - or very similar in nature - problems while working on various things.

    • @siriusmartOP
      link
      17 months ago

      a few months prior i thought i had enough of LaTeX, because the compiling is slow, all the packages, unexplanetary error messages, its just a pile of mess from the 1980s. so i went and try out some newer typesetting languages, the one i tried was typst, it went fine until i got addicted to graphing in TikZ and now, i’m once again a firm LaTeX user

      (but LaTeX is still a complete mess, and there is a lot of room for improvements that newer typesetting languages can take, if someone is willing to put in the effort to make one)