Hacker News new | past | comments | ask | show | jobs | submit login
The SILE Typesetter: Simon's Improved Layout Engine (github.com)
115 points by jhoechtl 38 days ago | hide | past | web | favorite | 41 comments

The manual seems to quickly disqualify the system. The numbers don't line up in the TOC in horrible ways. Then a little ways down there's a wrap figure that's got a horrible spacing problem. These indicate to me that the shiny new foundations are really quite wobbly.

Wow, I thought you were exaggerating but it really is terrible. Page 15 of the manual is inexplicably 90% blank too.

So it's clearly just a super-rough prototype, which would be fine except that when it brands itself as "its job is to produce beautiful printed documents"... it gives the impression that it already does this, when the reality is clearly far, far away.

I think the project needs to be honest about where it's at.

[1] https://sile-typesetter.org/manual/sile-0.10.2.pdf

Well it doesn’t even have a 1.0 release so that’s enough to cut them slack.

For instance, the foundation of the house is most critical but when everyone looks at the foundation and asks, “where’s the house? This house can’t be much they brand themselves as a beautiful château but all it is is a big hole in the ground...”

A project like this is no minor task! :)

>Well it doesn’t even have a 1.0 release so that’s enough to cut them slack.

I mean, it's at 3000+ commits and 5+ years so it's not exactly a new project. There's something to be said for doing fewer things but doing them really well.

The very first versions of TeX did fewer things, but they did them really perfectly.

I love the premise and design vision of SILE, so I played with it a bit. I reported an issue with the show-off document (not the manual), and it led to an interesting discussion: https://github.com/sile-typesetter/sile/issues/623

It's an open source project that will gladly accept patches. I've submitted patches for those things that didn't work for me and while getting feedback is useful, getting fixes is better.

I admit I'm prejudiced by the author beginning the README by boasting about how "beautiful" their own creation is, but I'm dismayed at the thought of trying to do preservation and archival work on documents whose rendering changes every time Harfbuzz has a mandatory security update.

I was hoping to be able to soften this criticism by saying "at least it looks better than the output of the last layout engine I wrote", which would not be a hard bar to clear (http://canonical.org/~kragen/dercuano.20191230.pdf is full of egregious typographical sins), but https://github.com/sile-typesetter/sile/commit/e72aafd58f855... (Liddell & Scott, I would have thought? Although it has no title page, table of contents, or even headwords, and https://archive.org/details/greekenglishlex00lidduoft/page/x... contains about 20× as much text) seems to be missing most of the definitions and doesn't even look that good. The first entry, αδην, defined by Liddell & Scott as "to one's fill" with 12 lines of elaboration, reads simply, "αδην adv. .". (Except with the proper diacritics, of course.)

That's probably just a bug or something, but I am therefore unfortunately unable to soften my criticism with such a compliment.

The test example looks alright: https://github.com/sile-typesetter/sile/blob/master/examples...

The kerning doesn't look great, but that's the fonts (DejaVu Sans + Libertine AFAICT).

The test example literally has a double hyphen "--" in place of an em dash, which begins a line, provoking an unjustified momentary appearance of being an utterance by a character quoted in the French or Spanish style; and the author's name in body-text type right-aligned at the top of the page looks like a typographical error. Still, it's eminently readable, with reasonable hyphenation. My typographical sins in the PDF rendering of Dercuano were, in many cases, far worse (no hyphenation at all!), but I hacked together Dercuano's PDF renderer in 5 days as a last resort, and I don't claim that the result is "beautiful", although I wish it were.

Thank you helping me be slightly less of an arrogant jerk!

The faux em dash definitely caught my eye. The hyphenated "ory" on its own line at the end of a paragraph is another really bad look.

If these are the examples to pitch the system... it doesn't seem ready for primetime. That's OK. Every project has to start somewhere, but the README could stand to frame that a little better.

Yeah, I wouldn't want to influence the author to stop working on typesetting, but I found the arrogant boasting really annoying.

yeah, LaTeX tries really hard to avoid such a short trailing line.

Preserve the PDF output

I think TeX is terrible, so keep it up please, but the examples all look really bad. If you want to sell someone on "this system will help you make beautiful documents", the examples need to wow.

Not sure if TeX is “terrible” or not, but the syntax here looks very similar.

On a practical note, it may be worth exploring other options: groff and TeXMacs (no affiliation with TeX or emacs).

Lout[1] might also be worth a look.

[1]: https://en.wikipedia.org/wiki/Lout_(software)

I have used ConTeXt for a bit. And it made me like TeX again. The typesetting is actually great. It does ligatures, kerning, right to left scripts, Arabic, and more. I think LaTeX is where it went wrong, with all the incompatible packages which redefine random stuff...

LaTeX can do all these things too. What Context brings to the table is a sane UI.

How is TeX terrible? I’d appreciate it if you could calibrate your response roughly to my level of discernment, which is to perceive LaTeX documents as better looking than Microsoft Word, but not be able to articulate why, or have much finer grained resolution than that.

Generally when you can’t discern the rational for a preference, it often means the underlying basis is associative rather than objective. That’s how most of us discern most things most of the time—a particular appearance tends to correlate with past performance.

You’ve probably read a bunch of very good papers typeset in TeX.

What I mean is that, with some things like music, I can say that this recording is better than this one because the musician is playing with better dynamics, or better pacing, etc, but with two chocolate cakes from a restaurant I can only say “this one is better.” I can’t give any advice to the chefs. Typesetting is like the latter, I can say “this looks better” but can’t say “it’s because the margins are wider” or the serifs are fatter.

Is there a bug bounty program for SILE? Does the payout double for every bona fide bug reported?

I'm sympathetic to the motivations that would lead someone to write a new typesetting engine. The problem is that in terms of essentially bug-free behavior and being completely understood and documented, TeX sets a bar that, despite its age and certain kind of clunky, is very, very high.

The first thing I want to know about a typesetting system is: does it do microtype? And are there any innovations at that level? I don't see any mention of this in the "SILE vs TeX" section of the manual, but to me it seems like the most important thing I'd need to know up front. After all, if I'm not going to put in the effort to make a document look really good, why bother with a typesetting system at all?

Practically speaking, I think if they wanted users to adopt this, the best thing they could do would be to write an output format for Pandoc or similar. I could try this today if such a mode were available.

What is microtype?

I believe it's referring to small intercharacter typesetting details like tracking and kerning.

From the microtype package for latex:

"The microtype package provides a LaTeX interface to the micro-typographic extensions ... : most prominently, character protrusion and font expansion, furthermore the adjustment of interword spacing and additional kerning, as well as hyphenatable letterspacing (tracking) and the possibility to disable all or selected ligatures."

I'm using it as a shorthand for the features provided by LaTeX's microtype package, namely proper kerning, protrusion, and expansion:


Does it have a context-free syntax? Because this is basically the only problem with TeX: You cannot parse it.

IIRC there are DSLs that are context free and which compile down to TeX. I just can’t recall at the moment any.. it’s been years. The layout engine inside TeX is second to none. Why throw out the baby with the bath water?

I never encountered a context-free typesetting language that was as powerful as TeX. I assume it would be quite a lot of rather boring work. The main interesting design question would be how to express content and its relationships in some logical way that is distinctive from the algorithmic layouting.

What does context-free syntax mean? And what does “you cannot parse it” mean? Meaning you can’t stream it, you need the whole file first?

Tex is like a programming language, you have to "run" the program to generate output, and that execution is tightly tied to producing output on paper pages. This means it is extremely difficult to produce good looking HTML, or accessible output.

Context free means that the language/program can be described using a "context free grammar": https://en.wikipedia.org/wiki/Context-free_grammar.

Context free grammars are more expressive than regular expressions, but less expressive than full-blown programming languages.

If you've got a spare 100 or so hours and you're interested in learning more, there's a good lecture series on YouTube about this stuff: https://www.youtube.com/watch?v=TOsMcgIK95k&list=PLbtzT1TYeo...

Check out python-typesetting for another alternative.


I went to the the website and looked at [1]. Both examples there show complete lack of understanding of typography and typesetting. I don't even know where to start.

Tex is no fun to use but this system is years away from being an alternative.


No math, sadly.

There are several tickets related to math handling. See https://github.com/sile-typesetter/sile/pull/578 and other tickets referenced there.

See also a previous discussion here: https://news.ycombinator.com/item?id=13674879 for Patoline, another LaTeX alternative (written in OCaml).

Is this embeddable?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact