Salto/guión automático para palabras demasiado largas y sin sentido

Salto/guión automático para palabras demasiado largas y sin sentido

Dado que no existe un patrón para dividir palabras sin sentido con guiones, se deben separar o dividir individualmente con métodos como \hyphenation{longword}, \seqsplit{longword}, ​​etc.

Sin embargo, debería haber una solución para hacer esto automáticamente, porque la necesidad de separación de palabras depende del lugar de una palabra, y no es fácil realizar una separación de palabras individual para cualquier palabra que pueda colocarse al final de la línea.

\documentclass{article}
\begin{document}
This is a test for a word which is too long at the end of a line aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\
This is a test for a word which is too long at the end of a line http://test.com/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3\\
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa This is a test for a word which is too long at the end of a line\\
http://test.com/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3/3 This is a test for a word which is too long at the end of a line\\
\end{document}

Como puede ver, la separación de palabras/separación de palabras puede ser innecesaria o extremadamente necesaria. De hecho, debería haber una manera de prohibir que el texto continúe en el margen. Esto es lo que hacen los editores de texto como MS Word. Sé que Texes mucho más incomparable que MS Word, pero puede dar una pista. Pienso si enviar la palabra larga a la siguiente línea es mejor que escribirla en el margen y más allá.

El problema aparece cuando hay muchas palabras de este tipo y es bastante difícil tratarlas individualmente.

Respuesta1

Tienes que morir de una muerte u otra, me temo. Tampoco tú

  • marque sus palabras aleatorias de antemano, entonces hay buenas posibilidades de dividirlas con guiones o manejarlas especialmente
  • o tenga cuidado con las advertencias "Hbox demasiado lleno en el párrafo" y agregue \hyphenation{...}excepciones después cuando sea necesario
  • o sigue la ruta de MS-Word.

(Es demasiado pedir, que TeX, sin un poco de ayuda en forma de marcado, identifique que "vsraajlkuhzjsp" es una palabra aleatoria pero "Antidisestablecimiento" no lo es)

Entonces, en mi opción, el primer enfoque es elcorrectouno, por ejemplo, escribir algo como \rw{foobar}en el texto fuente. Luego, podría hacer que TeX manipule estas palabras aleatorias, incluida la separación de guiones mediante el uso de un especial \languagecon un conjunto de patrones de separación de palabras aleatorios (que podrían inventarse fácilmente) o el uso de algunas macros para insertar guiones explícitos en lugares aleatorios de la cadena o...

Pero si el marcado no es una opción, entonces, por supuesto, puedes optar por la opción 3:

  • Podrías usar \raggedrightlo que Word suele hacer para ocultar este tipo de problema.
  • o podrías usar algo como \setlength\emergencystretch{.5\textwidth}obtener texto justificado en (casi) todas las circunstancias. Por supuesto, a un precio de párrafos realmente feos.

El resultado se vería así en su texto (sin lo \\eliminado): ingrese la descripción de la imagen aquí

información relacionada