在 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 for eisvogel 所需的所有必要軟體包,即 install、tools、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 頁中收集到部分解決方案。

相關內容