Testes adicionais mostraram que o funcionamento pretendido estava sendo confundido ao desligar XeTeXuseglyphmetrics. Estou considerando isso um bug e, infelizmente, as pessoas provavelmente estão acostumadas com isso, já que XeTeXuseglyphmetrics normalmente era desligado pelo código python. Ao corrigir isso, também corrigi o valor negativo parcialmente implementado = posição absoluta.
Valor padrão pretendido: \def\UnderlineLower{0.2em}

Comportamento antigo, com bug \def\UnderlineLower{0.2em}

Nova posição absoluta: \def\UnderlineLower{-0.2em)

Definido como zero:

Definido como -0.1:

Minha sugestão para a dica (tooltip):
Isto define o quão longe (em ems) o sublinhado está abaixo do texto
e em relação a o quê. Se for positivo ou zero, é a distância
abaixo da parte inferior de quaisquer descendentes. Se for negativo,
é a distância abaixo da linha de base. Não há (mais) maneira
de usar o sublinhado para riscar o texto.
Further testing has shown that the intended functioning was getting confused by switching off XeTeXuseglyphmetrics. I’m considering this a bug, and unfortunately people are probably used to it, since XeTeXuseglyphmetrics was normally turned off by the python code. In fixing that, I’ve also fixed the partly implemented negative value = absolute position.
Intended default value:\def\UnderlineLower{0.2em}

Old, buggy behaviour \def\UnderlineLower{0.2em}

New absolute position: \def\UnderlineLower{-0.2em)

Set to zero:

Set to -0.1:

My suggestion for a tooltip:
This sets how far (in ems) underline is below the text
and what it is relative to. If positive or zero, it is the distance
below the bottom of any descenders. If negative,
it is the distance below the baseline. There is (now) no way
to use underlining to cross out text.
Tradução automática de English