Markdownでライトボックスを作成する

Markdownでライトボックスを作成する

Markdown ドキュメント内のテキストの周囲にボックスを作成したいと考えています。特別なことは何もせず、テキストのセクションを囲むボックスを作成するだけです。

プレーンテキストには Markdown を使用していますが、それを PDF に変換するには Pandoc を使用しています。変換には 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

ここでの重要な要素は、eisvogel の tcolorbox に必要なすべてのパッケージ (install、tools、xcolor、tcolorbox など) を含めることと、pandoc-latex-environment をダウンロードして「RUN pip3 install.....」ステートメントに含めることでした。

次に、pandooc コマンドに引数「--filter pandoc-latex-evironment」を追加する必要がありました。私は自分の環境に合わせてすでに高度にカスタマイズされたシェル スクリプトを使用しているため、フィルター「pandoc-latex-environment」を使用するために 1 行追加するだけで済みました。

次に、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 ページありました。

関連情報