Babel brise les remarques
Pour une raison quelconque, cela ne fonctionne pas:
\documentclass{article}
\usepackage[english,hebrew]{babel}
\usepackage{amsthm}
\newtheorem*{remark}{Remark}
\begin{document}
\begin{remark}
remark
\end{remark}
\end{document}
en raison d'un "manquant {inséré."
Mais si je supprime cette ligne: \usepackage[english,hebrew]{babel}elle compile normalement.
Comment puis-je utiliser à la fois babelet remark?
Réponses
Ce qui suit a fonctionné pour moi dans 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}
Dans cet exemple, j'ai désactivé les italiques dans David CLM car ils ne se mélangent pas bien avec les italiques qui s'inclinent dans le sens inverse, mais vous pouvez les activer, ou même ajouter un FakeSlantà ItalicFeaturespour obtenir des italiques de gauche à droite.
Vous pouvez supprimer les onchar=options de langue. Vous devrez alors taguer vos langues partout avec \begin{english}ou \texthebrew, au lieu de les détecter automatiquement par LuaLaTeX. Vous obtiendrez cependant une mise en forme correcte lorsque vous écrivez des paragraphes complets en anglais.
Je ne suis pas sûr, mais je dirais qu'il y a un bogue amsthm. Essayez la redéfinition suivante après avoir chargé ce package:
\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