我正在 Lyx 中编辑客户的 Latex 文件,其中客户使用了 Lyx 不支持的文档类。
在这些情况下,我使用tex2lyx
或-c article
来-c report
确保 Lyx 可以导入文件,并查看wdiff
提供的 Latex 文件与 Lyx 导出的文件之间的差异(使用)以汇编一份误解的语法列表,我可以使用选项从中创建一个语法文件来传递给tex2lyx
它-s $SYNTAXFILE
。
一切都很好,但是如果文档类在语法上发生冲突(例如,将可选参数传递给诸如\author
这样的命令或环境{enumerate}
),那么 Lyx 会忽略语法文件的内容,从而错误解析导入的 Latex 文件。
我对这种情况有一个解决方法,即将定义\let\lyxtexblock=\relax
放在 Latex 序言中,将一行\lyxtexblock{}
放在语法文件中,并用它来包围任何误解的 Latex。但我想知道是否有一个更有原则的解决方案,比破解一个新的布局文件更省时。
我正在使用 Lyx 1.6.8,但我有兴趣了解 Lyx 2 的解决方案。
资源
- 将 *.tex 转换为 *.lyx(lyx.org 维基百科)
动机
虽然可以通过直接编辑源文件来编辑其他人的 Latex 手稿,并用它wdiff/texdiff/latexdiff
来记录所做的更改,但当编辑次数较多时(例如,对 9,000 字的手稿进行 1,000 次编辑),这往往是一种相对低效的工作方式。Word、Open Office Writer 和 Lyx 的更改跟踪功能都提供了以下功能,我称之为变更跟踪最小值:
- 与改变的文本相关的评论,理想情况下是针对文本的任意范围或特定的编辑;
- 允许一次处理一个更改以及接受、拒绝或修改文本的用户界面;
- 一个用户界面,允许接受或拒绝对某些选定文本部分的所有更改,同样可以删除选定区域内的所有评论;
第一点可以用 实现wdiff/texdiff/latexdiff
。第二点和第三点都不能用我见过的任何软件实现。如果不能实现这三点,我的客户完成我所做的编辑工作所需的时间就会大大增加。我认为缺乏良好的 Latex 编辑工具(如上述工具)是许多出版商不想在 Latex 中工作的主要原因。
答案1
这不是您所要求的“更有原则性”的解决方案,而是在我编辑外文文章时非常有效的另一种解决方法:
- 我技术上做创建自己的布局文件,但是不要不做任何努力。我只需要复制一份
article.layout
(或它的一个后代)并编辑副本中的类文件即可。 - 我确实使用 ERT 盒子来处理所有非标准的东西
ERT 框的问题在于,LyX 的更改跟踪系统不会跟踪框内的变化。但是,根据我的经验(使用科学文章的类别),大多数(如果不是全部)与标准类别的不兼容性仅影响前言,即宏,例如\title
、\author
等等\thanks
。因此,我通常会在开始时使用一个大的 ERT 框,其中包含来自 LaTeX 源的前言的逐字副本,并tex2lyx
仅用于转换文章的正文。由于对前言的编辑相对较少,因此这是一种可接受的低成本解决方法。