Grep con InDesign al rescate del maquetador #1
A veces te preguntan para qué sirve las operaciones de búsqueda y cambio con los comodines conocidos como "expresiones regulares" (GREP), como si no hubiera diferencia con las búsquedas y reemplazos de texto normales. Si estás un poco espeso, te quedas con la duda de cómo explicarlo con un caso que no sea demasiado complicado y que, a la vez, sea muy común y muy pesado e imposible de resolver con esas búsquedas.
Éste es uno de esos casos, muy habitual para un maquetador de revistas o libros en los que aparezcan columnas con listados de productos numerados, del tipo de "1. Bañador a cuadros. 2. Sombrero de fieltro. 3 Agenda de cuero…"
Para evitar que pueda quedar un número con su punto al final de una línea y que el producto descrito quede al comienzo de la siguiente línea, lo procedente es que el espacio que los separa sea un "espacio de no separación
". El problema es que después de que volquemos el texto o después de que alguien lo repase y edite, muchos de los espacios en blanco que van después de los números serán espacios normales, que permiten la partición de línea."
Cambiar esos espacios —y sólo esos— por espacios de no separación es algo que sólo podemos hacer a mano… o con una simple operación de búsqueda y cambio con una expresión regular, GREP.
Cómo hacerlo
Ponemos el cursor de texto dentro de cualquier punto de la caja de texto con el texto en cuestión y vamos al menú "Edición - Buscar/Cambiar
". Seleccionamos la solapa "GREP
".
En la caja "Buscar
" escribimos la secuencia: (\d+)\. (\D+)
, que en lenguaje humano quiere decir "cualquier cifra, sea una o más de una" \d+
, seguidas de "un punto y un espacio" \.
y a continuación "una o más letras que no sean cifras" \D+
. Las barras invertidas indican que se trata de comodines de expresiones regulares y no de caracteres tipográficos. Los paréntesis se ponen para dividir y agrupar la búsqueda en tres grupos. Eso permite después hacer referencia sólo a partes de la búsqueda y no a la totalidad.
En la caja "Cambiar a..."
escribimos la secuencia $1.^S$2
, que en lenguaje humano quiere decir "sólo la primera parte de la búsqueda, sin cambiar nada de lo que hubieras encontrado" $1
—siendo $0 la totalidad de la búsqueda—, seguido de un punto y un espacio irrompible .^S
—^S
es el caracter oculto que InDesign usa para indicar ese tipo de espacio—, "terminado por la segunda parte del resultado de la búsqueda, sin cambiar nada" $2
.
Si no lo acabas de entender, te sugiero que leas un segundo una explicación sencilla sobre los patrones de reemplazo en las búsquedas GREP de InDesign y la interfaz de buscar/cambiar con GREP en InDesign.
Si ejecutas la orden aplicándola a "Documento
" o "artículo
" en la opción "Buscar en
" los espacios adecuados cambiarán de forma automática. Al "Mostrar los caracteres ocultos
" en el menú "Texto
", podrás verlo correctamente.
Si la orden ha funcionado bien y la vamos a usar frecuentemente, es buena idea guardarla como valor predeterminado de búsqueda GREP. Para ello apretamos el icono de "Guardar consulta GREP
del cuadro de diálogo. Le damos un nombre descriptivo y ya estará a nuestra disposición en la persiana "Consulta
siempre que la necesitemos.
[© Gustavo Sánchez Muñoz, 2023] Gustavo Sánchez Muñoz (también identificado como Gusgsm) es el autor de esta página. Su contenido gráfico y escrito se puede compartir, copiar y redistribuir total o parcialmente sin necesidad de permiso expreso de su autor con la única condición de que no se puede usar con fines directamente comerciales (es decir: No se puede revender, pero sí puede formar parte como citas razonables en trabajos comerciales) y los términos legales de cualquier trabajo derivado deben ser los mismos que se expresan en la presente declaración. La cita de la fuente con referencia a este sitio y su autor no es obligatoria, aunque siempre se agradece.
Comentarios
Excelente ejemplo
Gracias por el tutorial. La verdad es que no existe mucha documentación en español sobre GREP. En mi libro https://www.smashwords.com/books/view/357027 encuentran GREP explicado y 40 "recetas" para agilizar el trabajo en InDesign.
- Inicie sesión para enviar comentarios
Una razón más para cambiar de Quark a InDesign
He comprobado que en el Quark 9 no existe la posibilidad de buscar/reemplazar con expresiones regulares, lo que se suma a mi lista de razones por las cuales cambiar Quark por InDesign.
Repito, son MIS razones, desde el punto de vista técnico (que es el que me toca).
Un saludo
- Inicie sesión para enviar comentarios
Documentación GREP
En respuesta a Excelente ejemplo por ivan gomez (no verificado)
La mejor explicación sobre patrones GREP la encontré en la documentación de PHP:
http://www.php.net/manual/en/regexp.introduction.php
http://www.php.net/manual/es/regexp.introduction.php
Pongo los enlaces en inglés y en castellano
Un saludo
- Inicie sesión para enviar comentarios
Hay un simulador online: GREPGrokker
En respuesta a Documentación GREP por Fernando (no verificado)
Muchas gracias
Dos de los problemas de GREP, aparte de que es complejo de usar, son que no todos los sabores de GREP son exactamente iguales y que es difícil construir cómo va a funcionar una expresión de forma muy precisa.
Para ayudarnos en el segundo problema existe GREPGrokker, un simulador GREP en la red de la empresa neozelandesa Rorohiko que nos permite construir fórmulas GREP expresamente para InDesign y ver cómo actuará sobre un pequeño texto de nuestra elección hasta dar con la expresión exacta para nuestras necesidades.
- Inicie sesión para enviar comentarios
Y en español: Peras al vino
En respuesta a Hay un simulador online: GREPGrokker por gusgsm
Y, además, que no lo quiero olvidar, existe en español un sitio web con algunas menciones muy interesantes sobre GREP e InDesign llamado Peras al vino, de Javier Pérez Manzanaro, un excelente profesional y mejor persona.
- Inicie sesión para enviar comentarios
Otro ejemplo de uso sencillo casi igual
A cuenta de una pregunta que me envían —"Necesito que todos los porcentajes de mi documento
tengan espacios irrompibles"—, la respuesta es: "Buscar
" la secuencia "(\d+) (\%)
", donde \% representa el símbolo de porcentaje escapado; eso quiere decir que, como el símbolo de porcentaje se usa como operador y modificador en las búsquedas GREP, hay que decirle a GREP que ahora lo queremos usar con su caracter literal, por lo que le aplicamos una barra inclinada (escape) delante.
Usando esta orden, todos las cifras como 60 % y 37,4 % pasaran a tener un espacio irrompible delante del símbolo de porcentaje..
- Inicie sesión para enviar comentarios
Mover de posición un punto
Muy buenas, necesito ayuda con GREP.
Tengo los puntos de final de linea antes de la llamada de la nota al pie de pagina de tal manera que quedan .1 .2 .80 etc.
Necesito colocar esos puntos detrás de la llamada pero no lo consigo es imposible la formula seria .~F pero al cambiar en grep a ~F. me cambia el numero de nota por la F y elimina las notas.
¿Cual seria la formula para cambiar?
- Inicie sesión para enviar comentarios
Debes usar los patrones de reemplazo de GREP
En respuesta a Mover de posición un punto por tony (no verificado)
Hola,
Fíjate en los llamados "patrones de reemplazo" de GREP. En tu búsqueda, debes usar el adecuado en el campo "Cambiar a
".
Un saludo
PS: Si te ías un poco, un uso adecuado de los paréntesis en el campo "Buscar
" ayuda a acotar los consiguientes patrones de reemplazo.
- Inicie sesión para enviar comentarios
Buscar número en un intervalo de páginas y sustituir calculado
Buenas tardes, a ver si me puedes ayudar:
Tengo que modificar los números de página de un índice pues al remaquetarlo con ID justo a partir de la página 539 y hasta el final tengo que restarle 8, o sea, que la página 539 será la 531, la 540 será la 532... y así hasta el final. ¿Se puede automatizar la tarea con GREP?
Muchas gracias
- Inicie sesión para enviar comentarios
¿No usaste numeración automática?
En respuesta a Buscar número en un intervalo de páginas y sustituir calculado por JoseR (no verificado)
Hola,
Disculpa la observación, pero no acabo de entender la necesidad de esa operación... si los números de página se han hecho usando la numeración automática y has hecho el índice correctamente, bastaría con actualizar el primer número de la secuencia que quieres cambiar en la página donde comienza el cambio y a continuación actualizar el índice. Creo. Por eso Sale a cuenta usar numeración automática y colocarla en las páginas maestras.
- Inicie sesión para enviar comentarios
Sin numeración automática
En respuesta a ¿No usaste numeración automática? por gusgsm
Hola,
No hay numeración automática en el índice analítico que tengo que manipular pues incluso los archivos los he tenido que importar de un programa antiguo llamado Pagemaker. Sucede que de una edición a otra de la obra se han suprimido las páginas 531 a 538 y tengo que renumerar las páginas del intervalo desde la página 539 hasta el final del documento.
¿Habría alguna forma de automatizar el proceso?
Gracias anticipadas
- Inicie sesión para enviar comentarios
Me temo que con Grep, no
En respuesta a Sin numeración automática por JoseR (no verificado)
Hola,
Si vas a usar muchas veces ese documento igual te compensa añadirle la numeración automática según se indicacaba en los enlaces del comentario que hice antes. En cualquier caso, me temo que no, que Grep no va a servir para eso. Al menos en mi escaso conocimiento.
Saludos
- Inicie sesión para enviar comentarios
Gracias de todos modos
En respuesta a Me temo que con Grep, no por gusgsm
Gracias de todos modos
- Inicie sesión para enviar comentarios
cambiar signos de puntuación en cursiva
¿Cómo se pueden cambiar los signos de puntuación que están en redonda a cursiva solamente cuando la palabra anterior está en cursiva?
Muchas gracias
- Inicie sesión para enviar comentarios
Añadir nuevo comentario