Citas ignoradas por pdftex

Citas ignoradas por pdftex

Estoy leyendo el TeXBook de Donald Knuth, ejercicio 2.1. Tengo la siguiente entrada:

Alice said, ‘‘I always use an en-dash instead of a hyphen when specifying page numbers like ‘480--491’ in a bibliog
raphy.’’
\bye

La compilación usando pdftex sample.texproporciona el siguiente resultado. El tablero funciona, pero ¿dónde se han ido las comillas?

ingrese la descripción de la imagen aquí

Respuesta1

En lugar de las comillas rizadas ‘‘y el uso

``I always use an en-dash instead of a hyphen when specifying page numbers
like `480--491' in a.''
\bye

ingrese la descripción de la imagen aquí

Respuesta2

Si nos fijamos en el código fuente del TeXbook, que esdisponible en CTAN, verás

\exercise Explain how to type the following sentence to \TeX: Alice said,
``I always use an en-dash instead of a hyphen when specifying page numbers
like `480--491' in a ^{bibliography}.''
\answer |Alice said, ``I always use an en-dash instead of a hyphen when|\break
|specifying page numbers like `480--491' in a bibliography.''| \
(The wrong answer to this question ends with |'480-49l' in a bibliography."|)

Si compilas con pdftexel código

Alice said, ``I always use an en-dash instead of a hyphen when specifying
page numbers like `480--491' in a bibliography.''
\bye

luego copie y pegue desde el PDF, obtendrá

Alice dijo: "Siempre uso un guión final en lugar de un guión cuando especifico números de página como '480–491' en una bibliografía".

porque los lectores de PDF son lo suficientemente inteligentes.

Sin embargo, no deberías usar ‘‘y ’’, porque los caracteres en los fragmentos de código del TeXbook en realidad representan

`` ''

Recuerde que TeX solo usa caracteres ASCII de siete bits, mientras que y no están en ese rango en ninguna codificación.

Respuesta3

Cuando TeX yEl libro de textoCuando se escribieron, las computadoras y el software eran diferentes en dos aspectos a los actuales:

  1. Cada computadora/SO tenía menos caracteres (generalmente como máximo 256) que la gama completa de Unicode disponible en la actualidad; en particular, las comillas que ingresó, a saber, ' (U+‎2018 COMILLA SIMPLE IZQUIERDA) y ' (‎U+2019 COMILLA SIMPLE DERECHA) no estaban en sus conjuntos de caracteres,

  2. En cambio, algunos sistemas, incluidos aquellos con los que Knuth estaba familiarizado, usaban las posiciones actualmente ocupadas por ` (U+0060 GRAVE ACCENT) y ' (U+0027 APOSTROPHE) para caracteres que solían aparecer visualmente simétricos y servían para el mismo propósito. Esta historia está bien explicada en la página.Comillas ASCII y Unicodepor Markus Kuhn (desplácese hacia abajo hasta "El problema") y también en elpaquete de cotización superior.

En consecuencia, el resultado es que:

  1. Si ingresa caracteres que no son ASCII en TeX, los malinterpretará y (en mi opinión, un defecto de diseño grave) ni siquiera se quejará en voz alta: debe buscar en el .logarchivo. Para evitar que esto suceda por accidente,

    • Colóquelo \tracinglostchars=2en la parte superior de todos los archivos (y use un motor derivado de eTeX; el pdftexque está usando está bien), y/o

    • Siempre busque en el .logarchivo cada vez que TeX diga "(consulte el archivo de transcripción para obtener información adicional)"

  2. Cuando veas lo que parecen comillas rizadas enEl libro de texto, debes entenderlo (y escribirlo) como ` y ' aunque esto es claramente incorrecto según Unicode y las fuentes modernas; trátalo como una peculiaridad de esas fuentes.

Bonificación: si solo quieres usar caracteres Unicode y no molestarte con los viejos trucos para lograr cosas como comillas dobles y guiones usando ligaduras de caracteres ASCII, puedes usar un motor Unicode como XeTeX o LuaTeX. Aquí hay un archivo que funciona para el ejemplo aquí; compilar con xetexo luatex:

\tracinglostchars=2
% \input luaotfload.sty % Uncomment this line if using LuaTeX
\font\tenrm="[lmroman10-regular]" at 10pt
\rm
Alice said, “I always use an en-dash instead of a hyphen when specifying 
page numbers like ‘480–491’ in a bibliography.”
\bye

(Por supuesto, entonces debes recordar usar un guión final en lugar de un guión, y también al editar el archivo de entrada usar una fuente en la que puedas notar fácilmente la diferencia).

información relacionada