我正在使用R Markdown
和Latex
来memoir
将一本书编译成 pdf。作者使用了***
水平分隔符的语法。检查编译后的.tex
文件,我可以看到从 markdown 转换为:
\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
如何进行全局样式设置\rule
?
为了以防万一有帮助,我在网上找到了这个可以改变颜色的片段,但不知道如何修改它以影响宽度和厚度:
\makeatletter
\let\old@rule\@rule
\def\@rule[#1]#2#3{\textcolor{blue}{\old@rule[#1]{#2}{#3}}}
\makeatother
答案1
最好使用 pandoc 的 lua 过滤器来修改生成的规则***
。
首先,你必须查找水平线在 pandoc 的 AST 中是如何表示的。你可以使用native
输出格式来做到这一点:
echo "* * *" | pandoc --from markdown --lua-filter=hl.lua --to native
返回:[HorizontalRule]
,现在您知道该元素被称为HorizontalRule
。要更改输出,您需要一个小程序来查找相关元素并返回您想要的代码:
-- horizontalrule.lua
if FORMAT:match 'latex' then
function HorizontalRule ()
return {
pandoc.RawBlock('latex', '\\rule'),
}
end
end
更改'\\rule'
为你想要的任何内容并使用选项调用 pandoc--lua-filter=horizontalrule.lua