
Вот MWE:
\documentclass[a4paper,11pt]{article}
\usepackage{polyglossia}
\usepackage[normalem]{ulem}
\defaultfontfeatures{Ligatures=TeX}
\setmainlanguage{magyar}
\usepackage{color}
\usepackage{soul}
\begin{document}
árvíztűrő tükörfórógép
ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP
\hl{árvíztűrő tükörfórógép}
\hl{ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP}
\end{document}
Вот несколько интересных сообщений из журнала:
Missing character: There is no ű in font ectt1000!
Missing character: There is no ő in font ectt1000!
Missing character: There is no ű in font ectt1000!
Missing character: There is no Ű in font ectt1000!
Missing character: There is no Ő in font ectt1000!
Missing character: There is no Ű in font ectt1000!
Я не уверен, почему он жалуется на шрифт ectt1000. Ясно видно, что выделенный текст и обычный текст используют один и тот же шрифт. Я не вижу никаких сообщений об ошибках в журнале. (И предупреждений — но такой тип неправильной визуализации определенно должен выдавать ошибку!)
Вот что получилось:
решение1
Поскольку вы используете xelatex/lualatex, вам нужен шрифт пишущей машинки открытого типа, который содержит все глифы. Также необходимо сбросить ширину дефиса по умолчанию на этот шрифт. В вашем примере вы можете использовать Latin Modern Mono, но если у вас есть другие скрипты, вам, возможно, понадобится другой.
\documentclass[a4paper,11pt]{article}
\usepackage{fontspec}
\usepackage{color}
\usepackage{soul}
\makeatletter
\font\SOUL@tt="LMMono10-Regular"
\setbox\z@\hbox{\SOUL@tt-}
\SOUL@ttwidth\wd\z@ %reset default width of -
\makeatother
\begin{document}
árvíztűrő tükörfórógép
ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP
\hl{árvíztűrő tükörfórógép}
\hl{ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP}
\end{document}