Бабель нарушает замечания
По какой-то причине это не работает:
\documentclass{article}
\usepackage[english,hebrew]{babel}
\usepackage{amsthm}
\newtheorem*{remark}{Remark}
\begin{document}
\begin{remark}
remark
\end{remark}
\end{document}
из-за "Отсутствует {вставлен."
Но если я удалю эту строку: \usepackage[english,hebrew]{babel}она компилируется нормально.
Как я могу использовать и babelи remark?
Ответы
В LuaLaTeX у меня работало следующее.
\documentclass{article}
\tracinglostchars=2
\usepackage{unicode-math}
\usepackage[bidi=basic]{babel}
\babelprovide[import,main, onchar=ids fonts]{hebrew}
\babelprovide[onchar=ids fonts]{english}
\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX, Renderer=HarfBuzz }
\babelfont{rm}
[Ligatures=Common,Scale=1.0]{TeX Gyre Schola}
\babelfont[hebrew]{rm}
[Ligatures=Discretionary,
Language=Default,
UprightFont=*-Medium ,
BoldFont=*-Bold ,
ItalicFont=*-Medium , % Intentionally disable italics, which slant the opposite way.
BoldItalicFont=*-Bold]{DavidCLM}
\babelfont{sf}
[Ligatures=Common]{TeX Gyre Heros}
\babelfont[hebrew]{sf}
[Ligatures=Discretionary,Language=Default]{Miriam CLM}
\babelfont{tt}
{inconsolata}
\babelfont[hebrew]{tt}
[Language=Default]{Miriam Mono CLM}
\setmathfont{TeX Gyre Schola Math}
\babeltags{hebrew=hebrew}
\babeltags{english=english}
\usepackage{amsthm}
\newtheorem*{remark}{Remark}
\begin{document}
\begin{english}
\begin{remark}
remark בעברית
\end{remark}
\end{english}
\end{document}
В этом примере я отключил курсив в David CLM, потому что он плохо сочетается с курсивом, имеющим противоположный наклон, но вы можете включить их или даже добавить, FakeSlantчтобы ItalicFeaturesкурсив был слева направо.
Вы можете удалить onchar=языковые параметры. Тогда вам придется помечать свои языки везде с помощью \begin{english}или \texthebrewвместо того, чтобы LuaLaTeX автоматически определял их. Однако вы получите правильное форматирование, если будете писать полные абзацы на английском языке.
Я не уверен, но я бы сказал, что в нем есть ошибка amsthm. Попробуйте выполнить следующее переопределение после загрузки этого пакета:
\makeatletter
\def\deferred@thm@head#1{%
\if@inlabel \indent \par \fi % eject a section head if one is pending
\if@nobreak
\adjust@parskip@nobreak
\else
\addpenalty\@beginparpenalty
\addvspace\@topsep
\addvspace{-\parskip}%
\fi
\global\@inlabeltrue
\everypar{\the\dth@everypar}% <<<<<<<<<< Changed
\sbox\@labels{\normalfont#1}%
\ignorespaces
}
\makeatother