Von pdftex ignorierte Zitate

Von pdftex ignorierte Zitate

Ich lese das TeXBook von Donald Knuth, Übung 2.1. Ich habe folgende Eingabe:

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

Das Kompilieren mit pdftex sample.texergibt die folgende Ausgabe. Der Halbgeviertstrich funktioniert, aber wo sind die Anführungszeichen geblieben?

Bildbeschreibung hier eingeben

Antwort1

Anstelle der Anführungszeichen verwenden ‘‘Sie

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

Bildbeschreibung hier eingeben

Antwort2

Wenn Sie sich den Quellcode des TeXbooks ansehen, derverfügbar auf CTAN, sehen Sie

\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."|)

Wenn Sie mit pdftexdem Code kompilieren

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

dann kopieren und einfügen aus dem PDF, erhalten Sie

Alice sagte: „Ich verwende bei der Angabe von Seitenzahlen in einer Bibliografie wie ‚480–491‘ immer einen Halbgeviertstrich statt eines Bindestrichs.“

weil PDF-Reader intelligent genug sind.

Sie sollten jedoch nicht ‘‘und verwenden ’’, da die Zeichen in den Codeausschnitten im TeXbook eigentlich für

`` ''

Bedenken Sie, dass TeX nur 7-Bit-ASCII-Zeichen verwendet, während und in keiner Kodierung in diesem Bereich liegen.

Antwort3

Wenn TeX undDas TeXbookAls Computer und Software geschrieben wurden, unterschieden sie sich in zweierlei Hinsicht von heute:

  1. Jeder Computer / jedes Betriebssystem hatte weniger Zeichen (normalerweise höchstens 256) als die gesamte heute verfügbare Unicode-Palette; insbesondere waren die von Ihnen eingegebenen Anführungszeichen, nämlich ' (U+‎2018 LINKES EINZELNES ANFÜHRUNGSZEICHEN) und ' (‎U+2019 RECHTES EINZELNES ANFÜHRUNGSZEICHEN), nicht in ihren Zeichensätzen enthalten.

  2. Stattdessen verwendeten einige Systeme, darunter auch die, mit denen Knuth vertraut war, die Positionen, die derzeit von ` (U+0060 GRAVE ACCENT) und ' (U+0027 APOSTROPHE) besetzt sind, für Zeichen, die früher optisch symmetrisch erschienen und denselben Zweck erfüllten. Diese Geschichte wird auf der Seite gut erklärtASCII- und Unicode-Anführungszeichenvon Markus Kuhn (scrollen Sie nach unten zu "Das Problem") und auch imUpquote-Paket.

Entsprechend ergibt sich:

  1. Wenn Sie Nicht-ASCII-Zeichen in TeX eingeben, wird es diese missverstehen und (meiner Meinung nach ein schwerwiegender Designfehler) sich nicht einmal lautstark beschweren: Sie müssen in der .logDatei nachsehen. Um zu vermeiden, dass dies versehentlich passiert,

    • Setzen Sie es \tracinglostchars=2an den Anfang aller Dateien (und verwenden Sie eine von eTeX abgeleitete Engine; die von pdftexIhnen verwendete ist ausreichend) und/oder

    • Schauen Sie immer in die .logDatei, wenn TeX sagt „(weitere Informationen finden Sie in der Transkriptdatei)“.

  2. Wenn Sie sehen, was wie geschweifte Anführungszeichen aussieht inDas TeXbook, sollten Sie es als „ und “ verstehen (und eingeben), obwohl dies laut Unicode und modernen Schriftarten eindeutig falsch ist – behandeln Sie es als eine Eigenart dieser Schriftarten.

Bonus: Wenn Sie nur Unicode-Zeichen verwenden und sich nicht mit den alten Hacks herumschlagen möchten, um Dinge wie Anführungszeichen und Halbgeviertstriche mit Ligaturen aus ASCII-Zeichen zu erreichen, können Sie eine Unicode-Engine wie XeTeX oder LuaTeX verwenden. Hier ist eine Datei, die für das Beispiel hier funktioniert; kompilieren Sie mit xetexoder 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

(Natürlich müssen Sie dann daran denken, einen Halbgeviertstrich statt eines Bindestrichs zu verwenden und beim Bearbeiten der Eingabedatei eine Schriftart nutzen, bei der Sie den Unterschied leicht erkennen können.)

verwandte Informationen