使用 Textadept 和 Okular 设置 SyncTeX

使用 Textadept 和 Okular 设置 SyncTeX

我的问题很简单:我可以设置 Textadept 和 Okular 以进行向前和向后搜索吗?

Textadept 使用 Ctrl+R 跳转到 Okular,使用 Ctrl+Shift+R 编译我的 ConTeXt 文件。这很好,但对我来说还不够。

我的里面有这一行init.lua

textadept.run.compile_commands.tex = 'mtxrun --autogenerate --script context --autopdf --purge --synctex "%f"'

但经过网上搜索,我发现要实现我的目标很困难。

下面我引用了 Aditya 关于此请求的建议,但我还不知道如何处理它。

您需要知道两个命令来设置正向和反向搜索:(i) 调用 textadept 在特定行号处打开特定文件;(ii) 调用 okular 跳转到特定 synctex 位置。第一个命令用于反向搜索,第二个命令用于正向搜索。

就我上面的代码而言,值得注意的是“synctex=1”、“synctex=-1”或简称“synctex”在 ConTeXt 中可以互换。

汉斯·哈根的声明 这里说我们在 ConTeXt 中拥有相对较小的 SyncTEX 文件,因为它不使用 SyncTEX 的内部代码。相反,它使用自己的逻辑。但是,我过去曾使用 TexWorks 测试过 SyncTEX,并且运行正向和反向搜索没有问题。

Textadept 的帮助该页面完全省略了 SincTEX。

我的第一个更新:

首先,我在 Plasma 桌面上工作,context-minimals 位于 /opt/context-minimals/setuptex 路径中。

我使用 ConTeXt 的原因有很多。除此以外,我还可以在 /home/username/.font 文件夹中使用我的 otf 字体。

为了做到这一点,我在 ~/.bashrc 文件中添加了以下行:source /opt/context-minimals/setuptex。如果没有,ConTeXt 会使用 Latin Modern 等 fallout 字体编译我的 pdf。

然后,在我的家里有一个 texadept.sh 文件,里面有以下几行:

#!/bin/bash 源 /opt/context-minimals/setuptex

/home/edu/软件/textadept_10.0_beta_2.x86_64/textadept

第二行是因为我只能下载便携版本。

好吧。因此,在启动 Textadept 的图标后面,我们有命令“bash /home/username/textadept.sh”。这可以解决问题,以便使用 ~/.fonts 中的我的个人字体(而不是 Latin Modern 或其他字体)编译 Textadept。

我在 Okular 中写入的不成功命令是“/home/username/Software/textadept_10.0_beta_2.x86_64/textadept” “%f” -e textadept.editing.goto_line(%l-1)

当我切换到“bash /home/edu/textadept.sh” “%f” -e textadept.editing.goto_line(%l-1)时

目前这就是我的最新消息。

答案1

正如您所确认的,Okular 不应该是问题所在。请参阅kile 的示例. 需要的是传递给编辑器的单个实例至少是行号您希望返回。最近的文档乍一看似乎在第一点上令人困惑(不需要 -F,见下文)单实例:

“Textadept 是一个单实例应用程序。这意味着在启动 Textadept 后,从命令行在 Linux 或 BSD 上运行 textadept file.ext(在 Mac OSX 上运行 ta file.ext)或从文件管理器(例如 Windows)使用 Textadept 打开文件,将在原始 Textadept 实例中打开 file.ext。将 -f 或 --force 开关传递给 Textadept 会覆盖此行为并在新实例中打开文件:...如果没有强制开关,原始 Textadept 实例将打开文件,无论打开的实例数量是多少。Textadept 的终端版本不支持单实例。”

根据进一步的测试,我的答案是,我可以从 SumatraPDF 或奥克拉尔

我的简单 Windows 命令使用的是最新可用版本,但它应该适用于任何最新版本,只需确保您的 textadept 路径正确合格即可。注意,对于我的构建,需要在末尾添加 -1,因为 SumatraPDF 和 Okular 从 1 开始计数,但未修改的 textadept 似乎从 0 开始计数,因此您需要减去-1

各种版本和插件可能会改变这一点,所以你可能会得到 ConTeX 和 pdfLaTeX 之间的不同结果(如果我找到它们,我会回来编辑)SumatraPDF 和 Okular 使用相同的以下占位符:•%f -F文件名称 •%l - (小写字母L) 这要到达的文件的行

如果您的 textadept 在您的环境路径上,您只需输入

textadept "%f" -e textadept.editing.goto_line(%l-1)

根据您运行的环境,%f 周围的引号可能不需要。同样,如果您使用便携版本或 textadept 不在您的主路径上,您可能需要为两个常见的 Windows 程序文件位置之一添加“带引号的路径”。

"drive:\path to file\textadept.exe" "%f" -e textadept.editing.goto_line(%l-1)

或 (Linux)

/home/YourName/Software/textadept_version/textadept "%f" -e textadept.editing.goto_line(%l-1)

如果您的文件名没有空格,则可能不需要 %f 周围的引号,因此请尝试使用和不使用引号。您的驱动器或路径会有所不同,除非您得到准确的信息,否则它将无法工作(不会显示错误消息),这里有一个图片可以帮助您解决所有其他问题

在此处输入图片描述

相关内容