I see, thanks. If I'm understanding this correctly, pandoc already performs such macro expansions (for non-latex output), so the only thing preventing it in the context of a Quarto html book is that one needs to include the macros alongside each chapter, as they are processed separately (https://github.com/quarto-dev/quarto-cli/discussions/1045).
It's therefore more of a Quarto feature, to make sure the macros are copied over with each chapter, but there's no need for an elaborate filter to implement this.

Many thanks,

baptiste



On Wednesday, 18 January 2023 at 10:07:00 UTC+13 fiddlosopher wrote:
Well, you could use the Lua ‘read’ function to read in a snippet consisting of the macro definitions + the math.
e.g.

pandoc -f latex -t native
\newcommand{\pie}{\pi}
$\pie^2$
^D
[ Para [ Math InlineMath "\\pi^2" ] ]

On Jan 17, 2023, at 11:17 AM, bapt a <augu...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:

Hi,

I've found it useful in some situations to expand all custom LaTeX macros (such as `\newcommand{\Curl}{\nabla\times}`, for example) in a document before rendering it.
For example, with Quarto being used to produce a book in both pdf and html formats, the macros stored in a file `_macros.tex` are processed differently in the LaTeX path (simply including `_macros.tex` in the preamble) and in the Html version (where Mathjax needs to be given such macros for every page that it renders; it doesn't work to provide it once for the whole book/website).

An alternative that sounds quite robust would be to run something like de-macro (https://www.ctan.org/tex-archive/support/de-macro) on the source document before it is rendered: the macros are still used for convenience of writing in the input file, but they get expanded explicitly before LaTeX or Mathjax is asked to render.

Unfortunately, de-macro is a Python script, and might be a little fragile as it processes whole documents with regex. I wonder if achieving the same thing would be easier with a Lua filter in pandoc? Presumably, having already all the equations isolated in the AST makes life a bit easier, and I believe there is already a mechanism in pandoc to process and expand `\newcommand` directives for non-latex output. Is this mechanism available to a Lua filter that could be used in a Quarto workflow?

Many thanks,

baptiste





--
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-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/a5d780b9-2dcc-4cc4-bade-29bae4777811n%40googlegroups.com.

--
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/b1e37c1b-8529-4374-b16c-bfc8f0e44213n%40googlegroups.com.