\noindent는 bidi 마커로 둘러싸인 경우 효과가 없습니다.

\noindent는 bidi 마커로 둘러싸인 경우 효과가 없습니다.

xelatex다음 LaTeX 원고에서 얻은 PDF에서 (히브리어) 텍스트의 첫 번째 줄을 들여쓰기 하는 이유는 무엇입니까 ?

\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}

조판 출력:

조판 pdf에는 들여쓰기된 첫 번째 줄이 표시됩니다.

보이지 않는 bidi(양방향성) 마커에 대한 참고 사항

\noindent모든 히브리어 본문 앞에 나타납니다. 이 곳은 \noindent비디 마커로 둘러싸여 있습니다. 바로 앞에는 유니코드 오른쪽에서 왼쪽 표시(U+200F)와 왼쪽에서 오른쪽 임베딩(U+202A)이라는 두 개의 마커가 순서대로 옵니다. 바로 뒤에는 Pop Directional Formatting(U+202C) 마커가 옵니다. 따라서 문자 순서는 왼쪽에서 오른쪽으로 다음과 같습니다.

U+200F, U+202A, \, n, o, i, n, d, e, n, t, U+202C, U+0020 (a space), <Hebrew text>

이를 시각화하는 데 도움이 되도록 다음 그림을 활용하십시오.

전설
⊳ ... 오른쪽에서 왼쪽으로 표시, U+200F(rtl 단락 내에서 ⊲로 조판)
⋉ ... 왼쪽에서 오른쪽으로 삽입, U+202A
⋈ ... 팝 방향 서식, U+202C

이러한 각 기호는 편집기 창에서 조판되었습니다.~ 후에그것이 나타내는 명령이 적용되었습니다.

양방향 텍스트

답변1

문제는 문단 시작 부분에 U+200F를 넣는 것입니다. 이는 catcode 12 토큰인 'other'이므로 단락을 시작하여 단락 들여쓰기 및 의 삽입을 트리거합니다 \everypar. 인쇄되지 않는다는 사실은 TeX에 아무런 차이가 없습니다. 따라서 \noindent단락이 시작된 후에 발생하며 전혀 아무 작업도 수행하지 않습니다.

(문서 시작 부분의 catcode 설정은 8198 = U+2006= SIX-PER-EM SPACE및 8199 = U+2007= 처럼 의도한 것이 아닐 가능성이 높습니다 FIGURE SPACE.)

답변2

일반적으로 유니코드 방향 컨트롤에 catcode 10을 지정하는 것은 옳지 않습니다. 그러면 형식을 제어할 수 없고 비정상적인 공간이 생성되기 때문입니다.

문자열을 고려하십시오

abc‮xyz‬123

그건

  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

기본 catcode(12= "other")로 설정된 경우

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arial}
%\catcode"202E=10
%\catcode"202C=10
\begin{document}

abc‮xyz‬123
\end{document}

생산하다

여기에 이미지 설명을 입력하세요

브라우저의 표시와 일치하는 지정된 순서는 무엇입니까? 그러나 컨트롤을 catcode 10으로 만들기 위해 선언의 주석 처리를 해제하면 다음과 같은 결과가 나타납니다.

여기에 이미지 설명을 입력하세요

방향 변화가 없고 가짜 공간이 있습니다.

관련 정보