Un carácter de espacio en blanco es un elemento de datos de carácter que representa un espacio en blanco cuando se procesa texto para su visualización en una computadora .
Por ejemplo, un carácter de espacio ( U+0020 ESPACIO , ASCII 32) representa un espacio en blanco, como un divisor de palabras en una escritura occidental .
Un carácter imprimible genera una salida cuando se representa, pero un carácter de espacio en blanco no. En cambio, los caracteres de espacio en blanco definen la disposición del texto en un grado limitado, interrumpiendo la secuencia normal de representación de caracteres uno al lado del otro. La salida de los caracteres subsiguientes normalmente se desplaza hacia la derecha (o hacia la izquierda para la escritura de derecha a izquierda ) o hacia el comienzo de la siguiente línea. El efecto de múltiples caracteres de espacio en blanco secuenciales es acumulativo, de modo que el siguiente carácter imprimible se representa en una ubicación basada en el efecto acumulado de los caracteres de espacio en blanco anteriores.
El término espacio en blanco tiene su origen en la práctica común de representar texto en papel blanco . Normalmente, un carácter de espacio en blanco no se representa como blanco. Afecta a la representación, pero no se representa en sí mismo.
Un carácter de espacio generalmente inserta un espacio horizontal que tiene aproximadamente el mismo ancho que una letra. En el caso de una fuente monoespaciada, el ancho es el ancho de una letra y, en el caso de una fuente de ancho variable, el ancho es específico de la fuente. Algunas fuentes admiten varios caracteres de espacio que tienen diferentes anchos.
Un carácter de tabulación generalmente inserta un espacio horizontal que se basa en paradas de tabulación que varían según la aplicación .
Una secuencia de caracteres de nueva línea normalmente mueve la ubicación de salida de la representación al comienzo de la siguiente línea. Si una secuencia va después del texto, en realidad no genera espacios en blanco. Sin embargo, dos secuencias de nueva línea secuenciales entre bloques de texto generan una línea en blanco entre los bloques. La altura de la línea en blanco varía según la aplicación.
El uso de caracteres de espacio en blanco para diseñar texto es una convención . En ocasiones, las aplicaciones representan caracteres de espacio en blanco como marcado visible para que el usuario pueda ver lo que normalmente no es visible.
Normalmente, un usuario escribe un carácter de espacio presionando spacebar, un carácter de tabulación presionando y una nueva línea presionando .Tab ↹↵ Enter
La siguiente tabla enumera los veinticinco caracteres definidos como espacios en blanco ("WSpace=Y", "WS") en la base de datos de caracteres Unicode . [1] Diecisiete utilizan una definición de espacio en blanco coherente con el algoritmo de escritura bidireccional ("Bidirectional Character Type=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 ? | Guion | Bloquear | Categoría general | Notas | |
---|---|---|---|---|---|---|---|---|---|
tabulación de caracteres | U+0009 | 9 | Sí | No | Común | Latín básico | Otros, control | HT, pestaña horizontal . Entidad con nombre HTML/XML : 	 , LaTeX : \tab , escape C :\t | |
avance de línea | U+000A | 10 | Es un salto de línea | Común | Latín básico | Otros, control | LF, Salto de línea . Entidad con nombre HTML/XML: 
 , Escape C:\n | ||
tabulación de línea | U+000B | 11 | Es un salto de línea | Común | Latín básico | Otros, control | VT, Tabulación vertical . C escape:\v | ||
avance de formulario | U+000C | 12 | Es un salto de línea | Común | Latín básico | Otros, control | FF, Avance de página . Escape C:\f | ||
retorno de carro | U+000D | 13 | Es un salto de línea | Común | Latín básico | Otros, control | CR, Retorno de carro . C escape:\r | ||
espacio | U+0020 | 32 | Sí | No | Común | Latín básico | Separador, espacio | El más común (espacio ASCII normal). LaTeX:\ | |
siguiente linea | U+0085 | 133 | Es un salto de línea | Común | Suplemento de latín-1 | Otros, control | NEL, Siguiente línea . LaTeX:\\ | ||
espacio sin interrupción | U+00A0 | 160 | No | No | Común | Suplemento de latín-1 | Separador, espacio | Espacio indivisible : idéntico a U+0020, pero no es un punto en el que se pueda dividir una línea. Entidad con nombre HTML/XML: ,   , LaTeX:~ | |
marca espacial ogham | U+1680 | 5760 | Sí | No | Ogam | Ogam | Separador, espacio | Se utiliza para separar palabras en textos Ogham . Normalmente, se trata de una línea vertical en texto vertical o de 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 | Sí | No | Común | Puntuación general | Separador, espacio | Ancho de un en . U+2002 es canónicamente equivalente a este carácter; se prefiere U+2002. | |
en cuadrilátero | U+2001 | 8193 | Sí | No | Común | Puntuación general | Separador, espacio | También conocido como "mutton quad". Ancho de un em . U+2003 es canónicamente equivalente a este carácter; se prefiere U+2003. | |
en el espacio | U+2002 | 8194 | Sí | No | Común | Puntuación general | Separador, espacio | También conocido como "nut". Ancho de un en . U+2000 En Quad es canónicamente equivalente a este carácter; se prefiere U+2002. Entidad con nombre HTML/XML:   , LaTeX: \enspace (el espacio en LaTeX es un espacio sin interrupción) | |
espacio em | U+2003 | 8195 | Sí | No | Común | Puntuación general | Separador, espacio | También conocido como "mutton". Ancho de un em . U+2001 Em Quad es canónicamente equivalente a este carácter; se prefiere U+2003. Entidad con nombre HTML/XML:   , LaTeX:\quad | |
espacio de tres por em | U+2004 | 8196 | Sí | 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:   , LaTeX: \; (el espacio grueso de LaTeX es un espacio sin interrupción) | |
espacio de cuatro por em | U+2005 | 8197 | Sí | No | Común | Puntuación general | Separador, espacio | También conocido como "espacio intermedio". Un cuarto de un em de ancho. Entidad con nombre HTML/XML:   | |
espacio de seis por em | U+2006 | 8198 | Sí | No | Común | Puntuación general | Separador, espacio | Un sexto de un em de ancho. En tipografía informática, a veces se lo equipara a U+2009. | |
espacio de figura | U+2007 | 8199 | No | No | Común | Puntuación general | Separador, espacio | Espacio entre cifras . 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 | Sí | No | Común | Puntuación general | Separador, espacio | Tan ancho como la puntuación estrecha en una fuente, es decir, el ancho avanzado del punto o la coma. [2] Entidad nombrada HTML/XML:   | |
espacio delgado | U+2009 | 8201 | Sí | No | Común | Puntuación general | Separador, espacio | Espacio fino ; un quinto (a veces un sexto) de un em de ancho. Recomendado para usar como separador de miles para medidas hechas con unidades del SI . A diferencia de U+2002 a U+2008, su ancho puede ajustarse en la composición tipográfica. [3] Entidad con nombre HTML/XML:   ,   , LaTeX: \, (el espacio fino LaTeX es un espacio sin saltos) | |
espacio para el cabello | U+200A | 8202 | Sí | No | Común | Puntuación general | Separador, espacio | Más delgado que un espacio delgado. Entidad con nombre HTML/XML:   ,  | |
separador de línea | U+2028 | 8232 | Es un salto de línea | Común | Puntuación general | Separador, línea | |||
separador de párrafo | U+2029 | 8233 | Es un salto de línea | Común | Puntuación general | Separador, párrafo | |||
espacio estrecho sin interrupción | U+202F | 8239 | No | No | Común | Puntuación general | Separador, espacio | Espacio estrecho sin interrupción . Similar en función al espacio sin interrupción U+00A0. Cuando se utiliza con mongol, su ancho suele ser un tercio del espacio normal; en otros contextos, su ancho a veces se asemeja al del espacio delgado (U+2009). LaTeX:\, | |
espacio matemático medio | U+205F | 8287 | Sí | No | Común | Puntuación general | Separador, espacio | MMSP. Se utiliza en fórmulas matemáticas. Cuatro dieciochoavos de un em. [4] En tipografía matemática, los anchos de los espacios se dan normalmente en múltiplos enteros de un dieciochoavo de un em, y 4/18 em se puede utilizar en varias situaciones, por ejemplo entre la a y el + y entre el + y la b en la expresión a + b . [5] Entidad nombrada HTML/XML:   , LaTeX: \: (el espacio medio LaTeX es un espacio sin interrupción) | |
espacio ideográfico | U+3000 | 12288 | Sí | No | Común | Símbolos y puntuación del CJK | Separador, espacio | Tan ancho como una celda de carácter CJK ( ancho completo ). Se utiliza, por ejemplo, en tai tou . |
Nombre | Punto de código | Caja de ancho | ¿ Puede romperse ? | ¿ En IDN ? | Guion | Bloquear | Categoría general | Notas | |
---|---|---|---|---|---|---|---|---|---|
separador de vocales mongol | U+180E | 6158 | | Sí | No | mongol | mongol | Otro, Formato | MVS. Carácter de espacio angosto, utilizado en mongol para hacer que los dos últimos caracteres de una palabra adopten formas diferentes. [6] Ya no se clasifica como carácter de espacio (es decir, en la categoría Zs) en Unicode 6.3.0, aunque lo estaba en versiones anteriores del estándar. |
espacio de ancho cero | U+200B | 8203 | | Sí | No | ? | Puntuación general | Otro, Formato | ZWSP, espacio de ancho cero . Se utiliza para indicar límites de palabras a los sistemas de procesamiento de texto cuando se utilizan scripts que no utilizan espaciado explícito. Es similar al guión suave , con la diferencia de que este último se utiliza para indicar límites de sílabas y debe mostrar un guión visible cuando la línea se divide en él. Entidad nombrada HTML/XML : [7] [c] ​ |
Sin unión de ancho cero | U+200C | 8204 | | Sí | Depende del contexto [12] | ? | Puntuación general | Otro, Formato | ZWNJ, non-joiner 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: ‌ |
ensamblador de ancho cero | U+200D | 8205 | | Sí | Depende del contexto [13] | ? | Puntuación general | Otro, Formato | ZWJ, conector 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 formas de unión de forma aislada. Dependiendo de si se espera una ligadura o conjunción de forma predeterminada, puede inducir (como en emoji y en cingalés ) o suprimir (como en devanagari ) la sustitución con un solo glifo, al tiempo que permite el uso de formas de unión individuales (a diferencia de ZWNJ). Entidad nombrada HTML/XML: ‍ |
ensamblador de palabras | U+2060 | 8288 | | No | No | ? | Puntuación general | Otro, Formato | WJ, conector de palabras . Similar a U+200B, pero no es un punto en el que se pueda dividir una línea. Entidad con nombre HTML/XML: ⁠ |
espacio irrompible de ancho cero | U+FEFF | 65279 | | No | No | ? | Formularios de presentación en árabe -B | Otro, Formato | Espacio indivisible de ancho cero . Se utiliza principalmente como marca de orden de bytes . Su uso como indicación de indivisible está en desuso a partir de Unicode 3.2; consulte U+2060 en su lugar. |
|
Unicode también proporciona algunos caracteres visibles que pueden usarse para representar varios caracteres de espacio en blanco, en contextos donde se debe mostrar un símbolo visible:
Código | Decimal | Nombre | Bloquear | Mostrar | Descripción |
---|---|---|---|---|---|
U+00B7 | 183 | Punto medio | Suplemento de latín-1 | · | Entidad nombrada 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) [15] |
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 [15] |
U+237D | 9085 | Caja abierta con hombros descubiertos | Varios Técnicos | ⍽ | Se utiliza para indicar un NBSP |
U+23CE | 9166 | Símbolo de retorno | Varios Técnicos | ⏎ | Símbolo de una tecla de retorno , que introduce un salto de línea |
U+2409 | 9225 | Símbolo para 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 avance de línea |
U+240B | 9227 | Símbolo para tabulación vertical | Imágenes de control | ␋ | Sustitutos de una tabulación vertical (tabulación de línea) |
U+240C | 9228 | Símbolo para avance de página | Imágenes de control | ␌ | Sustitutos de un 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 "espacio en blanco sustituto", [16] utilizado en BCDIC , [16] EBCDIC , [16] ASCII-1963 [16] [17] etc. como símbolo para el separador de palabras. |
U+2423 | 9251 | Caja abierta | Imágenes de control | ␣ | Se utiliza en la escritura a mano con letras 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). Se utiliza en un libro de texto (publicado en 1982, 1984, 1985, 1988 por Springer-Verlag) sobre Modula-2 , [18] un lenguaje de programación donde los códigos de espacio requieren una indicación explícita. También se utiliza en el teclado [n 1] de la serie de calculadoras gráficas TI-8 x de Texas Instruments . Entidad nombrada:␣ |
U+2424 | 9252 | Símbolo de nueva línea | Imágenes de control |  | Sustitutos de un salto de línea |
U+25B3 | 9651 | Triángulo blanco que apunta hacia arriba | Formas geométricas | △ | Entre otros usos, se encuentra el símbolo ECMA-17 / ISO 2047 para el espacio ASCII [15] |
U+2A5B | 10843 | Lógico O con raíz media | 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) [15] |
U+2AAA | 10922 | Más pequeño que | Operadores matemáticos suplementarios | ⪪ | Entre otros usos, se encuentra el símbolo ECMA-17 / ISO 2047 para retorno de carro [15] |
U+2AAB | 10923 | Más grande que | Operadores matemáticos suplementarios | ⪫ | Entre otros usos, se encuentra el símbolo ECMA-17 / ISO 2047 para el carácter de tabulación [15] |
U+3037 | 12343 | Símbolo separador de avance de línea del telégrafo ideográfico | Símbolos y puntuación del CJK | 〷 | Gráfico utilizado para el código 9999 en el código telegráfico chino , que representa un salto de línea. |
"SPC"
(análogo al U+2420 de una sola celda de Unicode). [20] [21]Los editores de texto , los procesadores de texto y el software de autoedición difieren en la forma en que representan los espacios en blanco en la pantalla y en cómo representan los espacios al final de las líneas más largas 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 representarse mediante un punto u otros símbolos. Se pueden utilizar muchos caracteres diferentes (descritos a continuación) para producir espacios, y las funciones que no son caracteres (como los márgenes y las configuraciones de tabulación) también pueden afectar a los espacios en blanco.
Muchos de los caracteres espaciales Unicode se crearon para ser compatibles con la tipografía impresa clásica. [27]
Incluso si la tipografía digital tiene kerning y justificación algorítmicos, esos caracteres de espacio se pueden usar para complementar el formato electrónico cuando sea necesario.
En las codificaciones de caracteres de computadora , existe un espacio normal de uso general (carácter Unicode U+0020) cuyo ancho variará según el diseño de la tipografía. Los valores típicos varían de 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 será de entre 2 y 3,3 puntos). Las fuentes sofisticadas pueden tener espacios de diferentes tamaños para negrita, cursiva y mayúsculas pequeñas, y a menudo los compositores ajustarán 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.
Los guiones largos utilizados como separadores entre paréntesis, y los guiones cortos cuando se utilizan como uniones de palabras, normalmente se establecen de forma continua con el texto. [28] Sin embargo, dicho guión puede estar opcionalmente rodeado por un espacio de pelo , U+200A, o un espacio fino , U+2009. El espacio de pelo se puede escribir en HTML utilizando las referencias de caracteres numéricos  
o  
, o la entidad nombrada  
, aunque esto no es universalmente compatible en los navegadores a partir de 2016. [ necesita actualización ] El espacio fino es entidad nombrada 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 de pelo en particular el más delgado de los caracteres de espacio en blanco horizontales.[actualizar] 
 
 
Espacio normal con guión largo | izquierda — derecha |
---|---|
Espacio fino con guión largo | izquierda — derecha |
Espacio para el cabello con guión largo | izquierda — derecha |
Sin espacio con guión largo | izquierda—derecha |
En la sintaxis de la mayoría de los lenguajes de programación , los caracteres de espacio en blanco se pueden usar para separar tokens . En un lenguaje de formato libre , los procesadores de código (es decir, el compilador ) ignoran los caracteres de espacio en blanco . Incluso cuando la sintaxis del lenguaje requiere espacios en blanco, a menudo varios caracteres de espacio en blanco se tratan de la misma manera que uno solo. En un lenguaje de reglas fuera de juego , el espacio en blanco de sangría es sintácticamente significativo. En el lenguaje satírico y contrario llamado Whitespace , los caracteres de espacio en blanco son los únicos caracteres significativos y se ignora el texto normal.
El uso adecuado de los espacios en blanco en el código fuente permite agrupar la lógica relacionada y hacer que el código sea más fácil de entender. El uso excesivo de espacios en blanco, incluso al final de una línea donde no proporcionan ningún comportamiento de representación, se considera una molestia.
La mayoría de los lenguajes solo reconocen caracteres de espacio en blanco que tienen un código ASCII. No permiten la mayoría o la totalidad de los códigos Unicode 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 página". [29] 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. [30]
Los analizadores de línea de comandos típicos utilizan el carácter de espacio para delimitar los argumentos . Un valor con un carácter de espacio incrustado es problemático, ya que hace que el valor se analice como múltiples argumentos. Normalmente, un analizador permite escapar del análisis normal de argumentos encerrando el texto entre comillas.
Supongamos que se desea enumerar los archivos del directorio denominado "foo bar". Este comando enumera los archivos que coinciden con "foo" o "bar":
barra de foo
Este comando especifica correctamente un único argumento:
¿Es "foo bar"?
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 caracteres de espacio en blanco de forma especial, incluidos los caracteres de espacio, para la comodidad de los programadores. Uno o más caracteres de espacio leídos por los procesadores de tiempo de visualización de dichos lenguajes de marcado se reducen a 0 o 1 espacio, según su contexto semántico. Por ejemplo, los espacios dobles (o más) dentro del texto se reducen a un solo espacio, y los espacios que aparecen a ambos lados del " =
" que separa el nombre de un atributo de su valor no tienen ningún efecto en la interpretación del documento. Las etiquetas de fin de elemento pueden contener espacios finales, y las etiquetas de elemento vacío en XML pueden contener espacios antes del " />
". En estos lenguajes, los espacios en blanco innecesarios aumentan el tamaño del archivo, por lo que pueden ralentizar las transferencias de red. Por otro lado, los espacios en blanco innecesarios también pueden marcar código de forma discreta, de forma similar a los comentarios en el código, pero menos obvia. Esto puede ser deseable para demostrar una infracción de la licencia o los derechos de autor que se cometió al copiar y pegar .
En los valores de atributos XML, las secuencias de caracteres de espacio en blanco se tratan como un solo espacio cuando un analizador lee el documento. [31] El analizador no modifica de esta manera los espacios en blanco en el contenido de un elemento XML, pero una aplicación que recibe información del analizador puede optar por aplicar reglas similares al contenido del elemento. Un autor de un documento XML puede utilizar el xml:space="preserve"
atributo en un elemento para indicar al analizador que desaconseje a la aplicación posterior la modificación de 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 único carácter de espacio al representar texto en un lenguaje que normalmente inserta dicho espacio entre palabras. [32] Se requiere que los renderizadores HTML que cumplen con las normas apliquen un tratamiento más literal de los espacios en blanco dentro de unos pocos elementos prescritos, como la pre
etiqueta y cualquier elemento para el que se haya utilizado CSSpre
para aplicar un procesamiento de espacios en blanco similar a -. 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 indivisible , junto con otros espacios no "estándar", no se trata como un "espacio en blanco" colapsable, por lo que no está sujeto a las reglas anteriores.
Este uso es similar a los nombres de archivos de varias palabras escritos para sistemas operativos y aplicaciones que se confunden con los códigos de espacio integrados; dichos nombres de archivos utilizan en cambio un guión bajo (_) como separador de palabras, como_en_esta_frase.
Otro símbolo similar era U+2422 ␢ SÍMBOLO EN BLANCO . Este símbolo se utilizó en los primeros años de la programación informática al escribir en formularios de codificación. Los operadores de las máquinas perforadoras reconocían inmediatamente el símbolo como un "espacio explícito". [16] Se utilizó en BCDIC , [16] EBCDIC , [16] y ASCII-1963 . [16]
Los caracteres de espacio de ancho fijo (U+2000..U+200A) se derivan de la tipografía convencional (de plomo caliente). El kerning algorítmico y la justificación en la tipografía computarizada no utilizan estos caracteres. Sin embargo, cuando se utilizan (por ejemplo, en la composición tipográfica de fórmulas matemáticas), su ancho generalmente está especificado por la fuente y, por lo general, no se expanden durante la justificación. La excepción es el espacio fino U+2009, que a veces se ajusta.