0% encontró este documento útil (0 votos)
383 vistas37 páginas

Tutorial Grep en Castellano Compress

Cargado por

Edgar Eduardo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
383 vistas37 páginas

Tutorial Grep en Castellano Compress

Cargado por

Edgar Eduardo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Machine Translated by Google

Materiales de Preedición. Serie de textos en PDF descargables sobre


tipografía, escritura y lengua y la tecnología relacionada.
El lector puede hacer clic o picar sobre los elementos del sumario y sobre
cualquier texto o imagen susceptible de contener un enlace a una dirección web.

Editar con InDesign de Mac.


Anexo. El código GREP

Notas previas 2
Caracteres reservados, literalización 2
Conjuntos de caracteres 5
Códigos de un solo carácter 8
Variables y elementos compositivos 12
Unicode 14
Repertorios o clases 16
Grupos o subexpresiones 21

Repetición, cuantificadores 22
Localizadores 24
Coincidencia adelante y atrás 26
Los modos 27
Trucos para el catalán 28
Los reemplazos 28
Ayudas 30
Recetas 30

Texto y edición: © Pere Farrando Canals. Vilanova y la Geltrú, 8 de abril de 2020. Twitter:
@Preedicio, @WritingonaMac. Sitio web: www.preedicio.com. Medium: @WritingonaMac. Grupo de Slack
(solicite el acceso): preedicio.slack.com. URL: www.preedicio.com/editar_id/annex.pdf. Licencia Creative
Commons: «Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (cc by-nc-sa 4.0)» (http://creativecommons.org/
licenses/ by-nc-sa/ 4.0/ deed.ca).

0 0
Machine Translated by Google

En este anexo presento el código GREP y lo acompaño de unas


recetas que deben ayudar a los interesados a ver el código en
funcionamiento. En el tema 11 de Editar con InDesign de Mac se puede
leer una primera aproximación al sistema y su utilización dentro de las
búsquedas y reemplazos y los estilos intercalados. La combinación del
tema 11 y este anexo debería constituir un buen recurso para quien nunca
haya entrado en contacto con este lenguaje formal o tenga poca experiencia.

InDesign no utiliza una versión propia de GREP, sino que, como


dice Peter Kahrel en su libro, GREP in InDesign, referenciado en
el tema 11, toma prestada la biblioteca de expresiones regulares de Boost,
versión 5.1.3, que se puede consultar en la red:https://www.boost.
org/doc/libs/1_68_0/libs/regex/doc/html/boost_regex/
syntax/perl_syntax.html. Lo anoto aquí para quien quiera entrar más a
fondo en el tema.
También es útil el documento "InDesignSecrets Guide to Special
Characters in Adobe InDesign", que se puede obtener en la página
"Updated Guide to InDesign's Special Characters" (https://
indesignsecrets.com/updated-guide-to-indesigns special-
characters.php) si previamente el visitante se ha dado de alta en el sitio
web de InDesignSecrets, aunque sea en la versión gratuita.

Notas previas
Hay ciertas cosas de GREP en general y en InDesign en particular que
deben tenerse en cuenta:

t El widget de búsquedas y reemplazos permite aplicar estilos de


párrafo y de carácter y parámetros simples de párrafo y de carácter
(véase el apartado «Grupos o subexpresiones», pág. 20, fig. 8).
Ahora bien, mediante estilos intercalados sólo es posible aplicar
estilos de carácter.
t El código GREP, por omisión, discrimina entre mayúsculas y
minúsculas (véase el apartado «Modo de caja activada o
desactivada», pág. 27). t En general, un patrón GREP comienza a
capturar texto a partir del punto donde está el cursor. Por tanto, en
algunos casos puede interesar desactivar el cursor haciendo clic
en un sitio sin caja de texto o teniendo activa la herramienta de
selección.
t Cuando una intervención sobre el texto sea complicada y requiera
dos o más recetas consecutivas, se puede utilizar el script
ChainGREP, mencionado en el tema 11, para reunirlas todas en una
sola orden.

Caracteres reservados, literalización


El código GREP utiliza los caracteres de la escritura para indicar
determinadas características de las cadenas que forman el texto (fig. 1).
(Tanto las expresiones regulares como los lenguajes de programación
demuestran que la mejor manera de procesar la escritura es mit-

Editar con InDesign de Mac 2 Anexo. El código GREP

0 0
Machine Translated by Google

yendo la escritura.) Los caracteres que tienen algún rol en el código —


digamos que están «reservados»— son los de la siguiente tabla.

Caracteres reservados para el código

* ? + . () {} $ ^
[ \ |

Los tres primeros caracteres ( * ? +) son cuantificadores. Ver más


abajo el apartado "Repetición, cuantificadores".
El corchete de cierre (]) se convierte en relevante sólo cuando va
en conjunción con el corchete de apertura. Por eso no sale a la mesa.

Si un carácter está reservado, no significa que no pueda ser pro


cesado en una expresión GREP. Lo que debe hacerse es
«literalizarlo» (en inglés, escape). La acción de literalización consiste
sencillamente en poner delante una barra inversa. La tabla anterior,
debidamente literalizada, quedaría como sigue.

Caracteres del código literalizados

\* \? \+ \[ \. \\ \( \) \{ \} \$ \^ \|

Por ejemplo, el segmento ÿ5Gÿ es identificado tal cual, 5G; en cambio,


para capturarlo entre paréntesis, ÿ(5G)ÿ, deberíamos hacer \(5G\).
El comportamiento de todos estos caracteres de código se puede
describir de la siguiente manera. (A partir de ahora, indico con comillas
altas el significado de una determinada expresión GREP.)

Código Descripción Ejemplo

Delimitan un repertorio: (véase Ej.: fal[çs] “segmento ÿfalÿ


[] el apartado «Repertorios o clases»). seguido de ÿçÿ o ÿsÿ, es
decir, ÿfalçÿ o ÿfalsÿ”.

Representa cualquier carácter Ej.: historia “ÿhistoriaÿ, ÿhisto riaÿ,


. (con alguna limitación; véase el ÿhisteriaÿ, ÿhistoriaÿ, ÿhistoriaÿ,
apartado siguiente). ÿhistoriaÿ, etc.”

Fig. 1. La aplicación de GREP consiste en


interpretar cualquier regularidad que haya en
el texto para transportarla apropiadamente a
una expresión formal. La tarea es más fácil
cuando el texto tiene característicos que lo
hacen «procesable». El de la imagen (extraído
de la Gramática esencial de la lengua catalana,
del Institut d'Estu dis Catalans, https://
geiec.iec.cat/
gramática.asp) tiene expresiones fonéticas entre
barras inclinadas o entre corchete. El destacado
color lo ejecuta un patrón GREP dentro de un estilo
intercalado.

Editar con InDesign de Mac 3 Anexo. El código GREP

0 0
Machine Translated by Google

Delimitan grupos referenciables Ej.: "(\d{4})" “cualquier


dentro de la misma expresión segmento de cuatro cifras
() o en el reemplazo (véase el entre comillas dobles de
apartado «Grupos o cualquier tipo”. Las comillas no
subexpresiones»). entran en el grupo.

Literaliza los caracteres que Ej.: \. "un punto", \| "una barra


tienen un rol en el código. vertical".

\ Seguida de una cifra del 1 al Ej.: (\u)\1 “una mayúscula


9 (\1, \2…), identifica a un grupo seguida de la misma mayúscula”.
dentro de la misma expresión. Identifica ÿUUÿ, ÿÿÿÿ,
etc.

Ej.: \p{Sc}\d “cualquier


Después de \p, encierran
símbolo monetario seguido de
ciertas propiedades Unicode una cifra”. Identifica ÿ¥4, ¢7, £8,
(véase el apartado «Unicode»). $3, ÿ0ÿ, etc.

Después de \x, encierran Ej.: \x{2014} “carácter del


{}
puntos de código de Unicode. guión largo, u+2014”.

Cuando siguen otro código,


Ej.: \l{2,5} “cualquier letra
encierran la cuantificación (vea minúscula, entre dos y cinco
el apartado «Repetición,
veces”.
cuantificadores»).

Identifica un grupo en el Ej.: $1 “el primer grupo definido en


$
campo de reemplazo. el patrón de búsqueda”.

Fuera de las clases o repertorios, Ej.: ^Por “cualquier


indica posición de comienzo del segmento ÿPerÿ en posición de
párrafo. inicio de párrafo”.
^ En el interior de una clase o
Ej.: [^"] “cualquier carácter que
repertorio, significa negación
no sea unas comillas dobles”.
(véase el apartado «Repertorios
o clases»).
Alternativa, una u otra. Ej.: e(b|B)ook “ÿebookÿ
| o ÿeBookÿ”.

El carácter ^ se llamaba careto en ASCII. En cambio, en el


catálogo Unicode el carete es el diacrítico circunflejo bajo (ÿ ÿ ÿ, u+2038).
En nuestros teclados, debemos hacerlo como si escribiéramos un acento
circun flex en una palabra en francés pero sin ningún vocal de base.
Cuando exista una alternativa, (|), y en general en cualquier
receta, se tendrá en cuenta el orden en que se ejecuta el proceso, que
es alfabético. Por tanto, si hiciéramos una búsqueda GREP de las
palabras info e información, la expresión info|información no funcionaría,
porque detectaría ÿinfoÿ y se detendría (fig. 2). Deberíamos hacer
información|info.

Fig. 2.He aquí el efecto del orden alfabético


con el que se ejecutan las expresiones GREP.
El patrón es (i|I)nfo|informacin[[=o=]], y
solo captura ÿinfoÿ y ÿInfoÿ.

Editar con InDesign de Mac 4 Anexo. El código GREP

0 0
Machine Translated by Google

Conjuntos de caracteres
Los códigos que comento a continuación representan grupos de
caracteres a partir de determinados criterios.

Código Descripción y ejemplo

Cualquier carácter salvo los caracteres de saltos, como \n y \r , y las


cifras de llamada de nota (véase el apartado «Caracteres de saltos»,
. dentro de «Códigos de un solo carácter»).
Ejemplo: ".. “cualquier carácter de comillas seguido de dos
caracteres cualesquiera”.

Un carácter de comillas dobles de cualquier tipo.


" Ejemplo: ^" "un carácter de comillas dobles en posición de
inicio de párrafo".

Un carácter de cometa simple de cualquier tipo (también el


' apóstrofo).
Ejemplo: 'u “un carácter de cometa simple seguido de una
mayúscula”.

Cualquier dígito o cifra, es decir, del 0 al 9. Representa a los


numerales en todas las escrituras (china, árabe, hebrea, khmer…).
Equivale a [[:digido:]] ya veces a \p{digido}. (Vea el comentario
\d después de la tabla.)
Ejemplo: \d{2} “cualquier secuencia de dos cifras”. Identi fica ÿ35ÿ,
ÿ79ÿ, ÿ01ÿ, ÿ10ÿ, ÿ00ÿ, etc.

Cualquier carácter que no sea representado por \d. Equivale en


[^[:digido:]].
\D Ejemplo: \d\D\d{3} "una cifra, seguida de un carácter que no sea una
cifra, seguido de tres cifras". Identifica tanto ÿ1.984ÿ, como ÿ1 984ÿ,
ÿ1,984ÿ, ÿ1_984ÿ, ÿ1€984ÿ, ÿ1^984ÿ, etc.

Cualquier carácter de palabra, concepto que incluye mayúsculas,


minúsculas, cifras y raya baja. Equivale a [[:word:]] ya veces a
\w \p{word}.
Ejemplo: \b\w{2} "dos caracteres de palabra en posición de inicio de
palabra".

Cualquier carácter que no sea representado por \w. Equivale en


[^[:word:]].
\W Ejemplo: \W\w "un carácter que no sea de palabra seguido de un
carácter de palabra". Identifica segmentos como ÿ§3ÿ, ÿ–3ÿ, ÿ+3ÿ,
ÿ“3ÿ, etc.

Fig. 3. Cuando se dice que \w representa, entre


otras cosas, las mayúsculas y minúsculas, se
entiende que son todas, también la o vallada del
bokmål, una de las dos variedades escritas del
noruego, e igualmente las letras cirílicas, he breas y
otras escrituras. El patrón en esta imagen es un
sencillo\w+. Sobre el código +, consulte «Repetición,
cuantifica dorso». Sobre las limitaciones de\w, véase
«Trucos para el catalán».

Editar con InDesign de Mac 5 Anexo. El código GREP

0 0
Machine Translated by Google

Cualquier letra mayúscula (la u proviene del inglés uppercase,


que significa 'caja alta'). Equivale a [[:upper:]] ya veces a
\u \p{upper}.
Ejemplo: \u\. "cualquier mayúscula seguida de un punto".
Identifica ÿM.ÿ, ÿÿ.ÿ, ÿÓ.ÿ, ÿÿ.ÿ, etc.

Cualquier carácter que no sea representado por \u. Equivale en


[^[:upper:]].
\U Ejemplo: \u\U “una mayúscula y un carácter que no sea una
mayúscula”. Identifica ÿM.ÿ, ÿM€ÿ, ÿM—ÿ, ÿMiÿ, ÿM9ÿ, etc.
Cualquier letra minúscula (la l proviene del inglés lowercase, que
significa 'caja baja'). Equivale a [[:lower:]] ya veces a \p{lower}.
\l
Ejemplo: \u\l “una letra mayúscula seguida de una de minúscula”.

Cualquier carácter que no sea representado por \l. Equivale en


[^[:lower:]].
\L Ejemplo: \l\L "una minúscula y un carácter que no sea una
minúscula". Identifica ÿmHÿ, ÿm—ÿ, ÿm}ÿ, ÿm³ÿ, ÿm”ÿ, etc.
Cualquier instancia de un determinado carácter de base,
como ÿaÿ, y sus precompuestos, ÿà, â, ã, ä, å, ÿ, ÿÿ… (véase
el apartado siguiente, «Caracteres con diacríticos de
[[=a=]]
combinación» , y la receta 2).
Ejemplo: s[[=o=]]ciocultural Identifica ÿsocioculturalÿ,
ÿsocioculturalÿ, ÿsöcioculturalÿ, ÿsõcioculturalÿ, etc.

Identifica cualquier punto de código (incluido \n y \r). Véase la


\X característica especial que tiene en el apartado siguiente,
«Caracteres con diacríticos de combinación».

El código \d y el equivalente [[:digido:]] reconocen las cifras de


texto general, no superíndices, subíndices y fracciones. Sin embargo,
debe recordarse que el formato OpenType se aplica sobre cifras de texto
general, y por tanto, los superíndices y subíndices y las cifras de fracciones
compuestas mediante propiedades OpenType sí que son capturados por
una expresión GREP con \ d (fig. 4).
Para repasar las nociones de carácter precompuesto y combinado en
Unicode, lea el apartado 5.1.4 del tema 11 («Formas precompuestas y
combinadas», pág. 5, fig. 5).
El código del punto, ., es el gran comodín, pero ya hemos dicho
que no captura ni los saltos de raya ni las cifras de llamada de nota. Para
ver cómo se puede sacar provecho para identificar párrafos, véase el
apartado «Localizadores».
El código \w parece muy potente, pero en una lengua como el
catalán, en la que se utilizan guiones, apóstrofos y puntos volados (por
ej., cancelarse), acaba resultando limitado. Véase «Trucos para el catalán».

Fig. 4. Muestra de fracciones


directas y fracciones OpenType. La
expresión GREP que colorea las
OpenType es [\d/]{3,}, que equivale
a [[:digido:]/]{3,}. Véase [[:digido:]]
en el apartado «Clases Posix» y
{3,} en «Repetición, cuando
tificadores».

Editar con InDesign de Mac 6 Anexo. El código GREP

0 0
Machine Translated by Google

Caracteres con diacríticos de combinación

Los programas que utilizamos para escribir suelen insertar los caracteres
precompuestos, aunque en los teclados hacemos la pulsación del diacrítico y
la letra por separado. Por eso, en los textos tenemos casi siempre formas
como ÿêÿ, que es un solo punto de código (u+00ea), y no el combinado ÿeÿÿÿ.

A la hora de elaborar los patrones, los caracteres precompuestos son


los más fácilmente tratables: los códigos\w, \l y \u y los del tipo [[=a=]]
los identifican como lo que son, caracteres únicos. Por el contrario, cuando
se trata de combinados de letra de base y diacrítico, el código\w
captura los dos componentes por separado, primero la letra y después el
diacrítico; por su parte, los códigos \l y \u y los del tipo [[=a=]]
capturan sólo la letra de base e ignoran el diacrítico.
En esta cuestión, es interesante el código \X, que captura el conjunto de
base y diacrítico. El problema es que procesa todo el material textual, incluso
los tres caracteres que el punto (.) no traga: \n, \r
y la cifra de llamada de nota.
Véase un caso práctico de corrección de acentos previendo el
problema de los caracteres combinados en la receta 2.

Los espacios

A continuación, los códigos que representan conjuntos de espacios.

Código Descripción y ejemplo

Cualquier carácter de espacio (vea el comentario debajo). Equivale


\s a [[:space:]] ya veces a \p{space}.
Ejemplo: \s\r "un espacio seguido de un retorno de carro".

Cualquier carácter que no sea representado por \s . Equivale en


[^[:space:]].
\S Ejemplo: [[:punct:]]\S "un signo de puntuación y cualquier
carácter que no sea un espacio". Identifica segmentos como ÿ¿Aÿ,
ÿ¿aÿ, ÿ—aÿ, ÿ“aÿ, ÿ'aÿ…
Cualquier espacio o tabulador. Equivale a [[:blank:]] ya veces a
\p{blank}.
\h Ejemplo: ^\h+[[:punct:]]?\w “En posición de inicio de párrafo,
espacios o tabuladores, uno o más, seguidos de un signo de
puntuación o ninguno y un carácter de palabra”.
Cualquier carácter que no sea representado por \h. Equivale en
\H [^[:blank:]].

Cualquier espacio vertical, es decir, cualquier carácter de corte de


línea: salto de párrafo, salto de línea forzado, salto de página, salto
\v de columna, salto de marco (frame break).
Ejemplo: \h+\v “espacios horizontales, una o más veces,
seguidos de un espacio vertical”.

\V Cualquier carácter que no sea representado por \v (fig. 5).

La clave para entender los espacios es saber que en el código GREP


hay horizontales ( \h), que son los espacios entre palabras (los «normales»)
y los tabuladores, y verticales ( \v), que son los caracteres de corte de línea.
El código \s representa tanto unos como otros.

Editar con InDesign de Mac 7 Anexo. El código GREP

0 0
Machine Translated by Google

Efectivamente: los códigos \n y \r están incluidos dentro de \s. Por tanto,


muchas veces conviene utilizar \h en vez de \s para dar precisión a la
expresión GREP.
Véase más abajo el apartado «Caracteres de saltos» y también, en «Clases
Posix», las posibilidades que ofrecen [[:blank:]] y [[:space:]]. Acerca de los
códigos para los distintos tipos de espacios, consulte «Los diferentes espacios».

Códigos de un solo carácter


Los siguientes códigos representan un carácter único.

Código Descripción Código Descripción

~2 Símbolo de copyright, ÿ©ÿ. ~r Símbolo de registrado, ÿ®ÿ.

~d Símbolo de marca, ÿ™ÿ. \~ Vírgula, ÿ~ÿ.

Caracteres de saltos

Estos son los caracteres que realizan una rotura vertical del texto.
Los más importantes son el salto de línea forzado y el retorno de carro,
que ya formaban parte de la página de códigos ASCII: el primero se llama
line feed (lf, u+000a, código \n); el segundo, carriage return (cr, u+000d,
código \r).

Código Descripción Código Descripción

\n Salto de línea forzado. ~R Salto de marco.

\r Regreso de carro. ~P Salto de página.

~b Regreso de carro estándar. ~L Salto de página impar.

~k Salto de línea discrecional. ~E Salto de página pareja.


~M Salto de columna. ^k Salto de línea condicional.

El tercer código, ~b, equivale al segundo, \r. He escrito la expresión retorno


de carro estándar porque es la traducción del inglés standard carriage
return, pero no he podido aclarar el significado de standard en este
término.
Desconozco la funcionalidad del carácter de salto de línea condicio nal,
^k, y tampoco sé cómo se puede introducir en los textos, porque no sale en
el menú Type > Insert Break Character.

Fig. 5. Ejemplo del código \V.


Seleccionamos todos los párrafos
comenzados por guión largo:
\x{2014}[\V]+. Sobre el código
\x{2014}, véase «Unicode»; sobre
el código +, consulte «Repetición,
cuantificadores».

Editar con InDesign de Mac 8 Anexo. El código GREP

0 0
Machine Translated by Google

En relación con el salto de línea discrecional, para saber cómo


sacarle provecho, hay dos artículos del sitio web InDesignSecrets que
se pueden consultar: «Discretionary Line Breaks» (https://
indesignsecrets.com/discretionary-line-breaks.php)
y —éste, con vídeo incluido— InDesign How-to Video:
Using Discretionary Line Breaks (https://indesignsecrets.com/
video-using-discretionary-line-breaks.php).

Los diferentes espacios

El espacio normal es el carácter u+0020 y se puede identificar mediante el


código \x{20} (véase el apartado Unicode).
Incluyo al principio de esta tabla dos tabuladores que no aparecen en el
menú Type > Insert White Space, pero que en términos de GREP
forman parte del conjunto de los espacios (fig. 6 y 7).

Código Descripción

\t Tabulador horizontal.

~y Tablador de justificación a la derecha (right indent tab).

~m Cuadratín.

~> Medio cuadratín.

~S Espacio duro o de no separación.

~s Espacio duro o de no separación de ancho fijo.

~< Espacio fino.

~| Espacio ultrafino.

~3 Tercio de cuadratín.

~4 Cuarto de cuadratín.

~% Sexto de cuadratín.

~/ Espacio de cifra.

~. Espacio de puntuación.

~f Espacio de alineación (flush space)

Fig. 6. En esta imagen se destacan sólo los espacios


duros y finos, así como un caso de espacio ultrafino
(segunda línea, dentro de los corchetes, después de la ce).
El patrón es [~S~<~|]. Si hubiera utilizado los códigos \h
o \s, saldrían destacados todos los espacios, también
los normales.

Editar con InDesign de Mac 9 Anexo. El código GREP

0 0
Machine Translated by Google

El último, flush space (en español, espacio de alineación), se utiliza


raramente. Cuando el párrafo tiene una justificación total, por lo que la última
línea también se alinea por la derecha, el espacio de alineación, colocado
al final de todo del párrafo, llena el espacio blanco por la derecha y así evita
la distorsión del espaciado interno de la línea. Tiene un efecto parecido al del
tabulador de justificación a la derecha.
Tanto \h como [[:blank:]] y \p{blank} representan todos estos
espacios horizontales salvo el tabulador de justificación a la derecha.
Un uso real de la mayor parte de estos códigos es una receta que
InDesign proporciona de serie, llamada Dash to En-dash y que se puede
parafrasear de la siguiente manera: “Busca todas las instancias de guiones
que tengan un espacio o más en ambos lados, o bien un espacio o más a
la izquierda, o bien un espacio o más a la derecha, y reemplázalos por un
guión medio”. La receta es ésta:

Buscar (cortado en dos bloques, pero seguidamente en el


original): [~m~>~f~|~S~s~<~/~.~3~4~%]+-[~m~>~ f~|~S~s~<~/~.~3~4~%]+|
[~m~>~f~|~S~s~<~/~.~3~4~%]+-|-[~m~>~f~|~S~s~<~/~.~ 3~4~%]+
Reempl.: \s–\s

Si sustituimos los repertorios de espacios por\h, podremos observar


mejor la estructura del patrón de búsqueda: \h+-\h+|\h+-|-\h+.
Por tanto, se trata de lo siguiente:

t Un espacio o más, guión y un espacio o más:\h+-\h+. t


Alternativa: |.
t Un espacio o más y un guión:\h+-.
t Alternativa: |.
t Un guión y un espacio o más: -\h+.

La diferencia entre \h y el despliegue de códigos de los espacios es


que \h también representa a los tabuladores. Como podría ocurrir que
tuviéramos algún guión antes o después de un tabulador, es mejor ceñirse
al modelo de receta propuesto por InDesign.

Fig. 7. El guión discrecional es difícil de


reconocer en el modo de visualización normal
de InDesign. Todos los círculos de la imagen
son puntos en los que hay uno. Lo que corta
la palabra longitud es más reconocible, pero
los demás pasan desapercibidos.
Incluso hay uno que está impidiendo la
partición total de una palabra: lo que está al
principio de viñetas. Por eso es tan
interesante hacer una «limpieza» de guiones
blandos justo después de importar un texto
de Word.

Editar con InDesign de Mac 10 Anexo. El código GREP

0 0
Machine Translated by Google

Guiones y guiones

En una expresión GREP, el guión normal se escribe directamente


(ver, sin embargo, el apartado «Repertorios o clases»). Si por
ejemplo queremos identificar una expresión como ÿ1987-89ÿ, el
patrón puede incluir el guión tal cual: \d{4}-\d{2}.

Código Descripción Código Descripción

~_ Guión largo ~~ Guioncito duro o de no separación

~= Guión medio ~- Guioncito blando o discrecional

Para identificar todos los guiones directos, discrecionales y duros


que puedan existir en un documento de Word, podríamos escribir la
expresión [-~-~~] (fig. 5). (Sobre el uso de los corchetes, véase el
apartado «Repertorios o clases».)
Vea una manera de identificar el guión blando o discrecional en la
tabla del apartado «Unicode».

Comillas

Más arriba, en el apartado «Conjuntos de caracteres», hemos


cualese códigos
visto los
" y, 'que
quiere
identifican
tipo. Pueden
las comillas
hacer mucho
dobles servicio
y simplesende
una
expresión como ['"], que significa “comillas simples o dobles de
cualquier tipo”. (Otra vez, vea el apartado «Repertorios o clases».) A
continuación, los códigos de los diferentes tipos de comillas.

Código Descripción

~" Comillas dobles rectas o de máquina de escribir, ÿ"ÿ.

~' Cometa simple recta o de máquina de escribir, ÿ'ÿ.

~{ Comillas tipográficas altas de apertura, ÿ“ÿ.

~} Comillas tipográficas altas de cierre, ÿ”ÿ.

~[ Cometa tipográfica alta de apertura, ÿ'ÿ.

~] Cometa tipográfica alta de cierre, ÿ'ÿ.

El patrón antes mencionado, ["'], representa también las


comillas bajas, simples y dobles (ÿ« », ‹ ›ÿ) y las comillas dobles
alemanas de apertura (ÿ„ÿ).
Otras formas de identificar comillas se pueden ver en el apartado
«Unicode».

Otros signos de puntuación

Código Descripción Código Descripción

~7 Calderón, ÿ¶ÿ. ~e Tres puntos, ÿ…ÿ.

~8 Pico negro, ÿ•ÿ. ~6 Símbolo de párrafo, ÿ§ÿ.

Editar con InDesign de Mac 11 Anexo. El código GREP

0 0
Machine Translated by Google

Variables y elementos compositivos


InDesign tiene algunos «caracteres» que se visualizan cuando el
modo de pantalla es el normal(View > Screen Mode > Normal) e incluso
se pueden seleccionar (vea el artículo referenciado al principio titulado
«Updated Guide to InDesign's Special Characters») ).
Los llamados marcadores y los que llamo elementos compositivos
también se visualizan; las variables, sin embargo, no son un carácter,
sino unos campos de texto.
A continuación, los tres grupos de códigos que responden en sentido
amplio en la idea de «variable».

Variables de texto

Las variables son un recurso de automatización que toqué muy


brevemente en el tema 11 («Variables de texto», pág. 7-8). El menúType >
Texto Variables > Insert Variable no muestra tantas opciones.

Código Descripción

~v Cualquier variable (año variable).

Encabezamiento de página (estilo de párrafo) (running header, paragraph


~Y
style).

Encabezamiento de página (estilo de carácter) (running header,


~Z
character style).

~u Texto personalizado (custom text).

~T Número de la última página (last page number).

~H Número de capítulo (chapter number) (fig. 8).

~O Fecha de creación del archivo (creation date).

~o Fecha de modificación del archivo (modification date).

Fecha de la última impresión, el último empaquetado o la última


~D
exportación a PDF (output date).

~l Nombre del archivo (file name).

~J Metadatos de pie de imagen (metadata caption).

Fig. 8. En este ejemplo, la expresión


«Capítulo 1» no es teclada, sino la
variable Chapter Number (Type > Texto
Variables > Insert Variable > Chapter
Number). Para forma tarla, basta con un

estilo de carácter y un estilo GREP que la


aplique mediante el código ~H.

Editar con InDesign de Mac 12 Anexo. El código GREP

0 0
Machine Translated by Google

Marcadores

En el desplegable de la arroba del campo de búsqueda del modo GREP


se encuentra la opción Markers; por eso llamo a estos códigos
marcadores, aunque no son más que un grupo específico de variables.

Código Descripción

~# Cualquier número de página (año page number).


~N Número de página actual (current page number).
~X Número de la página siguiente (next page number).
~V Número de la página anterior (previous page number).
~x Marcador de sección (section marker).

~a Marcador de objeto anclado (anchored object marker).

Marcador de llamada de nota a pie de página (footnote reference


~F
marker).

Marcador de llamada de nota al final del artículo (endnote


~U
reference marker).

~I Marcador de índice (index marker) (fig. 9).

Fig. 9. En una obra en la que se haya


creado un índice analítico, se pueden
realizar búsquedas de los términos
dentro del texto mediante el código de
marcador de índice, ~I, que se encuentra
en el desplegable de la arroba, sección
Markers, opción Índice Marker.

Elementos compositivos

Listo varios códigos más. Le llamo compositivos porque me parece que


responden bien a la noción de composición del texto (fig. 10).

Editar con InDesign de Mac 13 Anexo. El código GREP

0 0
Machine Translated by Google

Código Descripción
~i Sangrado francés hasta aquí (indent to here).

~j Anulador de ligaduras (non-joiner).

~h Final de estilo intercalado (end nested style here).

Estos tres caracteres se insertan en el texto por el menúType >


Insert Special Character > Other, que incluye el tabulador de
justificación a la derecha, ya visto en el apartado de los espacios.

Unicode
En ocasiones es útil insertar un carácter en un patrón no directamente,
sino mediante su punto de código Unicode. La base de este patrón es\x{ }.
En el interior de las claves se insertan los cuatro dígitos del punto de código
deseado. En los Macs, el punto de código se puede obtener mediante el
panel Emoji &Symbols del Finder: Edit > Emoji & Symbols. Véanse
algunos ejemplos.

Ejemplo Descripción Unicode

Comillas tipográficas altas de u+201c left double


\x{201C}
apertura, ÿ“ÿ. quotation mark

\x{0024} Símbolo del dólar, ÿ$ÿ. u+0024 dollar sign

\x{2009} Espacio fino. u+2009 thin space

\x{205C} Cruz punteada, ÿÿÿ. u+205c dotted cross

\x{2030} Tanto por mil, ÿ‰ÿ. u+2030 por mille sign

\x{00AD} Guioncillo blando o discrecional. u+00ad soft hyphen

El lector debe recordar que en el apartado de los espacios he


mencionado el código \x{20}, que representa el espacio normal. Cuando
un código Unicode tiene ceros por la izquierda, éstos pueden ignorarse en
la expresión. Por tanto, la A mayúscula con ogonek, ÿÿÿ, es representable
tanto por \x{0104} como por \x{104}. Hay códigos, como \x{20}, que
pueden expresarse sin claves, \x20; no es el caso de \x{104}.
Otra forma de invocar un punto de código Unicode es mediante el
patrón \N{ }, en el que se incluye el nombre de cualquier carácter tal

Fig. 10. Ejemplo de utilización del


código de final de estilo intercalado,
~h. Está situado al final de la
palabra. La letra capitular tiene un
estilo de carácter normal, no
intercalado.

Editar con InDesign de Mac 14 Anexo. El código GREP

0 0
Machine Translated by Google

cómo aparece en el estándar. Consecuentemente, la mayúscula con


ogonek es representable por \N{LATIN CAPITAL LETTER A WITH
OGONEK} o \N{latin capital letter a with ogonek}. Del mismo modo, el
interrobang, ÿÿÿ, puede ser\N{INTERROBANG} o \N{interrobang}.

Sobre otro uso de los puntos de código de Unicode, véase más abajo
el apartado «Abaste a partir de puntos de código de Unicode».

Propiedades

De lo que explico ahora, los materiales se llaman propiedades (properties)


y tienen el código\p{ }. Peter Kahrel las llama Unicode character clases, y
supongo que lo hace porque parten de la misma idea de base que las clases,
que trato en el siguiente apartado. En el estándar Unicode, la mayor parte de
estas propiedades son categorías. A continuación doy unas cuantas.

Propiedad Descripción Códigos

Todo carácter alfanumérico (letra o cifra).


alnum \p{alnum}

alpha Todo carácter alfabético. \p{alpha}

Todo espacio que no sea rompedor de


blank \p{blank}
línea.

d, digido Toda cifra decimal (de 0 a 9). \p{d}, \pd, \p{digido}


Todo carácter que tenga su aspecto
graph \p{graph}
gráfico (no invisible).

l, lower Toda letra minúscula. \p{l}, \pl, \p{lower}


letter Toda letra. \p{letter}
punct Todo signo de puntuación. \p{punct}
s, space Todo carácter de espacio. \p{s}, \ps, \p{space}

u, upper Toda letra mayúscula. \p{u}, \pu, \p{upper}

w, word Todo carácter de palabra (letras, cifras


\p{w}, \pw, \p{word}
y raya baja).

Las dos primeras propiedades, \p{alnum} y \p{alpha}, al igual que \w,


quedan cortas a la hora de procesar el catalán. Véase más adelante
«Trucos para el catalán».
Todos estos códigos se pueden revertir a su contrario mediante la
fórmula \P{ }, es decir, puede expresarse la idea de «cualquier carácter que no sea…».
(Recuerde que hacíamos lo mismo para códigos como\d, \w y \h). Ejemplos: \Ps, \P{space},
\P{word}…
Para cualquier patrón que tenga que identificar espacios, es mejor
\p{blank} que \p{space}, por la misma razón que decíamos que \h era más
preciso que \s.
El código \p{punct}, al igual que [[:punct:]] (ver «Clases Posix»),
representa una serie de caracteres que Unicode tiene catalogados como
« "'”
“'

puntuación: ÿ_ . , ; : @
considerada
# % & * \ /símbolo
? !Math»).
«No,matemático
en cambio, (categoría
la»barra
{ } [ ]vertical,
( «Symbol,
)ÿ y otros.
ÿ|ÿ,

Editar con InDesign de Mac 15 Anexo. El código GREP

0 0
Machine Translated by Google

La lista estricta y completa de lo que Unicode llama categorías


es consultable en «Unicode Character Categories» (http://www.
fileformat.info/info/unicode/category/index.htm). Hay algunas que
se pueden utilizar como se ve en la siguiente tabla.

Categoría Códigos

[L] Letter, Lowercase \p{Ll}, \p{lowercase_letter}


[Lu] Letter, Uppercase \p{Lu}, \p{uppercase_letter}
Todas las categorías Letter \p{L*}
[Mn] Mark, Nonspacing \p{Mn}

[Nd] Number, Decimal Digido \p{Nd}, \p{decimaldigido_number}


[Nl] Number, Letter \p{Nl}, \p{letter_number}
Todas las categorías Number \p{N*}
[Pd] Punctuation, Dash \p{Pd}, \p{dash_punctuation}
[Pe] Punctuation, Close \p{Pe}, \p{close_punctuation}
[Po] Punctuation, Other \p{Po}, \p{other_punctuation}
[Ps] Punctuation, Open \p{Ps}, \p{open_punctuation}
Todas las categorías Punctuation \p{P*}
[Sc] Symbol, Currency \p{Sc}, \p{currency_symbol}
[Sm] Symbol, Math \p{Sm}, \p{math_symbol}
[Su] Symbol, Other \p{So}, \p{other_symbol}
Todas las categorías Symbol \p{S*}
[Zs] Separator, Space \p{Zs}, \p{space_separator}

La categoría Mark, Nonspacing está asignada por los signos


diacríticos de combinación. La categoría Number, Letter es la de las
cifras que tienen forma de letra, como los numerales romanos de
Unicode y las cifras de las escrituras griegas antiguas.
El código \p{Zs} o \p{space_separator} es útil porque actúa como
\p{blank}: captura los espacios sin incluir ni el retorno de carro ni el salto
de línea.
Las categorías Puntuation, Open y Puntuation, Close son enfado,
porque las tienen asignadas los signos de apertura y cierre de paréntesis,
corchetes y clavos, mientras que la interrogación y la ex clamación, que
también son parejas de apertura y cierre , tienen asignada Punctuation,
Other.
La categoría \p{Sm} o \p{math_symbol} puede servir para identificar
los operadores matemáticos. Por otra parte, en la categoría "Symbol,
Other" se encuentran los signos de copyright, registrado y marca registrada.

Repertorios o clases
El término repertorio sirve de alternativa a conjunto, que podría crear
confusión, y de traducción del inglés class, pero debe recordarse que en
los materiales en inglés se habla de conjuntos (character sets) que
incluyen clases (character classes y equivalence clases).
Estos repertorios, enmarcados por corchetes,[ ], sirven para señalar
tanto caracteres aislados como series y se utilizan mucho por su
versatilidad y eficiencia (fig. 11). En su interior actúan unas reglas distintas
de las habituales:

Editar con InDesign de Mac 16 Anexo. El código GREP

0 0
Machine Translated by Google

t El punto deja de ser un código y se convierte en un punto literal.


t El guión, si va al principio o al final de un repertorio, funciona como
carácter literal, mientras que, si va en una posición intermedia, pasa
a significar «alcance» (en inglés, range), es decir, “de … a …”.

t El circunflejo (no el carácter que hace de acento, sino el que se


utiliza independientemente, ^, código Unicode u+005e cir
cumflex acento) significa “exclusión de lo que sigue”.
t Se pueden utilizar los códigos con barra inversa ( \w,\t, etc.)
y los códigos de puntos de código de Unicode ( \x{ }), así como
también los códigos propios de InDesign que comienzan con vírgula
(~s, ~S…).

Todas estas particularidades quedan demostradas en la tabla que


aparece a continuación. En las líneas que siguen, se llega a comprender
que Peter Kahrel llame a estos repertorios o clases home made wildcards,
expresión que traduciría más o menos por «comodinos hechos a medida».

Código Descripción

[*†‡] “Un asterisco, una cruz o una doble cruz”.

[01] “Las cifras ÿ0ÿ o ÿ1ÿ”.

[AZ] "Cualquier letra mayúscula, sin diacríticos".

[0-9] "Cualquier cifra, del 0 al 9".

“Cualquier letra de la ÿaÿ a la ÿgÿ, mayúscula o minúscula,


[a-gA-G]
sin diacríticos”.

“Un guión, una ÿaÿ o una ÿgÿ, sin diacríticos”. El patrón


[-ag] equivalente es [ag-]. En estas formulaciones es donde el guión
funciona como carácter literal.

[.?] "Un punto o un interrogante".

[~s~S] "Un espacio duro o un espacio duro de ancho fijo".

[^\w] "Cualquier carácter que no sea uno de palabra".

"Cualquier carácter que no sea un salto de línea o un retorno


[^\n\r] de carro".

[\x{7b}\x{7d}] “ÿ{ÿ o ÿ}ÿ”.

Los códigos del tipo de [az] y [AZ], como indico, identifican solo
letras de base, sin signos diacríticos. Por ejemplo si tengo el texto ÿalturaÿ
y hago la búsqueda [az]+ (fig. 11), que significa “todas las

Fig. 11. Aquí tenemos el mismo


texto de la figura 2. Ahora está
destacado el resultado de una clase:
[az]+ “letras minúsculas sin diacríticos,
una o más”.

Editar con InDesign de Mac 17 Anexo. El código GREP

0 0
Machine Translated by Google

minúsculas, una vez o más, sin diacríticos”, el widget captura ÿalÿ


y se detiene, porque la ÿçÿ no es una letra de base. Si hago clic en el botón
Find Next, el widget salta ÿçàÿ y captura ÿriaÿ. Es por esta razón que
InDesign propone [\l\u], “cualquier mayúscula o minúscula”, que sí identifican
caracteres con diacríticos.
Un ejemplo práctico de repertorio o clase sería [\d.,]+, que firme mete
“segmentos de cifras, comas y puntos en cualquier orden, una sola ocurrencia
o más”. Captura: ÿ7ÿ, ÿ07ÿ, ÿ7,2ÿ, ÿ07,2ÿ, ÿ3,248ÿ, ÿ13.500,25ÿ, ÿ13,500.25ÿ…
Pero ocurre una clase: en realidad una alternativa, es decir, estamos expresando
“una cifra, un punto o una coma, una vez o más”. Para que no capture puntos
o comas aislados, deberemos complicar un poco la formulación: \d[\d.,]*. Ahora
estamos expresando “una cifra, ya continuación cero ocurrencias o más de
cifra, punto o coma”.

Recuerde siempre que los patrones no son casi nunca perfectos:


la expresión también representa cadenas como ÿ2.ÿ y ÿ02,ÿ.
Una característica importantísima de los repertorios o clases enunciada
más arriba es que se puede hacer una negación, esto es, una expresión del
tipo “cualquier cosa que no sea…”, como se ve en [^\w] y [^\n \r]. Más
ejemplos a continuación.

Código Descripción

[^:] "Cualquier cosa que no sea los dos puntos".

[^>] "Cualquier cosa que no sea el ángulo de cierre".

Alcance a partir de puntos de código de Unicode

Los repertorios o clases hacen posible que combinemos los puntos de


código de Unicode y el guión de alcance, de modo que se pueden hacer
patrones de series de caracteres. Una forma de conocer determinada series de
los blogs de Unicode es yendo a la página «Code Charts» (https://
www.unicode.org/charts/) (fig. 12).
Por ejemplo, la expresión para el bloque básico de caracteres de la escritura
griega sería [\x{0370}-\x{03FF}]. Si la ampliamos para que incluya los bloques
Greek Extended y Ancient Greek Numbers, la expresión se convierte en
[\x{0370}-\x{03FF}\x{1F00}-\x{1FFF}\x{ 10140}-\x{1018F}].
Podríamos ir un poco más allá y añadirle puntuación y espacios

Fig. 12. Fragmento de la página "Code charts" del sitio


web de Unicode. Si pasamos el ratón por encima de Greek,
emerge la indicación 0370-03ff, que es la serie de puntos
de código u+0370 a u+03ff. Si hacemos lo mismo con
Greek Extended y Ancient Greek Numbers, tendremos
todos los caracteres de la escritura griega formalizados en
Unicode.

Editar con InDesign de Mac 18 Anexo. El código GREP

0 0
Machine Translated by Google

mediante unos códigos que veremos en el apartado siguiente,


así: [\x{0370}-\x{03FF}\x{1F00}-\x{1FFF}\x{10140}-\x{1018F}[:blank :]
[:punct:]].

Clases Posix

Los códigos Posix (portable operating system interface x) (fig. 13) sirven
para identificar texto a partir de determinadas propiedades, de forma
muy parecida a lo que veíamos en relación con Unicode. Tienen dos
formas: [[: :]], que se llaman en inglés character classes, y [[= =]],
llamados equivalence clases. Son los siguientes.

Códigos Descripción

[[:alnum:]] "Todo carácter alfanumérico (letra o cifra)".


[[:alpha:]] "Todo carácter alfabético".

[[:digido:]], [[:d:]] "Toda cifra decimal".

[[:upper:]], [[:u:]] "Toda letra mayúscula".


[[:lower:]], [[:l:]] "Toda letra minúscula".

[[:blank:]] "Todo espacio que no sea rompedor de línea".


[[:punct:]] "Todo signo de puntuación".

[[:space:]], [[:s:]] "Todo carácter de espacio, también rompedor de línea".

"Todo carácter de palabra (letras, cifras y raya baja)".


[[:word:]], [[:w:]]

“Cualquier variante de un determinado carácter de


[[=a=]]
base. Por ejemplo, ÿa á á â ã ä åÿ”.

Fig. 13.Vista del desplegable de


la arroba de la ventana de
búsquedas y reemplazos y del
apartado «Posix». Nótese que falta
[[:blank:]].

Editar con InDesign de Mac 19 Anexo. El código GREP

0 0
Machine Translated by Google

Como hemos visto en las propiedades Unicode, las clases [[:alnum:]]


y [[:alpha:]] tienen la misma limitación que \w. Véase «Trucos para el
catalán».
Hay un tercer tipo de clases Posix, los collating elementos o
elementos de ordenación, que no voy a comentar. En el desplegable de la
arroba hay otro código de character class, [[:xdigit:]], que no comento
porque no encuentro utilidad.
Son muy importantes las clases de equivalencia, porque capturan
tanto las letras de base como las que tienen diacríticos. Por ejemplo,
para capturar tanto ÿBesiersÿ como ÿBésiersÿ, podemos hacerB[[=e=]]siers
(recuerde, sin embargo, lo que se ha dicho en «Caracteres con
diacríticos de combinación»). Según Peter Kahrel, estas clases tienen la
propia edad de no discriminar entre mayúsculas y minúsculas, pero a mí no
me funciona así. Si hago [[=z=]], identifico ÿz ÿ ž ÿÿ; si hago [[=Z=]],
identifico ÿZ ÿ Ž ÿÿ.
Recuerde que hemos dicho que \p{punct} representa signos de puntu
ción en un sentido muy amplio; [[:punct:]] funciona de la misma
modo.

En cuanto a los espacios, tenemos [[:space:]] o [[:s:]] y [[:blank:]], que


funcionan como \p{space} y \p{blank} e igual que \h y \s.
Sobre las clases [[:word:]] y [[:w:]], consulte «Trucos para el catalán».

Fig. 14. Las expresiones regulares, por supuesto, son


útiles fuera de InDesign. A la izquierda se ve una tabla
que he convertido a formato CSV, que después he
abierto con TextSoap, debajo. Puesto que los campos
están definidos por " y separados por punto y coma, puedo
hacer una expresión
una(bajo
columna
la casilla
especíExfica (en elque
presión) cuerpo
capture
central, en color azul).

Editar con InDesign de Mac 20 Anexo. El código GREP

0 0
Machine Translated by Google

Versatilidad de las clases

Una característica importante de los repertorios o clases es que


permiten hacer ciertos juegos. Supongamos que queremos rastrear las
expresiones de horas, minutos y segundos con dos puntos: ÿ20:30ÿ,
ÿ8:17ÿ, ÿ15:56:32ÿ y similares. Podemos utilizar la clase de cifras así:
[[:d:]:]+, que equivale a [\d:]+. Pero, como he dicho cuando hablaba de
[\d.,]+, existe la pega de que en el interior de las clases se expresa una
alternativa. Estamos diciendo, literalmente, "una cifra o un signo de dos
puntos, una vez o más", y por tanto el patrón capturará también los dos
puntos cuando vayan solos. Para superar esta falta de precisión, debemos
mejorar el patrón: [[:d:]][[:d:]:]{2,}. Ahora estamos diciendo "una cifra ya
continuación una cifra o dos puntos, dos veces o más". Vea más adelante
«Repetición, cuantificadores».
Esta vez el patrón tampoco es perfecto, porque reconoce cadenas
como ÿ0805ÿ y ÿ08:ÿ. Si supiéramos que las expresiones son siempre
del tipo ÿ00:00ÿ o ÿ00:00:00ÿ, podríamos hacer un patrón más
específico.

Grupos o subexpresiones
La delimitación de grupos sirve para definir segmentos en el interior de
un patrón. Los materiales de consulta, de esta funcionalidad se llaman
referencing, porque consiste en crear un segmento dentro de la
expresión al que se puede remitir mediante un número. Se utilizan
mucho en el campo de reemplazo. Pongamos, por ejemplo, que
indiquemos “grupo 2” en el reemplazo: estamos declarando que el
grupo 2 debe quedar tal y como ha sido encontrado en la búsqueda. Pero
también realizan la función referenciadora en los patrones de estilos intercalados.

Código Descripción Ejemplo

B(e|é)(s|z)iers “dentro de la palabra


Creación de un grupo (mark
() ÿBesiersÿ, alternativa entre ÿeÿ y ÿéÿ,
ing subexpresión). y entre ÿsÿ y ÿzÿ”.

(?:Autora:\s)(Linn Parker) “texto


Identificación de un grupo
ÿAutora: Linn Parkerÿ”. El segmento
(?: ) sin capturarlo (non-marking
ÿAutora: ÿ no es referenciado, mientras
subexpresión)
que ÿLinn Parkerÿ sí.

Los códigos de una remisión a un grupo se hacen con barra cuando van dentro
de la misma expresión (\1, \2, etc.) y con el dólar cuando se realizan en el campo
de reemplazo ($0, $1, $2, etc. ). ) (fig. 15).

Código Descripción Ejemplo

Identificación de un grupo en el interior


\1, \2, etc. Véase la receta 1.
del propio patrón (back reference).
$0, $1, $2, Identificación de un grupo en el campo Véase el ejemplo a
etc. de reemplazo. continuación.

Editar con InDesign de Mac 21 Anexo. El código GREP

0 0
Machine Translated by Google

Por ejemplo, para sustituir las comillas dobles bajas por las altas,
podríamos hacer algo así:

Buscar: «([\w[:blank:][:punct:]·'-]+?)» “segmentos de texto (caracteres


de palabra, espacios, signos de puntuación, puntos volados, apóstrofos y
guiones) entre comillas dobles bajas”. Para entender el segmento ·'-, consulte
«Trucos para el catalán».
Reempl.: "$1" “sustitución de las comillas de cualquier tipo por las
dobles altas”. Si tenemos seleccionada la casilla Use Typogra pher's
Quotes (InDesign > Preferences > Type) y las comillas altas en el desplegable
Double Quotes (InDesign > Preferences > Dictio nary), InDesign las aplica
automáticamente.

Y ahora, un ejemplo propio del mundo de la corrección. Supongamos


que queremos cambiar los relativos del tipo con el que, con la que… a la
forma equivalente con la que. La receta sería:

Búsqueda: (con\h)(el cual|los cuales|las cuales|las cuales)


Reempl.: $1qué

Repetición, cuantificadores
Los siguientes códigos sirven para definir el número de ocurrencias (o
repeticiones) de un carácter o cadena de caracteres.

Fig. 15. Ejemplo de uso del código $0


en el campo de reemplazo: buscamos
la palabra ÿInDe signÿ y aplican sólo el
parámetro de idioma inglés británico.

Editar con InDesign de Mac 22 Anexo. El código GREP

0 0
Machine Translated by Google

Código Descripción Ejemplo

Cero veces o una (one socio-?cultural “ÿsocio-culturalÿ


?
allowed). o ÿsocioculturalÿ”.

* Cero o más veces (unlim ited ujo*! “ÿui!ÿ, ÿuix!ÿ, ÿuixx!ÿ,


allowed, none required). ÿuixxx!ÿ…”

+ Una vez o más (unlimited uix+! “ÿuix!ÿ, ÿuixx!ÿ, ÿuixxx!ÿ… allowed, one
required). (no ÿui!ÿ)”.
Exactamente tres ocurrencias. 0,\d{3} “cero y coma seguidos de
{3}
tres cifras”.

Al menos dos ocurrencias. 0,\d{2,} “cero y coma seguidos de al


{2,}
menos dos cifras”.

Entre dos y cuatro ocurrencias. 0,\d{2,4} “cero y coma seguidos de


{2,4}
dos, tres o cuatro cifras”.

El código * es necesario en ocasiones, pero a menudo no recomendable.


Si se pide al programa que capture algo empezando desde cero —es decir, previendo
que no aparezca—, puede ocurrir que se procesen muchos datos. Se recomienda
utilizar + en vez de *
siempre que sea posible.
Una de las recetas que da InDesign de serie es la llamada Multiple Space
to Single Space, es decir, “sustituye varios espacios por uno solo”. La fórmula
es la siguiente:

Fig. 16. Ejemplo de cuantificador ávido. En el


texto de la derecha hay tres fragmentos entre
comillas. El patrón es «[\w[:blank:][:punct:]·'-]+», y
captura desde las primeras comillas de apertura hasta
las últimas de cierre. Expresado con el cuantificador
perezoso, el patrón queda así: «[\w[:blank:][:punct:]·'-]
+»?.

Editar con InDesign de Mac 23 Anexo. El código GREP

0 0
Machine Translated by Google

Buscar: [~m~>~f~|~S~s~<~/~.~3~4~% ]{2,}


Reempl.: \s

La parte entre corchetes es un repertorio o clase, que ya hemos visto,


y contiene los códigos de todos los tipos de espacios; a continuación
está el cuantificador de “dos veces o más”:{2,}.

Cuantificadores «perezosos»

Los tres primeros cuantificadores (? *+) son algo más complejos que lo
que hemos explicado aquí. A veces necesitan ser restricciones. En inglés
se les llama con una palabra plástica, greedy, que podríamos traducir por
«ávidos». Si se utilizan sin un mecanismo de restricción, ocurre lo que se
ve en la figura 16. El recurso que existe para evitar este comportamiento
es los llamados, con otra expresión plástica, lazy quantifiers, o
cuantificadores «perezosos», que capturan la cantidad menor posible de
ocurrencias del elemento afectado. Sencillamente, se añade un interrogante
al final de cada código.

Código Descripción

Cero veces o una, cantidad menor. Este código es válido, pero no


??
tiene sentido utilizarlo.

*? Cero veces o más, cantidad menor.


+? Una vez o más, cantidad menor.

{2,}? Al menos dos ocurrencias, cantidad menor.

{2,4}? Entre dos y cuatro ocurrencias, cantidad menor.

Localizadores
Los localizadores determinan un sitio o posición en el texto que se
procesa. Hay que tener en cuenta que no identifican ningún carácter, sino
que sólo apuntan a una posición. En las búsquedas y reemplazamientos,
se especifica la localización sólo en el campo de búsqueda.
Los dos primeros códigos se llaman en inglés anchors; los cuatro
siguientes, word boundaries; los dos últimos, buffer boundaries.

Código Descripción Ejemplo


^ Inicio de párrafo. ^La “segmento ÿLaÿ a principio de párrafo”.

$ Final de párrafo. \t$ “un tabulador al final del párrafo”.


Comienzo de \<polo “palabra ÿpolÿ o inicio de palabra
\<
palabra. ÿpolÿ”. Ej.: ÿpolÿ, ÿpolÿímero, ÿpolÿifacético.

col\> “palabra ÿcolÿ o final de palabra ÿcolÿ”.


\> Final de palabra.
Ej.: ÿcolÿ, disÿcolÿ, protoÿcolÿ.

\bdos “palabra ÿdosÿ o inicio de palabra


\b Límite de palabra.
ÿdosÿ”. Ej.: ÿdosÿ, ÿdosÿifico, ÿdosÿsier.

Editar con InDesign de Mac 24 Anexo. El código GREP

0 0
Machine Translated by Google

\bpenj\B “segmento ÿpenjÿ al inicio de una


\B Cualquier cosa
palabra más larga”. Ej.: ÿpenjÿo, ÿpenjÿa,
que no sea \b.
ÿpenjÿat, ÿpenjÿarás, ÿpenjÿaria…

\ALaura\hOliva “segmento ÿLaura Olivaÿ en


\A Inicio de artículo. inicio absoluto de texto”.

Final de artículo. Laura\hOliva\z “segmento ÿLaura Olivaÿ en


\z final absoluto de texto”.

El término artículo en los dos últimos códigos responde a un


concepto propio de InDesign. Un artículo (story, en inglés) es cualquier
texto en un marco o más que fluya a continuación. Por tanto, si un texto
ocupa varios marcos de texto y estos están todos vinculados formando
una secuencia, tenemos un solo artículo.
Una fórmula sencilla que identifica párrafos (sin seleccionar los
caracteres de salto de línea o salto de párrafo) es^.+$, que equivale a
^\X+$ —si no hay notas a pie de página, que ya sabemos que el comodín
del punto y las \X las procesan mal.
Los dos últimos códigos de la tabla, \A y \z, faltan en el desplegable de
la arroba (fig. 17), pero es bueno conocerlos. La expresión \A\X+\z
arresta un artículo (story) entero.
La posición de final de párrafo, $, en realidad, no es un auténtico
«final», porque no discrimina entre el salto de línea ( \n) y el retorno de
carro ( \r ).
Una de las recetas que hay de serie en InDesign es Remove
Trailing Whitespace, que sirve para borrar los espacios sobrantes a
final de párrafo y tiene la forma\s+$. Yo haría más \h+$, por la razón
que he explicado más arriba (apartado «Los espacios»).
En mis pruebas, en ocasiones, los códigos \< y \>, y \b, no han
funcionado del todo como equivalentes, pero no es problema: si uno no
funciona, se utiliza el otro.

Fig. 17. El desplegable de la arroba, en el


apartado Locations, no incluye los códigos \A y \z,
de principio y final de artículo, que sin embargo vale la pena
conocer.

Editar con InDesign de Mac 25 Anexo. El código GREP

0 0
Machine Translated by Google

Los localizadores son considerados recomendables por una razón


de eficiencia, que significa que deben utilizarse, en ocasiones, aunque no
sea estrictamente necesario. Si el widget GREP tiene más herramientas
para capturar segmentos —más condiciones, más especificidad—, es
necesario esforzarse menos en procesar el texto, y por tanto se ahorran
recursos de procesador y energía.

Coincidencia adelante y atrás


Los códigos de coincidencia y no coincidencia adelante y atrás
(términos que propongo y que corresponden bien a los ingleses look-ahead
y look-behind) actúan como los localizadores: no representan ningún
segmento de texto. Detectan la presencia de un determinado texto por la
izquierda o la derecha, en sentido afirmativo o negativo (fig. 18).

Código Descripción Ejemplo

Coincidencia atrás (?<=Figura\h)\d “cualquier cifra


(?<= ) precedida de la palabra ÿFiguraÿ y un
(positive look-behind).
espacio”. Identifica sólo la cifra.
No coincidencia atrás (?<!d')[\w·'-]+ “palabras que no
(?<! )
(negative look-behind). tengan delante la contracción ÿd'ÿ”.
Coincidencia adelante \d+(?=USD) “cifras (una o más)
(?= )
(positive look-ahead). seguidas de la sigla USD”.
No coincidencia \d{1,3}(?!cm) “segmentos de cifras
(?! ) adelante (negative (de una a tres) que no tengan por la
look-ahead). derecha el símbolo ÿcmÿ”.

Coincidencia atrás Figura\h\K\d Equivale en la primera


\K expresión de esta tabla. Véase la
(positive look-behind).
receta 9.

En las coincidencias y no coincidencias atrás normales (los dos


primeros patrones) no se pueden utilizar las longitudes variables, es decir,
códigos como *, +, {3} o {3,}. Por tanto, no podemos buscar cadenas como
ÿ3cmÿ, ÿ18cmÿ y ÿ412 cmÿ, esto es, “segmentos del símbolo ÿcmÿ
que tengan por delante de una a tres cifras y un espacio”. El patrón (?
<=\d{1,3}\h)cm no funciona. Sin embargo, sí que podemos declarar
longitudes con el último código de la tabla, \K: \d{1,3}\h\Kcm.
Las coincidencias y no coincidencias atrás se pueden acumular en
forma de alternativas. Si, por ejemplo, queremos capturar las palabras
después de la apostrofación en casos como el tiempo, de estirar, te endosa,
se oculta, hereda, podemos hacerlo mediante una secuencia de alternativas:
( (?<=d')|(?<=l')|(?<=n')|(?<=s')|(?<=t'))\w+.

Fig. 18. Para componer en negrita los nombres


Dirección: Laura Oliva. en esta imagen, mediante un estilo GREP, he hecho
la expresión siguiente: (?<=:\h)[^.]+\., que significa
Fotografía: Helena Crous. “coincidencia atrás con dos puntos y uno espacio,
ya continuación cualquier cosa que no sea un punto
Banda sonora: Pompeu Rodergues. (una vez o más) y seguidamente un punto literal”.

Editar con InDesign de Mac 26 Anexo. El código GREP

0 0
Machine Translated by Google

Los modos
Modo de caja activada o desactivada

Lo hemos visto al principio: por omisión, las expresiones regulares discriminan entre
mayúsculas y minúsculas. Por tanto, no es lo mismo la expresión UNESCO que Unesco o
unesco. (Hay que recordar que las versalitas son minúsculas; por eso hay que prever que
en alguna situación pueda existir el texto ÿunescoÿ, que en realidad es ÿunescoÿ.)

De los dos modos, GREP llama case-sensitive on y case-sensitive off, que traduzco
por modos de caja activada y desactivada, aprovechando que en catalán y español
tenemos las expresiones caja alta y caja baja
para referirnos a mayúsculas y minúsculas.

Código Definición

Modo de caja activada. (No es necesario insertarlo, porque es el


(?-i)
modo por defecto.)

Modo de caja desactivada. Ej.: (?i)unesco “segmento ÿunescoÿ


(?i)
en cualquier variedad de mayúsculas y minúsculas”.

El modo de caja desactivada puede ser útil en la definición de estilos GREP, que
identifican texto para formatearlo pero no lo modifican.
En cambio, en búsquedas y reemplazos, siempre necesitamos definir cómo queremos que
sea el texto final. Por ejemplo, sabemos que el simple cuenco de megahercio es MHz, y
no otra cosa. Por tanto, podemos hacer esto:

Búsqueda: (?i)mhz
Reempl.: MHz

El patrón de búsqueda captura tanto la forma correcta como las incor


rectas ÿmhz, Mhz, MHZÿ, etc.
La misma caja desactivada nos puede ser útil cuando dejamos vacío el campo de
reemplazo (o utilizamos $0; véase más abajo «Los reemplazos») para hacer un cambio
de formato sin manipular el
texto.

Estos dos códigos pueden ser introducidos en el interior de una expres


sión. Si queremos detectar tanto ÿUNESCOÿ como ÿUnescoÿ, podemos hacer U(?
i)nesco.
Pongamos un ejemplo más desarrollado. Supongamos que queremos identificar
cadenas como ÿ3MHzÿ, ÿ3Wÿ, ÿ3cmÿ, ÿ3 dm³ÿ, ÿ3lÿ, etc. El patrón podría ser \d\h(?i)[a-
z0-9]{1,3}. No capturaríamos ÿ3 dm³ÿ, porque el código [0-9] no representa las cifras
voladas (ver el código \d en «Conjuntos de caracteres»), pero sí todas las demás.

Modos de línea única y multilínea

Hay cuatro modos de tratamiento de línea, que traduzco como se ve en la siguiente


tabla:

Editar con InDesign de Mac 27 Anexo. El código GREP

0 0
Machine Translated by Google

Código Definición

(?s) Unilínea activado (single-line on).


(?-s) Unilínea desactivado (single-line off).

(?m) Multilínea activado (multiline on).

(?-m) Multilínea desactivado (multiline off).

En resumen, los códigos de unilínea tienen que ver con el


comportamiento de los caracteres de corte de línea, llamados terminadores de línea
( \r, \n, ~M…). A su vez, los de multilínea afectan a ^ y $. Como son
herramientas para hacer un procesamiento profundo del texto y no he tenido
que utilizarlas nunca, no voy a extenderme.

Trucos para el catalán


En el tema 11 («Los límites de palabra», fig. 11, pág. 15) di como ejemplo la
expresión \b[\w'-]+\b , que enriquece el código \w añadiendo apóstrofos y
guiones ('-). Se trataba de destacar todas las palabras gráficas, es decir, las
expresiones separadas por espacios y excluyendo caracteres como signos
de puntuación y signos complementarios.
Pues bien, para textos en catalán, todavía hay que añadir el punto
volado, así, \b[\w·'-]+\b, y entonces la expresión identifica bien la
palabra que he avanzado en la página 6: ÿcancelarseÿ (fig. 19). Puede ver
una aplicación práctica de este truco en la receta 1.
Otro ejemplo: si necesitáramos identificar todos los segmentos de texto entre
comillas bajas, podríamos combinar \w, \h, [[:punct:]] y nuestros nuestros ''- así:
«[\w\h[:punct:] ·'-]+?» “cualquier carácter de palabra, cualquier espacio que no dé
salto de línea, cualquier signo de puntuación, un punto volado, comillas simples de
cualquier tipo o un guión, una o más con resultado mínimo, con comillas bajas por
la izquierda y por la derecha”. El lector que ya esté un poco entrenado sabrá que
se puede hacer un patrón más corto: «[^»]+?», “comillas bajas de apertura, comillas
bajas de cierre y en medio cualquier cosa que no sea unas comillas bajas de cierre,
una vez o más”. El problema es que nos pasarían desapercibidos casos
problemáticos, como que hubiera un retorno en medio de las comillas.

Fig. 19. Muestra del


funcionamiento del patrón [\w]+
mejorado para que reconozca el Los reemplazos
punto volado, el apóstrofo y el
guión. (Para los fans de la tipografía El campo de reemplazo tiene un desplegable de la arroba propio que
de detalle, he bajado la línea de contiene la mayor parte de los códigos que hay en el de búsqueda. Sin
base del apóstrofo para que se embargo, muchos códigos que son caracteres únicos pueden escribirse literalmente.
alinee con las versalitas.) Por ejemplo, para sustituir un guión medio por un guión largo, en el
reemplazo podría estar el código ~_ o el guión largo literal, ÿ—ÿ. Otras
cuestiones sobre el campo de reemplazo son:

t El punto (.) y el asterisco ( * ) son caracteres literales, no de código.


t El espacio se puede introducir mediante el código \s (pero no \h) o
tecleando un espacio normal.

Editar con InDesign de Mac 28 Anexo. El código GREP

0 0
Machine Translated by Google

t El salto de línea y el retorno de carro deben expresarse


mediante \n y \r.
t Funcionan las expresiones del tipo \x{20} y \x{0020}.

A continuación, los códigos propios del campo de reemplazo.

Código Descripción

$0 Todo el texto hallado.

$1, $2… $9 Cada uno de los grupos marcados en el patrón de búsqueda.

Contenido del portapapeles, formateado (clipboard contentos,


~c
formatted).

Contenido del portapapeles, no formateado (clipboard contentos,


~C
unformatted).

Así como los estilos GREP no sirven para aplicar estilos de


párrafo, el widget de búsqueda y reemplazo sí da esa posibilidad.
En la ventana de búsquedas y reemplazos, en el apartado Change
Format (fig. 15), se puede escoger un estilo de párrafo.
Los dos códigos de contenido del portapapeles (~c , ~C) sirven
para realizar la operación que explica con detalle Anne-Marie
Concepcion, de InDesignSecrets, en Find Text, Change to Graphic (https://
indesignsecrets.com/find-text-change-to-graphic.php). Consiste
en copiar un objeto (una caja con alguna imagen) para que entre en
el portapapeles y luego podamos insertarlo a partir de alguna
expresión textual predeterminada (fig. 20).

Fig. 20. En un texto como una cartelera de teatro, las imágenes correspondientes. Hay que hacer uno por
podemos tener expresiones simbólicas como las que se uno: copiamos la imagen para que se incorpore al
ven aquí: [DURO] “duración”, [LL] “lugar”, [TEL] “telefono”, portapapeles y hacemos la acción de búsqueda y
[PR] “precio ”, [HR] “horario”. También debemos tener las reemplaza. En el campo de búsqueda se puede utilizar el
imágenes que deben sustituirlas. Cuando el texto ya esté código de literalidad, explicado en esta misma página, así:
editado, se puede realizar un pase de búsquedas y \Q[DUR]\E. En el campo de reemplazo no debe haber más
reemplazos para sustituir todos estos códigos por que el código de Clipboard Contents, Formatted: ~c.

Editar con InDesign de Mac 29 Anexo. El código GREP

0 0
Machine Translated by Google

Ayudas
Existen tres adiciones a las expresiones que son útiles para facilitar su
lectura y manipulación.

Espacios permitidos

Introduciendo el código (?x) al principio de la expresión, se permiten espacios


en su interior. Por ejemplo, el patrón del estilo GREP de la figura 15 podría
quedar así: (?x) «[\w \h [:punct:] ·'-]+».

Inserción de comentarios

Los comentarios, que tanto pueden servir para nosotros mismos como para
otras personas a las que pasamos una expresión, se insertan dentro del
código (?# ). El patrón de la misma figura 15 podría quedar así: «[\w\h(?#
blancos horizontales)[:punct:]·'-]+?(?# cuantificador perezoso)».

Literalidad

Se puede enmarcar una parte de una expresión entre \Q y \E para indicar


que se trata de un segmento literal (fig. 20). Supongamos que queremos
capturar un segmento extraño de cifras que tenga un asterisco y un punto,
ÿ3.25*7ÿ. Podríamos hacer \Q3.25*7\E. E igualmente podríamos buscar un
segmento como ÿ{3}ÿ haciendo\Q{3}\E.

Recetas
A continuación doy una serie de recetas que deben servir para poner en
práctica lo que hemos visto. Creo que algunas son útiles para trabajos
reales de maquetación de documentos. Las del primer grupo son de
búsqueda y reemplaza, y las del segundo, de estilos intercalados.

Recetas de búsqueda y reemplazo

Receta 1

Se trata de detectar las palabras repetidas (consecutivas, se entiende)


que pudieran existir en un texto. InDesign ya tiene una preferencia que
avisa de estas situaciones: Preferences > Spelling > Dynamic Spelling
> casilla Enable Dynamic Spelling > sección Underline Colour > Repeated
Words. La receta que propongo es una mejora de la que publica
InDesignSecrets, de Ravi Kiran: «Find and Remove Repeed ted Words
Using GREP» (https:// indesignsecrets.com/find remove-repeated-words-
grep.php).

Texto de ejemplo: Se paliaron los efectos de…


Buscar: \b([\w·'-]+)([[:punct:]]?)\h\1\b
Reempl.: $1$2

Editar con InDesign de Mac 30 Anexo. El código GREP

0 0
Machine Translated by Google

t El segmento ([\w·'-]+) es el grupo recuperado más a la derecha por


\1 en la misma expresión. La propuesta del citado artículo hace solamente
(\w+), que no prevé tres caracteres necesarios en catalán: ·'-. (Ver «Trucos
para el catalán».)
t ¿Necesitamos el fragmento ([[:punct:]]?) para que después de la
primera aparición de la palabra podría haber algún signo de puntuación. El
citado artículo tampoco contempla esta situación.
El hecho de que sea un grupo nos permite recuperar este signo, si existe, en
el campo de reemplazo mediante $2.
t Por la fuerza, después de la primera palabra debe haber un
espacio: \h.
t Los límites de palabra, \b, son necesarios para evitar resultados
indeseados, los llamados falsos positivos. Serían situaciones como por ejemplo
ÿTres se quedaronÿ y ÿLa calva del delegadoÿ. t Dado que la base del patrón,
([\w·'-]+), «digiere» tanto mayúsculas como minúsculas, no nos hace ninguna falta
el modo de caja desactivada.

Receta 2

Supongamos que queremos corregir todos los casos de la expresión ÿprêt-à


porterÿ mal acentuados.

Búsqueda (propuesta 1): pr\Xt-\X-porter


Búsqueda (propuesta 2): pr[eéèê]\x{0302}?t-[aáàâ]\x{0300}?-porter
Reempl.: prêt-à-porter

t Las letras acentuadas suelen ser caracteres precompuestos,


pero puede ocurrir que se copie texto de un documento
hecho a saber con qué programa y que de resultas de ello
tengamos letras de base y diacríticos de combinación en el documento. El

código \X de la primera propuesta (véase «Caracteres con diacríticos de


combinación») es útil porque captura (aparte de cualquier carácter) los
conjuntos de letra de base y diacrítico de combinación. En otras palabras, si
cambiáramos \X por \w, sólo capturaríamos ÿê, àÿ precompuestos.

t El segundo patrón de búsqueda es una forma más concisa de realizar la


misma operación. En vez de capturar cualquier carácter haciendo uso de \X,
podemos prever unas cuantas acentuaciones ([eéèê] y [aáàâ]) y prever los
dos diacríticos de combinación mediante su punto de código Unicode
( \x{0302} y \x{ 0300}).
t Como ocurre habitualmente, estamos procesando solo la
palabra en minúscula. Podríamos prever una P inicial mayúscula dentro de la
misma expresión: (p|P). El reemplazo, entonces, debería empezar no con p,
sino con $1. Para el caso del texto todo en mayúsculas, deberemos hacer
una fórmula
nueva.

Receta 3

Queremos buscar todos los casos de símbolo de moneda seguido de cifras, que
pueden tener puntos o comas en el interior, y aplicar un estilo de

Editar con InDesign de Mac 31 Anexo. El código GREP

0 0
Machine Translated by Google

carácter de cifras modernas. Muestras: ÿ$7ÿ, ÿ€37ÿ, ÿ£7,2ÿ, ÿ¥47,20ÿ,


ÿÿ3,248ÿ, ÿÿ13.500,25ÿ , ÿÿ13,50 precediendo las cifras es un criterio de editaje
del inglés.) Extraigo este ejemplo del libro de Peter Kahrel y lo modifico un poco.

Búsqueda: [£$\\x{20A0}-\x{20CF}0-9.,]{2,}
Reempl.: $0 (o campo vacío) y aplicación del estilo de carácter a
el área Change Format.

t El código \x{20A0}-\x{20CF} es la serie de puntos de código del blog


Currency symbols de Unicode.
t Los símbolos de libra, dólar y yen (£$¥) deben especificarse aparte,
porque no entran en la serie mencionada. Esto ocurre porque
Unicode no siempre codifica los signos por tongadas completas.

t El segmento 0-9., captura las cifras, puntos y comas.


t El cuantificador {2,} hace que los segmentos deban tener como mínimo
dos signos, longitud que cuadra con una expresión mínima del tipo
ÿ€5ÿ. Si utilizáramos +, pasaría que la expresión identificaría comas y
puntos solos.

Receta 4

Se trata de sustituir las palabras ÿcentímetro, centímetrosÿ por el símbolo


ÿcmÿ cuando haya delante expresiones del tipo de ÿ00,00ÿ
o similares. Ejemplos: ÿ34,12 centímetros, 15,4 centímetros, 7 centímetros,
0,12 centímetros, 1 centímetroÿ.

Búsqueda: (\d?\d,?\d?\d?)\scentímetros?
Reempl.: $1~<cm

t El primer segmento, \d?\d, está formado por una cifra opcional ( \d? ) y
una cifra necesaria ( \d). Tiene que identificar tanto ÿ23ÿ
como ÿ3ÿ.
t A continuación viene una secuencia de coma, cifra y cifra, las tres
opcionales: ,?\d?\d?.
t La palabra ÿcentímetroÿ puede ser singular o plural, y por tanto la
esa final debe ser opcional: s?.
t En el reemplazo, el código $1 replica el único grupo existente
en la búsqueda.

t En medio de la cifra y el símbolo, en vez de un espacio nor


mal, introduzco un espacio fino: ~<, que de paso ejerce la función de
espacio de no separación.
t Finalmente, en el reemplazo, el símbolo ÿcmÿ se teclea tal
cual.

Recetas de estilos GREP

Lo que hacen las recetas de estilos GREP es aplicar estilos de carácter en


vivo. Es bueno recordar que se heredan, es decir, un estilo de párrafo basado
en otro ejecuta los estilos GREP del primero. En mi experiencia, para refinar la
composición y automatizar ciertas formataciones,

Editar con InDesign de Mac 32 Anexo. El código GREP

0 0
Machine Translated by Google

los estilos de carácter más necesarios son cuatro: uno exclusivo para
la no separación y después los habituales de cursiva, versalita y cifras
modernas o antiguas. Los estilos de cursiva suelen tener asociado un
idioma específico.

Receta 5.
Siglas seguidas de igual en bibliografías

En textos académicos, es posible que se referencien algunas obras


mediante una sigla, sobre todo porque la autoría no es persona, sino
organismo o empresa. En vez de hacer una remisión como ÿ(Uni
versity of Chicago Press, 2003)ÿ, es más sintético hacer ÿ(ucp, 2003)ÿ
o ÿ(UCP, 2003)ÿ. Entonces, la bibliografía debe incluir esta sigla allá
donde toque en el orden alfabético y separarla con un igual (fig. 21).
Este estilo GREP se define dentro de un estilo de párrafo específico
para las entradas de bibliografía.

Enunciado: “Cualquier segmento de letras minúsculas o cifras en


posición de inicio de párrafo que coincida por la derecha con un
espacio y un signo de igual”.
Acción: Aplica un estilo de carácter de letra versalita y cifras antiguas
o alineadas a versalita.
Patrón: ^[\l\d]+(?=\h=)

t Código ^: posición de inicio de párrafo.


t Código [\l\d]+: minúsculas o cifras, una o más.
t Código (?=\h=): coincidencia adelante con un espacio horizontal
tal y un signo de igual.

Fig. 21. Ejemplo de una bibliografía que tiene obras citadas por su sigla.
Debajo, el texto antes de formatearlo mediante el estilo GREP. Las siglas deben ser
minúsculas, porque en este caso queremos utilizar la versalita.

Editar con InDesign de Mac 33 Anexo. El código GREP

0 0
Machine Translated by Google

Receta 6.
No separación de nombres de usuario de Twitter

Queremos capturar a todos los identificadores de los usuarios de Twitter


que haya en un texto y aplicar un estilo de carácter de no separación.
Sabemos que estos identificadores pueden constar de mayúsculas y
minúsculas (sin diacríticos) y de cifras; también es válida la raya baja (fig.
22).

Enunciado: “Cualquier expresión que comience con el símbolo de


la arroba y contenga mayúsculas, minúsculas o rayas bajas, con límite
de palabra por la derecha”.
Acción. Aplica el estilo de carácter de no separación.
Patrón: @\w+ \b

t Código @: carácter literal de la arroba. Se puede utilizar su punto


de código Unicode, \x{0040} o \x{40}. t Código \w+: letras,
cifras y barra baja, una o más veces.
También se pudo hacer [a-zA-Z0-9_]+ o [\l\u0-9_]+. t
Código \b: no es estrictamente necesario, pero añade precisión
en el patrón y ahorra procesamiento de datos.

Receta 7.
No separación de los guiones largos o medios del
texto que encierran

Los guiones largos y medios, en la función de marcadores de incisos,


no se utilizan igual en catalán y español que en francés e inglés. En estas
dos últimas lenguas no deben adherirse al texto que encierran. Supongo
que es por eso que los programas de procesamiento de texto no tienen
definido impedimento alguno para que no se separen del texto que deben
delimitar. De nuevo, necesitamos un estilo de carácter que tenga sólo el
parámetro de no separación.
Un patrón servirá para el guión de apertura y otro para el de cierre (fig.
23 y 24).

Enunciado 1: “Un guión largo o uno medio de apertura que tenga por la
derecha dos caracteres que no sean espacios o\n o \r y coincida por la
izquierda con un espacio”.
Acción: Aplica el estilo de carácter de no separación.
Patrón 1: (?<=\h)(~_|~=)\S\S

Fig. 22. Ejemplo de nombre de


usuario de Twitter en el que la arroba
ha quedado separada del nombre a
final de raya.

Editar con InDesign de Mac 34 Anexo. El código GREP

0 0
Machine Translated by Google

t Código (?<=\h): coincidencia atrás con \h, cualquier espacio horizontal.

t Código (~_|~=): grupo que contiene una alternativa de guión largo,


~_, o guión medio, ~=. Funciona igualmente con las expresiones
de los puntos de código: (\x{2013}|\x{2014}).
t Código \S\S: dos veces cualquier carácter que no sea un espacio
horizontal o \n y \r.

Enunciado 2: “Un guión largo o uno medio de cierre, que tenga por la
izquierda dos caracteres que no sean espacios, ni \n, ni \r, y tenga por la
derecha posibles signos de puntuación, una posible llamada de nota y
coincidencia adelante con un espacio horizontal”.
Acción: Aplica el estilo de carácter de no separación.
Patrón 2: \S\S(~_|~=)[[:punct:]]*~F?(?=\h)

t Código \S\S: dos caracteres que no son un espacio ni \n y \r. t


Código (~_|~=): grupo que contiene una alternativa de guión largo, ~_,
o guión medio, ~=. También haciendo (\x{2013}|\x{2014}).
t Código [[:punct:]]*: posibles signos de puntuación, cero o más
veces.
t Código: ~F?: una llamada de nota a pie de página o ninguna.
t Código (?=\h): coincidencia hacia delante con un espacio horizontal.
No nos interesa el código \s porque capturaría un salto de línea o un
retorno de carro.

Fig. 23. A la derecha, ejemplo de


un guión largo de apertura que ha
quedado aislado a final de fila. Es
una situación que se produce cuando
la columna es estrecha y el widget Fig. 24.Abajo , comprobación
de justificación del programa debe del patrón de guiones de inciso
forzar la máquina. Tanto puede (medio o largo) de cierre: se
quedar así un guión de apertura como destacan todas las situaciones
uno de cierre, y tanto si es largo como que prevemos que se pueden
si es medio. producir. En los casos primero,
tercero y quinto existe una
llamada de nota que es
reconocida por la expresión.

Editar con InDesign de Mac 35 Anexo. El código GREP

0 0
Machine Translated by Google

Receta 8.
Letras ordenadores (en el texto seguido) en
cursiva y adherencia de éstas al texto de su derecha
En el interior de un párrafo, cuando se desea ofrecer una idea de
ordenación por puntos, se pueden utilizar las letras y los números al igual
que se hace en las listas. El criterio que trato aquí consiste en letras entre
paréntesis (fig. 25). Necesitamos dos patrones, uno para aplicar la cursiva
a la letra —y en cambio no a los paréntesis— y otro para forzar a que los
tres caracteres se adhieran al texto que tienen por la derecha.
InDesign no pone ningún inconveniente en tener más de un estilo intercalado
activo dentro del mismo estilo de párrafo, mientras no apliquen atributos del
mismo tipo.

Enunciado 1: “Una letra minúscula flanqueada por paréntesis y, fuera de


los paréntesis, por espacios horizontales”.
Acción: Aplica el estilo de carácter de letra cursiva.
Patrón 1: (?<=\h\()\l(?=\)\h)

t Código (?<=\h\(): coincidencia atrás, con un espacio horizontal,


\h, y un paréntesis de apertura, \(.
t Código \l: cualquier letra minúscula.
t Código (?=\)\h): coincidencia adelante, con un paréntesis de cierre,
\), y un espacio, \h.

Enunciado 2: “Una secuencia de un paréntesis de apertura, una


minúscula, un paréntesis de cierre, un espacio horizontal y un carácter
cualquiera”.
Acción: Aplica el estilo de carácter de no separación.
Patrón: \(\l\)\h.

t Paréntesis de apertura, \(; letra minúscula, \l; paréntesis de cierre,


\); espacio, \h; un carácter cualquiera, . .

Fig. 25. Para formatear estas


letras ordenadores, necesitamos
aplicar la cursiva sólo a la letra y
después asegurar que el conjunto
de letra entre parén tesis no
quedará aislado a final de raya.

Editar con InDesign de Mac 36 Anexo. El código GREP

0 0
Machine Translated by Google

Receta 9.
Impedir que una letra en mayúscula sola después
de punto quede nunca al final de raya

La casualidad puede hacer que caiga al final de fila una palabra de una
sola letra mayúscula después de punto y que quede aislada del resto de
su frase. En catalán, podríamos tener I, A, O; en español, Y, U, U, E; en
francés, À, A, Y. En párrafos justificados, es probable que un caso de
éstos no duela de ojos, pero en párrafos alineados a la izquierda casi
seguro que sí. También puede que se trate de una inicial de nombre que
vaya seguida de punto (fig. 26).

Enunciado: “Una letra mayúscula precedida de un signo de puntuación


y de un espacio horizontal, seguida opcionalmente de un signo de
puntuación, ya continuación de un espacio horizontal y al menos dos
caracteres que no sean espacios, ni\n , ni \r”.
Acción: Aplica el estilo de carácter de no separación.
Patrón: \H\h\K\u[[:punct:]]?\h\S\S

t Código \H\h\K: coincidencia atrás con cualquier cosa que no sea


un espacio horizontal y un espacio horizontal. t Código \u: una
letra mayúscula.
t Código [[:punct:]]?: un signo de puntuación opcional.
t Código \S\S: dos caracteres que no son ni un espacio, ni \n, ni \r.

Fig. 26. Cuatro casos de palabras de


una sola letra en mayúscula.
La segunda y la tercera siguieron
desde un signo de puntuación.
El estilo GREP garantiza que no
quedarán nunca a fin de raya.

Editar con InDesign de Mac 37 Anexo. El código GREP

0 0

También podría gustarte