Spanish typography rules · es
Español
Spanish sets primary quotation marks as «…» and secondary quotation marks as “…”. No parenthetical dash convention is verified, so none is substituted; no single range convention is verified, so none is substituted. Numbers bind to units such as % ‰ °C with U+00A0.
Run polytypo with Spanish rules
Edit the text and polytypo typesets it with the es locale, in your browser. The code under the form is the call that produces the result.
The call the form above is making, right now
Other locales, and all the options, are in the full playground.
Spanish typography at a glance #
| Tag | es |
|---|---|
| Name | Spanish |
| Primary quotes | « U+00AB left-pointing double angle quotation mark … » U+00BB right-pointing double angle quotation mark |
| Secondary quotes | “ U+201C left double quotation mark … ” U+201D right double quotation mark |
| Parenthetical dash | no dash substitution |
| Range dash | no dash substitution |
| Rules with citations | quotes, dashes, ranges, ellipsis, hyphen, nbsp |
| Conformance cases | 23 |
Which locale tags resolve to Spanish? #
The locale option is resolved exactly, then by declared alias, then by dropping the region once; anything else throws POLYTYPO_UNKNOWN_LOCALE.
| Tag | How it resolves |
|---|---|
es | registered locale |
es-MX | region removed, then the registered locale |
Which quotation marks does Spanish use? #
| Primary | « U+00AB left-pointing double angle quotation mark … » U+00BB right-pointing double angle quotation mark — no space inside the marks |
|---|---|
| Secondary | “ U+201C left double quotation mark … ” U+201D right double quotation mark — no space inside the marks |
quotes
How are apostrophes set in Spanish? #
apostrophe
Which dashes does Spanish use for breaks and ranges? #
Parenthetical break (dash.parenthetical) | no substitution: the locale has no verified convention, so the rule writes nothing |
|---|---|
Between numbers and dates (dash.range) | no substitution: the locale has no verified convention, so the rule writes nothing |
The dashes rule reads the parenthetical convention. The ranges rule reads the range convention and is off by default.
How is the ellipsis set in Spanish? #
An ellipsis keeps its full form after ! and ?; this locale does not abbreviate it there.
ellipsis
How are hyphens handled in Spanish? #
The hyphen lists are empty for this locale, so the hyphen rule changes nothing.
Where does Spanish use no-break spaces? #
Characters that take U+00A0 before them (nbsp.beforePunctuation) | none |
|---|---|
Characters that take U+202F before them (nbsp.narrowBeforePunctuation) | none |
Short words after which the space becomes U+00A0, so the word is not left at the end of a line (nbsp.afterShortWords) | none |
Multi-token abbreviations whose internal spaces become U+00A0 (nbsp.abbreviations) | p. ej. a. C. d. C. EE. UU. FF. AA. N. del T. q. e. p. d. et al. |
Units and signs bound to the preceding number with U+00A0 (nbsp.beforeUnits) | % ‰ °C km cm mm kg mg mL min dB kW kWh |
Abbreviations bound to the following number with U+00A0 (nbsp.beforeNumber) | art. cap. núm. nro. pág. págs. |
Abbreviations bound to the following word with U+00A0 (nbsp.beforeWord) | Sr. Sra. Srta. |
Symbols bound to the following number with U+00A0 (nbsp.afterSymbols) | none |
Initials (nbsp.initialBinding) | chain — a sequence of two or more adjacent initials is bound; a lone initial next to an ordinary capitalised word is left alone |
spaces
nbsp
How are symbols set in Spanish? #
symbols
How does Spanish text behave in text, HTML and Markdown modes? #
Each input is the locale's sample sentence followed by a code run, say("a -- b ..."). text mode sets the whole string as prose, code run included. In html and markdown mode the code run comes back byte for byte; only the prose is set.
Which sources define Spanish typography? #
10 citations in spec/locales/es.json, grouped by the rule each one supports. A citation names the authority; the note records what the source does and does not settle.
ellipsis
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «puntos suspensivos», apartado 1: «Signo de puntuación formado por tres puntos consecutivos (…) ―y solo tres―» www.rae.es
Justifica abbreviatedAfterTerminal = false: «y solo tres» es una exigencia expresa de número, y el español no dispone en ningún apartado de la forma de dos puntos tras «?» o «!» que sí usa el ruso. El apartado 3.4 de la misma entrada regula el ORDEN de los signos, no su número. La fuente no se pronuncia sobre U+2026 frente a tres U+002E: esa elección es del motor y es igual en todas las locales. Consultado el 18.09.2026.
ranges
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «guion», apartado 3 b): «Indica intervalos expresados tanto en números arábigos como en romanos: las páginas 23-45; durante los siglos x-xii»; apartado 1: «Signo ortográfico en forma de pequeña línea horizontal (-)» www.rae.es
range = "none" por una razón DISTINTA de la de parenthetical, y confundirlas tergiversaría las fuentes. El signo español del intervalo es el guion, U+002D — el carácter que el autor ya escribió —, y el enum solo ofrece em, en o none: «no sustituir nada» es aquí a la vez lo honesto y lo correcto, porque «23-45» ya está bien escrito. El enum sí podría expresar un valor equivocado: "en-tight" convertiría esa forma en una que el DPD no prescribe. Consultado el 18.09.2026.
dashes
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «raya», apartado 2: «Como el resto de los signos dobles, se escriben pegadas a la primera y a la última palabra del periodo que enmarcan, y separadas por un espacio de la palabra o signo que las precede o las sigue» www.rae.es
parenthetical = "none" POR UN LÍMITE DEL ESQUEMA, no por falta de fuente: la fuente es explícita y prescribe espacios ORDINARIOS FUERA del par y ninguno en los bordes interiores («Llegó —por fin— a casa»). El enum no expresa esa asimetría: "em-spaced" pone un espacio a cada lado de CADA raya, que es lo que la frase prohíbe, y "em-tight" suprime los exteriores que la frase exige. Mismo caso que el griego (dashes.md §6) y que el italiano de este mismo lote; al repetirse en tres idiomas independientes deja de ser una rareza y pasa a ser una carencia del esquema, registrada aparte para resolverse en su propia versión. Mientras tanto "none" es lo único que el archivo puede decir con verdad, y no autoriza a aproximar. Consultado el 18.09.2026.
hyphen
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «guion», apartados 1, 2 y 3: el guion une palabras y segmentos, divide la palabra al final de línea, indica intervalos y separa grupos de cifras www.rae.es
Justifica las tres listas vacías. La entrada enumera los usos del guion y en ninguno define una clase cerrada de formas morfológicas cuyo guion no deba partirse al final de línea, que es lo único que consume esta regla; al contrario, en español el guion es el signo del propio corte de línea. Con las listas vacías la regla es un no-op total demostrable (hyphen.md §2), que es el caso normal y no una carencia. Consultado el 18.09.2026.
quotes
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «comillas», apartado 1: «En los textos impresos, se recomienda utilizar en primera instancia las comillas angulares, reservando los otros tipos para cuando deban entrecomillarse partes de un texto ya entrecomillado. En este caso, las comillas simples se emplearán en último lugar»; «Las comillas inglesas y las simples se escriben en la parte alta del renglón, mientras que las angulares se escriben centradas» www.rae.es
El DPD establece QUÉ CLASE de signo corresponde a cada nivel y el orden de anidamiento; no nombra ningún punto de código. La identidad U+201C/U+201D procede de Unicode, autoridad para eso y para nada más. Contra las comillas rectas de máquina de escribir el DPD aporta una descripción de trazado — «en la parte alta del renglón» — y locale.schema.json las prohíbe además por su cuenta. El tercer nivel que el DPD describe (‘ ’) no es expresable: el esquema tiene primary y secondary, no tres; límite del esquema, no laguna de la fuente, igual que en el. ADVERTENCIA DE OBTENCIÓN: rae.es devuelve HTTP 403 a un cliente automático — obstáculo técnico, no obra de pago — y el texto se leyó por un proxy de extracción sobre esta URL canónica; el mismo proxy devolvió la abreviatura de «número» de dos formas distintas en dos pasadas, por lo que ningún campo de este archivo afirma un punto de código no ASCII que no se haya podido fijar por otra vía. Consultado el 18.09.2026.
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «comillas», apartado 1: «Las comillas se escriben pegadas a la primera y la última palabra del periodo que enmarcan, y separadas por un espacio de las palabras o signos que las preceden o las siguen» www.rae.es
Justifica innerSpace = "none" en los dos pares: «pegadas» excluye todo espacio interior, ni U+00A0 ni U+202F. El español no sigue aquí el uso francés. elisionIdioms queda vacío porque el español no tiene ningún modismo de la forma {left, elided, right}: la entrada «apóstrofo» del mismo DPD afirma que el signo «apenas se usa en el español actual» y lo limita a textos antiguos, al habla reproducida y a nombres de otras lenguas. Consultado el 18.09.2026.
nbsp
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «signos de interrogación y exclamación», apartado 1: «Se escriben pegados a la primera y la última palabra del periodo que enmarcan, y separados por un espacio de las palabras que los preceden o los siguen» www.rae.es
Justifica beforePunctuation y narrowBeforePunctuation vacíos por dos motivos independientes. PRIMERO, la fuente: no hay espacio antes de «?» ni de «!», ni después de «¿» ni de «¡»; el uso francés queda descartado por la norma, no por silencio. SEGUNDO, y con independencia de lo anterior, el esquema no podría expresar lo contrario: la restricción Q-P exige que todo punto de código de estas listas pertenezca a CLOSEISH, y U+00BF y U+00A1 no lo son — son puntuación de APERTURA, y el único mecanismo de «espacio tras un signo de apertura» del esquema es quotes.innerSpace. NO ES EXPRESABLE, que es distinto de no estar atestiguado. afterShortWords queda vacío por una razón más débil y se dice cuál: ninguna fuente consultada exige que una palabra breve no quede al final de línea; lo resolvería el capítulo «División de palabras al final de línea» de la Ortografía, no consultado. afterSymbols vacío: ninguna fuente española consultada liga «§» a un número. Consultado el 18.09.2026.
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «símbolo», apartado 5.4: «Los símbolos deben escribirse pospuestos a la cifra a la que acompañan y dejando un blanco de separación: 33 dB, 125 m², 4 H»; «se separa de ella y se pega al símbolo de la escala si esta se especifica: 27° (por veintisiete grados), pero 27 °C»; apartado 5.6: «No deben escribirse en líneas diferentes la cifra y el símbolo que la acompaña: ⊗3 / $, ⊗7 / km» www.rae.es
Justifica beforeUnits, y el apartado 5.6 es además la base normativa de la INDIVISIBILIDAD, dicha por la RAE y en español. El apartado 5.4 impone una exclusión que el archivo respeta: «°» a secas NO figura, porque «27°» va pegado; solo «°C». Dos advertencias de alcance. (1) La lista es MÁS ESTRECHA QUE LA FUENTE: se omiten los símbolos de una sola letra (m, g, s, h, L, A, H), que no se desambiguan sin contexto — criterio de fr —, pese a que el ejemplo del propio apartado es «4 H». (2) No se incluye ningún símbolo monetario, y no por prudencia sino por cita: el apartado 5.5 distingue expresamente el uso de España («3 £», pospuesto y con blanco) del de América («£3», antepuesto y sin blanco), y esta locale no lleva subetiqueta de región. Ese apartado se cita también en POSITIVO: el DPD sabe marcar la divergencia regional donde existe, luego los campos sobre los que no la marca son seguros para un «es» regionalmente neutro. Consultado el 18.09.2026.
- BIPM, The International System of Units (SI), 9th ed. (2019), concise summary: «A single space is always left between the number and the unit» www.bipm.org
Autoridad sobre la COMPOSICIÓN de la lista de unidades, igual que en en-US, en-GB, fi y sv; el DPD «símbolo» 5.4 y 5.6 es la autoridad sobre la convención española y sobre la indivisibilidad. El BIPM no se invoca como autoridad sobre el español — no lo es —, sino sobre qué cadenas son símbolos de unidad del SI. Si ambas fuentes discreparan sobre el español mandaría la RAE; no discrepan. Consultado el 18.09.2026.
- RAE y ASALE, Diccionario panhispánico de dudas, entrada «abreviatura»: «Tampoco deben aparecer en renglones diferentes la abreviatura y el término del que esta depende: ⊗15 / págs., ⊗Sr. / Pérez»; «Cuando la abreviatura corresponde a una expresión compleja, se separan mediante un espacio las letras que representan cada una de las palabras que la integran»; «Las iniciales de los componentes del nombre propio de una persona son también abreviaturas formadas por truncamiento» www.rae.es
Una sola cita para cuatro campos, porque una sola regla los gobierna. abbreviations: la fuente exige el espacio interior y prohíbe partirlo; las formas listadas están atestiguadas en esta entrada o en la Lista de abreviaturas de El buen uso del español. beforeNumber y beforeWord: «⊗15 / págs.» y «⊗Sr. / Pérez» son los dos ejemplos de la propia fuente, uno en cada orden. beforeWord se limita a la clase cerrada de los tratamientos de cortesía: la regla vale para CUALQUIER abreviatura, pero enumerarlas todas dispararía falsos positivos en la subrregla de mayor riesgo del esquema (nbsp.md §3.12). NO SE INCLUYEN «n.º», «D.ª» ni «Sr.ª»: la RAE prescribe una «o volada», es decir un TRAZADO y no un punto de código, y el texto obtenido devolvió dos formas distintas en dos pasadas; adivinar sería peor que omitir. initialBinding = "chain" ES UNA DECISIÓN DEL OPERADOR (18.09.2026), NO UNA CITA: el DPD no contiene ninguna calificación de «dos o más» — enuncia la regla general y establece que las iniciales SON abreviaturas, lo que apunta más bien a "single" —, pero su único ejemplo con iniciales es «J. A. Pérez», de dos, y ante una fuente que no decide se eligió el valor mayoritario en este proyecto (en-US, de-DE, de-CH, ru) y el de menor superficie de falsos positivos, porque "chain" no liga una mayúscula con punto aislada. En «J. A. Pérez» ambos valores dan el mismo resultado; solo difieren ante un inicial suelto. Consultado el 18.09.2026.