我遇到了一个错误:当我想在编写的\llbracket
某些代码中同时使用 stmaryrd for 和法语 babel时,编译永远不会结束。在我的本地机器和 Overleaf 上都出现了这种情况。book
以下是一些 MWE:
\documentclass{book}
%General setup
\usepackage[margin=2.5cm]{geometry}
\usepackage{graphicx}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{enumitem}
\usepackage{commath}
\usepackage{stmaryrd}
\usepackage{import}
%Custom style
\renewcommand{\partname}{Partie}
\renewcommand{\contentsname}{Sommaire}
\renewcommand{\chaptername}{Thème}
\setcounter{tocdepth}{4}
\setcounter{secnumdepth}{4}
\usepackage{hyperref}
\makeatletter
\@addtoreset{chapter}{part}
\makeatother
\usepackage[frenchb]{babel}
\title{My title}
\date{Today}
\author{Kal}
\begin{document}
\maketitle
\newpage
\begin{center}\Large
\textit{Préambule}
\end{center}
\bigskip
\begin{equation*}
\forall k \in \llbracket 1 : N \rrbracket, \: i_k = \frac{G_k}{\sum\limits_{l=1}^N G_l} i
\end{equation*}
\end{document}
我尝试了所有方法,唯一能告诉你的是,在 MWE 上注释 babel import 可以解决问题并使其编译。但是,我无法在整个文档中执行此操作。我真的被困住了,尤其是没有任何错误消息......
答案1
正如 Ulrike 所指出的,这不是stmaryrd
和之间的冲突babel-french
,而是commath
和之间的冲突babel-french
。参见
commath 和 babel 包不兼容
使commath
冒号处于活动状态,这与babel-french
使其处于活动状态相冲突。由于commath
似乎没有维护(上次更新于 2006 年),我建议注释掉 中的第 281-286 行commath.sty
。如果:=
需要在数学模式下进行修补(这是唯一目的除了使结肠活跃之外,还有其他选择(mathtools.sty
fi)。
一个更简洁的解决方案是从中挑选出您真正需要的命令commath.sty
,将它们添加到您的序言中(或个人样式文件)并放弃对的调用commath.sty
。
顺便说一句,我建议\usepackage[T1]{fontenc}
按照建议添加babel-french
并\usepackage{lmodern}
获取拉丁现代字体而不是“cm-super”字体。