Исправление неправильного выбора варианта символа из стилистического набора

Исправление неправильного выбора варианта символа из стилистического набора

Я набираю документ немецким старопечатным шрифтом с помощью XeLaTeX и наткнулся на странную — если можно так выразиться — ошибку:

Скриншот

Сам по себе перенос в этой позиции в порядке. Однако правила набора немецкого готического шрифта требуют длинного ſ перед дефисом.

Шрифт, который я использую, предлагает стилистический набор, который хорошо справляется с определением того, какойсдолжен остатьсяси который должен превратиться вſ. Однако, по-видимому, этот стилистический набор не применяется до тех пор, покапосле TeX закончил расставлять дефисы в рассматриваемом слове, поскольку если показанное там слово не расставлено дефисом, оно отображается правильно, какфлюсовый.

У меня возникли следующие мысли о том, как это обойти:

  • Добавление ZWJ междусес ( \char"200D)
  • Добавление ZWNJ передсес ( \char"200C)
  • Добавление "|(лигатурный разрыватель, как определено polyglossia) или\/

В первых двух случаях переносы подавляются полностью (но, проверив другой вариант mischosen s, я, кажется, могу подтвердить, что вообще ничего не произошло). Третий случай, конечно, добавляет дополнительную точку останова и, таким образом, вызывает неправильный перенос.

Есть ли какие-либо варианты заставить TeX отображать правильно?сглиф без ввода его в виде обычного текста? Что-то вроде:

  • изменение символа переноса для чтения двухсимвольной последовательности, включающей что-то, что вызывает правильноес? (маловероятно изответы на этот вопросинедостающие ответы на этот вопрос
  • Добавляете ли вы какой-либо дополнительный механизм выбора глифов, предназначенный только для учета особых случаев, которые не отображаются должным образом в стилистическом наборе шрифта?

ШрифтUnifrakturMaguntiaи всю информацию о нем, включая загрузки, можно найти на егоСтраница Sourceforge.


Кстати:документация (стр. 31; на немецком языке)подразумевает, чтоспоследругой персонажи предшествующий другойсбыть представлено какſ. Теперь я не уверен, подавляет ли 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}

В моем фактическом документе есть еще. Я только что понял, что неправильносперед дефисом в этой позиции, поэтому я поэкспериментировал и обнаружил, что могу воспроизвести это, добавив по крайней мере те строки текста, которые я написал здесь. Я понятия не имею, как сделать столбцы меньше, чтобы заставить расставлять переносы (хотя это очень помогло бы тестированию).

Связанный контент