Articulo de referencia

carácter de espacio en blanco

Un carácter de espacio en blanco es un elemento de datos de caracteres que representa el espacio en blanco cuando un ordenador renderiza el texto para su visualización . Por eje...

Un carácter de espacio en blanco es un elemento de datos de caracteres que representa el espacio en blanco cuando un ordenador renderiza el texto para su visualización .

Por ejemplo, un carácter de espacio ( U+0020 ESPACIO , ASCII 32) representa un espacio en blanco como un separador de palabras en una escritura occidental . 

Un carácter imprimible genera una salida al renderizarse, pero un espacio en blanco no. En cambio, los espacios en blanco definen la disposición del texto de forma limitada, interrumpiendo la secuencia normal de renderizado de caracteres contiguos. La salida de los caracteres subsiguientes se desplaza normalmente hacia la derecha (o hacia la izquierda en escritura de derecha a izquierda ) o al inicio de la siguiente línea. El efecto de varios espacios en blanco consecutivos es acumulativo, de modo que el siguiente carácter imprimible se renderiza en una posición determinada por el efecto acumulado de los espacios en blanco precedentes.

El origen del término "espacio en blanco" radica en la práctica común de imprimir texto en papel blanco . Normalmente, un espacio en blanco no se muestra como tal. Afecta la representación, pero no se muestra en sí mismo.

Descripción general

Ancho de varios caracteres de espacio Unicode

Un espacio en blanco generalmente inserta un espacio horizontal del ancho aproximado de una letra. En una fuente monoespaciada, el ancho es el de una letra, mientras que en una fuente de ancho variable, el ancho depende de la fuente. Algunas fuentes admiten varios espacios en blanco con anchos diferentes.

Un carácter de tabulación normalmente inserta un espacio horizontal que se basa en las paradas de tabulación , las cuales varían según la aplicación .

Una secuencia de salto de línea normalmente desplaza la ubicación de salida de la renderización al inicio de la siguiente línea. Si se inserta después de un texto, no genera espacios en blanco. Sin embargo, dos secuencias de salto de línea consecutivas entre bloques de texto producen una línea en blanco entre ellos. La altura de esta línea en blanco varía según la aplicación.

El uso de espacios en blanco para maquetar texto es una convención. En ocasiones, las aplicaciones muestran los espacios en blanco como marcas visibles para que el usuario pueda ver lo que normalmente no es visible.

Normalmente, un usuario escribe un espacio pulsando spacebar, un tabulador pulsando y un salto de línea pulsando .Tab ↹↵ Enter

Unicode

La tabla que aparece a continuación enumera los veinticinco caracteres definidos como espacios en blanco ("WSpace=Y", "WS") en la base de datos de caracteres Unicode . [ 1 ] Diecisiete de ellos 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 pueden utilizarse, pero no son de este tipo "Bidi".

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

Sustituir imágenes

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:

  1. Encima de la tecla cero "0" o negativa "(‒)".
Espacio exacto
  • El Cambridge Z88 proporcionaba un "espacio exacto" especial (punto de código 160, también conocido como 0xA0) (invocable mediante la combinación de teclas + [ 19 ] ), que el controlador de pantalla del sistema operativo mostraba como "…". [ 20 ] [ 21 ] Por lo tanto, también se le conocía como "espacio de punto" en conjunto con BBC BASIC . [ 20 ] [ 21 ]SPACE
  • Bajo el punto de código 224 (0xE0), la computadora también proporcionaba un símbolo especial de ESPACIO de tres celdas de ancho "SPC"(análogo al U+2420 de una sola celda de ancho de Unicode). [ 20 ] [ 21 ]

Espacios sin espacio

  • El bloque Unicode de patrones Braille contiene U+2800 BRAILLE PATTERN BLANK , un patrón 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. [ 22 ]
  • La cobertura del alfabeto coreano por parte de Unicode 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 de relleno Hangul en el bloque de jamo de compatibilidad Hangul ( U+3164 HANGUL FILLER ). Este se clasifica como una letra, pero se muestra como un espacio vacío, como un bloque Hangul que no contiene jamo. Se utiliza en las secuencias de combinación Hangul KS X 1001 para introducirlas o indicar la ausencia de una letra en una posición, pero no en el sistema de jamo de combinación de Unicode. [ 23 ]
    • El sistema combinatorio jamo de Unicode utiliza caracteres similares de relleno choseong de Hangul y relleno jungeseong de Hangul para denotar la ausencia de una letra en posición inicial o medial dentro de un bloque silábico, que se incluyen en el bloque jamo de Hangul ( U+115F HANGUL CHOSEONG FILLER , U+1160 HANGUL JUNGSEONG FILLER ). [ 24 ]
    • Además, se incluye un relleno Hangul de ancho medio en las formas de ancho medio y ancho completo ( U+FFA0HALFWIDTH HANGUL FILLER ), que se utiliza al mapear desde codificaciones que incluyen caracteres tanto de Johab (o Wansung ) como de Hangul de N bytes (o su equivalente EBCDIC ), como IBM-933, que incluye rellenos tanto de Johab como de EBCDIC. [ 25 ] [ 26 ]

Espacio en blanco y tipografía digital

El Manual de Estilo de Chicago contiene reglas para el uso de espacios en blanco de diferentes tamaños.

Visualización en pantalla

Los editores de texto , procesadores de texto y programas 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 que superan el ancho de la pantalla o de la columna. En algunos casos, los espacios se muestran simplemente como espacios en blanco; en otros, pueden representarse con un punto o coma u otros símbolos. Se pueden usar muchos caracteres diferentes (que se describen 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 a los espacios en blanco.

Muchos de los caracteres de espacio Unicode se crearon para ser compatibles con la tipografía de impresión clásica. [ 27 ]

Aunque la tipografía digital cuente con espaciado entre caracteres y justificación algorítmicos, esos espacios pueden utilizarse para complementar el formato electrónico cuando sea necesario.

Espacio de uso general de ancho variable

En las codificaciones de caracteres informáticos , existe un espacio normal de uso general (carácter Unicode U+0020) cuyo ancho varía según el diseño de la tipografía. Los valores típicos oscilan entre 1/5 em y 1/3 em (en tipografía digital, un em equivale 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 versiones en negrita, cursiva y versalitas, y a menudo los tipógrafos 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 ancho específico. Consulte la tabla anterior para obtener una lista completa.

espacios de pelo alrededor de guiones

Las rayas largas usadas como separadores entre paréntesis, y las rayas cortas cuando se usan como conectores de palabras, generalmente se colocan continuas con el texto. [ 28 ] Sin embargo, opcionalmente, dicha raya puede estar rodeada por un espacio de pelo , U+200A, o un espacio delgado , U+2009. El espacio de pelo se puede escribir en HTML usando las referencias de caracteres numéricos  o  , o la entidad nombrada  . El espacio delgado es la entidad nombrada  y las 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.

Aplicaciones informáticas

Lenguajes de programación

En la sintaxis de la mayoría de los lenguajes de programación , los espacios en blanco se utilizan para separar tokens . En un lenguaje de formato libre , los procesadores de código (es decir, el compilador ) ignoran los espacios en blanco . Incluso cuando la sintaxis del lenguaje requiere espacios en blanco, a menudo varios espacios en blanco se tratan como uno solo. En un lenguaje con reglas de sangría , los espacios en blanco son sintácticamente significativos. En el lenguaje satírico y transgresor llamado Whitespace , los espacios en blanco son los únicos caracteres significativos y el texto normal se ignora.

El buen uso de los espacios en blanco en el código fuente permite agrupar la lógica relacionada y facilita la comprensión del código. El uso excesivo de espacios en blanco, incluso al final de una línea donde no influye en la visualizació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 mencionados anteriormente. El lenguaje C define los caracteres de espacio en blanco como "espacio, tabulación horizontal, salto de línea, tabulación vertical y salto de página". [ 29 ] El protocolo de red HTTP requiere que se utilicen diferentes tipos de espacios en blanco en distintas partes del protocolo; requiere caracteres de espacio simple entre elementos en la línea de estado , un par CR/LF al final de una línea y "espacio en blanco lineal" en los valores de la cabecera. [ 30 ]

Análisis de la línea de comandos

Los analizadores de línea de comandos típicos utilizan el espacio para delimitar los argumentos . Un valor con un espacio insertado resulta problemático, ya que provoca que se interprete como múltiples argumentos. Normalmente, un analizador permite evitar este análisis forzado de argumentos encerrando el texto entre comillas.

Si, por ejemplo, un usuario quisiera ver el contenido de un directorio llamado foo barmediante el lscomando (list), y lo hiciera ingresando el comando de la siguiente manera:

barra de comida ls

En cambio, el comando intentaría listar archivos o directorios con los nombres fooy bar. La sintaxis correcta especificaría un único argumento encerrándolo entre comillas dobles:

ls "bar de comida"

O, alternativamente, podrían optar por omitir las comillas dobles y, en su lugar, escapar el espacio con una barra invertida :

ls foo \ bar 

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 caracteres de espacio en blanco de forma especial, incluidos los espacios, para la 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 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 de las " =" que separan un nombre de atributo de su valor no tienen efecto en la interpretación del documento. Las etiquetas de cierre de elementos pueden contener espacios al final, y las etiquetas de elementos vacíos en XML pueden contener espacios antes de las " />". En estos lenguajes, 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 forma discretapara fines de identificación, de una manera similar pero menos obvia que la forma en que lo hacen los comentarios en el código. Esto puede ser beneficioso para probar una infracción de licencia o reclamación de derechos de autor si el código fue copiado .

Preservar el espacio en blanco

En los valores de los atributos XML, las secuencias de caracteres de espacio en blanco se tratan como un solo espacio cuando el documento es leído por un analizador. [ 31 ] El analizador no modifica de esta manera el espacio en blanco en el contenido de los elementos XML, pero una aplicación que recibe información del analizador puede optar por aplicar reglas similares al contenido de los elementos. El autor de un documento XML puede usar el xml:space="preserve"atributo en un elemento para indicar al analizador que impida que la aplicación posterior altere el espacio 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 renderizar texto en un idioma que normalmente inserta dicho espacio entre palabras. [ 32 ] Los renderizadores HTML conformes aplican el comportamiento literal de espacio en blanco a ciertos elementos: aquellos dentro de etiquetas y aquellos donde la propiedad CSS está establecida en pre o pre-wrap . En estos elementos, los caracteres de espacio no se "colapsarán" en separadores entre palabras.<pre>...</pre>white-space

En el marcado de MediaWiki , además de la etiqueta opcional , también se conserva el espacio en blanco. Requiere Extension:Poem. [ 33 ]<pre>...</pre><poem>...</poem>

Tanto en XML como en HTML, el carácter de espacio de no separación , junto con otros espacios "no estándar", no se trata como un espacio en blanco colapsable.

nombres de archivo

Este uso es similar a los nombres de archivo de varias palabras escritos para sistemas operativos y aplicaciones que se confunden con los códigos de espacio incrustados ; en cambio, estos nombres de archivo utilizan un guion bajo (_) como separador de palabras, como en esta frase.

Otro símbolo de este tipo es U+2422 BLANK SYMBOL , que se utilizaba en formularios de codificación en los primeros años de la programación informática. Los operadores de perforadoras de teclas lo interpretaban como un "espacio explícito". [ 16 ] Se utilizaba en BCDIC , [ 16 ] EBCDIC , [ 16 ] y ASCII-1963 . [ 16 ]

Véase también

Referencias

  1. "El estándar Unicode" . Consorcio Unicode.
  2. "Estándares de diseño de caracteres: caracteres espaciales" . Estándares de diseño de caracteres . Microsoft . 1998-1999. Archivado del original el 14 de marzo de 2010. Consultado el 18 de mayo de 2009 .
  3. El estándar Unicode 5.0, edición impresa, pág. 205; también disponible en "Capítulo 6: Sistemas de escritura y puntuación" (PDF) . El estándar Unicode 5.0, edición electrónica . Consorcio Unicode . 14 de julio de 2006, pág. 11 (205) . Consultado el 22 de diciembre de 2022 . 
  4. "Puntuación general" (PDF) . El estándar Unicode 5.1 . Unicode Inc. 1991–2008 . Consultado el 13 de mayo de 2009 .
  5. Sargent, Murray III (29 de agosto de 2006). "Codificación de texto casi plano Unicode para matemáticas (versión 2)" . Nota técnica Unicode n . ° 28. Unicode Inc. págs. 19-20 . Consultado el 19 de mayo de 2009 . 
  6. Gillam, Richard (2002). Unicode Demystified: A Practical Programmer's Guide to the Encoding Standard . Addison-Wesley. ISBN 0-201-70052-2.
  7. 1 2 Hickson, Ian . "12.5 Referencias de caracteres con nombre" . Estándar HTML . WHATWG .
  8. Wolfram . "\ [ NegativeThickSpace ] " . Documentación del lenguaje Wolfram .
  9. Wolfram . "\ [ NegativeMediumSpace ] " . Documentación del lenguaje Wolfram .
  10. Wolfram . "\ [ NegativeThinSpace ] " . Documentación del lenguaje Wolfram .
  11. Wolfram . "\ [ NegativeVeryThinSpace ] " . Documentación del lenguaje Wolfram .
  12. Faltstrom, P., ed. (agosto de 2010). "Zero Width Non-Joiner" . The Unicode Code Points and Internationalized Domain Names for Applications (IDNA) . IETF . sec. A.1. doi : 10.17487/RFC5892 . RFC 5892. Consultado el 4 de septiembre de 2019 . 
  13. Faltstrom, P., ed. (agosto de 2010). "Zero Width Joiner" . Los puntos de código Unicode y los nombres de dominio internacionalizados para aplicaciones (IDNA) . IETF . sec. A.2. doi : 10.17487/RFC5892 . RFC 5892. Consultado el 4 de septiembre de 2019 . 
  14. "Anexo estándar Unicode n.º 44, base de datos de caracteres Unicode" .
  15. 1 2 3 4 5 6 Asociación Europea de Fabricantes de Computadoras (28-11-1968). Representación gráfica de los caracteres de control del conjunto de caracteres codificados de 7 bits de ECMA para el intercambio de información . ECMA-17.
  16. 1 2 3 4 5 6 7 8 Mackenzie, Charles E. (1980). Conjuntos de caracteres codificados, historia y desarrollo (PDF) . Serie de programación de sistemas (1.ª ed.). Addison-Wesley Publishing Company, Inc. págs. 41, 47, 52, 102–103 , 117, 119, 130, 132, 141, 148, 150–151 , 212, 424. ISBN   978-0-201-14460-4LCCN 77-90165 . Archivado (PDF) del original el 26 de mayo de 2016. Consultado el 25 de agosto de 2019 . 
  17. "Código estándar estadounidense para el intercambio de información, ASA X3.4-1963" . Asociación Estadounidense de Estándares (ASA). 17 de junio de 1963.
  18. ^ Wirth, Niklaus (1988). Programación en Modula-2 (PDF) . doi : 10.1007/978-3-642-83565-0 . ISBN 978-3-642-83567-4.
  19. "Guía del usuario de Cambridge Z88" . 4.7 (4.ª ed.). Cambridge Computer Limited . 2016 [1987]. Conceptos básicos: el teclado. Archivado del original el 12 de diciembre de 2016. Consultado el 12 de diciembre de 2016 . 
  20. 1 2 3 "Guía del usuario de Cambridge Z88" . 4.0 (4.ª ed.). Cambridge Computer Limited . 1987. Apéndice D. Archivado del original el 12 de diciembre de 2016. Recuperado el 12 de diciembre de 2016 . 
  21. 1 2 3 "Guía del usuario de Cambridge Z88" . 4.7 (4.ª ed.). Cambridge Computer Limited . 2015 [1987]. Apéndice D. Archivado del original el 12 de diciembre de 2016. Recuperado el 12 de diciembre de 2016 . 
  22. Tabla Unicode U+2800 , patrones braille
  23. Chung, Jaemin (30-03-2017). Propuesta para añadir una nota informativa a U+3164 HANGUL FILLER (PDF) . Consorcio Unicode . UTC L2/17-081.
  24. Hangul Jamo (PDF) . Consorcio Unicode . 2020-10-25.
  25. "ibm-933_P110-1995" . Demostración de ICU - Explorador de convertidores . Componentes internacionales para Unicode .
  26. "ibm-933_P110-1995 (bytes de inicio 0E84)" . Demostración de ICU - Explorador de convertidores . Componentes internacionales para Unicode .
  27. "Capítulo 6 — Sistemas de escritura y puntuación" (PDF) . El estándar Unicode 15.0, edición electrónica . Consorcio Unicode . 13 de septiembre de 2022. págs. 12–13 (267–268) . Recuperado el 23 de diciembre de 2022. Los caracteres de espacio de ancho fijo (U+2000..U+200A) se derivan de la tipografía convencional (plomo caliente). El espaciado y la justificación algorítmicos 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 normalmente no se expanden durante la justificación. La excepción es el espacio delgado U+2009, que a veces se ajusta. 
  28. El uso de los diferentes tipos de guiones se ilustra, por ejemplo, en The Chicago Manual of Style , §§ 6.80, 6.83–6.86.
  29. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf Sección 6.4, párrafo 3
  30. Fielding, R.; et al. (junio de 1999). Protocolo de transferencia de hipertexto—HTTP/1.1 . IETF . doi : 10.17487/RFC2616 . RFC 2616 . 
  31. "3.3.3 Normalización de atributos y valores" . Lenguaje de marcado extensible (XML) 1.0 (Quinta edición) . Consorcio World Wide Web.
  32. "9.1 Espacio en blanco" . Especificación W3CHTML 4.01 . Consorcio World Wide Web.
  33. «Extensión:Poema» . MediosWiki .
  • Lista de propiedades de la base de datos de caracteres Unicode