En tipografía y especialmente en tipografía informática, espacio en blanco o espacio en blanco es cualquier carácter o serie de caracteres que representan un espacio horizontal o vertical . Cuando se representa, 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 ESPACIO (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 .
Con muchas distribuciones de teclado, se puede ingresar un carácter de espacio en blanco presionando spacebar. También se pueden ingresar espacios en blanco horizontales en muchos teclados con la tecla, aunque la longitud del espacio puede variar. Se pueden ingresar espacios en blanco verticales escribiendo , lo que crea una secuencia de código de "nueva línea" en la mayoría de los programas. En algunos sistemas tiene un significado distinto, pero en otros los dos se combinan. Muchos de los primeros juegos de computadora usaban espacios en blanco para dibujar una pantalla (por ejemplo, Kingdom of Kroz ).Tab ↹Return↵ Enter
El término "espacio en blanco" se basa en la apariencia de los caracteres en el papel normal . Sin embargo, 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 diferentes programas pueden definir su propia semántica para los caracteres.
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 consistente con el algoritmo para escritura bidireccional ("Tipo de carácter bidireccional = WS") y se conocen como caracteres "Bidi-WS". Los demás caracteres 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.
Unicode también proporciona algunos caracteres visibles que se pueden usar para representar varios espacios en blanco, en contextos donde se debe mostrar un símbolo visible:
"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 se diferencian 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 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 estar representados por un interpunto u otros símbolos. Se podrían usar muchos caracteres diferentes (descritos a continuación) para producir espacios, y las funciones que no son caracteres (como márgenes y configuraciones de tabulación) también pueden afectar 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 un kerning y una justificación algorítmicos, esos caracteres de espacio se pueden utilizar para complementar el formato electrónico cuando sea necesario.
En las codificaciones de caracteres informáticos , 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 y 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 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 siguiente tabla para obtener una lista completa.
Los guiones largos que se utilizan como divisores entre paréntesis y los guiones finales cuando se utilizan como unión de palabras, generalmente se establecen de forma continua con el texto. [28] Sin embargo, dicho guión puede estar rodeado opcionalmente por un espacio de cabello , U+200A, o un espacio delgado , U+2009. El espacio de cabello se puede escribir en HTML utilizando referencias de caracteres numéricos  
o  
, o la entidad nombrada  
, pero aún no es compatible universalmente con los navegadores, a partir de 2016. [ necesita actualización ] 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 en particular el más delgado de los caracteres de espacio en blanco horizontal.[actualizar] 
 
 
En la sintaxis del lenguaje de programación , los espacios se utilizan con frecuencia para separar tokens explícitamente . En la mayoría de los idiomas, varios espacios en blanco se tratan de la misma manera que un solo carácter de espacio en blanco (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 Whitespace , 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 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 como 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 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 "espacios en blanco lineales" en los valores del encabezado. . [30]
En los comandos procesados por procesadores de comandos , por ejemplo, en scripts y escritos, 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 nombres . La ambigüedad se puede evitar prohibiendo los espacios incrustados o encerrando un nombre con espacios incrustados entre comillas.
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 manera especial, incluidos los espacios, para comodidad de los programadores. Uno o más caracteres de espacio leídos por los procesadores de tiempo de visualización conformes de esos lenguajes de marcado se contraen a 0 o 1 espacio, dependiendo de 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 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 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 el código de manera discreta, de manera similar, pero menos obvia, que los comentarios en el código. Esto puede ser conveniente para demostrar una infracción de licencia o derechos de autor que se cometió al copiar y pegar .
En los valores de atributos XML, las secuencias de caracteres de espacios en blanco se tratan como un solo espacio cuando un analizador lee el documento. [31] El analizador no cambia de esta manera 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 utilizar el xml:space="preserve"
atributo de un elemento para indicarle 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 separador único entre palabras , que puede manifestarse como un carácter de espacio único al representar texto en un idioma que normalmente inserta dicho espacio entre palabras. [32] Se requiere que los renderizadores HTML conformes 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 cual se haya utilizado CSSpre
para aplicar el procesamiento de espacios en blanco tipo -. En dichos elementos, los caracteres de espacio no se "contraerán" en separadores entre palabras.
Tanto en XML como en HTML, el carácter de espacio sin separación , junto con otros espacios no "estándar", no se trata como "espacio en blanco" plegable, 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 códigos de espacio incrustados; en cambio, dichos nombres de archivos utilizan un guión bajo (_) como separador de palabras, as_in_this_phrase.
Otro símbolo de este tipo era 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 teclas reconocieron inmediatamente el símbolo como un "espacio explícito". [16] Se utilizó en BCDIC , [16] EBCDIC , [16] y ASCII-1963 . [dieciséis]
Los caracteres de espacio de ancho fijo (U+2000..U+200A) se derivan de la tipografía convencional (hot lead).
El kerning algorítmico y la justificación en tipografía computarizada no utilizan estos caracteres.
Sin embargo, cuando se utilizan (por ejemplo, al componer fórmulas matemáticas), su ancho generalmente está especificado por la fuente y normalmente no se expanden durante la justificación.
La excepción es el espacio reducido U+2009, que a veces se ajusta.