Hi everybody,

I have written a custom latex `.cls' file to establish a typesetting
workflow for the scientific journals of my research institute. The texts
should be written in Markdown and then be processed with `pandoc' to
LaTeX.

I already have an elaborated pandoc template to produce the LaTeX
preambel etc. So far its working great.

But for the figures I need the caption from the Markdown file to be set
with `\sidecaption' instead of `\caption' in LaTeX, as well as with an
optional argument (short-caption) for the image attribution in the list
of figures.

To get the latter working I use the following template from a GitHub
discussion in the [pandoc repo]:

┌────
│ PANDOC_VERSION:must_be_at_least '3.1'

│ if FORMAT:match 'latex' then
│   function Figure(f)
│     local short = f.content[1].content[1].attributes['short-caption']
│     if short and not f.caption.short then
│       f.caption.short = pandoc.Inlines(short)
│     end
│     return f
│   end
│ end
└────

That works without any flaws.

But now I need to figure out how to change the LaTeX macro used for the
caption. The older [approach of pre pandoc version 3.0 posted] by tarleb
is really intuitive and I could have easily adapted it to my needs. But
since pandoc 3.0 there is the new [/complex figures/] approach and, so
far, I couldn't figure out how to change the LaTeX macro used for the
captions with this new behaviour.

I tried something like that (Adapted from [here]:

┌────
│ if FORMAT:match 'latex' then
│   function RawBlock (raw)
│     local caption = raw.text:match('\\caption')
│     if caption then
│        raw:gsub('\\caption', '\\sidecaption')
│     end
│     return raw
│   end
│ end
└────

But nothing happened.

The main challenge for me are my more-or-less non-existing lua skills. I
just never had to use it for my daily tasks. I thought about using `awk'
or `sed' to edit the `.tex' file itself using a regex-substitution, but
that should remain an absolute stopgap, since it makes the whole
workflow less portable.

Thus, I'm hoping for a hint/a solution in form of a pandoc-lua script
which 1. helps me to achieve the goal, and 2. improve my understanding
of lua and the /complex figures/ approach for similar future tasks.

I appreciate any tipp!

Best,
Lukeflo

This question is also posted on StackOverFlow: https://stackoverflow.com/q/77504584/19647155

[pandoc repo]
<https://github.com/jgm/pandoc/issues/7915#issuecomment-1427113349>

[approach of pre pandoc version 3.0 posted]
<https://github.com/jgm/pandoc/issues/7915#issuecomment-1039370851>

[/complex figures/] <https://github.com/jgm/pandoc/releases?page=2>

[here] <https://stackoverflow.com/a/71296595/19647155>

--
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/51ca8210-3d60-4d5d-9af2-04c85995deb6n%40googlegroups.com.