Estou tentando criar uma caixa em torno de algum texto em um documento Markdown. Nada sofisticado, apenas uma caixa ao redor de uma seção de texto.
Estou usando o Markdown para texto simples, mas estou usando o Pandoc para convertê-lo em PDF. Estou usando o modelo eisvogel.tex para conversão. Alguma sugestão rápida e fácil para adicionar uma caixa ao texto de marcação?
Obrigado.
Responder1
Eu descobri e estou compartilhando o resultado aqui. Quase tudo foi obtido nas seguintes páginas:
https://github.com/chdemko/pandoc-latex-environment
https://github.com/Wandmalfarbe/pandoc-latex-template
Para começar, executo o pandoc em um arquivo Docker, então precisei baixar alguns pacotes adicionais para que isso funcionasse. Aqui está uma pequena seleção dos pacotes que baixei em meu "Dockerfile" e como o iniciei:
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
O ingrediente principal aqui foi incluir todos os pacotes necessários ao tcolorbox para eisvogel, ou seja, install, tools, xcolor, tcolorbox, etc., e também baixar e incluir pandoc-latex-environment na instrução "RUN pip3 install... .."
Em seguida, precisei adicionar o argumento “--filter pandoc-latex-evironment” ao meu comando pandooc. Eu uso um shell script que já é altamente customizado para o meu ambiente, então simplesmente adicionei uma linha extra para usar o filtro "pandoc-latex-environment".
Então tive que adicionar algumas linhas ao preâmbulo do arquivo 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}
E então, ainda no preâmbulo abaixo, adicione o seguinte:
pandoc-latex-environment:
tcolorbox: [box]
info-box: [info]
warning-box: [warning]
error-box: [error]
Assim que o código estivesse no preâmbulo, eu poderia começar a adicionar texto ao próprio Markdown. Tomando exemplos que reuni em várias páginas aqui no StackExchange, adicionei o seguinte:
## 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}
Então comecei a customizar as cores de cada caixa:
::: 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.
:::
Agora, consigo renderizar a seguinte imagem ao converter meu arquivo Markdown em um arquivo PDF.
Muito obrigado a todos que postaram uma pequena parte da solução aqui no StackExchange. Consegui extrair soluções parciais de cerca de 5 a 6 páginas.