Live data from Hacker News

Rewriting LaTeX in Pure Rust

github.com

61–70 of 148 posts

Re: Rewriting LaTeX in Pure Rust

#61
post #42

Earlier quoted context omitted.

You don't need to install the bits you don't want though, like languages you don't know, documentation (online is easier), music, and humanities. My installs are a bit over 2GB, which seems comparable to a minimal Android Studio install (and a maximal TeXLive install is much less than a large Android development install, if I'm reading things right), and full TeXLive is less than full Qt. I use the installer from TeX…

That means spending time to figure out what you don't need. It's far better to just spend those extra 5 gigs than waste time on this.

Your time must be pretty valuable! It only takes a minute or two, as it's pretty clear which of the ~30 things to deselect.

Re: Rewriting LaTeX in Pure Rust

#62
I'm not sure rewriting Latex in XYZ is a good idea. The whole thing is a mess and a pain to use (and I use it multiple times a week). Sure the documents often look good, but when they don't or there is an error, fixing it just becomes a nightmare. I wish somebody would design a modern typesetting system that would accept say latex equations but without 50 years of cruft and levels of macroses upon macroses.

Re: Rewriting LaTeX in Pure Rust

#63

Earlier quoted context omitted.

You don't play very many new games do you?

Being on HN and talking about TeXLive, I was thinking in terms of Linux, for which those 90GB blockbuster games don't exist (?). So I did a mental jump there, because to me TeXLive is the "native" Linux TeX distribution, and Miktex the "native" Windows distribution.

TeXLive has to me been the obvious choice on Windows for years. Miktex always seemed to be fussy and missing things the few times I tried to use it.

Re: Rewriting LaTeX in Pure Rust

#64

I'm not sure rewriting Latex in XYZ is a good idea. The whole thing is a mess and a pain to use (and I use it multiple times a week). Sure the documents often look good, but when they don't or there is an error, fixing it just becomes a nightmare. I wish somebody would design a modern typesetting system that would accept say latex equations but without 50 years of cruft and levels of macroses upon macroses.

Matthew Butterick is working on the Quad document processor, which is intended to "modernize the good ideas in LaTeX," but I'm unsure what its equation typesetting is like. It's written in Racket.

https://docs.racket-lang.org/quad/

Re: Rewriting LaTeX in Pure Rust

#65
post #63

Earlier quoted context omitted.

Being on HN and talking about TeXLive, I was thinking in terms of Linux, for which those 90GB blockbuster games don't exist (?). So I did a mental jump there, because to me TeXLive is the "native" Linux TeX distribution, and Miktex the "native" Windows distribution.

TeXLive has to me been the obvious choice on Windows for years. Miktex always seemed to be fussy and missing things the few times I tried to use it.

I also switched to TeXLive on Windows recently, because lualatex runs significantly faster there.

Re: Rewriting LaTeX in Pure Rust

#66

Earlier quoted context omitted.

> For the longest time the open source community has shown that it has an issue with innovation How so? A bunch of my favorite software has no real closed-source equivalent, sometime precisely because it’s open source.

The vast majority of open source software is a clone of a closed-source alternative. I currently having issues with thinking of a widely adopted, consumer-oriented software that has no closed-source alternative. What is your favorite software that has no real closed-source equivalent?

vim?

Re: Rewriting LaTeX in Pure Rust

#67
post #48

Personally, I think this approach -- which as far as the engine is concerned looks like a largely-automated "translation" of xetex from C/C++ to Rust -- is misguided. The xetex code is a byzantine tangle of disparate pieces that evolved over the course of a number of years and several changes of direction; it originally started as a personal tool to address one individual's use case for a "Unicode-capable TeX", and g…

> littered with unsafe blocks

Good points. It's unfortunate that headlines rarely distinguish safe Rust from unsafe, when so much of the advantage of Rust depends on it. You may even get a hostile response for asking about it ( https://news.ycombinator.com/item?id=24141493 )

Re: Rewriting LaTeX in Pure Rust

#68

This looks amazing and like everything I always wanted. Sadly, I think basing off XeTeX and not LuaTeX is a mistake. Certainly renders it unusable for me. Having Lua integration is just great. Also, `lualatex` does not have some of the limitations of `xelatex` (memory limitations, `contours` package, ...), but I guess this XeTeX reimplementation can work on removing those implementations, so that only lack of Lua int…

> Also, `lualatex` does not have some of the limitations of `xelatex` (memory limitations, `contours` package, ...) Are there some more details of the memory limitations you can share with us?

LuaLaTeX allocates memory as-needed, see section 3.4.1 in the manual [0] (and comments/answers in this thread [1]). Base TeX has an arbitrary, by modern standards low memory limit, leading to a whole class of errors plaguing unsuspecting users [2], and spawning entire extensions to deal with these limitations [3].

This is simply an artefact of times past and has no technical relevance nowadays. LuaTeX allows dynamic allocation, with the available system RAM as the upper limit (so effectively, no limitations in everyday usage).

Now, I could not find a mention of memory handling in the XeTeX reference manual [4]. People are using tricks like `tikzexternalize` with xelatex [5, 6]. Especially the first point makes me think XeLaTeX inherits base TeX memory handling/limits, but I cannot confirm this.

I just know that all my problems disappeared when switching from XeLaTeX to LuaLaTeX.

Lastly, see here [7] for a comprehensive (albeit somewhat anecdotal) list of advantages of LuaTeX over XeTeX. Of that list, `microtype` is another significant functionality I rely on.

[0]: http://www.tug.org/texlive//devsrc/Master/texmf-dist/doc/con...

[1]: https://tex.stackexchange.com/q/7953/

[2]: https://tex.stackexchange.com/search?q=tex+capacity+exceeded

[3]: https://tex.stackexchange.com/a/482560/

[4]: http://mirrors.ctan.org/info/xetexref/xetex-reference.pdf

[5]: https://tex.stackexchange.com/q/438131/

[6]: https://tex.stackexchange.com/q/334250/

[7]: https://tex.stackexchange.com/q/126206/

Re: Rewriting LaTeX in Pure Rust

#69

Earlier quoted context omitted.

If seems to me that upstream is C. https://github.com/tectonic-typesetting/tectonic/

O'rly? https://github.com/tectonic-typesetting/tectonic/blob/master...

It seems you're linking to wrappers to the underlying https://github.com/tectonic-typesetting/tectonic/tree/master...

Re: Rewriting LaTeX in Pure Rust

#70

Earlier quoted context omitted.

> Does anyone know if the Rust community has ever done anything original, though? Depends on what you call "original". Is the Servo layout engine _not_ original because layout engines already exist? :) Moving away from the rhetorical question, I think there are several reasons to rewrite something in Rust, the first and foremost being the huge improvement in memory safety/management. The other reasons are typically r…

Rust seems to be a lot safer than C or C++ but I don't really understand why a documentation system must be written in a low level language. Why not use C#, Java, Go or something similar? Most users can't really need extreme performance.

LaTeX is a typesetting ststem, not a documentation system. Doing typesetting of large documents is performance critical.
Post reply on HN