Corrigindo escolha errada de variante de personagem de um conjunto estilístico

Corrigindo escolha errada de variante de personagem de um conjunto estilístico

Estou compondo um documento em letra preta alemã com XeLaTeX e me deparei com um erro peculiar - por falta de uma palavra melhor:

Captura de tela

A hifenização em si está correta nessa posição. No entanto, as regras de composição de letras negras alemãs exigiriam um longo ſ antes do hífen.

A fonte que estou usando oferece um conjunto estilístico que faz um bom trabalho ao identificar quaisédeveria ficarée que deve se transformar emſ. Aparentemente, porém, este conjunto estilístico não é aplicado atédepois O TeX terminou de hifenizar a palavra em questão porque se a palavra mostrada ali não estiver hifenizada, ela será renderizada corretamente comofluido.

Eu tive os seguintes pensamentos sobre como contornar isso:

  • Adicionando um ZWJ entre oéé ( \char"200D)
  • Adicionando um ZWNJ antes doéé ( \char"200C)
  • Adicionando "|(disjuntor de ligadura conforme definido por polyglossia) ou\/

Nos dois primeiros casos, a hifenização é totalmente suprimida (mas verificando uma variante diferente mal escolhida, pareço ser capaz de confirmar que nada aconteceu). O terceiro caso, é claro, adiciona um ponto de interrupção adicional e, portanto, induz uma hifenização incorreta.

Existe alguma opção para forçar o TeX a renderizar o corretoéglifo sem inseri-lo em texto simples? Algo como:

  • modificando o caractere de hipenação para ler uma sequência de dois caracteres incluindo algo que induza o corretoé? (improvável dorespostas para esta perguntaeas respostas que faltam para esta pergunta
  • Adicionando algum mecanismo adicional de escolha de glifos projetado para capturar apenas casos especiais não renderizados adequadamente pelo conjunto estilístico da fonte?

A fonte éUnifraktur Maguntiae todas as informações sobre ele, incluindo downloads, podem ser encontradas em seuPágina do SourceForge.


Numa nota lateral: Odocumentação (página 31; em alemão)implica que umédepois de umoutro personageme precedendo outroéser renderizado comoſ. Agora não tenho certeza se o TeX de alguma forma suprime os caracteres não exibíveis ou se isso é um erro do lado da fonte. No primeiro caso, existe algum caractere de largura zero que não será engolido?


A parte importante do código:

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

Há mais no meu documento real. Acabei de perceber o incorretoéantes do hífen naquela posição, então experimentei e descobri que poderia reproduzi-lo adicionando pelo menos as linhas de texto que escrevi aqui. Não tenho ideia de como diminuir as colunas para forçar a hifenização (isso ajudaria muito nos testes).

informação relacionada