Emacs/AUCTeX:重写 Okular-make-url 函数以使用新的synctex(完整路径 + "./")语法

发布于 2024-11-27 13:24:56 字数 1456 浏览 3 评论 0 原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦幻的味道 2024-12-04 13:24:56

以下似乎有效:

  1. 更新到最新版本的 Okular (v0.13) - 这可能是也可能不是必要的。
  2. 定义新的扩展器以获取 TeX 源的当前目录:
    1. 转到“自定义 AUCTeX”,选择“TeXCommand”,然后转到“TeX Expand List”并添加一个:
    2. 添加:
      • 键:%(dir)
      • 扩展器:(lambda nil 默认目录)
  3. 在您的 .emacs 中,而不是

    (setq TeX-view-program-list '(("Okular" "okular --unique %o#src:%n%b")))
    

    用途:

    (setq TeX-view-program-list '(("Okular" "okular --unique %o#src:%n%(dir)./%b")))
    

from:
https://bugs.kde.org/show_bug.cgi?id=274294#c18

The following seems to work:

  1. Update to latest version of Okular (v0.13) - this may or may not be necessary.
  2. Define new expander to get current directory of TeX source:
    1. Go to "Customize AUCTeX" choose "TeXCommand" then go to "TeX Expand List" and add one:
    2. Add:
      • Key: %(dir)
      • Expander: (lambda nil default-directory)
  3. In your .emacs, instead of

    (setq TeX-view-program-list '(("Okular" "okular --unique %o#src:%n%b")))
    

    use:

    (setq TeX-view-program-list '(("Okular" "okular --unique %o#src:%n%(dir)./%b")))
    

from:
https://bugs.kde.org/show_bug.cgi?id=274294#c18

ま柒月 2024-12-04 13:24:56

当正在编辑的 .tex 文件位于与 TeX-master 不同的目录。以下确实有效:

  1. 定义新的扩展器以获取 TeX 源的当前目录:
    1. Mx 自定义变量 ; TeX-expand-list
    2. 向列表添加新条目:
      • 键:%(masterdir)
      • 扩展器:(lambda nil (expand-file-name (TeX-master-directory)))
      • 参数:无
  2. 定义一个新的查看 Okular 的节目:
    1. Mx 自定义变量 ; TeX-view-program-list
    2. 向列表添加新条目:
      • 姓名:奥库拉
      • 选择:命令
      • 命令:okular --unique %o#src:%n%(masterdir)./%b
  3. 将 Okular 配置为 PDF观众:
    1. Mx 自定义变量 ; TeX-view-program-selection
    2. 对于output-pdf,将查看器更改为Okular

或者您可以将以下内容放入 中。 emacs

;; use Okular to view AUCTeX-generated PDFs
(push '("%(masterdir)" (lambda nil (expand-file-name (TeX-master-directory))))
      TeX-expand-list)
(push '("Okular" "okular --unique %o#src:%n%(masterdir)./%b")
      TeX-view-program-list)
(push '(output-pdf "Okular") TeX-view-program-selection)

The answer by BeSlayed does not work for me when the .tex file being edited is in a different directory than TeX-master. The following does work:

  1. Define new expander to get current directory of TeX source:
    1. M-x customize-variable <RET> TeX-expand-list <RET>
    2. Add a new entry to the list:
      • Key: %(masterdir)
      • Expander: (lambda nil (expand-file-name (TeX-master-directory)))
      • Arguments: none
  2. Define a new view program for Okular:
    1. M-x customize-variable <RET> TeX-view-program-list <RET>
    2. Add a new entry to the list:
      • Name: Okular
      • Choice: Command
      • Command: okular --unique %o#src:%n%(masterdir)./%b
  3. Configure Okular as the PDF viewer:
    1. M-x customize-variable <RET> TeX-view-program-selection <RET>
    2. For output-pdf change the viewer to Okular

Or you can put the following in your .emacs:

;; use Okular to view AUCTeX-generated PDFs
(push '("%(masterdir)" (lambda nil (expand-file-name (TeX-master-directory))))
      TeX-expand-list)
(push '("Okular" "okular --unique %o#src:%n%(masterdir)./%b")
      TeX-view-program-list)
(push '(output-pdf "Okular") TeX-view-program-selection)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文