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>