LyX 参加 Google Summer of Code - 可以提出哪些项目想法?

LyX 参加 Google Summer of Code - 可以提出哪些项目想法?

今年,LyX 参加 Google Summer of Code。这是实现改进和新功能的绝佳机会。我很欣赏 LyX 让进入 TeX 和 LaTeX 世界变得更加容易,我相信有很多 LaTeX 用户都是从它开始的。当然,很多 LaTeX 朋友都使用 LyX 进行快速写作。

因此,这个问题针对的是 LyX 和 LaTeX 用户,他们对支持 TeX 和 LaTeX 的 GUI 方式感兴趣:

您会对 LyX 项目提出哪些改进建议?

例如,您怀念哪个功能,您会建议什么项目创意?我们将确保 LyX 项目能够看到这里的想法。

后记(查尔斯添加)

LyX 团队已在以下网址建立了一个页面,其中包含他们的项目提案:LyX 2013 代码创意之夏。截止日期(5 月 3 日)已过。

答案1

我知道已经有很多 LaTeX 在线编译器。我曾经想过,如果有一个在线 LyX 编辑器就太好了,这样我就不需要在电脑上安装整个 TeX 发行版和 LyX 软件了。但我知道将完整的 GUI 移植到网络上会很有挑战性。所以我的建议是:

使 LyX 程序能够使用在线 LaTeX 编译器。

这意味着拥有 API 和与现有在线服务的可用连接。我相信此类服务的供应商会支持它。因此,用户只需安装 LyX,无需安装即可从最新的 TeX 版本中受益 - 可以实现精简但功能强大且最新的安装。

可以连接dropbox等文件存储服务,使用在线编译服务的存储,或者每次编译时简单地上传文件——LaTeX文件很小,压缩上传或同步会很快。

答案2

模块支持的简化和扩展

动机:“LyX 几乎无法支持所有 LaTeX 软件包”。例如,用户想要使用以下 LaTeX 软件包,但目前 LyX 尚不支持这些软件包:“mdframe”(在 LyX 中创建新的段落样式), “平行线” (康奈尔笔记 - 需要 Lyx 或乳胶溶液)、“词汇表”、“章节”……

因此,LyX 可以通过模块进行扩展。用户可以编写这样的模块并将其发布给其他人。这应该是更加受到鼓舞并应制作模块更加强大

目标

  1. 通过在 GUI 中引入模块配置选项,使模块更加强大。
  2. 扩展(某些)“样式”构造(由模块定义),以便可以在使用过程中通过 GUI 对话框进行配置。
  3. 简化模块的选择和安装,以便更容易地分发给其他用户。

总的来说,该项目将更好地将 LaTeX 集成到 LyX 中,并允许社区更轻松地做出贡献。


1. GUI 中模块的配置选项

模块应该可以注册一个自己的配置页面在“文档设置”下。这样的“配置页面”应该与原生的“配置页面”分开。模块文件中的某些配置设置(即将引入)应该由 LyX 在这样的配置页面上显示。复选框或下拉列表项等图形元素应自动映射到 LaTeX 代码块。此外,应该有开始(前)代码块和结束(后)代码块。这是未来使用此项目时“定理”的配置可能的样子。这将用一个模块替换一堆现有的“定理”模块:

定理的配置

一个值得关注的候选对象可能是“PDF 属性”页面,该页面转换为“hyperref”包的设置。这个包很重要,但并不总是使用。因此,如果这个项目实现了,人们可以决定是否应将“PDF 属性”/“hyperref”包作为模块提供 - 而不是选择“使用 Hyperref 支持”,而是将其激活为模块。

2. 使用 GUI 对话框扩展“Style”构造

与模块配置页面类似的技术,应该有可能“Style”构造(特别是当“LatexType”设置为“Command”或“Environment”时)有配置选项(通过上下文菜单)。

目前,不支持具有多个参数的 LaTeX 命令或环境(另请参阅Lyx 中的参数化环境)。一个可能有助于研究的例子是“minipage”环境。LyX 原生支持该环境,但目前模块尚不支持。此外,模块的“样式”应该可以以某种方式挂接到菜单中(同样,有关示例,请参见“插入 > 框 > ...”)。

3. 模块的选择与安装

改进“文档设置”的“模块”页面。基本上做一个包含以下列的列表(模块文件中需要引入一些字段):”已使用(位置)“显示模块是否处于活动状态(如果是,则显示其在活动模块中的位置);”模块名称“;”类别“:”全部“或“LaTeX”、“HTML”等的组合(即 LyX 支持的输出格式);”版本/发布日期“对于选定的模块,描述、所需模块、排除的模块和位置(文件名)应显示如下图所示……

加载模块

我们应该考虑一下自动下载来自类似网站的新模块http://wiki.lyx.org/Layouts/Modules(稍微向 CTAN 或 CRAN 或...的方向发展;另请参阅这个问题)。此外,还应明确说明模块的许可证,并考虑在网站上介绍一些有关模块的状态(模块的质量/评级、下载次数最多)。最后,模块文档应该成为强制性的,就像 LaTeX 包一样!

答案3

有一件现在还做不到的事,而且在协作编辑 Latex 文档时非常有用,那就是编写一个 Latex 荧光笔,它可以将任何 Latex 文档转换为 Lyx 文档,其内容是原始文档,并在解析允许的范围内进行适当突出显示。如果 LyX 用户界面中的一些附加功能支持它,那么我们就可以使用 Lyx 作为 Latex IDE(参见我可以将 LyX 视为 LaTeX IDE 吗?)。

荧光笔

这可以作为命令行程序来实现,比如当调用时将从源lyx-highlighter somedoc创建一个突出显示的somedoc.lyx文件somedoc.tex

UI 模型

荧光笔应该确保以下属性的前两个,并尽可能满足其他属性:

  1. 确保所有 Latex 源文件都能在输出中逐个字符地表示出来,即使tex2lyx解析器失败;
  2. 确保在tex2lyx解析器允许的情况下,能够轻松区分文本内容和 Latex 标记。例如,在章节标题中,虽然\chapter{}标记的大小与章节名称相同,但它们将以不同的颜色突出显示,以使其在文本中的状态清晰可见(参见上面的示例模拟截图);
  3. 将章节/节标题表示为 Lyx 章节/节;
  4. 在序言中表示标题/作者/日期;以及
  5. 我认为在 Lyx 中表示任意的 Latex 颜色并不是一件简单的事,而且 UI 方面也很棘手(与第二点冲突),但如果能够以直观的方式显示 Latex 颜色宏就太好了。
  6. 支持latexdiff或类似的变更标记标记。

LaTeX 集成开发环境

有了这样的荧光笔,Lyx 可以用作 Latex 源编辑器,有点类似于 Kile 或 Texshop,除了可以执行其现有的所见即所得编辑器角色之外,还可以将其更改跟踪等功能带到这个新角色中。

对主 Lyx 应用程序的其他更改可以支持这一点:这些标记的文件可以被特殊处理,并提供新的专门菜单项来支持诸如编译源(与 Lyx 文件不同)或重新解析 Latex 等任务(这只能在某个部分中完成吗?)在进行更改后。

实现这样的高亮显示功能可以让 SoC 编码人员熟悉 tex2lyx 解析器的工作原理以及 Lyx 内部文本的表示方式。作为更雄心勃勃的 Lyx 项目的一部分,这可能是一个不错的“第一个可交付成果”。

答案4

尽管 LyX 凭借其所见即所得 (WYSIWYM) 理念提供了比普通 LaTeX 更直观的文档结构反馈,但这与所见即所得相去甚远。我真正想念 LyX 的是一种连续编译模式,这样 PDF 就可以在编辑时更新。所以我的建议是:

为LyX实现连续后台编译模式

相关内容