![将 .tex 文件导入 LyX 时出现问题 - IEEEeqnarray 中显示“&”符号](https://linux22.com/image/245086/%E5%B0%86%20.tex%20%E6%96%87%E4%BB%B6%E5%AF%BC%E5%85%A5%20LyX%20%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98%20-%20IEEEeqnarray%20%E4%B8%AD%E6%98%BE%E7%A4%BA%E2%80%9C%26%E2%80%9D%E7%AC%A6%E5%8F%B7.png)
我收到.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 节目
这显然是错误的,并且会产生明显不正确的输出
LyX 只能正确识别控制序列因为它们是用 转义的\
,以及分组括号{
...}
因为它们定义了宏/命令参数。
您有两种选择来纠正此行为:
如果文档足够小,则需要手动将错误导入的代码从源复制
.tex
到 LyX ERT 环境中:然后提供所需的输出*:
创建一个新的或修改与 关联的现有布局
IEEEtran
。同样,来自tex2lyx
文档:默认情况下,当
tex2lyx
看到一个\documentclass{foo}
命令时,它会创建一个文本类的文件foo
并读取该类的 LyX 布局文件(类似于/usr/local/share/lyx/layouts/foo.layout
ORHOME/.lyx/layouts/foo.layout
)。这里讨论的特定文件是
IEEEtran.layout
。要了解文件的内容.layout
,请阅读部分5 安装新的文档类、布局和模板(在Help
>下Customization
)。具体来说,部分5.3 布局文件格式包含有关此类定制的详细信息。
*可以通过将第一段与IEEEeqnarray
ERT“合并”来删除额外的垂直间距(或跳过),但 LyX 中的布局很糟糕。