Babel bricht Bemerkungen
Aus irgendeinem Grund funktioniert dies nicht:
\documentclass{article}
\usepackage[english,hebrew]{babel}
\usepackage{amsthm}
\newtheorem*{remark}{Remark}
\begin{document}
\begin{remark}
remark
\end{remark}
\end{document}
wegen eines "Missing {insert".
Aber wenn ich diese Zeile entferne, wird \usepackage[english,hebrew]{babel}sie normal kompiliert.
Wie kann ich beide babelund verwenden remark?
Antworten
Folgendes hat für mich in LuaLaTeX funktioniert.
\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}
In diesem Beispiel habe ich Kursivschrift in David CLM deaktiviert, da sie sich nicht gut mit Kursivschrift mischen lässt, die in die entgegengesetzte Richtung geneigt ist. Sie können sie jedoch aktivieren oder sogar ein FakeSlantto hinzufügen ItalicFeatures, um Kursivschrift von links nach rechts zu erhalten.
Sie können die onchar=Sprachoptionen entfernen . Sie müssten dann Ihre Sprachen überall mit \begin{english}oder \texthebrewkennzeichnen, anstatt dass LuaLaTeX sie automatisch erkennt. Sie erhalten jedoch die richtige Formatierung, wenn Sie vollständige Absätze in Englisch schreiben.
Ich bin mir nicht sicher, aber ich würde sagen, dass ein Fehler vorliegt amsthm. Versuchen Sie es mit der folgenden Neudefinition, nachdem Sie dieses Paket geladen haben:
\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