public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
* latex template syntax vs Lua filters
@ 2023-04-03 21:49 bapt a
       [not found] ` <d890f12c-84d1-4ab8-a836-0da8fb9c8caan-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: bapt a @ 2023-04-03 21:49 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 2699 bytes --]

Hi,

I'm curious to understand the status of / motivations for the 
"mini-language" described in

https://pandoc.org/MANUAL.html#template-syntax

It has become quite complex, with partials, pipes, etc. presumably in 
response to ever-increasing needs to fine-tune the string processing and 
formatting in LaTeX templates. A rather intricate use-case I recently came 
across is to process a list of author-affiliations from Metadata into the 
format requested by a particular journal – for instance:

https://github.com/quarto-journals/acs/blob/main/_extensions/acs/title.tex#L1

to follow instructions along those lines in the latex class:

% repeat the \author .. \affiliation etc. as needed
% \email, \thanks, \homepage, \altaffiliation all apply to the current
% author. Explanatory text should go in the []'s, actual e-mail
% address or url should go in the {}'s for \email and \homepage.
% Please use the appropriate macro foreach each type of information

% \affiliation command applies to all authors since the last
% \affiliation command. The \affiliation command should follow the
% other information
% \affiliation can be followed by \email, \homepage, \thanks as well.

I'm a bit puzzled by the design choice in pandoc templates – would it not 
be (much) easier to process variables in Lua, a fully fledged language with 
built-in support for string manipulation, loops, etc.?

I can imagine a partial "custom writer" of sorts that would be in charge of 
producing, say, the formatted author-affiliation for a given format (latex, 
html, etc.), by manipulating the AST in Lua. This function would be called 
to insert the required content into the TeX file. 

In fact, this can be done right now by adding a generic 
`$insert-author-affiliation$` placeholder in the latex template, and using 
a Lua filter to generate the corresponding data in the AST.

Clearly I'm missing something – there must be a good reason for the 
development of the mini-language for templates, beyond the simple scenarios 
(basic for/if constructs). I could see the value of performing simple tasks 
directly in the target latex template, but when it gets as complex as the 
example above I don't quite follow.

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-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/d890f12c-84d1-4ab8-a836-0da8fb9c8caan%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 3348 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-04-04 20:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-03 21:49 latex template syntax vs Lua filters bapt a
     [not found] ` <d890f12c-84d1-4ab8-a836-0da8fb9c8caan-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-04-04  0:48   ` John MacFarlane
     [not found]     ` <BCE2FA1F-296D-4C7E-9495-E4B6E1C5A885-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2023-04-04 13:24       ` BPJ
     [not found]         ` <CADAJKhBkxMhLAeCTOymphguqG_uHwpUyAnYC4edi=SaBkmHS6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2023-04-04 13:49           ` Albert Krewinkel
     [not found]             ` <87y1n7ab93.fsf-9EawChwDxG8hFhg+JK9F0w@public.gmane.org>
2023-04-04 20:41               ` bapt a

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).