Agregue un color de fondo a un estilo de párrafo en inDesign

Actualmente estoy creando un diseño de libro con código en línea y bloques de código.
Para esas partes del código, me gustaría agregar un color de fondo. Debe manejar el código de forma similar a como se muestra en StackExchange.

bloques de código

Como no hay ninguna opción en los estilos de párrafo, eso agregaría un fondo, traté de usar reglas de párrafo, reglas de subrayado, reglas de tachado y algunos otros enfoques experimentales.

Reglas de tachado
Las reglas de tachado se muestran encima del texto, haciéndolo completamente inútil para este propósito.

Reglas de subrayado
Las reglas de subrayado se muestran debajo del texto, lo que permite utilizarlo como fondo. El problema es que depende de la longitud de los caracteres. Eso hace posible usarlo sobre líneas que tienen un salto de línea automático.
El problema es que no puede agregarle márgenes y que no puede insertar un fondo con un ancho fijo.

ingrese la descripción de la imagen aquí

Reglas de párrafo
Las reglas de párrafo están bastante cerca de una solución. Puede determinar, si desea la línea arriba o debajo de su texto, puede agregar márgenes y la línea llena todo el ancho del bloque. El problema aquí es que es una línea de párrafo , lo que significa que agrega una regla para todo el párrafo en lugar de cada línea. Eso no es un problema si cada párrafo tiene solo una línea de alto, pero si un párrafo incluye varias líneas, termina con un espacio en el fondo. Podría agregar un salto de línea forzado aquí, pero me gustaría evitar eso.

ingrese la descripción de la imagen aquí

Una solución sería si pudiera agregar un salto de línea forzado al final de cada línea a través de un estilo GREP, pero no he visto ninguna forma de agregar un carácter de esta manera.

Código en línea

Estoy usando estilos de carácter para el código en línea. Las reglas de subrayado parecen ser la forma más apropiada de hacerlo aquí. El problema es que estoy acumulando márgenes aquí. Si agrego un espacio al principio y al final del código en línea, termino con un buen resultado, pero eso significa que tengo que agregar caracteres al texto, lo cual me gustaría evitar y no funcionaría al principio. y el final de un salto de línea, porque inDesign elimina el carácter si no es necesario.

ingrese la descripción de la imagen aquí

Estoy buscando una manera de agregar algo de espacio antes y al final del código en línea.

Entonces, eso sería todo. Estoy buscando soluciones a este problema desde hace mucho tiempo, por lo que agradecería cualquier idea.

Ah, y perdón por la mala calidad de imagen. La falta de compatibilidad con la pantalla retina de inDesign lo hizo posible.

¿Celdas de la tabla? Al menos para los bloques de código. Sin embargo, no funcionará para el texto en línea.
Combine celdas de tabla y texto en línea. Tiene dos problemas diferentes, por lo que necesita dos soluciones diferentes. Haga que los estilos coincidan, pero la ejecución es diferente para bloques y en línea.
Gracias, no he pensado en usar tablas. Funcionaría, pero tendría que definir un estilo de párrafo, un estilo de tabla y un estilo de celda para hacerlo como quiero que quede. Y además, tengo que crear una tabla para cada bloque de código. Diría que es una solución, pero se siente como un truco. Una forma más cómoda (solo estilos de párrafo y estilos de carácter) sería mucho mejor. @Lauren: Hasta donde yo sé, las tablas en línea no son posibles y con los estilos de carácter todavía tengo problemas con los márgenes.
Puede utilizar cuadros de texto dentro de cuadros de texto. Le ahorra al menos algunos estilos de tabla

Respuestas (3)

La actualización de Adobe CC de hoy (2015) trajo la solución a este problema. Ahora puede habilitar paragraph shadingpara agregar un fondo a los estilos de párrafo.

ingrese la descripción de la imagen aquí

Usé la tabla para mi propio informe y funcionó muy bien para mí. Para cada bloque de código que necesitaba, solo hice una copia y pegado de la tabla anterior. Para el resaltado de sintaxis, primero definí el estilo de carácter, pero fue tedioso aplicar esos estilos para cada pieza de código. Por lo tanto, solo copié el código de IDE, conservando el color y la fuente, a InDesgin. Así es como se ve:

Bloque de código de InDesign

El único problema es que no puede copiar un bloque de código y tiene que copiar y pegar línea por línea ya que cada fila de la tabla representa una línea de código.

Puede usar una regla de párrafo para bloquear todo el compás o el subrayado de texto para resaltar solo el texto. El truco consiste en obtener el desplazamiento correcto y luego establecer un valor de ancho que coincida o supere su valor principal.