![Проблемы с LuaLaTeX и объединением символов](https://rvso.com/image/335505/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B%20%D1%81%20LuaLaTeX%20%D0%B8%20%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2.png)
Проект, над которым я работаю, требует использования несколько необычного символа, m̊. В отличие, скажем, от «a с кольцом», как в шведском языке, в Unicode не существует предварительно комбинированной формы этой буквы, ее можно создать только с помощью комбинирования символов. Однако заставить это работать с LuaLaTeX было упражнением в разочаровании.
Для справки, вот пример кода, вызывающего проблему:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Charis SIL}
\begin{document}
\r{m}abcdefgh
\end{document}
При попытке скомпилировать этот код с помощью LuaLaTeX возникает следующая ошибка:
("C:/Program Files (x86)/MiKTeX 2.9/tex/generic/oberdiek/ifluatex.sty"))))
("C:/Program Files (x86)/MiKTeX 2.9/tex/generic/oberdiek/pdftexcmds.sty"
("C:/Program Files (x86)/MiKTeX 2.9/tex/generic/oberdiek/ifpdf.sty")
("C:/Program Files (x86)/MiKTeX 2.9/tex/generic/oberdiek/luatex-loader.sty"
(C:/Program Files (x86)/MiKTeX 2.9/scripts/oberdiek/oberdiek.luatex.lua))))error: ...KTeX 2.9/tex/luatex/luaotfload/fontloader-2016-04-27.lua:13071: attempt to index local 'i' (a nil value)
.
l.9
Теперь несколько вещей, которые следует отметить. Во-первых, если я оставлю основной шрифт по умолчанию, то проблемы не будет: m̊ отображается нормально с Latin Modern. Ну, я говорю хорошо, расположение кольца не то, и выглядит плохо. Кроме того, в Latin Modern отсутствуют некоторые другие символы, которые мне нужны для моего проекта, так что это не совсем вариант. Теперь, это могло бы заставить меня сделать вывод, что виноват шрифт Charis SIL, но на самом деле компиляция этого же самого кода с помощью XeLaTeX работает нормально и выдает ожидаемый результат:
Я пришел к выводу, что проблема как-то связана с кернингом или чем-то в этом роде. Причина в том, что проблема, похоже, возникает только после того, как количество символов в абзаце (или блоке? Я не уверен в правильной терминологии) превышает определенное количество. Например, следующее прекрасно компилируется:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Charis SIL}
\begin{document}
\r{m}abcdefg
\end{document}
Как вы можете видеть, единственное отличие здесь в том, что я удалил финал h
. Дополнительным подтверждением этой гипотезы является тот факт, что следующее также работает:
\r{m}abcdefg
Lorem Ipsum
В любом случае, я совершенно не знаю, что делать. К сожалению, переход на XeTeX не является вариантом для этого проекта.