Ajuste de línea y ajuste de palabra

Característica de continuar en una nueva línea cuando una línea está llena
Con ajuste de línea

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sin ajuste de línea

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Nuevas líneas codificadas de forma rígida

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat
non proident, sunt in culpa qui officia deserunt mollit
anim id est laborum.

El salto de línea , también conocido como ajuste de línea , es dividir una sección de texto en líneas para que quepa en el ancho disponible de una página, ventana u otra área de visualización. En la visualización de texto, el ajuste de línea es continuar en una nueva línea cuando una línea está llena, de modo que cada línea encaje en la ventana visible, lo que permite leer el texto de arriba a abajo sin ningún desplazamiento horizontal . El ajuste de línea es la característica adicional de la mayoría de los editores de texto , procesadores de texto y navegadores web , de dividir líneas entre palabras en lugar de dentro de las palabras, cuando sea posible. El ajuste de línea hace innecesario codificar delimitadores de nueva línea dentro de los párrafos y permite que la visualización del texto se adapte de manera flexible y dinámica a pantallas de diferentes tamaños.

Retornos suaves y duros

Un retorno suave o ajuste suave es el salto resultante del ajuste de línea o de línea (ya sea automático o manual), mientras que un retorno duro o ajuste duro es un salto intencional, que crea un nuevo párrafo. Con un retorno duro, se puede (y se debe) aplicar el formato de salto de párrafo (ya sea sangría o espacios en blanco verticales). El ajuste suave permite que las longitudes de línea se ajusten automáticamente con los ajustes del ancho de la ventana del usuario o la configuración de márgenes, y es una característica estándar de todos los editores de texto, procesadores de texto y clientes de correo electrónico modernos . Los saltos suaves manuales son innecesarios cuando el ajuste de línea se realiza automáticamente, por lo que al presionar la tecla "Enter" generalmente se produce un retorno duro.

Alternativamente, "retorno suave" puede significar un salto de línea intencional y almacenado que no es un salto de párrafo. Por ejemplo, es común imprimir direcciones postales en un formato de varias líneas, pero se entiende que las distintas líneas son un solo párrafo. Los saltos de línea son necesarios para dividir las palabras de la dirección en líneas de la longitud adecuada.

En los procesadores de texto gráficos contemporáneos Microsoft Word y Libreoffice Writer , se espera que los usuarios escriban un retorno de carro ( ) entre cada párrafo. Los ajustes de formato, como la sangría de la primera línea o el espaciado entre párrafos, surten efecto donde el retorno de carro marca el salto. Un salto de línea que no es de párrafo, que es un retorno suave, se inserta usando + o a través de los menús, y se proporciona para los casos en los que el texto debe comenzar en una nueva línea pero no se desea ninguno de los otros efectos secundarios de comenzar un nuevo párrafo.EnterShiftEnter

En los lenguajes de marcado orientados a texto, un retorno suave se ofrece normalmente como etiqueta de marcado. Por ejemplo, en HTML hay una etiqueta <br> que tiene el mismo propósito que el retorno suave en los procesadores de texto descritos anteriormente.

Unicode

El algoritmo de salto de línea Unicode determina un conjunto de posiciones, conocidas como oportunidades de salto , que son lugares apropiados en los que comenzar una nueva línea. Las posiciones de salto de línea reales son seleccionadas de entre las oportunidades de salto por el software de nivel superior que llama al algoritmo, no por el algoritmo en sí, porque solo el software de nivel superior conoce el ancho de la pantalla en la que se muestra el texto y el ancho de los glifos que componen el texto mostrado. [1]

El conjunto de caracteres Unicode proporciona un carácter separador de línea así como un separador de párrafo para representar la semántica del retorno suave y del retorno duro.

0x2028 SEPARADOR DE LÍNEA
* puede usarse para representar esta semántica de forma inequívoca
0x2029 SEPARADOR DE PÁRRAFO
* puede usarse para representar esta semántica de forma inequívoca

Límites de palabras, separación de palabras y espacios en blanco

Los saltos de línea suaves se colocan generalmente después del final de palabras completas o después de la puntuación que sigue a palabras completas. Sin embargo, el salto de línea también puede ocurrir después de un guion dentro de una palabra. Esto a veces no es deseable y se puede evitar utilizando un guion indivisible o un guion duro en lugar de un guion normal.

Una palabra sin guiones puede ser encapsulada si se le añaden guiones suaves . Cuando la palabra no está encapsulada (es decir, no se divide en líneas), el guión suave no es visible. Pero si la palabra está encapsulada en líneas, esto se hace en el guión suave, en cuyo punto se muestra como un guión visible en la línea superior donde se divide la palabra. (En el caso poco frecuente de una palabra que se supone que se puede encapsular dividiéndola en líneas pero sin que aparezca un guión, se coloca un espacio de ancho cero en el punto de división permitido en la palabra).

A veces, no es conveniente ajustar el texto entre palabras adyacentes. En tales casos, el ajuste del texto se puede bloquear utilizando un espacio fijo o un espacio indivisible entre las palabras, en lugar de espacios normales.

Ajuste de línea en texto que contiene chino, japonés y coreano

En chino , japonés y coreano , el ajuste de línea generalmente puede ocurrir antes y después de cualquier carácter Han , pero ciertos caracteres de puntuación no pueden comenzar una nueva línea. [2] Los kana japoneses se tratan de la misma manera que los caracteres Han ( Kanji ) por extensión, lo que significa que las palabras pueden, y tienden a ser, interrumpidas sin ninguna indicación explícita de que una palabra continúa en la siguiente línea.

Sin embargo, en determinadas circunstancias no es conveniente ajustar el texto. Por ejemplo,

  • Es posible que no se desee el ajuste de palabras en los nombres personales, y
  • Es posible que no se desee el ajuste de palabras dentro de ninguna palabra compuesta (cuando el texto está alineado a la izquierda, pero solo en algunos estilos).

La mayoría de los procesadores de texto y software de composición tipográfica existentes no pueden manejar ninguno de los escenarios mencionados anteriormente.

La puntuación en CJK puede o no seguir reglas similares a las circunstancias especiales mencionadas anteriormente. Depende de las reglas de salto de línea en CJK .

Algoritmo

El ajuste de palabras es un problema de optimización . Según lo que se necesite optimizar, se utilizan diferentes algoritmos.

Número mínimo de líneas

Una forma sencilla de realizar el ajuste de línea es utilizar un algoritmo voraz que coloca tantas palabras como sea posible en una línea y luego pasa a la siguiente línea para hacer lo mismo hasta que no queden más palabras por colocar. Este método lo utilizan muchos procesadores de texto modernos, como Libreoffice Writer y Microsoft Word. [ cita requerida ] Este algoritmo siempre utiliza el mínimo número posible de líneas, pero puede dar lugar a líneas de longitudes muy variables. El siguiente pseudocódigo implementa este algoritmo:

EspacioIzquierdo := Ancho de Líneapara cada palabra del texto si (Ancho(Palabra) + EspacioAncho) > EspacioIzquierdo Insertar salto de línea antes de Word en el texto EspacioIzquierdo := AnchoDeLínea - Ancho(Palabra) demás EspacioIzquierdo := EspacioIzquierdo - (Ancho(Palabra) + EspacioAncho)

Donde LineWidthes el ancho de una línea, SpaceLeftes el ancho restante del espacio en la línea para rellenar, SpaceWidthes el ancho de un solo carácter de espacio, Textes el texto de entrada sobre el que se itera y Wordes una palabra en este texto.

Mínima irregularidad

Un algoritmo diferente, utilizado en TeX , minimiza la suma de los cuadrados de las longitudes de los espacios al final de las líneas para producir un resultado estéticamente más agradable que el algoritmo codicioso, que no siempre minimiza el espacio al cuadrado.

Historia

En 1955, Western Union utilizó una función primitiva de separación de líneas en una "unidad de control de impresora de páginas" desarrollada por la empresa . Este sistema utilizaba relés en lugar de computadoras digitales programables y, por lo tanto, necesitaba un algoritmo simple que pudiera implementarse sin búferes de datos . En el sistema de Western Union, cada línea se interrumpía en el primer carácter de espacio que aparecía después del carácter 58, o en el carácter 70 si no se encontraba ningún carácter de espacio. [3]

El algoritmo voraz para saltos de línea es anterior al método de programación dinámica descrito por Donald Knuth en una nota inédita de 1977 que describe su sistema de composición tipográfica TeX [4] y publicado posteriormente con más detalle por Knuth y Plass (1981). [5]

Véase también

Referencias

  1. ^ Heninger, Andy, ed. (25 de enero de 2013). "Algoritmo de salto de línea Unicode" (PDF) . Informes técnicos . Anexo n.° 14 (Actualización propuesta del estándar Unicode): 2. Consultado el 10 de marzo de 2015. WORD JOINER debe utilizarse si la intención es simplemente evitar un salto de línea .
  2. ^ Lunde, Ken (1999), Procesamiento de información CJKV: informática china, japonesa, coreana y vietnamita, O'Reilly Media, Inc., pág. 352, ISBN 9781565922242.
  3. ^ Harris, Robert W. (enero de 1956), "Estandarización del teclado", Western Union Technical Review , 10 (1): 37–42, archivado desde el original el 2015-08-03 , consultado el 2013-04-07.
  4. ^ Knuth, Donald (1977), TEXDR.AFT , consultado el 7 de abril de 2013. Reimpreso en Knuth, Donald (1999), Tipografía digital , CSLI Lecture Notes, vol. 78, Stanford, California: Centro para el estudio del lenguaje y la información, ISBN 1-57586-010-4.
  5. ^ Knuth, Donald Ervin; Plass, Michael F (1981), "Dividir párrafos en líneas", Software: Practice and Experience , 11 (11): 1119–84, doi :10.1002/spe.4380111102, S2CID  206508107
  • Algoritmo de salto de línea Unicode

Algoritmo de Knuth

  • "Revisión del rompimiento de líneas de Knuth & Plass"
  • "tex_wrap": "Implementa el algoritmo de TeX para dividir párrafos en líneas". Referencia: "Breaking Paragraphs into Lines", DE Knuth y MF Plass, capítulo 3 de _Digital Typography_, CSLI Lecture Notes #78.
  • Text::Reflow - Módulo de Perl para redistribuir archivos de texto utilizando el algoritmo de párrafos de Knuth. "El algoritmo de redistribución intenta mantener las líneas con la misma longitud, pero también intenta dividirlas en la puntuación y evitar dividirlas dentro de un nombre propio o después de ciertos conectores ("un", "el", etc.). El resultado es un archivo con un margen derecho más "irregular" que el que producen fmt o Text::Wrap, pero es más fácil de leer ya que se dividen menos frases en los saltos de línea".
  • ajustando el algoritmo Knuth para reconocer el "guión suave" .
  • Algoritmo de ruptura de Knuth. "La descripción detallada del modelo y del algoritmo se puede encontrar en el artículo "Breaking Paragraphs into Lines" de Donald E. Knuth, publicado en el libro "Digital Typography" (Stanford, California: Center for the Study of Language and Information, 1999), (CSLI Lecture Notes, no. 78.)"; parte de Google Summer Of Code 2006
  • "Cerrando la brecha de algoritmos: un programa funcional de tiempo lineal para el formato de párrafos" por Oege de Moor, Jeremy Gibbons, 1997
  • El problema inverso: seleccionar columnas lo suficientemente anchas para que quepa el texto (ajustado) (versión archivada)
  • "Elementos de salto de línea Knuth para formatear objetos" por Simon Pepping 2006. Amplía el modelo Knuth para manejar algunas mejoras.
  • "un algoritmo de salto de línea similar al de Knuth-Plass... Lo *realmente* interesante es en qué se diferencia el algoritmo de Adobe del algoritmo de Knuth-Plass. Debe diferir, ya que Adobe ha logrado patentar su algoritmo (6.510.441)".[1]
  • "Line breaking" compara los algoritmos de varias complejidades temporales (archivado el 1 de agosto de 2024 en Wayback Machine ).
Obtenido de "https://es.wikipedia.org/w/index.php?title=Ajuste_de_línea_y_ajuste_de_palabra&oldid=1256251302"