我需要在我的文档中列出方程式。我找到并使用了 Lev Bishop 代码的修改版本这里。一切正常,直到方程式标签中出现重音。我收到此错误消息:
!TeX 容量超出,抱歉 [输入堆栈大小=5000]。
\@latex@warning #1->\GenericWarning {\space \space \space \@spaces \@spaces ...
l.38 \label{eq:方程式}
我目前在 Windows 7 上使用 TeXnicCenter,但我尝试了其他系统,它们都给出了相同的错误...您有什么解决方案吗?
Latex 中的示例
\documentclass[pdftex,a4paper,11pt,twoside]{report}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xstring}
\usepackage{tocloft}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\let\oldequation = \equation
\let\endoldequation = \endequation
\AtBeginDocument{\let\oldlabel = \label}
\newcommand{\mynewlabel}[1]{
\fullexpandarg
\StrBehind{#1}{eq:}[\Str]
\myequations{\Str}\oldlabel{#1}}
\renewenvironment{equation}{
\oldequation
\let\label\mynewlabel
}{\endoldequation}
\newcommand{\listequationsname}{Liste d'équations}
\newlistof{myequations}{equ}{\listequationsname}
\newcommand{\myequations}[1]{%
\addcontentsline{equ}{myequations{\hspace{15pt}\protect\numberline{\theequation}#1}}
\setlength{\cftmyequationsnumwidth}{3em}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\listofmyequations
\begin{equation}
2+2=4
\label{eq:équation}
\end{equation}
\end{document}
答案1
标签应仅包含 ASCII 字符,否则内部用控制序列表示的特殊字符会扩展,引用此类标签时会发现一些可怕的事情;如果您将标签更改为 equ:eqauation,去掉那个 é,一切都会顺利运行。虽然不太法语化,但确实有效;毕竟标签不应该由人读取,而应该由排版引擎读取。