Líneas horizontales para code-block
en Sphinx
Publicado: 2021-06-11
De manera predeterminada, Sphinx coloca un recuadro completo alrededor de los code-block
cuando traduces a PDF a través de LaTeX. Es decir, al correr
make latexpdf
tendrás bloques de código con una caja negra que no es muy agradable a la vista. Lo primero que hay que hacer para eliminarla es agregar lo siguiente al archivo conf.py
:
latex_elements = { 'sphinxsetup': ''' verbatimwithframe=false ''', }
Al volver a generar, ya no estará el cuadro feo. No obstante, no se puede configurar que solamente aparezcan las líneas horizontales a través de Sphinx. Esto debe realizarse a través de un paquete adicional, llamado etoolbox
, por lo que la configuración ahora debe contener:
latex_elements = { 'sphinxsetup': ''' verbatimwithframe=false ''', 'extrapackages': r''' % Para colocar contenido antes y después de un entorno ya definido. \usepackage{etoolbox} ''', }
Y ya en el archivo de preámbulo incluyes lo siguiente:
\BeforeBeginEnvironment{sphinxVerbatim}{% \noindent{\rule{\linewidth}{0.4pt}}\vspace{-3.75mm}% } \AfterEndEnvironment{sphinxVerbatim}{% \vspace*{-7mm}% \noindent{\rule{\linewidth}{0.4pt}}% }
Eso dibujará las líneas verticales alrededor de tus bloques de código. Las distancias para las instrucciones \vspace
fueron colocadas de manera empírica, tras varias compilaciones del código, para determinar la ubicación óptima. Recomiendo hacer lo mismo.
Si quieres cambiar el color de la línea vertical, esta respuesta de Stack Overflow puede servir.
Y con eso estamos listos, ya podemos crear un bloque de código con Sphinx y LaTeX de una manera más presentable.