如何使用pandoc和lua-filters对齐文本?

如何使用pandoc和lua-filters将pdf中所有的h1标题都对齐居中?

我有以下的test.md文件:

<center>
# 章节 1
</center>

<right>
## 子-1-1
</right>

<left>
### 子-1-2
</left>

<center>
# 章节 2
</center>

<right>
## 子-2-1
</right>

<left>
### 子-2-2
</left>

我需要使用上述标记将所有的“章节”居中对齐,所有的“子--1”都对齐右对齐,所有的“子--2”都左对齐,变成如下形式:

            章节 1
                          子-1-1
子-1-2
            章节 2
                          子-2-1
子-2-2

我可以使用以下过滤器将“章节”变成大写:

local text = require('text')

function Header(el)
    if el.level == 1 then
      return pandoc.walk_block(el, {
        Str = function(el)
            return pandoc.Str(text.upper(el.text))
        end })
    end
end

然后我可以通过以下方式调用pandoc:

pandoc test.md -o test.pdf --pdf-engine=xelatex --lua-filter=./filter.lua

但我不知道如何使用lua-filters对齐文本。

点赞