Carácter de espacio en blanco - Whitespace character

En la programación de computadoras , el espacio en blanco es cualquier carácter o serie de caracteres que representan el espacio horizontal o vertical en la tipografía . Cuando se renderiza, un carácter de espacio en blanco no corresponde a una marca visible, pero normalmente ocupa un área en una página. Por ejemplo, el símbolo de espacio en blanco común U + 0020 SPACE (también ASCII 32) representa un carácter de puntuación de espacio en blanco en el texto, que se utiliza como divisor de palabras en las escrituras occidentales .  

Visión general

Anchos relativos de varios espacios en Unicode

Con muchos diseños de teclado, se puede ingresar un carácter de espacio en blanco mediante el uso de un spacebar. También se pueden ingresar espacios en blanco horizontales en muchos teclados mediante el uso de la Tab ↹tecla, aunque la longitud del espacio puede variar. El espacio en blanco vertical es un poco más variado en cuanto a cómo se codifica, pero lo más obvio al escribir es el ↵ Enterresultado, que crea una secuencia de código de "nueva línea" en los programas de aplicaciones. En cambio Return, los teclados más antiguos podrían decir , abreviando el teclado de la máquina de escribir que significa 'Carriage-Return' que generó un retorno electromecánico al tope izquierdo (código CR en ASCII- hex & 0D;) y un salto de línea o pasar a la siguiente línea (código LF en ASCII -hex & 0A;); en algunas aplicaciones, estos se usaron de forma independiente para dibujar pantallas basadas en celdas de texto en monitores o para imprimir en impresoras guiadas por tractor, que también pueden contener movimientos inversos / secuencias de códigos de posicionamiento que permiten que los dispositivos de salida basados ​​en texto logren resultados más sofisticados. Muchos de los primeros juegos de computadora usaban estos códigos para dibujar una pantalla (por ejemplo, Kingdom of Kroz ), y el software de procesamiento de texto lo usaba para producir efectos impresos como negrita, subrayado y tachado.

El término "espacio en blanco" se basa en la apariencia resultante en papel ordinario . Sin embargo, están codificados dentro de una aplicación, los espacios en blanco se pueden procesar de la misma manera que cualquier otro código de carácter y los programas pueden realizar la acción adecuada según lo definido para el contexto en el que ocurren.

Definición y ambigüedad

Los caracteres de espacio en blanco más comunes se pueden escribir mediante la barra espaciadora o la tecla de tabulación . Dependiendo del contexto, un salto de línea generado por la tecla de retorno o entrada también puede considerarse un espacio en blanco.

Unicode

La siguiente tabla enumera los veinticinco caracteres definidos como espacios en blanco ("WSpace = Y", "WS") en la base de datos de caracteres Unicode . Diecisiete utilizan una definición de espacio en blanco coherente con el algoritmo de escritura bidireccional ("Tipo de carácter bidireccional = WS") y se conocen como caracteres "Bidi-WS". Los caracteres restantes también se pueden utilizar, pero no son de este tipo "Bidi".

Nota: Dependiendo del navegador y las fuentes utilizadas para ver la siguiente tabla, es posible que no todos los espacios se muestren correctamente.

Nombre Punto de código Caja de ancho ¿Puede romperse ? ¿En
IDN ?
Texto Cuadra
Categoría general
Notas
tabulación de caracteres U + 0009 9 No Común Latín básico Otro,
control
HT, pestaña horizontal . HTML / XML entidad denominada : 	, LaTeX : '\ tab'
linea de alimentación U + 000A 10 Es un salto de línea Común Latín básico Otro,
control
LF, salto de línea . Entidad con nombre HTML / XML:

tabulación de línea U + 000B 11 Es un salto de línea Común Latín básico Otro,
control
VT, pestaña vertical
formulario de alimentación U + 000C 12 Es un salto de línea Común Latín básico Otro,
control
FF, avance de formulario
retorno de carro U + 000D 13 Es un salto de línea Común Latín básico Otro,
control
CR, retorno de carro
espacio U + 0020 32 No Común Latín básico Separador,
espacio
Más común (espacio ASCII normal)
línea siguiente U + 0085 133 Es un salto de línea Común
Suplemento Latin-1
Otro,
control
NEL, siguiente línea
espacio sin descanso U + 00A0 160   No No Común
Suplemento Latin-1
Separador,
espacio
Espacio de no rotura : idéntico a U + 0020, pero no un punto en el que pueda romperse una línea. Entidad con nombre HTML / XML:,  LaTeX: '\'
marca de espacio ogham U + 1680 5760 No Ogham Ogham Separador,
espacio
Se utiliza para la separación entre palabras en el texto Ogham . Normalmente una línea vertical en texto vertical o una línea horizontal en texto horizontal, pero también puede ser un espacio en blanco en fuentes "sin tallo". Requiere una fuente Ogham.
en quad U + 2000 8192   No Común
Puntuación general
Separador,
espacio
Ancho de uno en . U + 2002 es canónicamente equivalente a este personaje; Se prefiere U + 2002.
em quad U + 2001 8193 No Común
Puntuación general
Separador,
espacio
También conocido como "quad de cordero". Ancho de uno em . U + 2003 es canónicamente equivalente a este personaje; Se prefiere U + 2003.
en el espacio U + 2002 8194 No Común
Puntuación general
Separador,
espacio
También conocido como "nuez". Ancho de uno en . U + 2000 En Quad es canónicamente equivalente a este personaje; Se prefiere U + 2002. Entidad con nombre HTML / XML:,  LaTeX: '\ enspace'
em espacio U + 2003 8195 No Común
Puntuación general
Separador,
espacio
También conocido como "cordero". Ancho de uno em . U + 2001 Em Quad es canónicamente equivalente a este personaje; Se prefiere U + 2003. Entidad con nombre HTML / XML:,  LaTeX: '\ quad'
espacio de tres por em U + 2004 8196 No Común
Puntuación general
Separador,
espacio
También conocido como "espacio grueso". Un tercio de un em de ancho. Entidad con nombre HTML / XML: 
espacio de cuatro por em U + 2005 8197 No Común
Puntuación general
Separador,
espacio
También conocido como "espacio medio". Un cuarto de un em de ancho. Entidad con nombre HTML / XML: 
espacio de seis por em U + 2006 8198 No Común
Puntuación general
Separador,
espacio
Un sexto de un em de ancho. En tipografía informática, a veces se equipara a U + 2009.
espacio de la figura U + 2007 8199 No No Común
Puntuación general
Separador,
espacio
Espacio de figura . En fuentes con dígitos monoespaciados, igual al ancho de un dígito. Entidad con nombre HTML / XML: 
espacio de puntuación U + 2008 8200 No Común
Puntuación general
Separador,
espacio
Tan ancho como la puntuación estrecha de una fuente, es decir, el ancho de avance del punto o la coma. Entidad con nombre HTML / XML: 
espacio delgado U + 2009 8201 No Común
Puntuación general
Separador,
espacio
Espacio delgado ; una quinta parte (a veces una sexta parte) de un em de ancho. Recomendado para su uso como separador de miles para medidas realizadas con unidades SI . A diferencia de U + 2002 a U + 2008, su ancho puede ajustarse en la composición tipográfica. HTML / XML entidad nombrada:  ; LaTeX: '\,'
espacio para el cabello U + 200A 8202 No Común
Puntuación general
Separador,
espacio
Más delgado que un espacio delgado. Entidad con nombre HTML / XML:  ( no funciona en todos los navegadores)
separador de linea U + 2028 8232 Es un salto de línea Común
Puntuación general
Separador,
línea
separador de párrafos U + 2029 8233 Es un salto de línea Común
Puntuación general
Separador,
párrafo
espacio estrecho sin descanso U + 202F 8239 No No Común
Puntuación general
Separador,
espacio
Espacio estrecho sin interrupciones . Similar en función a U + 00A0 No-Break Space. Cuando se usa con mongol, su ancho suele ser un tercio del espacio normal; en otro contexto, su ancho a veces se parece al del Thin Space (U + 2009).
espacio matemático medio U + 205F 8287 No Común
Puntuación general
Separador,
espacio
MMSP. Utilizado en fórmulas matemáticas. Cuatro dieciocho de un em. En tipografía matemática, los anchos de los espacios generalmente se dan en múltiplos enteros de un décimo octavo de un em, y 4/18 em se pueden usar en varias situaciones, por ejemplo, entre el a y el + y entre el + y el b en el expresión a + b . Entidad con nombre HTML / XML: 
espacio ideográfico U + 3000 12288   No Común Símbolos
y
puntuación de CJK
Separador,
espacio
Tan ancho como una celda de caracteres CJK ( ancho completo ). Utilizado, por ejemplo, en tai tou .
 Nombre  Punto de código Caja de ancho ¿Puede romperse ? ¿En
IDN ?
Texto Cuadra
Categoría general
Notas
separador de vocales de mongolia U + 180E 6158 No mongol mongol Otro,
formato
MVS. Un carácter de espacio estrecho, utilizado en mongol para hacer que los dos últimos caracteres de una palabra adopten formas diferentes. Ya no se clasifica como carácter de espacio (es decir, en la categoría Zs) en Unicode 6.3.0, a pesar de que estaba en versiones anteriores del estándar.
espacio de ancho cero U + 200B 8203 No ?
Puntuación general
Otro,
formato
ZWSP, espacio de ancho cero . Se utiliza para indicar los límites de las palabras a los sistemas de procesamiento de texto cuando se utilizan secuencias de comandos que no utilizan espaciado explícito. Es similar al guión suave , con la diferencia de que este último se usa para indicar los límites de las sílabas y debe mostrar un guión visible cuando la línea se interrumpe. Entidad con nombre HTML / XML :​
no carpintero de ancho cero U + 200C 8204 Dependiente del contexto ?
Puntuación general
Otro,
formato
ZWNJ, no ensamblador de ancho cero . Cuando se coloca entre dos caracteres que de otro modo estarían conectados, un ZWNJ hace que se impriman en sus formas final e inicial, respectivamente. Entidad con nombre HTML / XML:‌
carpintero de ancho cero U + 200D 8205 Dependiente del contexto ?
Puntuación general
Otro,
formato
ZWJ, carpintero de ancho cero . Cuando se coloca entre dos caracteres que de otro modo no estarían conectados, un ZWJ hace que se impriman en sus formas conectadas. También se puede utilizar para mostrar formularios de unión de forma aislada. Dependiendo de si se espera una ligadura o conjunción por defecto, puede inducir (como en emoji y en cingalés ) o suprimir (como en Devanagari ) la sustitución con un solo glifo, mientras se permite el uso de formas de unión individuales (a diferencia de ZWNJ). Entidad con nombre HTML / XML:‍
ensamblador de palabras U + 2060 8288 No No ?
Puntuación general
Otro,
formato
WJ, ensamblador de palabras . Similar a U + 200B, pero no es un punto en el que se pueda romper una línea. Entidad con nombre HTML / XML:⁠
espacio sin rotura de ancho cero U + FEFF 65279  No No ? Formularios de
presentación en árabe
-B
Otro,
formato
Espacio sin rotura de ancho cero . Se utiliza principalmente como marca de orden de bytes . El uso como indicación de no rotura está obsoleto a partir de Unicode 3.2; ver U + 2060 en su lugar.

Sustituir imágenes

Unicode también proporciona algunos caracteres visibles que se pueden usar para representar varios caracteres de espacio en blanco, en contextos donde se debe mostrar un símbolo visible:

Caracteres que ilustran el espacio Unicode (visibles)
Código Decimal Nombre Cuadra Monitor Descripción
U + 00B7 183 Punto medio Suplemento Latin-1 · Entidad
nombrada de Interpunct :·
U + 21A1 8609 Flecha de dos puntas hacia abajo Flechas Símbolo ECMA-17 / ISO 2047 para avance de página (salto de página)
U + 2261 8810 Idéntico a
Operadores matemáticos
Entre otros usos, se encuentra el símbolo ECMA-17 / ISO 2047 para avance de línea
U + 237D 9085 Caja abierta con hombros Técnica miscelánea Usado para indicar un NBSP
U + 23CE 9166 Símbolo de retorno Técnica miscelánea Símbolo de una tecla de retorno , que ingresa a un salto de línea
U + 2409 9225 Símbolo de tabulación horizontal Imágenes de control Sustitutos de un carácter de tabulación
U + 240A 9226 Símbolo de avance de línea Imágenes de control Sustitutos de un salto de línea
U + 240B 9227 Símbolo de tabulación vertical Imágenes de control Sustituye a una pestaña vertical (pestaña de línea)
U + 240C 9228 Símbolo de avance de formulario Imágenes de control Sustituye a un avance de página (salto de página)
U + 240D 9229 Símbolo de retorno de carro Imágenes de control Sustitutos de un retorno de carro
U + 2420 9248 Símbolo del espacio Imágenes de control Sustitutos de un espacio ASCII
U + 2422 9250 Símbolo en blanco Imágenes de control también conocido como "sustituto en blanco", utilizado en BCDIC , EBCDIC , ASCII-1963, etc. como símbolo del separador de palabras
U + 2423 9251 Abrir caja Imágenes de control Se utiliza en la escritura a mano con letra de imprenta al menos desde la década de 1980, cuando es necesario indicar explícitamente el número de caracteres de espacio (por ejemplo, al programar con lápiz y papel). Utilizado en un libro de texto (publicado en 1982, 1984, 1985, 1988 por Springer-Verlag) en Modula-2 , un lenguaje de programación donde los códigos de espacio requieren una indicación explícita. También se utiliza en el teclado de la serie TI-8 x de calculadoras gráficas de Texas Instruments .
Entidad nombrada:␣
U + 2424 9252 Símbolo de nueva línea Imágenes de control Sustituye a un salto de línea
U + 25B3 9651 Triángulo blanco apuntando hacia arriba Formas geométricas Entre otros usos, se encuentra el símbolo ECMA-17 / ISO 2047 para el espacio ASCII
U + 2A5B 10843 Lógico O con tallo medio Operadores
matemáticos suplementarios
Entre otros usos, se encuentra el símbolo ECMA-17 / ISO 2047 para tabulación vertical (tabulación de línea)
U + 2AAA 10922 Menor que Operadores
matemáticos suplementarios
Entre otros usos, se encuentra el símbolo ECMA-17 / ISO 2047 para retorno de carro.
U + 2AAB 10923 Mayor que Operadores
matemáticos suplementarios
Entre otros usos, se encuentra el símbolo ECMA-17 / ISO 2047 para el carácter de tabulación
U + 3037 12343
Símbolo de separador de alimentación de línea de telégrafo ideográfico
Símbolos
y puntuación de CJK
Gráfico utilizado para el código 9999 en código telegráfico chino , que representa un salto de línea
  1. ^ Por encima de la tecla cero "0" o negativa "(-)".
Espacio exacto
  • El Cambridge Z88 proporcionó un "espacio exacto" especial (punto de código 160 también conocido como 0xA0) (invocable mediante la combinación de teclas + SPACE), mostrado como "..." por el controlador de pantalla del sistema operativo. Por lo tanto, también se conocía como "espacio de puntos" junto con BBC BASIC .
  • Bajo el punto de código 224 (0xE0), la computadora también proporcionó un símbolo ESPACIO especial de tres caracteres de ancho de celda "SPC" (análogo al U + 2420 de celda única de Unicode).

Espacios en blanco sin espacio

  • El bloque Unicode de patrones de Braille contiene U + 2800 PATRÓN DE BRAILLE EN BLANCO (HTML  ⠀), un patrón de Braille sin puntos en relieve. Algunas fuentes muestran el carácter como un espacio en blanco de ancho fijo, sin embargo, el estándar Unicode establece explícitamente que no actúa como un espacio.
  • La cobertura de Unicode del alfabeto coreano incluye varios puntos de código que representan la ausencia de una letra escrita y, por lo tanto, no muestran un glifo:
    • Unicode incluye un carácter Hangul Filler en el bloque Jamo de compatibilidad con Hangul ( U + 3164 HANGUL FILLER (HTML  ㅤ)). Esto se clasifica como una letra, pero se muestra como un espacio vacío, como un bloque Hangul que no contiene jamo. Se utiliza en KS X 1001 Hangul combinando secuencias para introducirlas o denotar la ausencia de una letra en una posición, pero no en el sistema de combinación jamo de Unicode.
    • El sistema de combinación jamo de Unicode utiliza caracteres similares Hangul Choseong Filler y Hangul Jungseong Filler para denotar la ausencia de una letra en la posición inicial o medial dentro de un bloque de sílabas, que se incluyen en el bloque Hangul Jamo ( U + 115F HANGUL CHOSEONG FILLER (HTML  ᅟ) , U + 1160 HANGUL JUNGSEONG FILLER (HTML  ᅠ)).
    • Además, se incluye un relleno Hangul de medio ancho en los formularios de ancho medio y ancho completo ( U + FFA0 HALFWIDTH HANGUL FILLER (HTML  ᅠ)), que se utiliza al mapear codificaciones que incluyen caracteres de Johab (o Wansung ) y Hangul de N bytes ( o su contraparte EBCDIC ), como IBM-933, que incluye rellenos Johab y EBCDIC.

Espacio en blanco y tipografía digital

Visualización en pantalla

Los editores de texto , los procesadores de texto y el software de autoedición difieren en cómo representan los espacios en blanco en la pantalla y en cómo representan los espacios al final de las líneas más largos que la pantalla o el ancho de la columna. En algunos casos, los espacios se muestran simplemente como espacios en blanco; en otros casos, pueden estar representados por un interpunto u otros símbolos. Se pueden usar muchos caracteres diferentes (descritos a continuación) para producir espacios, y las funciones que no son caracteres (como los márgenes y la configuración de tabulación) también pueden afectar los espacios en blanco.

Espacio de uso general de ancho variable

En las codificaciones de caracteres por computadora , existe un espacio normal de uso general (carácter Unicode U + 0020) cuyo ancho variará según el diseño del tipo de letra. Los valores típicos oscilan entre 1/5 em a 1/3 em (en tipografía digital, un em es igual al tamaño nominal de la fuente, por lo que para una fuente de 10 puntos, el espacio probablemente estará entre 2 y 3,3 puntos). Las fuentes sofisticadas pueden tener espacios de diferentes tamaños para las caras en negrita, cursiva y versalitas y, a menudo, los compositores ajustan manualmente el ancho del espacio según el tamaño y la prominencia del texto.

Además de este espacio de uso general, es posible codificar un espacio de un ancho específico. Consulte la tabla a continuación para obtener una lista completa.

Espacios capilares alrededor de los guiones

Los guiones em que se usan como separadores entre paréntesis y los guiones largos cuando se usan como uniones de palabras, generalmente se establecen de forma continua con el texto. Sin embargo, dicho tablero se puede rodear opcionalmente con un espacio para el cabello , U + 200A, o un espacio delgado , U + 2009. El espacio del cabello se puede escribir en HTML mediante el uso de referencias de caracteres numéricos   o  , o la entidad nombrada  , pero aún no se admite universalmente en los navegadores, a partir de 2016. El espacio delgado se denomina entidad  y referencias numéricas  o  . Estos espacios son mucho más delgados que un espacio normal (excepto en una fuente monoespaciada (no proporcional) ), siendo el espacio del cabello el más delgado de los dos.

Espacio normal versus cabello y espacios delgados (como lo representa su navegador)
Espacio normal con em dash izquierda derecha
Espacio delgado con em dash izquierda - derecha
Espacio para el cabello con em dash izquierda derecha
No hay espacio con em dash izquierda derecha

Aplicaciones informáticas

Lenguajes de programación

En la sintaxis del lenguaje de programación , los espacios se utilizan con frecuencia para separar los tokens de forma explícita . En la mayoría de los idiomas, los caracteres de espacios en blanco múltiples se tratan de la misma manera que un carácter de espacio en blanco único (fuera de las cadenas entre comillas); estos lenguajes se denominan de forma libre . En algunos lenguajes, incluidos Haskell , occam , ABC y Python , los espacios en blanco y la sangría se utilizan con fines sintácticos. En el lenguaje satírico llamado Espacio en blanco, los espacios en blanco son los únicos caracteres válidos para la programación, mientras que cualquier otro carácter se ignora.

El uso excesivo de espacios en blanco, especialmente los espacios en blanco al final de las líneas, se considera una molestia. Sin embargo, el uso correcto de los espacios en blanco puede hacer que el código sea más fácil de leer y ayudar a la lógica relacionada con el grupo.

La mayoría de los idiomas solo reconocen los caracteres ASCII como espacios en blanco o, en algunos casos, también las nuevas líneas Unicode, pero no la mayoría de los caracteres enumerados anteriormente. El lenguaje C define los caracteres de espacio en blanco como "espacio, tabulación horizontal, nueva línea, tabulación vertical y avance de formulario". El protocolo de red HTTP requiere que se utilicen diferentes tipos de espacios en blanco en diferentes partes del protocolo, como: solo el carácter de espacio en la línea de estado , CRLF al final de una línea y "espacio en blanco lineal" en los valores de encabezado.

Interfaces de usuario de línea de comandos

En comandos procesados ​​por procesadores de comandos , por ejemplo, en scripts y tecleados, el carácter de espacio puede causar problemas ya que tiene dos funciones posibles: como parte de un comando o parámetro, o como parámetro o separador de nombre . La ambigüedad se puede prevenir prohibiendo los espacios incrustados o encerrando un nombre con espacios incrustados entre comillas.

Lenguajes de marcado

Algunos lenguajes de marcado, como SGML , conservan los espacios en blanco tal como están escritos.

Los lenguajes de marcado web, como XML y HTML, tratan los espacios en blanco de forma especial, incluidos los espacios en blanco, para comodidad de los programadores. Uno o más caracteres de espacio leídos por procesadores de tiempo de visualización conformes de esos lenguajes de marcado se contraen en 0 o 1 espacio, según su contexto semántico. Por ejemplo, los espacios dobles (o más) dentro del texto se contraen en un solo espacio, y los espacios que aparecen a ambos lados del " =" que separa un nombre de atributo de su valor no tienen efecto en la interpretación del documento. Las etiquetas finales de elementos pueden contener espacios finales y las etiquetas de elementos vacíos en XML pueden contener espacios antes de " />". En estos idiomas, los espacios en blanco innecesarios aumentan el tamaño del archivo y, por lo tanto, pueden ralentizar las transferencias de red. Por otro lado, los espacios en blanco innecesarios también pueden marcar código de manera discreta, similar pero menos obvio que los comentarios en el código. Esto puede ser deseable para probar una infracción de licencia o derechos de autor que se cometió al copiar y pegar .

En los valores de atributo XML, las secuencias de caracteres de espacio en blanco se tratan como un solo espacio cuando un analizador lee el documento. El analizador no cambia de esta forma los espacios en blanco en el contenido del elemento XML, pero una aplicación que recibe información del analizador puede optar por aplicar reglas similares al contenido del elemento. El autor de un documento XML puede usar el xml:space="preserve"atributo en un elemento para indicar al analizador que disuada a la aplicación posterior de alterar los espacios en blanco en el contenido de ese elemento.

En la mayoría de los elementos HTML , una secuencia de caracteres de espacio en blanco se trata como un único separador entre palabras , que puede manifestarse como un carácter de un solo espacio al representar texto en un idioma que normalmente inserta dicho espacio entre palabras. Los renderizadores HTML conformes deben aplicar un tratamiento más literal de los espacios en blanco dentro de unos pocos elementos prescritos, como la preetiqueta y cualquier elemento para el que se haya utilizado CSS para aplicar, precomo el procesamiento de espacios en blanco. En tales elementos, los caracteres de espacio no se "contraerán" en separadores entre palabras.

Tanto en XML como en HTML, el carácter de espacio que no se separa , junto con otros espacios no "estándar", no se trata como un "espacio en blanco" plegable, por lo que no está sujeto a las reglas anteriores.

Nombres de archivo

Este uso es similar a los nombres de archivos de varias palabras escritos para sistemas operativos y aplicaciones que se confunden con códigos de espacio incrustados; en cambio, dichos nombres de archivos utilizan un guión bajo (_) como separador de palabras, como_en_esta_frase.

Otro símbolo similar fue U + 2422 SÍMBOLO EN BLANCO . Esto se utilizó en los primeros años de la programación informática al escribir en formularios de codificación. Los operadores de Keypunch reconocieron inmediatamente el símbolo como un "espacio explícito". Se utilizó en BCDIC , EBCDIC y ASCII-1963 .

Ver también

Referencias

enlaces externos