The SILE Typesetter: Simon's Improved Layout Engine

(github.com)

115 points | by jhoechtl 1496 days ago

13 comments

  • twarge 1496 days ago
    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.
    • crazygringo 1496 days ago
      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

      • bjornjajajaja 1496 days ago
        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! :)

        • marcinzm 1496 days ago
          >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.

        • twarge 1496 days ago
          The very first versions of TeX did fewer things, but they did them really perfectly.
    • haberman 1495 days ago
      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
    • paulclinger 1496 days ago
      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.
      • marcinzm 1496 days ago
        The feedback here isn't for the project really, it's for everyone else thinking of using it. Hacker News is a discussion site and not just a place to market things.
  • kragen 1496 days ago
    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.

    • Mathnerd314 1496 days ago
      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).

      • kragen 1496 days ago
        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!

        • munificent 1496 days ago
          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.

          • kragen 1496 days ago
            Yeah, I wouldn't want to influence the author to stop working on typesetting, but I found the arrogant boasting really annoying.
          • blt 1496 days ago
            yeah, LaTeX tries really hard to avoid such a short trailing line.
    • adultSwim 1494 days ago
      Preserve the PDF output
  • ebg13 1496 days ago
    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.
    • Koshkin 1496 days ago
      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).

    • Jaxan 1495 days ago
      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...
      • anoncake 1495 days ago
        LaTeX can do all these things too. What Context brings to the table is a sane UI.
    • zweep 1496 days ago
      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.
      • sjwright 1496 days ago
        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.

        • zweep 1496 days ago
          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.
  • PaulDavisThe1st 1496 days ago
    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.

  • dang 1496 days ago
  • eslaught 1496 days ago
    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.

    • mixmastamyk 1496 days ago
      What is microtype?
      • tofof 1496 days ago
        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."

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

        https://ctan.org/pkg/microtype?lang=en

      • stevemk14ebr 1496 days ago
  • choeger 1496 days ago
    Does it have a context-free syntax? Because this is basically the only problem with TeX: You cannot parse it.
    • ttul 1496 days ago
      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?
      • choeger 1495 days ago
        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.
    • zweep 1496 days ago
      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?
      • CJefferson 1496 days ago
        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.
      • The_Amp_Walrus 1496 days ago
        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...

  • j88439h84 1496 days ago
    Check out python-typesetting for another alternative.

    https://github.com/brandon-rhodes/python-typesetting

  • virtualritz 1495 days ago
    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.

    https://sile-typesetter.org/examples/

  • omaranto 1496 days ago
    No math, sadly.
  • hbbio 1495 days ago
    See also a previous discussion here: https://news.ycombinator.com/item?id=13674879 for Patoline, another LaTeX alternative (written in OCaml).
  • monadic2 1496 days ago
    Is this embeddable?