I love LaTeX whole-heartedly. I never learned Word in college and wrote all my papers in LaTeX as an undergrad, just using its default styles. I write mathematical papers to myself, despite not being a mathematician. I found a LaTeX package that lays things out in the same style as old TSR D&D modules and I use that to write new dungeons. I wrote a book in markdown and used pandoc to output LaTeX and publish it through Amazon. I write silly scripts for my friends to do table reads from, using a LaTeX package. I write music scores of my composition in lilypond and one of my next projects is to combine it with LaTeX to print out books I can have on my piano.<p>Ultimately, I think wrestling with LaTeX is kind of like wrestling with programming. Over time, you just have to develop that sense of radar that tells you when you are over-implementing. In programming, it's the choice of whether to write custom or hunt for a library, or at a higher level, the build-vs-buy question. For LaTeX, it's whether to wrestle with custom commands or just search its stack exchange or hunt for a package. It's still easy to go down the wrong rabbit hole - last time it happened to me it was because I got obsessed with wondering if I could create nomographs in LaTeX, but luckily I discovered pynomo instead.
I have a related feeling about TeX. It has superb output quality but the programming is awful. When LuaTeX finally arrived a few years ago, it was possible to do almost everything you have done before in the TeX language (starting with \backslashes) in Lua.<p>See <a href="http://wiki.luatex.org/index.php/TeX_without_TeX" rel="nofollow">http://wiki.luatex.org/index.php/TeX_without_TeX</a> for an introduction.<p>I have (shameless plug) created a database publishing software using this technique (<a href="https://github.com/speedata/publisher/" rel="nofollow">https://github.com/speedata/publisher/</a>). Once in a while I have to use LaTeX and it feels a bit old school to do the macro programming.<p>My next project is to rewrite the TeX algorithms in Go - see <a href="https://github.com/speedata/boxesandglue" rel="nofollow">https://github.com/speedata/boxesandglue</a>. Already usable but not TeX like in any way (this is just a library, not a frontend software like TeX)
Take a look at <a href="https://sile-typesetter.org/" rel="nofollow">https://sile-typesetter.org/</a>. IIRC it literally reuses some core C libraries from TeX/LaTeX, and glues them together in a different way using Lua, keeping Lua as the only language available. Notably, SILE recently achieved the long overdue milestone of math/equations support (<a href="https://sile-typesetter.org/2021/09/sile-0-12-0-is-released" rel="nofollow">https://sile-typesetter.org/2021/09/sile-0-12-0-is-released</a>). Obviously, open-source.<p><i>edit:</i> for some attempt at an explicit discussion of pros & cons & history vs. TeX, see: <a href="https://sile-typesetter.org/what-is/#sile-versus-tex" rel="nofollow">https://sile-typesetter.org/what-is/#sile-versus-tex</a>
Oh I remember my CS years, when all the professors were raving to me about LaTeX, and I never understood why.<p>Sure, it might be marginally better than just using Word, although - not that much; and it’s horrible to debug, it’s horrible to actually automate, it’s horrible to actually “separate content from style”…<p>I thought that maybe something is wrong with me and over time it will “click”… it never did.<p>But, this article made it click. (but that’s after I already got my degree…)<p><a href="http://www.danielallington.net/2016/09/the-latex-fetish/" rel="nofollow">http://www.danielallington.net/2016/09/the-latex-fetish/</a><p>LaTeX is not actually good for writing papers.<p>It’s good for typesetting. And that’s it. It’s good as a type-setting program, that’s what it is meant to be. It’s definitely not good for separating content from style, or some kind of meta-automation or macros.
You sometimes see people ask fairly simple Python questions on Stack Overflow, that could be solved by five lines of plain Python, and be answered with some Pandas magic incantation that happens to do what they want with one call. I always find this a bit sad, because it seems to take away the idea that programming is about assembling composable parts, replacing it by a search for the right magic thing from a box of ready-made magic things.<p>(Plain)TeX always seems the opposite of this. There is never a keyword that does what you want, but you can always do it by using five different mechanisms in concert. You always feel like you are trying to trick the system into doing something it was not designed for.
In 1999, I was editing a telecom industry standard as an intern and, of course, decided to use LaTeX instead of Word. The seasoned industry veterans on the technical committee were super impressed with my “Word” abilities and wondered if I could share my much-improved template with them.<p>It suffices to say that I hastily hired a friend in school to work over the weekend converting the beautiful LaTeX into Word.
I despise LaTeX for two reasons: It's offensively inelegant, and there's no such thing as "LaTeX".<p>The offensively inelegant point is purely a matter of taste so I won't belabor it. The second point means that every author writes their document with their own particular suite of LaTeX add-ons, and if you don't have all of them you have no hope of compiling the document. There's Joe's LaTeX and Sally's LaTeX and Jennifer's LaTeX but nobody uses "vanilla LaTeX." So even after I download "LaTeX" (which is itself multiple gigabytes in size), I <i>still</i> have very little hope of compiling documentation that comes in LaTeX form. I hate LaTeX with the heat of a thousand suns and I'm embarrassed for my profession when I find it still in use.<p>The one thing LaTeX does well is math; if I had to write math papers I'd probably force myself to learn it, but fortunately I don't.<p>I tend to use org-mode for everything now. I don't use markdown because it has the same problem as LaTeX: There's really no such thing as "markdown" and the vanilla Daring Fireball version isn't facile enough for real work.
The solution presented in this anonymous, undated article is relevant if you’re constrained to only using LaTeX. But you’re not, and there are certainly easier ways to go about such things. We have Python and other higher level languages that we can use to pre-process source and extract metadata. This type of problem is made much easier if you write in Markdown, putting authors, affiliations, and other metadata in (say) YAML blocks, and use Pandoc to convert to LaTeX (or anything else). You can write a filter in Python, Lua, or Haskell to rearrange the metadata the way the author wants. This would be a far more pleasant experience, and easier to extend and generalize.
I too love LaTeX but it's important to remember that the writing experience might be nice and elegant in LaTeX with the right stys and ShareLatex and whatnot, but the <i>editing</i> experience is decidedly not. Everyone who has used it in any serious form with page limits knows the stress of slowly varying their figure sizes and hoping it will squish into the limits.<p>Very honestly, part of the reason I don't bother with any new "LaTeX reimagined" projects is because either (a) they are written by LaTeX nonbelievers who don't understand the complexity of beautiful typesetting, or (b) I don't want to learn another markup+ language or mental model. The latter is increasingly annoying to me.<p>Out of curiosity, is LaTeX compilation benchmarked on the M1 processors? Is it better? Has anyone experimented with magic Raph Levien-style SIMD magic (a la stack monoid) compilation for LaTeX? I just want LaTeX but really <i>really</i> fast.
Try TeXmacs, it's neither TeX nor it's Emacs clone.<p>TeXmacs is WYSIWYG scientific editing platform. Documents created can be saved in TeXmacs, Xml, Scheme, PDF or Postscript. Converters exist for TeX/LaTeX and HTML/MathML. It can also be used as a graphical front-end for other computer algebra, numerical analysis, statistics software[1].<p>[1]<a href="https://www.texmacs.org/tmweb/home/welcome.en.html" rel="nofollow">https://www.texmacs.org/tmweb/home/welcome.en.html</a>
LaTeX is mostly good for academics who need to manage citations, if you just want a clean, readable CV there's lots of WYSIWYG options.<p>I actually used to use TexMaxer:<p><a href="https://en.wikipedia.org/wiki/Texmaker" rel="nofollow">https://en.wikipedia.org/wiki/Texmaker</a><p>It's on my list of things I want to deploy a fuzzer on when I get around to learning that -- I've been focused more on data visualization lately.
I'm always amazed how people could bootstrap something as feature rich and versatile as LaTeX from plain TeX.<p>I'd really like to get to know plain TeX a bit better, but I've got no idea where to start.
I only interact with tex and latex through pollen these days. <a href="https://docs.racket-lang.org/pollen/" rel="nofollow">https://docs.racket-lang.org/pollen/</a><p>It doesn't shield you from much of the pain, initially at least. But you can separate it from the document and treat it as markup, and reuse bits more easily.<p>Of course pollen itself is a thing to learn. But if you work with text a lot and like lisp it might be worth it. It's been good to me.
I also have a love & hate relationship with LaTeX. I think it really boils down to the following:<p>LaTeX will work excellently for you, so long as your use case was envisioned by the original authors.<p>I can't say that the original authors of LaTeX didn't envision using it for creating slideshows/presentations, but I can say that making a beamer theme is uniquely complicated. I wish that LaTeX had something as flexible as CSS for styling documents rather than the awkward commands, etc. used now—so much so that I attempted to replace LaTeX with a HTML & CSS -> PDF workflow in the past [0]. It is still an idea I want to revisit someday when I have more time.<p>[0] <a href="https://github.com/jonpalmisc/pmt" rel="nofollow">https://github.com/jonpalmisc/pmt</a> (no longer actively maintained)
Not a TeXnicians nor a TeXpert but I've learnt it at a certain point in high school after a professor suggestion, than much used at the uni and now just used casually for letters, reports etc I do love the quality, that's is.<p>As far as I do not find something with equivalent or better typesetting quality I'm stick with LaTeX :-)<p>To those who hate it: try to learn some tangible "alternatives" like *roff or TeXinfo and than you'll see LaTeX syntax is not that horrid or difficult, then try to learn some modern typesetting tools like those from Adobe. LaTeX win easily, that's is. Said that IF someone can offer something equivalent with a far simpler/nicer markup as I said before my love is just to the quality of the output!
In my opinion LaTeX fails to deliver when doing anything other than text based work.
Tables, images, etc are always a hassle. It gets even worse when changing one page to landscape mode. Debugging is a pain and there aren't any tools to help with that.
My rule of thumb is that once I start writing imperative LaTeX with loops and stuff, I'm almost always on the wrong path. Now, I might be missing some important corner cases, but by skimming through the blog post, I feel like the author's solution is too complicated. For example, I don't get why this requires auxiliary files.<p>I would create a counter for the affiliations, let the \affiliation command define macros that contain the name of the affiliation and the value of the counter and then append the output to two different helper macros, one for authors and one for affiliations, whose contents I dump in \maketitle.
Check out <a href="https://www.monsterwriter.app/" rel="nofollow">https://www.monsterwriter.app/</a>,
It is something like LyX but even easier to use.
In the last three decades of having the opportunity to learn and use TeX, i have managed to avoid it. In the same time i've helped a friend with word processing for her dissertation. I'm still not sure how we managed to get it to work with all the horror stories about data loss and Microsoft Word at the time. But it did its job and I'm still in the WYSIWYG camp.<p>Maybe in another life...
Although I haven't used LaTeX in decades to write anything substantial like a paper or dissertation, I recently had cause to use it to write up some homework for an online course I'm doing - mainly (pretty simple) maths proofs. After 20 years of not doing maths, my ability to faithfully rearrange handwritten equations from one line to another was even more rubbish that it was in my 20s! All sorts of dropped or flipped signs, terms and stray brackets would trip me up. Although initially sceptical, I found that doing this in LaTeX (with the ability to cut/paste to a new line and then manually 'refactor') was way more reliable. I think it tapped into my ability to do this semi-unconsciously when coding! (And with no dreaded page turns...)<p>However, it's still an effort to squint at all of LaTeX's curly brackets and long form symbol names, and LaTeX doesn't grok the equation of course.<p>Has anyone come across any tools out there that offer a similar experience for manually rearranging equations and somehow 'linting' as you go along? i.e. something that knows a bit more about precedence/structure etc? Even a intellij ctrl-W style shortcut (highlights chunks with increasing scope) would make it easier/quicker to do what I'm talking about.
I'm not sure if it's necessary to use auxiliary files.<p>I made something implementing fake vectors using \csname . I think that a similar approach can be used for this problem, but I prefer to never see my old code again. IWIMM<p><pre><code> \newcommand{\defwithindex}[3]{%
\expandafter\def\csname #1@#2\endcsname{#3}%
}
\newcommand{\getwithindex}[2]{%
\csname #1@#2\endcsname%
}
</code></pre>
(You probably need the two dimensional version.)
Hey all, the giant code block in the article is quite intimidating to read, so I figured I'd post another example here for something developers might be more familiar. See below for FizzBuzz in plain TeX:<p><pre><code> % Save to fizzbuzz.tex and compile with pdftex, not pdflatex
\def\modulo#1#2{(#1-(#1/#2)*#2)} % a mod n = a-(a/n)*n where / is integer division
\newcount\X
\X=1
\loop
\ifnum \numexpr\modulo{\X}{15} = 0
FizzBuzz
\else
\ifnum \numexpr\modulo{\X}{3} = 0
Fizz
\else
\ifnum \numexpr\modulo{\X}{5} = 0
Buzz
\else
\the\X
\fi
\fi
\fi
\endgraf
\advance \X by 1
\unless \ifnum \X>100
\repeat
\bye</code></pre>
There must be a solution similar to this: <a href="https://hackage.haskell.org/package/TeX-my-math" rel="nofollow">https://hackage.haskell.org/package/TeX-my-math</a><p>I don't understand why they encode these expressions f^{(2)}(x) like so. They should be written like a regular function: f 2 x. Then you apply your styling depending on eg. the domain definitions. Eg. for f : N x R -> R, then the first argument is sub/super-scripted... etc.<p>Another eg. In python, we would render this expression: sum([i*2 for i in range(0, n)]) with sigma expression... etc.
LaTeX needs replacing with something faster and more program-y, and that isn't just a python script.<p>LateX's successor should be opinionated, safe, easy to build in parallel, and also good at integrating with other tooling:<p>Let a CAS generate the next equation for you, for example.<p>Make sure that figure is never out of date (e.g. a build system rather than relying on a web of files and button clicks)<p>Etc.<p>This will likely never happen because latex is still very good at what people want it to do push comes to shove, but we could have a much better document format and publishing system around it.
I don't use LateX explicitly (my colleagues and supervisors didn't know LaTeX and exclusively use MS Word) but I like how I can write equation in MS Word using LateX notations.
I collected here: <a href="https://texmacs.github.io/notes/docs/art-of-math-writing.html" rel="nofollow">https://texmacs.github.io/notes/docs/art-of-math-writing.htm...</a> some of my reflections about mathematical writing and in particular about the reasons I choose TeXmacs as my tool of choice. It might be also relevant to you.
LaTeX? I just use TeX. The documentation for TeX is clear, very precise, and much shorter.<p>LaTeX is just TeX but with a lot of new macros. The <i>intent</i> is different: With TeX, you just say in detail what steps you want the software to do. With LaTeX you say what you want in general terms and f'get about the details.
Jesus H Carnegie. I JUST WANT TO WRITE AN ACADEMIC ARTICLE.<p>I mean, look at this abhorrence. And look at what you open up in a TeX file, which again <i>is meant to represent English prose</i>.<p><pre><code> % Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
]{article}
\usepackage{amsmath,amssymb}
\usepackage{lmodern}
\usepackage{iftex}
\ifPDFTeX
... and more and more of this dross ...
</code></pre>
I want to get stuck into the article. At least show me my abstract. But no. It's just more and more backslashes.<p>It's just vile. And the people who use it have Stockholm syndrome, and they pass it on to their PhD students who spend nights before their presentation at 2am, trying to align a table and crying. Then they have Stockholm syndrome too, and they tell you "it's pronounced LARTECH" and give themselves a little pat on the back.<p>And here's an equation:<p><pre><code> \sigma _{I}^{2}=a^{2}s^{2}+\left( 1-a\right)^{2}S^{2}+2a\left( 1-a\right)\sigma.
</code></pre>
How are you supposed to manipulate that? I can open up a WYSIWYG editor and literally do maths by just copy-pasting parts from one side to another. But this, I can't even read, let alone intuit.<p>TeX. It's the worst.
What is the intended use for LaTex these days?<p>I’m not trying to flame, I just have no idea why anyone would choose to use it over html/css or just a word processor.