stringtranslate.com

Carácter de espacio en blanco

Un carácter de espacio en blanco es un elemento de datos de carácter que representa un espacio en blanco cuando el texto se presenta 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 espacios en blanco definen el diseño del texto hasta cierto punto, interrumpiendo la secuencia normal de representación de caracteres uno al lado del otro. La salida de los caracteres siguientes normalmente se desplaza hacia la derecha (o hacia la izquierda para scripts de derecha a izquierda ) o hacia el inicio de la siguiente línea. El efecto de múltiples caracteres de espacios 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 espacios en blanco anteriores.

El término espacio en blanco tiene sus raíces en la práctica común de representar texto en papel blanco . Normalmente, un carácter de espacio en blanco no se representa en blanco. Afecta al renderizado, pero no se renderiza en sí mismo.

Descripción general

Ancho de varios caracteres de espacio Unicode

Un carácter de espacio normalmente inserta un espacio horizontal que tiene aproximadamente el ancho de una letra. Para una fuente monoespaciada, el ancho es el ancho de una letra y, para 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 normalmente inserta un espacio horizontal basado en tabulaciones que varían según la aplicación .

Una secuencia de caracteres de nueva línea normalmente mueve la ubicación de salida del renderizado al comienzo de la siguiente línea. Si uno sigue el texto, en realidad no genera espacios en blanco. Sin embargo, dos secuencias de nueva línea secuenciales entre bloques de texto dan como resultado 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 espacios en blanco para diseñar texto es una convención . A veces, las aplicaciones muestran caracteres de espacios en blanco como marcas visibles 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

Unicódigo

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.

Sustituir imágenes

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:

  1. ^ Por encima de la tecla cero "0" o negativa "(‒)".
Espacio exacto

Espacios en blanco sin espacio

Espacios en blanco y tipografía digital.

El Manual de estilo de Chicago tiene reglas para usar espacios en blanco de diferentes tamaños.

Visualización en pantalla

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.

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 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.

Espacios para el cabello alrededor de los guiones

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.   

Aplicaciones informáticas

Lenguajes de programación

En la mayoría de las sintaxis de lenguajes de programación , se pueden utilizar caracteres de espacio en blanco para separar tokens . Para un lenguaje de forma 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 caracteres de espacios en blanco se tratan igual 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 Espacio en blanco , los espacios en blanco son los únicos caracteres significativos y el texto normal se ignora.

Un buen uso del espacio en blanco en el código fuente puede 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 proporciona ningún comportamiento de renderizado, se considera una molestia .

La mayoría de los idiomas sólo reconocen espacios en blanco que tienen un código ASCII. No permiten la mayoría o todos 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 "espacios en blanco lineales" en los valores del encabezado. . [30]

Análisis de línea de comandos

Los analizadores de línea de comandos típicos utilizan el carácter de espacio para delimitar 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.

Considere que uno quiere enumerar los archivos en el directorio llamado "foo bar". En cambio, este comando enumera los archivos que coinciden con "foo" o "bar":

¿Es  foo  bar?

Este comando especifica correctamente un único argumento:

Es "barra foo" 

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 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 preetiqueta 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.

Nombres de archivos

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+2422SÍ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]

Ver también

Referencias

  1. ^ "El estándar Unicode". Consorcio Unicode.
  2. ^ "Estándares de diseño de personajes: personajes espaciales". Estándares de diseño de personajes . Microsoft . 1998–1999. Archivado desde el 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. 205; también disponible en el "Capítulo 6: Sistemas de escritura y puntuación" (PDF) . El estándar Unicode 5.0, edición electrónica. Consorcio Unicode . 2006-07-14. pag. 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 Unicode de texto casi sin formato de 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 desmitificado: una guía práctica para programadores sobre el estándar de codificación . Addison-Wesley. ISBN 0-201-70052-2.
  7. ^ ab Hickson, Ian . "12.5 Referencias de personajes con nombre". Estándar HTML . QUÉ WG .
  8. ^ Wolframio . "\[Espacio grueso negativo]". Documentación de Wolfram Language .
  9. ^ Wolframio . "\[EspacioMedioNegativo]". Documentación de Wolfram Language .
  10. ^ Wolframio . "\[NegativoThinSpace]". Documentación de Wolfram Language .
  11. ^ Wolframio . "\[Espacio muy delgado negativo]". Documentación de Wolfram Language .
  12. ^ Faltstrom, P., ed. (Agosto de 2010). "Ancho cero sin unión". Los puntos de código Unicode y nombres de dominio internacionalizados para aplicaciones (IDNA). IETF . segundo. A.1. doi : 10.17487/RFC5892 . RFC 5892 . Consultado el 4 de septiembre de 2019 .
  13. ^ Faltstrom, P., ed. (Agosto de 2010). "Unidor de ancho cero". Los puntos de código Unicode y nombres de dominio internacionalizados para aplicaciones (IDNA). IETF . segundo. A.2. doi : 10.17487/RFC5892 . RFC 5892 . Consultado el 4 de septiembre de 2019 .
  14. ^ "Anexo n.º 44 del estándar Unicode, base de datos de caracteres Unicode".
  15. ^ abcdef Asociación Europea de Fabricantes de Computadoras (28 de noviembre de 1968). Representación gráfica de los caracteres de control del juego de caracteres codificados de 7 bits ECMA para intercambio de información (PDF) . ECMA-17.
  16. ^ abcdefgh Mackenzie, Charles E. (1980). Conjuntos de caracteres codificados, historia y desarrollo. La 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-4. LCCN  77-90165 . Consultado el 22 de mayo de 2016 .[1]
  17. ^ "Código estándar americano para el intercambio de información, ASA X3.4-1963". Asociación Estadounidense de Estándares (ASA). 1963-06-17.
  18. ^ Niklaus Wirth, Programación en Modula-2
  19. ^ "Guía del usuario de Cambridge Z88". 4.7 (4ª ed.). Cambridge Computer limitada . 2016 [1987]. Conceptos básicos - El teclado. Archivado desde el original el 12 de diciembre de 2016 . Consultado el 12 de diciembre de 2016 .
  20. ^ a b "Guía del usuario de Cambridge Z88". 4.0 (4ª ed.). Cambridge Computer limitada . 1987. Apéndice D. Archivado desde el original el 12 de diciembre de 2016 . Consultado el 12 de diciembre de 2016 .
  21. ^ a b "Guía del usuario de Cambridge Z88". 4.7 (4ª ed.). Cambridge Computer limitada . 2015 [1987]. Apéndice D. Archivado desde el original el 12 de diciembre de 2016 . Consultado el 12 de diciembre de 2016 .
  22. ^ Gráfico Unicode U+2800, patrones braille
  23. ^ Chung, Jaemin (30 de marzo de 2017). Propuesta de adición de nota informativa a U+3164 HANGUL FILLER (PDF) . Consorcio Unicode . UTCL2/17-081.
  24. ^ Hangul Jamo (PDF) . Consorcio Unicode . 2020-10-25.
  25. ^ "ibm-933_P110-1995". Demostración de la UCI: Explorador de convertidores . Componentes internacionales para Unicode .
  26. ^ "ibm-933_P110-1995 (bytes iniciales 0E84)". Demostración de la UCI: 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 . 2022-09-13. págs. 12 y 13 (267 y 268) . Consultado el 23 de diciembre de 2022 . 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.
  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. ^ Campo, R.; et al. (Junio ​​de 1999), "2.2 Reglas básicas", Protocolo de transferencia de hipertexto: HTTP/1.1 , doi :10.17487/RFC2616, RFC 2616 
  31. ^ "3.3.3 Normalización de valor-atributo". Lenguaje de marcado extensible (XML) 1.0 (quinta edición) . Consorcio Mundial de la red.
  32. ^ "9.1 Espacios en blanco". Especificación W3CHTML 4.01 . Consorcio Mundial de la red.

enlaces externos