スタイルセットからの文字異形の誤った選択を修正する

スタイルセットからの文字異形の誤った選択を修正する

XeLaTeX を使用してドイツ語のブラックレターで文書をタイプセットしているときに、奇妙な(適切な言葉が見つからないのですが)エラーが発生しました。

スクリーンショット

ハイフン自体はその位置では問題ありません。ただし、ドイツのブラックレターの組版規則では、ハイフンの前に長い ſ が必要です。

私が使用しているフォントは、どのフォントがs残るべきsそしてそれはſしかし、どうやらこの文体セットは、 TeXは問題の単語のハイフン付けを終了しました。なぜなら、そこに表示されている単語がハイフン付けされていない場合、次のように正しく表示されるからです。飛ぶ

それを回避する方法について、私は次のように考えました。

  • ZWJをses(\char"200D
  • ZWNJを前に追加すると、ses(\char"200C
  • "|( で定義された合字ブレーカー)を追加するpolyglossiaか、\/

最初の 2 つのケースでは、ハイフネーションは完全に抑制されます (ただし、別の誤って選択された s バリアントをチェックすると、何も起こらなかったことが確認できるようです)。もちろん、3 番目のケースでは、追加のブレーク ポイントが追加され、誤ったハイフネーションが発生します。

TeXに正しいレンダリングを強制するオプションはありますか?sプレーンテキストで入力せずにグリフを表示するにはどうすればよいでしょうか? 次のようになります:

  • ハイフネーション文字を変更して、正しいものを誘導する何かを含む2文字のシーケンスを読み取るs? (可能性は低いこの質問に対する答えそしてこの質問に対する答えが見つからない
  • フォントのスタイル セットによって適切にレンダリングされない特殊なケースのみをキャプチャするように設計された追加のグリフ選択メカニズムを追加しますか?

フォントはユニフラクトゥールマグンティアダウンロードを含むすべての情報は、Sourceforge ページ


余談ですが、ドキュメント(31ページ;ドイツ語)は、sその他の文字そしてもう一つのsとして表現されるſ今のところ、TeX が何らかの方法で表示できない文字を抑制しているのか、それともフォント側のエラーなのかはわかりません。前者の場合、無視されないゼロ幅文字はありますか?


コードの重要な部分:

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

実際の文書にはもっと多くのことが書かれています。sその位置のハイフンの前にあるので、実験してみたところ、少なくともここに書き留めたテキスト行を追加することで再現できることが分かりました。列を小さくしてハイフン付けを強制する方法がわかりません (ただし、テストには大いに役立ちます)。

関連情報