es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tema personalizado de resaltado de sintaxis con bookdown para producir PDF.

Estoy escribiendo una nueva versión de mi libro de Java con bookdown. El formato del libro es pdf.

Me gustaría personalizar el resaltado de código, especialmente los comentarios de varias líneas. Quiero que todos los caracteres en este tipo de comentarios tengan un solo color y el mismo estilo.

Esto es lo que tengo ahora (con estilo no deseado en los comentarios de varias líneas):

Código con estilo no deseado en los comentarios de varias líneas

Intenté con pandoc_args: "--highlight-style=my.theme" en _output.yml:

bookdown::pdf_book:
  includes:
    in_header: preamble.tex
  latex_engine: xelatex
  citation_package: natbib
  keep_tex: yes
  pandoc_args: "--highlight-style=my.theme"
bookdown::epub_book: default

Pero ocurre el siguiente error:

Could not read highlighting theme my.theme
Error: pandoc document conversion failed with error 6

Generé my.theme de la siguiente manera:

pandoc --print-highlight-style pygments > my.theme

El archivo my.theme no es el problema, ya que funciona con pandoc independiente de esta manera:

pandoc -f markdown libro_generado/libro_completo.md -o libro_generado/aprendejava.pdf --pdf-engine xelatex --highlight-style my.theme --include-in-header configuracion/titlesec.tex

Me gustaría usar bookdown en lugar de pandoc independiente porque puedo tener todos los capítulos, configuraciones y todo más organizado.

He estado lidiando con este problema durante más de una semana. Estaré muy agradecido si recibo algo de ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para personalizar el resaltado de código en comentarios de varias líneas en bookdown, deberás modificar directamente el CSS. Puedes agregar tu propio archivo CSS creando un style.css en la carpeta assets del directorio de tu libro y luego incluirlo en el encabezado YAML de esta manera:

    bookdown::pdf_book:
      output: 
        bookdown::pdf_book:
          css: assets/style.css
    

    Para modificar el estilo del comentario de varias líneas, deberás encontrar el selector CSS que especifica el estilo para los comentarios de varias líneas en tu archivo CSS actual. Puedes utilizar las herramientas de desarrollo de tu navegador para inspeccionar el elemento y encontrar sus atributos CSS. Una vez que conozcas el selector y los atributos que deseas modificar, puedes agregarlos a tu archivo style.css. Aquí tienes un ejemplo:

    .cm-comment.cm-multiline {
      color: #666; /* cambiar el color del texto del comentario */
      font-style: normal; /* quitar el estilo en itálica */
      background-color: #f8f8f8; /* cambiar el color de fondo del comentario */
      border: none; /* quitar el borde*/
    }
    

    Guarda tu archivo style.css y renderiza tu libro para ver los cambios. Es posible que necesites borrar la caché de tu navegador para ver los estilos actualizados.

Comments are closed.