Estoy buscando crear un cuadro alrededor de un texto en un documento de Markdown. Nada especial, sólo un cuadro alrededor de una sección de texto.
Estoy usando Markdown para el texto sin formato, pero luego uso Pandoc para convertirlo a PDF. Estoy usando la plantilla eisvogel.tex para la conversión. ¿Alguna sugerencia rápida y sencilla para agregar un cuadro al texto de rebajas?
Gracias.
Respuesta1
Lo descubrí y estoy compartiendo el resultado aquí. Casi todo se obtuvo de las siguientes páginas:
https://github.com/chdemko/pandoc-latex-environment
https://github.com/Wandmalfarbe/pandoc-latex-template
Para comenzar, ejecuto pandoc en un archivo Docker, por lo que necesitaba descargar algunos paquetes adicionales para que esto funcionara. Aquí hay una pequeña selección de los paquetes que descargué dentro de mi "Dockerfile" y luego cómo lo inicié:
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
El ingrediente clave aquí fue incluir todos los paquetes requeridos por tcolorbox para eisvogel, es decir, install, tools, xcolor, tcolorbox, etc., y también descargar e incluir pandoc-latex-environment en la declaración "RUN pip3 install... .."
A continuación, necesitaba agregar el argumento “--filter pandoc-latex-evironment” a mi comando pandooc. Utilizo un script de shell que ya está altamente personalizado para mi entorno, así que simplemente agregué una línea adicional para usar el filtro "pandoc-latex-environment".
Luego tuve que agregar algunas líneas al preámbulo del archivo 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}
Y luego, mientras todavía está en el preámbulo debajo, agregue lo siguiente:
pandoc-latex-environment:
tcolorbox: [box]
info-box: [info]
warning-box: [warning]
error-box: [error]
Una vez que el código estuvo en el preámbulo, pude comenzar a agregarlo al texto de Markdown. Tomando ejemplos que obtuve de varias páginas aquí en StackExchange, agregué lo siguiente:
## 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}
Luego comencé a personalizar los colores de cada caja:
::: 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.
:::
Ahora puedo obtener la siguiente imagen cuando convierto mi archivo Markdown en un archivo PDF.
Muchas gracias a todos los que publicaron una pequeña parte de la solución aquí en StackExchange. Hubo entre 5 y 6 páginas de las que pude obtener soluciones parciales.