将 .tex 文件导入 LyX 时出现问题 - IEEEeqnarray 中显示“&”符号

将 .tex 文件导入 LyX 时出现问题 - IEEEeqnarray 中显示“&”符号

我收到.tex一个用户发来的文件,并尝试在 Windows 上的 Lyx 2.0.2 中打开它。将其导入 LyX 后,文档中的方程式处处都是 & 符号,好像 LyX 没有正确解析文件一样。我认为这可能与IEEEeqnarray整个文档中发现的问题有关。我似乎无法弄清楚如何让IEEEeqnarray文档的某些部分在 LyX 中呈现,而不是让这些IEEEeqnarray部分在 LyX 中显示为 TeX 代码。

当我在 LyX 中生成 PDF 时,所有与号“&”均可在 PDF 中看到。

我对 LaTeX 还很陌生,因此很感谢任何建议。

答案1

当您选择File> Import>LaTeX (plain)...文件时myfile.tex,LyX 会执行

tex2lyx -f myfile.tex myfile.lyx

标志-f强制覆盖myfile.lyx,但这并不重要。根据tex2lyx手册页

的目的tex2lyx是翻译行为良好LaTeX2e 转为 LyX。如果您的 LaTeX 文件无法编译 - 或者您做了一些奇怪的事情,例如重新定义标准 LaTeX 命令 - 它可能会阻塞。

这确实是这里发生的事情。此外,导入文件是高度依赖于所谓的.layout文件,这些文件记录了导入格式化是如何发生的,并且仅取决于\documentclass给定的内容。如果.layout文件已过期,或者未包含所有可能的定义,则它们会“在翻译中丢失”。例如,考虑以下代码(例如)myfile.tex(可能是您收到的极简版本):

\documentclass{IEEEtran}
\begin{document}
Here is some text.
\begin{IEEEeqnarray}{rCl}
  a & = & b + c + d + e + f + g + h + i + j \nonumber\\
    && +\: k + l + m + n + o
\end{IEEEeqnarray}
Here is some more text.
\end{document}

将其导入 LyX 节目

使用 \documentclass{IEEEtran} 将 .tex 导入 LyX

这显然是错误的,并且会产生明显不正确的输出

LyX 中的输出不正确

LyX 只能正确识别控制序列因为它们是用 转义的\,以及分组括号{...}因为它们定义了宏/命令参数。

您有两种选择来纠正此行为:

  1. 如果文档足够小,则需要手动将错误导入的代码从源复制.tex到 LyX ERT 环境中:

    在 LyX 中手动插入 ERT 内容

    然后提供所需的输出*

    LyX 中 ERT 内容的正确输出

  2. 创建一个新的或修改与 关联的现有布局IEEEtran。同样,来自tex2lyx文档:

    默认情况下,当tex2lyx看到一个\documentclass{foo}命令时,它会创建一个文本类的文件foo并读取该类的 LyX 布局文件(类似于/usr/local/share/lyx/layouts/foo.layoutOR HOME/.lyx/layouts/foo.layout)。

    这里讨论的特定文件是IEEEtran.layout。要了解文件的内容.layout,请阅读部分5 安装新的文档类、布局和模板(在Help>下Customization)。具体来说,部分5.3 布局文件格式包含有关此类定制的详细信息。


*可以通过将第一段与IEEEeqnarrayERT“合并”来删除额外的垂直间距(或跳过),但 LyX 中的布局很糟糕。

相关内容