
Warum wird xelatex
die erste Zeile des (hebräischen) Textes in der PDF-Datei, die aus dem folgenden LaTeX-Manuskript stammt, eingerückt?
\documentclass{scrartcl}
\catcode8198=10 % Left-To-Right Mark
\catcode8199=10 % Right-To-Left Mark
\catcode8234=10 % Left-To-Right Embedding
\catcode8235=10 % Right-To-Left Embedding
\catcode8236=10 % Pop Directional Formatting
\usepackage{fontspec}
\setmainfont{Arial Hebrew}
\usepackage[rldocument]{bidi}
\begin{document}
\setRTL
\noindent פְּרֶצְל מנסה לישון, על מנת להחיש את מהלך הזמן. אדם הולך לו לישון בשתים-עשרה, קם כעבור רגע, והנה השעה שבע בבוקר, ומתברר שהוא השתמש בשינה בתור סוס, לדלג על שבע שעות. תחבולה זו ידועה היטב לטבע. מה עושה הטבע נגדה? נותן לפרש הערמומי להירדם בשתים-עשרה, מציף אותו בהרבה סיוטים, וכשהפרש קם תשוש ומזיע ואומר לעצמו בחצי סיפוק "לפחות עברו שבע שעות," מייד קופץ שעונו ומורה שתים-עשרה ורבע. גם לא ישנת, בסיוטים סוייטת, וכל הלילה עוד לפניך.
\end{document}
Die gesetzte Ausgabe:
Ein Hinweis zu unsichtbaren Bidi-Markern (Bidirektionalität)
Das \noindent
erscheint vor dem gesamten hebräischen Text. Das \noindent
ist von Bidi-Markierungen umgeben. Unmittelbar davor stehen zwei Markierungen: Unicode-Markierung von rechts nach links (U+200F) und Einbettung von links nach rechts (U+202A), in dieser Reihenfolge; unmittelbar dahinter folgt eine Markierung für Pop Directional Formatting (U+202C). Die Zeichenreihenfolge ist also von links nach rechts:
U+200F, U+202A, \, n, o, i, n, d, e, n, t, U+202C, U+0020 (a space), <Hebrew text>
Zur Veranschaulichung können Sie sich die folgende Abbildung zunutze machen.
Legende
⊳ ... Rechts-nach-links-Markierung, U+200F (als ⊲ innerhalb eines RTL-Absatzes gesetzt)
⋉ ... Links-nach-rechts-Einbettung, U+202A
⋈ ... Pop-Richtungsformatierung, U+202C
Jedes dieser Symbole wurde im Editorfenster gesetztnachdie Anweisung, die es darstellt, ist wirksam geworden.
Antwort1
Ihr Problem besteht darin, U+200F am Anfang Ihres Absatzes zu platzieren. Das ist ein Catcode-12-Token: „other“, und startet damit einen Absatz, was das Einfügen des Absatzeinzugs und auslöst \everypar
. Die Tatsache, dass es nicht druckbar ist, macht für TeX keinen Unterschied. Das \noindent
tritt daher auf, nachdem der Absatz begonnen hat, und bewirkt überhaupt nichts.
(Die Catcode-Einstellung am Anfang des Dokuments ist wahrscheinlich nicht wie beabsichtigt, da 8198 = U+2006
= SIX-PER-EM SPACE
und 8199 = U+2007
= FIGURE SPACE
.)
Antwort2
Es ist im Allgemeinen nicht richtig, den Unicode-Richtungssteuerungen den Catcode 10 zu geben, da sie dann die Formatierung nicht steuern können und anormale Leerzeichen erzeugen.
Betrachten Sie die Zeichenfolge
abcxyz123
Das ist
U+0061 LATIN SMALL LETTER A a
U+0062 LATIN SMALL LETTER B b
U+0063 LATIN SMALL LETTER C c
U+202e RIGHT-TO-LEFT OVERRIDE
U+0078 LATIN SMALL LETTER X x
U+0079 LATIN SMALL LETTER Y y
U+007a LATIN SMALL LETTER Z z
U+202c POP DIRECTIONAL FORMATTING
U+0031 DIGIT ONE 1
U+0032 DIGIT TWO 2
U+0033 DIGIT THREE 3
Wenn die Standard-Catcodes (12 = "andere") verwendet werden, dann
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arial}
%\catcode"202E=10
%\catcode"202C=10
\begin{document}
abcxyz123
\end{document}
produziert
Das ist die angegebene Reihenfolge, die der Anzeige im Browser entspricht. Wenn Sie jedoch die Deklarationen auskommentieren, um den Steuerelementen den Catcode 10 zu geben, erhalten Sie
ohne Richtungsänderung und mit unechtem Raum.