스타일 세트에서 잘못된 문자 변형 선택 수정

스타일 세트에서 잘못된 문자 변형 선택 수정

XeLaTeX를 사용하여 독일어 검정 글자로 문서를 조판하고 있는데 더 나은 단어를 찾기 위해 특이한 오류를 발견했습니다.

스크린샷

그 위치에서는 하이픈 넣기 자체가 괜찮습니다. 그러나 독일어 검은 글자 조판 규칙에서는 하이픈 앞에 긴 ſ가 필요합니다.

내가 사용하고 있는 글꼴은 어떤 글꼴이 무엇인지 잘 식별하는 스타일 세트를 제공합니다.에스머물러야 해에스그리고 그것은ſ. 그러나 분명히 이 스타일 세트는 다음까지 적용되지 않습니다.~ 후에 TeX는 문제의 단어에 하이픈 넣기를 완료했습니다. 왜냐하면 표시된 단어에 하이픈이 없으면 다음과 같이 올바르게 렌더링되기 때문입니다.flüſſige.

나는 그것을 우회하는 방법에 대해 다음과 같은 생각을 가지고 있었습니다.

  • 사이에 ZWJ 추가에스예 ( \char"200D)
  • 앞에 ZWNJ 추가에스예 ( \char"200C)
  • 추가 "|(에서 정의된 합자 분리기 polyglossia) 또는\/

처음 두 경우에서는 하이픈 넣기가 완전히 억제됩니다(그러나 잘못 선택된 다른 s 변형을 확인하면 아무 일도 일어나지 않았음을 확인할 수 있는 것 같습니다). 물론 세 번째 경우에는 중단점이 추가되어 잘못된 하이픈 연결이 발생합니다.

TeX가 올바른 결과를 렌더링하도록 강제하는 옵션이 있습니까?에스일반 텍스트로 입력하지 않고 글리프를 사용하시겠습니까? 다음과 같은 것 :

  • 올바른 결과를 유도하는 내용을 포함하는 두 문자 시퀀스를 읽도록 하이픈 문자를 수정합니다.에스? (아마도이 질문에 대한 답변그리고이 질문에 대한 누락된 답변
  • 글꼴의 스타일 세트에 의해 제대로 렌더링되지 않는 특별한 경우만 캡처하도록 설계된 추가 글리프 선택 메커니즘을 추가하시겠습니까?

글꼴은UnifrakturMaguntia다운로드를 포함한 모든 정보는 해당 사이트에서 확인할 수 있습니다.소스포지 페이지.


참고로:문서(31페이지, 독일어)다음을 의미한다.에스이후다른 캐릭터그리고 다른 것보다 먼저에스다음과 같이 렌더링되다ſ. 이제 TeX가 표시할 수 없는 문자를 어떻게든 억제하는지 아니면 글꼴 측의 오류인지 확실하지 않습니다. 전자의 경우, 먹어치워지지 않는 너비가 0인 문자가 있습니까?


코드의 중요한 부분:

\documentclass[12pt,a4paper,twoside]{scrreport}
\usepackage{amsmath}
\usepackage{mathspec}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true,spelling=new,script=fraktur]{german}

\setmainfont[Mapping=tex-text,StylisticSet=11]{UnifrakturMaguntia}

\makeatletter
\begingroup\lccode`~=`"
\lowercase{\endgroup
    \everymath{\let~\eu@active@quote}
    \everydisplay{\let~\eu@active@quote}
}
\makeatother % This code is included to keep German TeX ligatures such as
%            % "~ active, despite amsmath package.

\newcommand\zwj{\char"200D} % defines \zwj as zero-width joiner
\newcommand\zwnj{\char"200C} % defines \zwnj as zero-width non-joiner

\begin{document}
Einfüllung mit dem Laufmittelgemisch aufgeschlämmt und unter Stickstoffüberdruck gepackt. Flüssige
und ölige Proben wurden in wenig Laufmittelgemisch angelöst und mit einer Pasteurpipette vorsichtig auf die
Silicaschicht aufgetragen. Feststoffe, die sich nicht in wenig Laufmittelgemisch lösen ließen, wurden mit einem
passenden Lösungsmittel gelöst, mit Kieselgel versetzt, das Lösungsmittel am Rotationsverdampfer entfernt und


\noindent (Think of the same text repeating) Flüs\zwj sige (etc.)

\noindent (Think of the same text repeating) Flü\zwnj ssige (etc.)

\noindent (Think of the same text repeating) Flü"|ssige (etc.)


\end{document}

내 실제 문서에는 더 많은 내용이 있습니다. 방금 잘못된 사실을 깨달았습니다.에스그 위치의 하이픈 앞에 있으므로 실험을 통해 여기에 적어둔 텍스트 줄만 추가하면 재현할 수 있다는 것을 알았습니다. 하이픈 넣기를 강제하기 위해 열을 더 작게 만드는 방법을 모르겠습니다(그래도 많은 테스트에 도움이 됩니다).

관련 정보