
¿Por qué se xelatex
sangra la primera línea del texto (hebreo) en el pdf obtenido del siguiente manuscrito de LaTeX?
\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}
La salida tipográfica:
Una nota sobre los marcadores bidi (bidireccionales) invisibles
El \noindent
aparece antes de todo el texto hebreo. Está \noindent
rodeado de marcadores bidi. Está inmediatamente precedido por dos marcadores: marca Unicode de derecha a izquierda (U+200F) e incrustación de izquierda a derecha (U+202A), en este orden; e inmediatamente seguido de un marcador de formato direccional pop (U+202C). Entonces el orden de los caracteres es, de izquierda a derecha:
U+200F, U+202A, \, n, o, i, n, d, e, n, t, U+202C, U+0020 (a space), <Hebrew text>
Para ayudar a visualizar esto, aprovechen la siguiente ilustración.
Leyenda
⊳ ... Marca de derecha a izquierda, U+200F (compuesto como ⊲ dentro de un párrafo rtl)
⋉ ... Incrustación de izquierda a derecha, U+202A
⋈ ... Formato direccional pop, U+202C
Cada uno de estos símbolos fue escrito en la ventana del editor.despuésla instrucción que representa ha entrado en vigor.
Respuesta1
Tu problema es poner U+200F al comienzo de tu párrafo. Se trata de un token catcode 12: 'otro', por lo que comienza un párrafo, lo que activa la inserción de la sangría del párrafo y \everypar
. El hecho de que no sea imprimible no supone ninguna diferencia para TeX. Por \noindent
lo tanto, ocurre después de que el párrafo ha comenzado y no hace nada en absoluto.
(La configuración del código cat al comienzo del documento probablemente no sea tan prevista como 8198 = U+2006
= SIX-PER-EM SPACE
y 8199 = U+2007
= FIGURE SPACE
).
Respuesta2
En general, no es correcto dar a los controles direccionales Unicode el código catcode 10, ya que entonces no pueden controlar el formato y producirán espacios anómalos.
Considere la cuerda
abcxyz123
Eso es
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
Si se configura con los códigos de gato predeterminados (12 = "otro"), entonces
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arial}
%\catcode"202E=10
%\catcode"202C=10
\begin{document}
abcxyz123
\end{document}
produce
Cuál es el orden especificado, que coincide con la visualización en el navegador, pero si quita el comentario de las declaraciones para hacer que los controles sean catcode 10, obtendrá
sin cambio de dirección y con espacio espurio.