InDesign: estilo grep para mover palabras i individuales a la siguiente línea

Necesito un estilo Grep en mis estilos de párrafo en InDesign que asegure que la letra ino pueda estar sola al final de una línea, sino que siempre se moverá al principio de la línea siguiente. Tengo un cliente que me obliga a hacerlo manualmente.

¿Por qué sólo "yo"? Pero de todos modos. Simplemente instruya a Buscar: (\d+)( )(i) reemplace: $1~S$3 Pero sugeriría usar script o ctr+f regular, ya que cambiará en cada instancia, no solo en las que tienen estilo GREPed.
@SZCZERZOKŁY También lo hago con a/A y, a veces, con palabras de dos letras. Las palabras minúsculas al final de una línea a veces pueden parecer desordenadas, y entiendo completamente el impulso de pasarlas al principio de la siguiente línea.
@LaurenIpsum Uso un script llamado "UseMyTypo". Puede agregar un espacio que no se rompa después de las letras o palabras dadas, así como eliminar las adicionales, etc.

Respuestas (3)

  • Cree un estilo de carácter y configúrelo en "Sin interrupción".
  • Edite su estilo de párrafo existente, vaya a la pestaña Estilo GREP, elija el estilo de carácter que creó anteriormente y escriba (?<=\s)i\W+en el campo "A texto". (los créditos van a @Tobias Kienzler, quien sugirió esto)

sin descanso

estilo grep

Aunque no necesita un estilo separado para diferentes letras, puede usar la (i|a|a,)sintaxis para enumerar muchas opciones. Pero lo bueno de las imágenes, aclaró mucho esta cita (aunque voté y probé esto antes de que las publicaran para que las viera).
Correcto, el GREP se puede mejorar para tratar varios problemas al mismo tiempo.
Si lo entiendo bien, probablemente también podría expandirse para manejar cualquier palabra de una sola letra con algo como\s[A-Za-z]\s
@IMSoP es mejor usar la \wclase que [A-Za-z]en ese caso, es más ordenado e incluye todos los caracteres de palabras
Entonces, ¿ \s\w,?\sprobablemente debería funcionar con cualquier palabra de una sola letra, con o sin una coma al final?
@joojaa Sí, estaba siendo conservador porque no sé qué sabor de expresión regular usa la herramienta, y las [...]clases de caracteres son más portátiles, pero si \westá disponible, definitivamente es más ordenado. :)
También puede usar (?<=\s)i\W+(o (?<=\s)\w\W+). El lookbehind (?<=se asegura de que el espacio en blanco anterior permanezca rompible, de lo contrario, su estilo GREP también podría reducir la sílaba anterior. Y \W+significa al menos un carácter que no es una palabra, que también se ocupa de la puntuación.
@TobiasKienzler sí, eso es mucho mejor.
Con suerte, el OP sigue estos comentarios y puede elegir la cadena que funcione mejor con su documento. Definitivamente estoy agregando esto a mi propia colección de cadenas Grep. Comentarios muy útiles gracias! :)
@TobiasKienzler Usando la \s\w,?\spalabra hecha antes de saltar también. (?<=\s)i\W+¡trabajado como un encanto! ¡Muchas gracias!
Excelente. Si cree que esto ayudó, tómese un momento para aprobar y votar la respuesta anterior. Tnx
@Lucian Tendría sentido editar la respuesta para contener lo que ayudó a Christina; de lo contrario, aceptar la respuesta sería engañoso, y no quiero publicar otra respuesta solo para robar la marca;)
Por cierto, una buena herramienta para verificar y comprender los estilos GREP (y RegEx en general) es regex101.com
Tienes razón y edité mi publicación. Dudé en hacerlo inicialmente porque estaba pensando a largo plazo en las personas que visitarían esto a través de la búsqueda de Google, y no estaba seguro de si buscarían la cadena básica o avanzada. En cualquier caso, su cadena resuelve mejor el problema, por lo que la incluí en mi publicación. ¡Gracias de nuevo!

Primero crea un estilo de carácter sin interrupción como en la respuesta de Lucian, luego prueba este estilo Grep en tu estilo de párrafo. Funcionó para mí.(?<=[!\?\.]\s)[^\s]{1,3}\s

¿Qué es un 'estilo de carácter roto'?
Lo siento, "sin descanso"
Me tomé la libertad de aclarar eso un poco. Tenga en cuenta que, debido a los votos a favor o en contra, las respuestas no siempre se muestran en el mismo orden. Si quieres saber más sobre el modelo de Stack Exchange y específicamente sobre este sitio, echa un vistazo al tour y al centro de ayuda . ¡Ah, y bienvenido! :D

Esta solución funciona muy bien: (?<=\s)\w{1,3}\W+solo que no funcionará cuando haya más de una palabra de 1 a 3 letras una al lado de la otra, en ese caso se saltará cualquier otra palabra. Propongo agregar un segundo estilo grep para dar cuenta de esto (?<=\s)\w{1,3}\W+\w{1,3}\W+y puedo seguir buscando palabras de 3,4,5 .. 1-3 letras juntas. Probablemente haya una solución SECA más inteligente para eso, pero no soy inteligente.