Thank you for your insight. 1. I'm not 100% satisfied with your solution since it does not work with latex environments which open math-mode (such as a align). These produce errors because of the double-opening of math-mode. It's also pretty cumbersome compared to usual md. I see that this is how pandoc parses typst equations (I should have looked!) [ Math DisplayMath "\\begin{aligned}\n1 + 1 & = 2 \\\\\n1 + 1 & = 2\n\\end{aligned}" ] Is that now going to be the accepted format for multiline equations? 2. I had overlooked the possibility of writing a filter. The principle of the filter would then be: parse DisplayMath if there are & and/or \\ present, modify the block depending on writer: - latex, HTML: transform to align - everything else: transform to accepted format(??) \begin{aligned} Is that correct? If so, I'll start hacking at it in the near future. Best regards, Guillaume On Thursday, October 19, 2023 at 6:11:41 PM UTC+2 John MacFarlane wrote: > > Pandoc provides a solution for almost all of these. The only issue is > multi-line equations. > > A work-around I am aware of is to just use raw latex code like: > > ```latex > > \begin{align} > > 1 + 1 &= 2 \label{first_line} \\ > > 1 + 2 &= 3 \label{second_line} > > \end{align} > > ``` > > which works fine when exporting to both HTML and latex: it is added as > is to the HTML where it is parsed by both mathjax and katex. > > Note that there's another way to do this that will create a native Math > element in pandoc: > > $$ > \begin{aligned} > 1 + 1 &= 2 \\ > 1 + 2 &= 3 > \end{aligned} > $$ > > > > However, I propose that formatting equations like typst might be a good > way to make multiline math native to Pandoc, instead of piggy-backing on > raw latex. > > > > Multiline equations could be written as in latex, wrapped in `$$ $$`: > > ``` > > $$ > > 1 + 1 &= 2 \\ > > 1 + 2 &= 3 > > $$ > > ``` > > > > which could be parsed as a new DisplayMathMultiline type in the AST. > > (This is a mockup: I really don't understand how the AST is written) > > ``` > > [ Math DisplayMathMultiline > > [ > > Math DisplayMathLine ["1+1", "=2"] > > Math DisplayMathLine ["1+2", "=3"] > > ] > > ] > > ``` > > > > This type can be written to: > > - HTML and latex: as an `align` block > > - typst: as a multiline math block > > - pandoc markdown: as a multiline math block > > - other: as multiple successive displayMath blocks > > > > I do not see how modifying the AST in this way would produce an issue: > it's an additive feature as far as I can tell. > > Any change to our algebraic data types is a breaking change that would > require modifications throughout the ecosystem (all writers and readers, > filters, etc.). That's why we're very conservative about such changes and > make them infrequently and only with very strong reasons. > > I suppose one possibility would be to parse this syntax into > > \begin{aligned} > 1 + 1 &= 2 \\ > 1 + 2 &= 3 > \end{aligned} > > which should work with all the formats you mention... > > You could even create a filter that does this, without changes to pandoc > itself. > > > -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/daaf510b-50a3-4f9d-b7d5-58609d3821c6n%40googlegroups.com.