Traducción de línea

El avance de línea , o salto de línea , es la continuación de la impresión de texto desde una nueva línea, es decir, desde el borde izquierdo hasta la línea de abajo, o ya en la página siguiente. En las computadoras, esto se hace con la tecla Enter .

Separador de línea , que indica el lugar del salto de línea, en los datos de texto es uno o un par de caracteres de control , y en el texto marcado también es una etiqueta determinada (en HTML , la  etiqueta  <br> , del inglés  break  - “ descanso"). El separador de línea también se denomina simplemente nueva línea cuando no es necesario distinguirlos.

Junto con otras acciones, también se realiza un avance de línea antes del siguiente párrafo o página.

Terminología

El salto de línea se abrevia como NEL (del inglés  next line  - "from the next line, go to the next line", o newline  - "from a new line, go to a new line").

El retorno de carro ( CR ) esun carácter de control ASCII  ( 0x 0D , 13 10 , '\r') que mueve el cursor al borde izquierdo del campo. Este carácter de control se ingresa con la tecla Enter . Cuando se escribe en un archivo , se trata como una nueva línea en los sistemas Macintosh solamente .

Avance por línea o traducción por línea (del inglés  avance de línea , LF  - "alimentar [papel] por línea") es un carácter de control ASCII ( 0x0A , 10 en notación decimal, '\n'), cuando se muestra, el cursor se mueve a la línea siguiente. En el caso de una impresora , esto significa mover el papel hacia arriba, en el caso de una pantalla , mover el  cursor hacia abajo si todavía hay espacio y desplazar el texto hacia arriba si el cursor estaba en la línea inferior. Si esto devuelve el cursor al borde izquierdo o no depende de la implementación.

Así, la salida de la secuencia CR + LF en la semántica del terminal garantiza la acción "crear una nueva línea".

Los terminales (y sus emuladores) también pueden realizar varias transformaciones de caracteres (por ejemplo, LF → CR + LF , CR → CR + LF ) en la entrada y salida de texto.

El retorno duro , a veces un retorno de hardware  , es un separador de línea proporcionado por el usuario. En la representación de máquina de texto, un retorno duro se expresa explícitamente, generalmente mediante caracteres de control o una etiqueta .

Un retorno suave  es un salto de línea realizado por un procesador de textos en el punto del texto que ha elegido. Un retorno suave separa líneas de texto en su representación visual (visible para el usuario), pero no puede expresarse de ninguna manera en la representación de máquina de ese texto.

En ASCII

Los sistemas basados ​​en ASCII o en un juego de caracteres compatible usan solo LF (avance de línea, 0x 0A ) o CR (retorno de carro, 0x0D ), o la secuencia CR + LF ; vea a continuación la razón histórica de la convención CR + LF . Estos nombres se basan en los comandos de la impresora: un salto de línea hace avanzar el tambor una línea y un retorno de carro significa que el carro de la impresora debe volver al principio de la línea actual.

En Unicode

Por norma, cualquier aplicación compatible con Unicode debe tratar cada uno de los siguientes caracteres como una nueva línea:

La secuencia CR + LF ( U+000D U+000A ) debe tratarse como una nueva línea, no como dos [1] .

Dificultades

No existen abreviaturas generalmente aceptadas para los términos rusos. VK ( Back to the carruaje ) coincide en ortografía con la abreviatura del inglés.  BreaK (“romper [línea]”, - lo mismo que avance de línea), y el PS no distingue entre Alimentación desde la línea y Transferencia desde la línea .

Diferencia de representaciones

La falta de una única representación de salto de línea generalmente aceptada en diferentes sistemas operativos complica el intercambio de datos de texto entre ellos. Unicode intenta reconciliar esta diferencia al igualar CR , LF y CR + LF , pero entra en conflicto con su ASCII heredado al tratar la secuencia LF + CR que no está precedida por CR : según ASCII, esta es una nueva línea, y según Unicode , dos.

El avance de línea cuando se ingresa desde el teclado se representa de manera uniforme en todos los sistemas: mediante el carácter CR , y en sistemas con una representación de avance de línea diferente, los datos de texto deben recodificarse en el formato requerido.

Historia

En los sistemas de almacenamiento de tarjetas perforadas , se escribía una línea en una tarjeta perforada, por lo que la línea tenía una longitud determinada, según el número de columnas (generalmente 80). Las líneas más cortas se lograron con espacios y las líneas más largas se cortaron. No había separador de línea y se asumía una nueva línea implícita cada 80 caracteres. Algunos de los primeros sistemas operativos de mainframe adoptaron esto para almacenar texto en archivos donde ya no había un límite natural en la longitud de la línea.

CR + LF

Las máquinas de escribir mecánicas tenían una palanca que devolvía el carro al borde izquierdo de la página y giraba el eje, moviendo el papel hacia arriba en una línea. En los teletipos y dispositivos de impresión alfanuméricos posteriores (ATsPU), en lugar de un carro, había un cabezal, en las impresoras láser dejó de ser material, pero en el término retorno de carro , todo esto siguió llamándose carro para no cambiar . eso. En los teletipos, se separaron el retorno de carro y el salto de línea, de donde la tradición de representar el salto de línea como CR + LF pasó a los archivos de texto.

Fin de línea

Los teletipos se imprimieron primero en rollos de papel y los mensajes comenzaban y terminaban con un cambio de línea, de modo que cada uno comenzaba en una nueva línea con seguridad. De ahí la costumbre de incluir un separador de mensajes en el propio mensaje.

Apareció un modo interactivo de operación en las computadoras, cuando los mensajes de control de entrada del usuario y los mensajes del programa de respuesta se imprimían a su vez. El usuario después del mensaje siempre traducía la línea, ya que al mismo tiempo significaba ejecutar el comando, pero los programas a veces no traducían la línea después de su mensaje, a pesar de la prescripción. El dispositivo de salida no se adaptó originalmente para garantizar que la terminal pudiera monitorear los saltos de línea, y fue difícil implementar esto, por lo tanto, para que la entrada del usuario comenzara en una nueva línea, la terminal que controla el diálogo también traduciría el línea después del mensaje del programa. También se prescribió colocar un salto de línea al final del archivo de texto.

La preocupación por la separación de mensajes recayó en el terminal, y se dejó de pensar en ello, y se replanteó el salto de línea al final del texto como final de la última línea, junto con que, como finales de línea, todos los saltos de línea en general fueron repensadas, lo que fue facilitado por la conveniencia de trabajar con líneas regularmente completadas desde el punto de vista de la programación, similar a las cadenas terminadas en cero . Entonces, la costumbre de incluir el separador de mensajes en el mensaje ha pasado a la costumbre de incluir el separador de línea en la cadena.

Una línea adicional al final de un archivo generalmente no es una molestia, por lo que el salto de línea todavía se llama final de línea, y el separador de línea es el carácter de final de línea (EOL, inglés  end of line ).

El flujo de un separador hacia un remolque y viceversa no es solo un salto de línea. Por ejemplo, un punto y coma finaliza los comandos en C , pero los separa en Pascal . En el habla escrita, después de varias oraciones, casi siempre se pone un punto, y después de una sola oración, la mayoría de las veces no . Esta vacilación es claramente visible en las listas , donde las oraciones individuales a veces comienzan con una letra mayúscula y otras veces con una letra minúscula.

Párrafo

En los teletipos, y luego en los primeros editores, la división del texto en párrafos no tenía una representación especial propia, para ello utilizaban líneas vacías o una sangría de varios espacios, y los saltos de línea dentro de un párrafo se colocaban manualmente.

Más tarde, apareció el ajuste automático en los editores, que se realiza sobre la marcha al dibujar el texto de nuevo cada vez. Para distinguirlo de uno manual, se le llamó retorno suave, y uno manual se llamó retorno duro (la transferencia también se denominó simplemente retorno, consulte la sección Diferencia de Representación ). Al mismo tiempo, el separador de línea se transfirió como antes, pero también adquirió el significado de un separador de párrafo, para aquellas líneas en las que funcionaba la separación automática de guiones y que se convertían en párrafos. El interruptor para este modo se llama ajuste de palabras .  Con la partición automática, la partición manual dividió el párrafo, el espaciado entre párrafos se hizo como antes (en nuevos términos, intercalando con un párrafo vacío), pero se logró la principal cualidad del párrafo: la independencia de los saltos de línea.

El usuario activó y desactivó manualmente el modo de transferencia automática, fue difícil determinar esto mediante programación, es decir, al deshacernos de la transferencia manual, obtuvimos otra operación manual. Quedó claro que era indispensable un espaciado más automatizado del separador de línea y del separador de párrafo, es decir, necesitaban dos caracteres diferentes.

Para no preocuparse por la compatibilidad con el separador de línea/párrafo ya existente en ASCII , los desarrolladores no usaron caracteres ASCII para el separador de línea y el separador de párrafo. En HTML se utilizaron las etiquetas <br /> y <p> , en Unicode  , los caracteres U+2028 y U+2029 , respectivamente. En Wikipedia, los párrafos se pueden separar con líneas en blanco, que se muestran con espacios completos.

Véase también

Notas

  1. Anexo estándar Unicode n.° 14: Algoritmo de división de línea Unicode Archivado el 17 de febrero de 2009 en Wayback Machine . 

Enlaces