Skip to content

Conversation

@alerque
Copy link
Member

@alerque alerque commented Jul 10, 2025

Closes #2289

@alerque alerque added this to the v0.15.14 milestone Jul 10, 2025
@alerque alerque force-pushed the typst-docs branch 12 times, most recently from 489a15b to d440a00 Compare July 11, 2025 07:05
@alerque alerque marked this pull request as ready for review July 11, 2025 07:07

\item{\strong{Input formats:}
SILE was conceived to handle multiple input formats; out of the box it supports a LaTeX-like syntax but also includes an XML reader suitable for inputting other formats.
In addition writing input drivers is relatively easy and 3rd party ones for Markdown, DJot, and others have been developed.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"relatively simple..." 🤣 ... "and others" 🤣

\item{\strong{Market usage:}
The Typst’s developers’ background in academia has heavily influenced how and where it is used.
The largest demographic is almost certainly university students writing papers for their math and science curriculum, with some journal publishing thrown in for good measure.
SILE’s active developers are book publishers and the majority of the work it has grown up around is literature and languages.
Copy link
Member

@Omikhleia Omikhleia Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"book publishers" : We have a list of those active folks? 'Cause I'm not aware of many, after ~4 years in that community...


\item{\strong{Speed:}
Typst is faster than SILE.
Full stop.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'Cause SILE's code is inefficient and recomputes the same things multiple time? Not totally, but still... 🤣

Adobe's InDesign is a prominent package in this space, but many others exist.
Affinity Publisher is a newcommer but popular alternative.
Adobes InDesign is a prominent package in this space, but many others exist.
Affinity Publisher is a newcomer but popular alternative.
Copy link
Member

@Omikhleia Omikhleia Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the point in name-dropping Affinity (and Quark or Scribus etc. below) without comparison? Either people know these, and do not need that vague mention, or they don't, and what is it intended to achieve then?

(I always thought the only reason for mentioning InDesign was the SILE's frames (however executed) derived from an idea that was there.)

Copy link
Member

@Omikhleia Omikhleia Jul 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As an aside note, the manual has "Old timers and newspaper publishers will remember QuarkXPress." just below. Why "old timers"? Quark is still widely used (and maintained) as well as CorelDraw etc. The reason for such sentences is unclear:

  • WYSIWYG desktop publishing tools vs. text-based typesetting systems?
  • Proprietary vs. Open source?

Most other alternatives are based in one way or another on browser technology.
WeasyPrint and some others\footnote{PDFreactor, Prince, Antenna House, Typeset.sh, Vivliostyle, BFO Publisher, etc.} take HTML and CSS input and converts them to printable output using web-technology libraries.
Paged.js and several others\footnote{pdfChip, quarkdown, etc.} do the same by actually shipping the content off to a full browser and asking for print versions back.
Like paged.js, Quarkdown offloads the actual typesetting to a browser, but uses a home-grown superset of Markdown as its input format instead of HTML plus CSS directly.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lots of solutions mentioned here, where the key point is CSS Paged Media support, and other CSS extensions (= it's no longer a "browser", it's a complete Web stack with appropriate extensions). Are you comparing products, or features and technologies? It's a bit in between at places, and quite confusing.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re: on being confusing. I don't understand who you are talking to as target audience in all that "comparison". It's sometimes very technical, sometimes very high-level; who is it supposed to be helpful for? Esp. as first chapters of a documentation.

While both typesetting engines cover much of the same ground, the respective focus and implementation choices of each are so varied that direct comparisons don’t always have clear winners.
At the end of the day the specific use case and workflow preferences are at least as relevant as the overall merits of each engine.

When Typst was first conceived, SILE had been around the block in production for a while; but had only really been used for prose.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"in production for a while"? It's hard to find any sample.

"used for prose" - Interesting. Clarify "prose" (an no, it's not only about maths being, or not being, in the picture).

Almost exactly one decade after SILE development started, a new competitor to LaTeX entered the scene with a bang:
\footnote{Days of front-page coverage on Hacker News, Lobsters, and the like propelled it past 10k GitHub stars in the first 6 days of being public, a milestone SILE is still very far from reaching.}
Typst.
There is no shame in stating that Typst is a great piece of software and a worthy competitor to SILE as well as well as LaTeX.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we want "competitors" (and even to compete at all) ? Using the right tools for the right needs is not only about competition, or being "worthy" of anything in general.

This niche was exactly the felt need of Typst’s developers; the major focus right out of the gate was math and science papers.
In the first releases it was more than a little bit rough in the prose department.
Since then SILE’s math chops have greatly expanded to cover the majority of MathML.
Typst’s feature set for handling prose have also improved.
Copy link
Member

@Omikhleia Omikhleia Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't they have protrusion now? SILE is really behind (Lua)LaTeX in several areas of "microtypography". These "feature sets" here are not described, so it's a vague comparison, without any specific feature or lack of it thereof being compared. Not sure what such wording achieves in any direction.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On protrusion in Typst: https://typst.app/docs/reference/text/text/#:~:text=overhang,-bool

This is a "prose" feature by the way. Earlier we were told SILE was focused on prose. Erm.

In the first releases it was more than a little bit rough in the prose department.
Since then SILE’s math chops have greatly expanded to cover the majority of MathML.
Typst’s feature set for handling prose have also improved.
That being said the initial focus and energy of each project is still very visible.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"very visible": Explain.

\begin{itemize}

\item{\strong{Field of focus:}
SILE was initially conceived to handle hard problems in automated typesetting of books in many world orthographies.
Copy link
Member

@Omikhleia Omikhleia Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And? Does it achieve it? Or is this just a general statement of intent here?

SILE has math support but it has not been exercised to nearly the extent of Typst’s.}

\item{\strong{Input formats:}
SILE was conceived to handle multiple input formats; out of the box it supports a LaTeX-like syntax but also includes an XML reader suitable for inputting other formats.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generic support for XML was never fully demonstrated in SILE's core distribution. I know: I suffered a lot on it. So this is a mere claim here, or a proven field with robust uses?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On a second thought here:

So they can both achieve the same kind of things - one with a custom API, the other by leveraging existing Lua components. I am not sure how it compares in term of input capabilities.

SILE was conceived to handle multiple input formats; out of the box it supports a LaTeX-like syntax but also includes an XML reader suitable for inputting other formats.
In addition writing input drivers is relatively easy and 3rd party ones for Markdown, DJot, and others have been developed.
Typst on the other hand developed their own input format, loosely based on Markdown but distinct and unique; it does not support input in anything else.
Pandoc support allows some other formats to be converted and imported, but not worked with natively.}
Copy link
Member

@Omikhleia Omikhleia Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"... with natively" - Sure, but what does it mean here for end-users?

Pandoc support allows some other formats to be converted and imported, but not worked with natively.}

\item{\strong{Scripting:}
SILE exposes (and indeed is actually mostly implemented in) Lua, an industry standard embedded scripting language with an already large ecosystem of code and packages.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"an already large ecosystem": Compared to what? If SILE had stuck to JS, or been implemented in Python (for instance), there would be trillions of existing components to use for plenty of fancy things. The Lua ecosystem of reusable components is... very very very small, actually, no?

It turns out algorithms and expertise themselves are more relevant than the language they happen to be written in and LuaLaTeX specific libraries are not very flexible.}
it can be found embedded in web servers, game engines, code editors, and a myriad of other applications.
Typst’s approach to scripting was to invent their own language from scratch.
The language they invented is clean, logical, and robust—but also unique and, to some extent, constraining.}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Define "constraining" while there are already dozens and dozens of 3rd party modules on Typst Universe.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw. And let's compare ecosystems, if we are in some sort of comparison. Typst Universe on one side. And? 🤣

In SILE’s case 100\% of the internals are exposed via Lua and/or FFI and can be inspected or overridden by the user.\footnote{%
In addition to the native Lua interface, users may extend SILE with modules written in Rust, C, or any other language with an FFI interface or any executable that can be spawned in a process.
In other words almost anything can be integrated.}
This includes the parts documented to be user-facing API surfaces; but also the core modules and other bits the SILE developers generally consider as private APIs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"... the SILE developers generally consider as private APIs" -- We all know it's not a clear definition, at the risk of anyone's code being called "upside down", or claimed to be doing things"backwards" etc. 😁


\item{\strong{Market usage:}
The Typst’s developers’ background in academia has heavily influenced how and where it is used.
The largest demographic is almost certainly university students writing papers for their math and science curriculum, with some journal publishing thrown in for good measure.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"for good measure": Explain.

\item{\strong{Scripting:}
SILE exposes (and indeed is actually mostly implemented in) Lua, an industry standard embedded scripting language with an already large ecosystem of code and packages.
Lua’s syntax and features are well known and documented.
Besides being used in other Typesetting applications\footnote{%
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"other Typesetting applications" = which ones?

The thought behind the switch to Lua was to gain advantage of its use in LuaLaTeX and other typesetting applications.
In practice, using the same language as other typesetting systems has not really provided much of the hoped for opportunities for code re-use.
It turns out algorithms and expertise themselves are more relevant than the language they happen to be written in and LuaLaTeX specific libraries are not very flexible.}
it can be found embedded in web servers, game engines, code editors, and a myriad of other applications.
Copy link
Member

@Omikhleia Omikhleia Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"it can be found..." = there's maybe a good point actually being made here.

Learning Lua -> One then knows something (in general programming, etc.) that can be reused in other contexts.1

Learning Typst's language or TeX/LaTeX -> One develops kind of a specific niche knowledge where the expertise is less general. That's very true for TeX/LaTeX (I am not sure my long-forgotten knowledge on where and how to insert those \expandafter's was anytime useful elsewhere, lol); perhaps less for Typst (which on the surface looks like what one would expect from a normal modern programming language), but there's still a point here, maybe.

Footnotes

  1. My own experience is the reverse (= I came from first using Lua in Minetest/Luanti and then gave a shot at SILE eventually), but it's still the same idea...

The language they invented is clean, logical, and robust—but also unique and, to some extent, constraining.}

\item{\strong{Security model:}
Typst attempts to make the renderer safe to run on arbitrary input.
Copy link
Member

@Omikhleia Omikhleia Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"attempts to": does it imply it doesn't succeed to achieve it? Or that there are limitations in the sandboxing approach? The wording is (quite) weird.

This is a noble goal and serves a purpose for some use cases, but by definition it introduces significant limitations.
The scripting language is deliberately sandboxed and not allowed direct access to arbitrary disk I/O, network, or system processes.
SILE on the other hand makes the assumption that the user, including whatever scripting they may embed in a document or project, should have complete freedom to do anything the user wants.
As such document rendering is not sandboxed at all and scripting has complete control to do anything the user of the system is permitted—to include spawning processes, accessing the network, and file system access.}
Copy link
Member

@Omikhleia Omikhleia Jul 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very technical. This stuff is proposed for inclusion in the first chapters of a user manual. What's the target audience? Who are you talking to?

The Typst’s developers’ background in academia has heavily influenced how and where it is used.
The largest demographic is almost certainly university students writing papers for their math and science curriculum, with some journal publishing thrown in for good measure.
SILE’s active developers are book publishers and the majority of the work it has grown up around is literature and languages.
Its flexibility also makes it an ideal tinkerer’s tool: used in font proofing and other workflows unrelated to book publishing.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Links, examples, etc. ? It's of no use mentioning things that no reader can relate to without some hints at what is being expressed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Compare sile to Typst

2 participants