在 Markdown 中创建灯箱

在 Markdown 中创建灯箱

我想在 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 页的内容中收集到部分解决方案。

相关内容