命令 \example 已定义

命令 \example 已定义

我无法使用\example任何Theorems模块,因为 LaTeX 会"Command \example already defined"根据 Lyx 生成的行进行操作\newtheorem{example}[thm]{\protect\examplename}。我在 Mac 上使用 Lyx 2.2.2。有什么方法可以解决这个问题吗?

答案1

如果你使用纸质版(标准级)文档类以及定理(AMS)模块,后者定义了example与文档类冲突的环境(因为它已经定义)。

不幸的是,它无助于在文档 > 设置... > LaTeX 序言中放置任何更正,因为用户指定的 LaTeX 命令部分(其中包含您在序言中放置的任何内容)仅插入

\newtheorem{example}[thm]{\protect\examplename}

为了解决这个问题,您必须通过本地布局解决特定于模块的定义:

Format 60
Style Example
    CopyStyle             Definition
    LatexName             example
    LabelString           "Example \thetheorem."
    Preamble
      \theoremstyle{definition}
      \let\example\relax% Remove any existing example functionality
      \newtheorem{example}[thm]{\protect\examplename}
    EndPreamble
    LangPreamble
      \providecommand{\examplename}{_(Example)}
    EndLangPreamble
    BabelPreamble
      \addto\captions$$lang{\renewcommand{\examplename}{_(Example)}}
    EndBabelPreamble
End

此本地布局的唯一添加(修复)是插入

\let\example\relax

这会删除所有现有的example环境定义。这样就可以\newtheorem{example}按预期运行,而无需更改环境或弄乱菜单项。

答案2

以下是我的快速解决方案。将 的定义放在\exmpl序言中

\theoremstyle{definition}
\newtheorem{exmpl}{\protect\examplename}[section]
\providecommand{\examplename}{Example}

然后将示例包装在文本中,如下所示:

\begin{exmpl}“示例主体” \end{exmpl}。LaTeX 代码应位于 Tex 代码块中(Mac 上为 cmd+L)。

还有另一种解决方案Lyx 错误追踪. 问题是Paper类定义\example

相关内容