(评论)
(comments)

原始链接: https://news.ycombinator.com/item?id=41014941

创建业务报告时,建议使用便携式文档格式 (PDF),因为它具有专业的外观和跨各种设备的兼容性。 与逗号分隔值 (CSV) 文件相比,PDF 提供了密码保护和数字签名等附加功能。 尽管 CSV 在数据分析方面表现出色,但其平淡的外观往往无法给收件人留下深刻印象,尤其是高层管理人员。 为了实现布局和演示的精确性,Markdown、Typst 或 LaTeX 等其他选项可能会提供更好的结果。 虽然 Markdown 专注于内容和语义,但这些系统提供了对文档结构和样式的更大定制和控制。 然而,在选择平台之前考虑项目的具体需求至关重要。 有些可能需要比 Markdown 提供的更大的灵活性,从而需要使用更复杂的系统,例如 Typst 或 LaTeX。 最终,选择取决于预算、报告的复杂性和工作人员的专业知识等因素。 某些应用程序允许在文档中嵌入编程语言,从而进一步增强功能。 例如,Python 或 Lua 可以直接合并到在某些平台上创建的文档中,从而提高效率并简化流程。 此外,针对自动更新表或插入时间戳等任务而无需手动干预的特定解决方案可能会被证明是有益的。 总之,虽然 Markdown 因其简单易用而受到许多用户的欢迎,但其他平台(如 Typst、LaTeX 和提供高级功能的平台)可能会根据个人需求和目标为企业提供更合适的选择。

相关文章

原文


Typst has been pretty amazing, and at my organization, we’re very happy with it. We needed to generate over 1.5 million PDFs every night and experimented with various solutions—from Puppeteer for HTML to PDF conversions, to pdflatex and lualatex. Typst has been several orders of magnitude faster and has a lighter resource footprint. Also, templating the PDFs in LaTeX wasn’t a pleasant developer experience, but with Typst templates, it has been quite intuitive.

We’ve written more about this large-scale PDF generation stack in our blog here: https://zerodha.tech/blog/1-5-million-pdfs-in-25-minutes



I think we don't reach that much quantity, but we do a hefty number. What for? Invoices!

We're having problems because until now PDFs are being generated by the ERP system, and it can't keep pace. I know there's a Dev team working on a microservice for PDF generation, but never thinked about doing it with Typst.

I think I'm going to send them @mr-karan link.



pdf/ps can easily be created in a way that data for text and qr code fields are easily in plain text. seems like yall focusing too much on the higher level tools instead of what's right in front of you.



Company branding is an important aspect of PDF creation that many tools struggle to handle correctly. PDF documents often need to include logos, company colors, fonts, and other branding elements. Puppeteer is popular because you can control these aspects through CSS. However, Puppeteer can be challenging to work with for larger documents, as each change requires programming effort or when your software needs to needs to serve multiple clients each with different requirements.



how having the value and name in an invoice as plain text affect branding? or do you mean there client branding is added to the invoice??

the end result when you open the file is still a regular pdf. it's just encoded with some areas unpacked



Yep, it's mostly about branding and control. It needs certain concrete layout and logos, and has to be relatively easy to change them.

We also render shipping labels in PDF, and we have to be VERY strict with that. But we're still not touching that, as that process is not at slow and problematic as the invoicing one.



Have you tried reportlab as well? It was a good solution when I had to deal with a similar problem many moons ago. Not quite the same volume you have but still.



Having used ReportLab a bunch, I'd agree it's a good solution, but not maybe on the more mediocre side of good. Generating LaTeX was a better solution for me, and while I haven't used it, Typst looks a lot better.



Regulatory requirements mandate that. Stock brokers in India are required to generate this document called “Contract Notes” which includes all the trades done by the user on the stock exchanges. It also contains a breakdown of all charges incurred by the user (brokerage, various taxes etc). And this has to be emailed to every user before the next trading session begins.



I don’t know the situation in India but brokers in Austria and Germany do the same. The law does not stipulate the format but PDF is what everyone uses. I assume it’s because it can be signed and archived and will outlast pretty much anything. You need to keep these for 7 years.



Yes, in India, the law mandates that ECNs (electronic contract notes) need to be digitally signed with a valid certifying authority. While it's true that XML/docx/xls files could also support digital signatures, but I think PDFs are prevalent and also allow clients to verify this on their end, quite easily.



Is it? More so than say .csv file ?

I was under the impressions that pdfs are not that safe. I thought they can do stuff like execute a subset of PostScript and Javascript.



Look, when it comes to corporate reporting, PDFs are pretty much the gold standard. Sure, they've got some potential security issues, but any decent company's IT department has them well in hand.

Think about it - you want your reports to look sharp, right? PDFs deliver that professional look every time, no matter who opens them or on what device. Plus, they've got all those nifty features like password protection and digital signatures that the big guys love.

CSV files? They're great for crunching numbers, but let's face it - they look about as exciting as a blank wall. Try sending a CSV report to the board of directors and watch their eyes glaze over.

So, yes, for reporting in a company that's got its security act together, PDFs are your best bet. They're like the well-dressed, security-savvy cousin of other file formats - they look good and keep things safe.



Having composed many pieces of coursework using Typst, I must say that it certainly makes academic writing more streamlined, engaging, and dare I say fun — though that might just be me. The functional nature of Typst's syntax ensures I don't have the erratic behaviour emblematic of modern day Microsoft Word and sometimes even Google Docs. Using a local IDE such as VSCode brings all the features one could like.

In comparison to LaTeX, overall document typesetting is far more straightforward. However, for long multi-page stretches of equations solving, I feel that LaTeX is easier to type than Typst because its syntax is not that of a functional programming language but more akin to markdown. Thus, one does not need to think as far in advance when typesetting equations with lots of functions, superscript, and subscript.



Having composed pieces of academic writing, I would like that, journals would start to supporting typst, or, plugins/bridges to LaTeX/Word would fall in place.

For now I would not chose to write a paper in typst, because I most certainly need to convert it once it leaves the institution (even arXiv require LaTeX source).

Tooling around LaTeX is quite good today, with a plethora of IDEs helping. Personally I use Emacs' Org-Mode which compiles to LaTeX.



Typst is missing vital features to produce professional looking documents. Latex and Adobe InDesign use paragraph based algorithms for line breaks and hyphenation (see http://dx.doi.org/10.1002/spe.4380111102 for Latex). That is the main reason why papers written in Word look so amateurish. Proper support for footnotes seems to be also lacking in Typst.

Footnotes might be handled properly in a future version of Typst. Regarding paragraph formatting I'm not so optimistic. I've read the thesis and papers by one of the Typst authors. They either don't seem to be aware of better approaches or they simply don't care about aesthetics.

Edit: Another thing that irks me about Typst is that it does not seem to be a purely not-for-profit project. It is tightly entangled with their commercial offering, whatever that might mean for the future of the "free" version.



The only thing I need to start writing more serious documents with Typst is an equivalent to latexdiff. But I really think (and hope) that this will replace latex in the future. Alone the compilation time makes it so much nice to use! Meanwhile I am supporting them by having a pro account, which is not even so expensive.



This is interesting! However, I suspect general TeX support in Typst is probably impossible unless you re-implement the entirety of TeX within Typst somehow. The TeX language has some really terrible properties. For example, the tokenization rules can be dynamically changed at runtime based on the output that has already been produced. E.g. you can write a TeX file that says "typeset this paragraph, and if the result is an odd number of lines, change the meaning of A from letter to open brace". Thus, fully supporting TeX within Typst would seem to require making all of the internals of Typst available to the TeX runtime.



You've had some good replies already, but just want to add my thoughts. Markdown to me is more about (a) the content (the actual words) and (b) the semantics (text emphasis, headings, etc, which communicate information about the importance or meaning of particular things).

Typesetting systems like Typst or LaTeX go beyond this. They're also about presentation, how precisely it is laid out, on mediums such as print or PDF. Is that something you need? If you care more about the content and its meaning, and are happy to have it rendered differently in different situations (a preview in Visual Studio Code, or passed through a markdown-to-html renderer, or viewed in Obsidian, etc), then Markdown might not just be fine, it may be preferable. But if you need to do things like print this on paper for mailing, email in a PDF, that sort of thing, then you'll want something more.



A few Markdown documents I've converted to PDFs:

* https://impacts.to/downloads/lowres/impacts.pdf

* https://whitemagicsoftware.com/softcover/technical.pdf

* https://whitemagicsoftware.com/softcover/jekyll-hyde.pdf

Respectfully, keeping presentation logic and content completely separated while having precise control over layout can happen with Markdown, as the example documents demonstrate. The ConTeXt typesetting system makes keeping such separation possible.

The deeper issue relates to the software's architecture, which, IMO, systems like Typst, Obsidian, and others fail to generalize broadly enough. Here's KeenWrite's architecture (the "Proposed" row):

https://gitlab.com/DaveJarvis/KeenWrite/-/raw/main/docs/imag...

Although only Markdown is currently implemented, it's possible to plug other text-based input formats to produce an XHTML document. The instructions for how to typeset XHTML documents are defined by a theme. You can think of a theme as an XML to TeX translation layer. From there, going from XML to TeX is straightforward (when using ConTeXt, at least), allowing full control over the final output format (be it PDF, ePub, and so forth).

I am the author of KeenWrite. The following tutorial shows how its themes work:

https://www.youtube.com/watch?v=3QpX70O5S30&list=PLB-WIt1cZY...



>A few Markdown documents I've converted to PDFs:

These aren't Markdowns converted to PDFs. These are HTML websites rendered as PDF, where at some early point some text with basic formatting was fed in.

>keeping presentation logic and content completely separated while having precise control over layout

Does anyone really want that? I certainly wouldn't want that separation. I want to create some document and not a sophisticated template, so I am always willing to sacrifice generality over momentary needs, if I can't force the layout, then I need to waste time to implement some generality, which I don't need. Completely the wrong approach to document creation.

This looks like you really want to have a web framework, not a document creation system.



> These aren't Markdowns converted to PDFs

Would you like to see the source Markdown documents? My workflow is:

    Markdown -> XML (XHTML) -> TeX -> PDF
If that isn't converting Markdown into PDF, what would you call it?

> Does anyone really want that?

At time of writing KeenWrite has had over 4,000 downloads. So, maybe? However, my point wasn't whether people want it (besides me). My point was that it is technically possible to keep a Markdown document's content separated from its final presentation form (e.g., PDF).

> This looks like you really want to have a web framework, not a document creation system.

Not really: I want to write in Markdown (or R Markdown) using interpolated variables and generate PDF documents. I have spent about 9 years working on a cross-platform desktop text editor that allows me to do so.



>Would you like to see the source Markdown documents?

I am pretty sure I know what they look like from the end result.

My point was that almost all of the design effort wasn't contained in the markdown. So clearly there were at least two major inputs to the documents. But of course you agree with that.

>Not particularly; I want to write in Markdown (or R Markdown) using interpolated variables and generate PDF documents.

To me the total separation only makes sense if you are designing for unknown content. If you control the input of content and formatting, then a closer linkage between both seems superior. Markdown is (intentionally) extremely limited, so everything that markdown can't do needs to be implemented in a general way on the formatting layer. Obviously that is more tedious if you have total separation.

What I meant by "web framework" is that they can't assume content, so need to deal with generality. Essentially what you are writing is a website generator, except with PDF being the end output. But generating general and reusable components doesn't seem to be how I would want to create a document.



I would say probably not.

Markdown is really more about getting words down in plain text with a very simple structure for rendering on the web.

Typst and LaTex make stark distinctions between composing and typesetting. They are programmatic typesetting systems with very structured and fine grained control over the look and design of a document once it's compiled and rendered as a PDF.

If all you're doing is writing prose then I honestly think typesetting programs are overkill unless you do want very fine grained control over how your documents look.



Typst deals with documents, so if you want to prepare an actual document, with a defined page layout, style, font, etc. typst gives you that.

Markdown does not do any of that, it just gives you html.

You would want to use typst if you want to create a document and need to control how that document looks from the language itself. Even if you were to render the markdown html to a PDF, markdown itself, or even css doesn't give you control over many parameters of the output document.

There basically is no competition between the tools, they target different output formats.



I've done .doc -> .md -> .tex -> .pdf via pandoc (e.g. to convert a confluence document to a nicely typeset PDF), so I'm not sure there's much difference.

Naturally, a format with more metadata loses metadata when converted to one with less (and the reverse, you may need to add metadata in when going up the chain), but unless your document is bound to a specific format (in which case, I'd pick RST for HTML and LaTeX for pdf), markdown gives you the content and pandoc lets you specify a template (and with pandoc, you can take the markdown and generate slides in HTML, PDF and create notes through the different outputs).



Markdown doesn't give you a table of contents, an index, page breaks, control over typesetting, control over table layout, captioned figures, diagramming tools, etc. The difference is about the same magnitude as between Pong and Call of Duty. Yes they're both video games, sometimes one is preferable over the other, but they are not equivalent.



Pandoc/Quarto markdown gives you most of these.

In my experience, it rarely really matters fine control. If the effort is too big to tweak the templates/markdown you export it to an intermediate state (LaTeX/Office/whatever) and drop the original markdown source.

There is no lock-in.



Conversions don't just loose metadata, you loose the ability to specify things. LaTeX shines because it can do everything by itself, markdown clearly can't and even with a TeX template you loose much of TeX's power.

You should start out by defining your desired output and needed input. I realize that 99% of document content can be fully realized in markdown, but the 1% can easily be a total deal breaker and make using markdown a complete nonstarter.



It depends on what you are doing with your markdown files. For example, if you are using them as the source for a statically generated website typst won't do much for you.



Yea that is my setup right now.

I write markdown and use eleventy + nunjucks templates to build the final result.

It’s pretty easy to create new layouts and styles for really any use case with that setup in minutes.



With or without equations, just use MonsterWriter. It gives you LaTeX results without needing to know what LaTeX is.

But, yes LaTeX has other benefits, e.g. citing references, or creating PDFs according to layout and typesettings best practices.



Typst wants to compete with LaTeX.

They both face the same problem, namely that the web and paper work completely differently and there are untranslatable concepts. So you have to define some way in which your typesetting gracefully settles into a different environment.

If typst had targeted html immediately it certainly would have made their life a lot easier, but it would have been nothing more than an overly complex site generator. Targeting PDF first means that they actually want to compete with LaTeX.



I would prefer some tool that generates better e-books, like an improved ePub format with better equations and tables.

This division between web and PDF is meaningless to me. The ePub format is a book format based on Web technologies.

A better book format is to the benefit of everyone. To believe HTML can only make websites is counterproductive here.

I make PFDs in LaTeX because I am asked to use it, not because I believe it is a good format.



PDFs are a digital recreation of paper documents, with all the drawbacks of that.

Targeting ePub is essentially the same as targeting the web, the distinction between having the file locally or retrieving it from a server seems entirely meaningless in this context.

>not because I believe it is a good format.

It is a pretty much perfect format within the constraints.



Yes, latex's HTML output is fairly good nowadays, after a lot of people made very heroic efforts to put it in a system never intended to support it.

Starting a new markup system with no plan for making accessible documents was, in my opinion, a very bad idea. I refuse to use typst until it can produce accessible documents.



> Yes, latex's HTML output is fairly good nowadays, after a lot of people made very heroic efforts to put it in a system never intended to support it.

Mind saying more? Didn't know there'd been progress here.



I've been doing something similar, and it looks like you've managed to solve a problem I've been unable to: how did you get theorem and section numbering to work right?



Nothing special; here is the pandoc command I use to transform tex without tikz:
  for input in *.tex; do
   pandoc "${input}"                      \
          --from latex                    \
          --to html                       \
          --pdf-engine=latexmk            \
          --css="styles/texstyle.css"     \
          --standalone                    \
          --mathjax                       \
          --toc                           \
          --number-sections               \
          --output="${input%".tex"}.html" ;
  done
My pandoc version is:
  pandoc 3.1.9
  Features: +server +lua
  Scripting engine: Lua 5.4


So? If I'm a modern user who needs my typesetting system to generate HTML, I'm not going to "forgive" a typesetting system because it's older than the web and use it even though it doesn't do what I need.



I don't expect LaTeX to be designed around a paradigm that didn't exist when LaTeX created.

Why do you think anyone expects that?

Why should anyone looking for a typesetting tool care when it was designed?

Why don't you use a Commodore64? I know it doesn't do anything you need it to do, but you have to cut it some slack, it was designed before any of the things you need to do existed!



I can't wait for LaTeX to go away in favor of Typst. The experience is night and day. Very impressed with their work.

I've been using Jinja2 templates to generate TeX files, but Typst can take a JSON over the command line and is easy to use and powerful enough that I can completely remove the Python step.

Not to speak of the compile time that is measured in milliseconds.



Yes, the scripting is very nice. At first, I played around with Go templates to generate the Typst templates, since that is what I was used to doing with LaTeX. It was very nice to discover it allows you to use JSON with its scripting engine directly pretty easily.



I guess this is a competitor to services such as overleaf [1] and codimd [2]. Although this is yet another syntax, it seems to be supported by pandoc [3]. Lately, I have been using Quarto [4] more and more as I program in R, which also produces very nice outputs, especially HTML. But none of these solve the academic usage problems of (1) producing nice diffs for reviewers, and (2) can easily be shared with, and commented by, non-technical collaborators. Thus, I fear Word will be difficult to replace for many years, at least in my field, for scientific writing

[1] https://github.com/overleaf/overleaf

[2] https://github.com/hackmdio/codimd

[3] https://pandoc.org/typst-property-output.html

[4] https://quarto.org/



I've been using quarto a lot too. I've found the typst pdf travel output to be a bit rougher than latex pdf when using GT. Hopefully something that will get fixed.



This looks really great and I'll give it a try. I keep thinking, however:

My guessed probability that LaTex is free and maintained in 15 years: 99.9999%

My guessed probability that $OTHER_NEW_TOOL is free and maintained in 15 years: 5%



The curse of early-and-good-enough systems. It's the same for bash and a few other things. Not enough pain points to replace them even though there's lots of better alternatives.



Also the curse of paradigm.

Making tools libre as a matter of course and mailing people checks for bug finds just rings different than today's dominant paradigm of landing pages, conversion rates, social media tie-ins and for-profit non-profits...



The curse of support.

If you need something that will be supported for the next 20/30/50/100 years, you pick an already established product that is widely used and does not depend on any single organization. You can't rely on volunteer projects, as volunteers have no duty to maintain and support the product. And you can't rely on anything made by a single company, as companies lose interest and die all the time.



The main problem I have with Typst compared with LaTeX is that it doesn't handle basic fine typographic features, such as the different types of spacing in mathematical mode (mathop, mathbin, mathrel, etc.) or the size of delimiters (big, bigg, etc.)



I didn't know about math classes, thank you for the reference

The issue I have with delimiters is that there is no option for "big", but only for "140%" or whatever, making it harder to be consistent Someone created an issue on this on GitHub if I remember correctly

And automatically chosen sizes are often too large



Disclaimer: I haven’t tried the syntax but it doesn’t scream “easier” to me. Latex doesn’t either.

Plus this doesn’t seem to compile down to latex so I also lose the engine. From experience, latex makes beautiful documents and choices which I’ll always prefer over ease of use.



Seems like it's not built on top of LaTex, so you presumably can't drop into LaTex when Typst can't do what you need, or did I just miss that?

LaTex is positively arcane, but I still use it for all my writing since it's so incredibly versatile: Academic papers, letters, contracts, forms, invoices, tons of packages, pretty easy to apply regional standards, ...

How I manage to not go insane is Org Mode: I can write almost everything in something similar to Markdown but do inline LaTex as needed (since it compiles from Org to Latex to PDF). I find that incredibly powerful.



The genius of TeX is that it’s a programming language for document production, that can mostly look like markup. The further genius(?) is that the language works in such a way that you can do more or less arbitrarily complex things, while still exposing an interface to the user that feels like markup. This makes for a language that is sometimes, honestly, completely bananas. But when wielded correctly, it’s great.



Typst is also a programming language for document production, however they made the decision to make the code side an actual scripting language, which makes writing custom logic much easier than in Latex.



True, it can't fall back to LaTeX. It's not there yet, but give them some time and there won't be any cases that Typst can't do that LaTeX can. It's already impressively close if you ask me.



I've been finding Typst a great tool for ~90% of my use-cases — in the other 10%, I'll still reach for LaTeX for the extra power (tikz, pdf images, tagged pdfs (!) (this is becoming more and more of a requirement when publishing/submitting academic texts, and AFAIK Typst does not support it yet), but that's okay. Excited to see where it goes, as LaTeX is very beginner unfriendly and I'd love to see the barrier to entry for typesetting lowered so my more non-technical friends can share in the power of pretty texts & CVs.



At least for a tikz equivalent, I found cetz [1] to be very useful. I am not sure how it compares feature-wise. But I could easily build some graphs with it.

The one thing that really makes me excited when using Typst is that I find it very intuitive, meaning the time between not knowing how to do a certain thing and me being pleased with the result is much shorter with Typst compared to latex.

[1]: https://typst.app/universe/package/cetz/



I love Typst for text and equations, but I find that it is taking me time to adapt to their table syntax and be able to make tables similar to booktabs. I'm hoping that Estout or Modelsummary will be able to write Typst tables with complex formatting soon.



Typst comes as a blank slate. You want to start with template, which defines things for you.

The difference between LaTeX and Typst is that LaTeX wants you to define a template with the "documentclass", if you want the same experience in Typst you want to setup typst with a template, there the headings will be defined for you already.

>However I believe this functionality should be available in the typst core.

You can trivially define headings in typst without using packages.



Practically nothing in Latex comes out of the box. Sure, you can bang out markdown-esque formatted text, but the moment you need something more complicated, say URLs, graphics, resize the margins, etc you are likely going to be pulling in a package.

No true scotsman and all that, but I suspect few documents in the wild are bare Latex.



But the feature I'm talking about comes out of the box. One just writes

\documentclass[twoside]{article}

\pagestyle{headings}

in LaTeX. And this also does the right thing on special pages like table of content, appendix, bibliography etc.

Implementing all that in Typst is quite a hassle.



The 'La' in 'LaTeX' stands for 'Lamport'. Leslie Lamport set up additional macros atop the base TeX language to make life easier. To this day LaTeX code can still be compiled with `pdftex` (note, no 'la' there).

The `article` document class is actually some `article.cls` file that resides somewhere in your TeX install root, is loaded, and implements macros such as `/title`, `/section`, `subsection`, and so on. All LaTeX eventually expands into a pile of TeX macros that are evaluated.

All this is to say... LaTeX comes with the templates, you've been using one all this while.



Two things interest me from this project:

More templates than LaTeX. I have made PDF presentations in LaTeX, which look good, but they all look the same. Some variety is good.

Unicode chars support. I prefer to type α instead of \alpha.

That's it, both things together will make a LaTeX killer for me.



> Unicode chars support. I prefer to type α instead of \alpha.

This is not done by default by LaTeX, but if you can bear to \usepackage{unicode-math} then it's readily available. A life changer!

Regarding presentations, what do you mean exactly? There are a lot of weirdly different beamer themes. You can even put a single verbatim block inside each slide and you'll just have a "text mode" presentation, if that is your thing.



I'm following the progress of this package, I would not mind a more modern successor to LaTeX. I'm an academic, and I actually do not mind LaTeX. I find actually writing LaTeX to be fairly natural. But every time I come to the programmatic interface I feel like there's a lot of room for improvement and that's the most exciting aspect of typst.

I cannot, reasonably, start using this for work until journals begin accepting papers in the format. But I am following until either that starts happening, or some workaround exists.



Can I use this to generate PDF invoices from PHP?

I've been searching for a good solution for the past 15 years. Never been happy with the solutions, and my PDFs are always very ugly.



I saw this come up today in a different thread.

I'm a mature undergrad, I've never used LaTeX, actively avoided it in fact and am forced to produce word documents. My current workflow is pandoc style markdown and obviously pandoc for conversion, with zotero for citations. I make use of pandoc-crossref for figures, tables, sections, etc.

I'm hopefully moving to a different uni for a masters this year. Can anyone who uses typst comment on whether I should consider moving from my fairly complicated workflow to typst?



You may be limited for your thesis. My grad program required us to conform to either a Word or LaTeX template, of which I found the latter actually much easier to deal with. I just kept my chapters in separate files that are inputted into the template.

If you're asking for other assignments, I'd actually recommend Quarto [1]. It's basically a streamlined version of your current workflow. The other benefit is that it can convert your markdown to Typst if you decide to switch over in the future.

1: https://quarto.org



We use a custom tool that bases everything on markdown for this type of thing. It also integrates Jupyter notebooks. It is mostly very effective but the limitations of Markdown certainly grate. Having said that the best thing by far is that it's automatically viewable in Gitlab/Github in source form. This doesn't look like it would fare all that well.



From the first example, I don't understand from the syntax why the first formula becomes inlined while the second one is centered on the page.



I make TTRPG character sheets with Typst. No only they look great with perfect page layout, the programming capabilities allow to compute everything from ability scores automatically, like Excel. It's really well designed, and fast too, VS Code integration just works (for me at least)



Does this have support for macros? It doesn't appear to, and so feels a bit like another variant on markdown (with its own special syntax)? It's not clear to me why I'd use this, compared with RST (where I can generate LaTeX or HTML, and script with python)?



No, it has no macros, that is its greatest selling point. Instead you can use an embedded programming language which will look familiar to anyone who has some experience with software development to script it.

Replacing TeX's abysmal macro expansion language with a reasonably normal programming language is one of the reasons you would use it. Look at the example on their GitHub to see how the language works in a document.



I could never get my head around the use case for ConTeXt. It seemed like LaTeX minus defaults that have been defined by typographers and the massive ecosystem. Care to say more?



Have been using it for a while. Can’t overstate how much better the experience has been compared to LaTeX. As someone who had to use LaTeX not out of choice, I’m so grateful this exists so that I can no longer bother to decipher the mess of LateX.



This is very easy to use compared to latex. My latex resume (or the template I was using) was thousands of lines and had several imports of custom classes.

Re-did my resume using one of their templates, and it’s much easier to maintain now.



This is very interesting, seems to be like LaTex + a whole lot more.

I need to generate udemy-style certificates for a project I am working on. are there any guides on generating PDFs with typst?



This feels like a mix of markdown readability with latex control. I'm not sure yet that I need that middle ground. Currently I'm doing docs in markdown, reports in Python generated tex, coupled with hardcoded preambles. That seems fine so far.



Nowadays, I use Latex mainly for letters using the great KOMA package. I wouldn't mind switching to a markdown based system for that. Would Typst work to produce DIN format letters?



I'm a college student and I use Typst in school all the time. I know I should just use Google Docs/Sheets, but because it's code instead of a WYSIWYG editor it's very easy to create reusable and consistent styles for reports and presentations, and saves time on the long run. (I use polylux module for slides.) Once you get past the learning curve (10-15 hrs if you nosedive) it's incredibly easy to create professional stuff.



I’d be happy if this takes off just for the fact that their default typeface (or at least the one shown on the website) is so much better than “Computer Modern”!



This is the sort of thing that I'm excited about because it solves problems I have, but can't really use for much because I'm not sure if it will exist in a year.



LaTeX is not just a set of macros over TeX to produce (nowadays) some pdf, it's a very big library of ready-to-use packages for pretty anything, that's VERY hard to "substitute".

You want inspiration for some strange table layouts? There are gazillion ready made; some graph? TiKz/PGF have gazillions of ready made examples... Want a programming language in the middle? Python, Lua etc can be embedded straight away.

So far I've seen few tentative to "replace or hide LaTeX", from the old DocBook to ConTeXt, no one succeed simply because of all the LaTeX already made and easy to import. Having alternatives, especially seen the actual "fragmented" development is nice, but honestly I doubt it can take off. Proprietary products are fast to wane in popularity if a serious competitor pops up because the users does not own them, FLOSS are much calmer since anyone can grab a piece and integrate ideas of someone else without the need to switch.



Exactly. It's not too difficult to imagine replacing LaTeX for some fairly straight-forward documents. But just by casually browsing tex.stackexchange.com, you'll soon find out that people use LaTeX for an amazingly wide range of different things, and it's capable of serving many, many edge cases very well. To be on par with that is a very hard goal. Let's not forget, LaTeX has been around forever, and consequently has grown into an incredible complex and varied ecosystem.



But Emacs isn't a requirement by half the STEM research community, LaTeX is.

Typst is not replacing LaTeX in general and should stop advertising being a LaTeX replacement. It isn't a competitor.



Not everything revolves around scientific journals and their archaic rules. For my team Typst was a perfect LaTeX replacement and we've been happy ever since we switched. It is easier to understand, has faster compile times and is more powerful without enabling shell escape. However, we're not in the business of writing scientific papers, we write technical reports for our customers. If it wasn't advertised as a LaTeX replacement, we might never have found out about it.



> Want a programming language in the middle? Python, Lua etc can be embedded straight away.

After using templating languages in Python, yes, I always want this when using LaTeX. And as of ~2 years ago when I last tried this, while sure, I could embed Python in the middle, the interface for interacting with LaTeX via the embedded Python was anemic enough to be not useful. Maybe something had changed in the last 2 years, but if so, it's not more mature.

Example: I wanted to have a daily meditation book, where \chapter{Title} would insert the dates in order with the title of the meditation, instead of chapter numbers, also inserting a table of contents entry with the dates. What I didn't want was to have to go through and change dates if I added a meditation in the middle, or swapped the order of meditations. I'm not picky, I would've been happy to use \section{Title} or \meditation{Title}, or script a solution.

What happened was I spent probably 6 hours of research and never found a solution integrated into LaTeX. I did eventually write a script in Python that naively parsed the chapter titles and changed them in-placed in the LaTeX code, but that meant I had to regenerate the dates as a separate task.

Note that this took me about 5 minutes to figure out with Typst's integrated scripting language.

联系我们 contact @ memedata.com