Latex 中的示例

Latex 中的示例

我需要在我的文档中列出方程式。我找到并使用了 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,去掉那个 é,一切都会顺利运行。虽然不太法语化,但确实有效;毕竟标签不应该由人读取,而应该由排版引擎读取。

相关内容