我想在 Markdown 文档中为一些文本创建一个方框。没什么特别的,只是为一段文本创建一个方框。
我使用 Markdown 来处理纯文本,然后使用 Pandoc 将其转换为 PDF。我使用 eisvogel.tex 模板进行转换。有没有在 Markdown 文本中添加方框的快速简便的建议?
谢谢。
答案1
我找到了答案,并在此分享结果。大部分内容都来自以下页面:
https://github.com/chdemko/pandoc-latex-environment
https://github.com/Wandmalfarbe/pandoc-latex-template
首先,我在 Docker 文件中运行 pandoc,因此我需要下载一些额外的软件包才能使其正常工作。以下是我在“Dockerfile”中下载的一小部分软件包以及我如何启动它:
FROM pandoc/latex:2.10
#RUN tlmgr option repository http://ctan.math.washington.edu/tex-archive/systems/texlive/tlnet \
RUN tlmgr option repository http://ctan.math.utah.edu/tex-archive/systems/texlive/tlnet \
&& tlmgr update --self \
&& tlmgr install adjustbox awesomebox babel-german background bidi collectbox csquotes
everypage environ etoolbox filehook fontawesome5 footmisc footnotebackref framed fvextra
letltxmacro ly1 mdframed mweights needspace pagecolor pgf sourcecodepro sourcesanspro
tcolorbox titling tools trimspaces ucharcat ulem unicode-math upquote xcolor xecjk xurl
zref
RUN apk --no-cache add \
ghc cabal libc-dev zlib-dev python3 py3-pip
RUN cabal update
#RUN cabal --global --prefix=/usr/local v2-install cabal-install
#RUN cabal --global --bindir=/usr/local/bin v2-install pandoc-include-code-1.4.0.0
#RUN pip3 install pandoc-extract-code pandocfilters
RUN pip3 install pandoc-extract-code pandocfilters pandoc-latex-environment
这里的关键因素是包含 tcolorbox 为 eisvogel 所需的所有必需包,即安装、工具、xcolor、tcolorbox 等,以及下载并在语句“RUN pip3 install.....”中包含 pandoc-latex-environment。
接下来,我需要将参数“--filter pandoc-latex-evironment”添加到我的 pandooc 命令中。我使用的 shell 脚本已经针对我的环境进行了高度定制,因此我只需添加一行即可使用过滤器“pandoc-latex-environment”。
然后我必须在 Markdown 文件的序言中添加几行:
header-includes:
- |
```{=latex}
\usepackage{tcolorbox}
\newtcolorbox{info-box}{colback=cyan!5!white,arc=0pt,outer arc=0pt,colframe=cyan!60!black}
\newtcolorbox{warning-box}{colback=orange!5!white,arc=0pt,outer arc=0pt,colframe=orange!80!black}
\newtcolorbox{error-box}{colback=red!5!white,arc=0pt,outer arc=0pt,colframe=red!75!black}
然后,在下面的序言中,添加以下内容:
pandoc-latex-environment:
tcolorbox: [box]
info-box: [info]
warning-box: [warning]
error-box: [error]
一旦代码进入序言,我就可以开始向 Markdown 文本中添加内容了。根据我从 StackExchange 中的各个页面收集的示例,我添加了以下内容:
## Standard Box
\begin{tcolorbox}
\abovedisplayskip=0pt%
\belowdisplayskip=0pt%
%\vspace{-1\baselineskip}
\begin{align}
\sigma & = \beta_{0} \label{eq:Model0} \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2
\label{eq:Model1} \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2 + \beta_{3}(T-t) + \beta_{5}K(T-t)
\label{eq:Model2} \\
\sigma & = \beta_{0} + \beta_{1}K + \beta_{2}K^2 +
\beta_{3}(T-t) + \beta_{4}(T-t)^2 + \beta_{5}K(T-t)
\label{eq:Model3}
\end{align}
\end{tcolorbox}
然后我开始自定义每个框的颜色:
::: info
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam aliquet libero
quis lectus elementum fermentum.
:::
::: warning
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam aliquet libero
quis lectus elementum fermentum.
:::
::: error
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam aliquet libero
quis lectus elementum fermentum.
:::
现在,当我将 Markdown 文件转换为 PDF 文件时,我能够获得以下图像。
非常感谢在 StackExchange 上发布解决方案一小部分的所有人。我可以从大约 5-6 页的内容中收集到部分解决方案。