Fondo

Fondo

Fondo

Un documento Markdown se convierte a XHTML. El documento XHTML codifica comillas y apóstrofes utilizando entidades con nombre, como “y '.

Nota: Publicación cruzada en la lista de correo, en caso de que se trate de una regresión.

Versión: 2022.09.11 20:44

Problema

Los apóstrofes se muestran como comillas rectas, en lugar de comillas curvadas. Esto es sorprendente porque (a) estaba funcionando en una versión anterior; y (b) las otras entidades se generan como se esperaba, como se muestra aquí:

apóstrofe directo

Código

He aquí un ejemplo:

\xmltexentity{apos}{’}
\xmltexentity{lsquo}{‘}
\xmltexentity{rsquo}{’}
\xmltexentity{laquo}{«}
\xmltexentity{raquo}{»}

\startbuffer[document]
<body>
  &lsquo;Sylvia&apos;s spilled &laquo;wine&raquo;.&rsquo;
</body>
\stopbuffer

\startxmlsetups xml:xhtml
  \xmlsetsetup{\xmldocument}{body}{xml:*}
\stopxmlsetups

\startxmlsetups xml:body
  \xmlflush{#1}
\stopxmlsetups

\xmlregistersetup{xml:xhtml}

\starttext
  \xmlprocessbuffer{xhtml}{document}{}
\stoptext

El siguiente código ayuda a demostrar mejor el problema:

\xmltexentity{apos}{AP:’}
\xmltexentity{lsquo}{LQ:‘}
\xmltexentity{rsquo}{’:RQ}

Produce:

comillas izquierda/derecha

Esperaría ver AP:en el texto antes del apóstrofe, además de curvarlo.

Pregunta

¿Cómo se curva la entidad de carácter de apóstrofe ( &apos;)?

Respuesta1

¿Cómo se riza la entidad de carácter de apóstrofo (')?

Puedes añadir

\definefontfeature[default][default][trep=yes]

al inicio de su documento.

en caso de que se trate de una regresión.

En cierto sentido, es una regresión ya que algo que solía funcionar ahora ya no funciona, perosegún Hans este es ahora el comportamiento previsto. Personalmente creo que trep=yesdebería seguir siendo el valor predeterminado, pero también puedo entender que no quiero modificar los archivos de entrada de forma predeterminada.

Esperaría ver AP: en el texto antes del apóstrofe, además de curvarlo.

Parece que ConTeXt no le permitirá redefinir ninguna entidad predefinida. Correr:

\enabletrackers[xml.entities]

\xmltexentity{apos}{XXX}
\xmltexentity{lsquo}{YYY}
\xmltexentity{rsquo}{ZZZ}
\xmltexentity{laquo}{«}
\xmltexentity{raquo}{»}

te dio

xml             > tex > registering tex entity 'apos' as 'XXX'
xml             > tex > registering tex entity 'lsquo' as 'YYY'
xml             > tex > registering tex entity 'rsquo' as 'ZZZ'
xml             > tex > registering tex entity 'laquo' as '«'
xml             > tex > registering tex entity 'raquo' as '»'
xml             > core > resolving entity &lsquo; to internal '

información relacionada