줄 바꿈 패턴 변경

줄 바꿈 패턴 변경

필요한 경우 ZWNJ(U+200C) 문자에서 줄바꿈을 해도 괜찮다는 점을 라텍스에 알리고 싶습니다. 이를 허용하려면 줄 바꿈 패턴(하이픈 넣기)을 어떻게 변경해야 합니까?

\하이픈 넣기가 작동하지 않고 입력에 ZWNJ가 포함되어 있으면 "문자가 아님..." 오류가 발생합니다.

예(xelatex로 컴파일):

\documentclass{book}
\usepackage{xepersian}
\settextfont{XB Niloofar}
\begin{document}
شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده
\end{document}

답변1

\lccode문자에 0과 다른 값을 할당하면 하이픈 넣기 오류를 피할 수 있습니다 .

그러면 다음과 같은 것이 작동할 수 있습니다(하지만 스크립트를 읽을 수 없기 때문에 ...).

\documentclass{book}
\usepackage{xepersian}
\settextfont[HyphenChar="200B]{XB Niloofar} %don't show hyphenchar
\lccode`^^^^200c=`^^^^200c
\hyphenation{شخصی-‌-سازی-‌-شده}

\begin{document}

شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده


\end{document}

ZWJN을 하이픈 문자로 설정할 수도 있습니다.

\documentclass{book}
\usepackage{xepersian}
\settextfont[HyphenChar="200C]{XB Niloofar}

\begin{document}

شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده


\end{document}

답변2

ZWNJ에서 줄 바꿈을 허용하려면 거기에 임의 항목을 추가할 수 있으므로 "순수한" WNJ 대신 \discretionary{}{}{^^^^200c}줄 바꿈을 허용하도록 입력할 수 있습니다. 이제 전체 문서를 다시 작성하는 것은 많은 작업이 될 것이므로 ZWNJ를 활성화하고 \discretionary{}{}{^^^^200c}대체 항목으로 할당하여 ZWNJ를 발견할 때 항상 이 시퀀스를 삽입하도록 XeTeX에 지시할 수 있습니다. 패키지 newunicodechar를 사용하면 다음과 같은 작업이 쉬워집니다.

\usepackage{xepersian}
\usepackage{newunicodechar}
\settextfont{Shabnam.ttf}
\newunicodechar{^^^^200c}{\discretionary{}{}{^^^^200c}}
\begin{document}
\showthe\hyphenchar\font
شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده شخصی‌سازی‌شده
\end{document}

여기에 이미지 설명을 입력하세요 (이는 하이픈 넣기와 같이 필요하지 않지만 하이픈을 삽입하고 싶지 않은 경우 TeX이 끊어지는 것을 방지하기를 원한다고 가정합니다.)

답변3

저는 귀하의 글꼴에 접근할 수 없으므로 제가 염두에 두고 있는 것을 또 다른 유니코드 문자로 보여드리겠습니다.

tokcycle어제 출시된 새 패키지를 사용합니다 .https://www.ctan.org/pkg/tokcycle. 이와 같은 문제에서는 패키지를 LaTeX 토큰과 함께 작동하는 멋진 스트림 편집기로 생각할 수 있습니다.

여기에서는 스트림의 각 연속 토큰을 검색합니다. 지정된 유니코드 문자(여기)와 일치하면 출력 스트림에 다른 내용을 배치합니다. 첫 번째 경우에는 (Hi Mom)출력 스트림에 배치됩니다. 두 번째 경우에는 \-출력 스트림에 임의 하이픈인 a를 배치합니다.

그리고 아시다시피 tokcycle공간, 매크로 및 그룹을 적절하게 처리할 수 있을 뿐만 아니라 섹션 경계를 넘어 작업할 수도 있습니다.

\documentclass{article}
\usepackage{fontspec,tokcycle}
\setmainfont{Segoe UI Symbol}
\begin{document}
\Characterdirective{\ifx⁊#1\addcytoks{(Hi Mom)}\else\addcytoks{#1}\fi}
\tokencyclexpress vi⁊-a-viz\endtokencyclexpress

\Characterdirective{\ifx⁊#1\addcytoks{\-}\else\addcytoks{#1}\fi}
\tokencyclexpress xxxxx vi⁊antium vi⁊antium vi⁊antium vi⁊antium vi⁊antium vi⁊antium 
vi⁊antium vi⁊antium vi⁊antium vi⁊antium vi⁊antium

\section{Works across section boundaries!!}

Blah blah blah\endtokencyclexpress
\end{document}

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

관련 정보