【问题标题】:What am I looking for to debug this elisp?我在寻找什么来调试这个 elisp?
【发布时间】:2014-04-22 20:54:32
【问题描述】:

我有一个组织模式文件,我正在尝试通过 XeTeX 将其导出到 Beamer LaTeX PDF。昨晚在这台机器上运行良好,在我后来编辑它的另一台机器上也一样。两者都在运行 org-mode 8、Emacs 24、相同的导出过程(XeLaTeX 运行 3 次)

当我同步回这台机器并再次尝试导出时,我收到了错误Wrong block type at a headline named ""。我检查了我所有的头条新闻并给了他们所有的名字,但仍然得到了相同的结果。

感谢索引可搜索FLOSS代码的神奇之处,我立即在网上找到了sn-p:

(env-format
      (cond ((member environment '("column" "columns")) nil)
        ((assoc environment
            (append org-beamer-environments-extra
                org-beamer-environments-default)))
        (t (user-error "Wrong block type at a headline named \"%s\""
                   raw-title))))

不过,我对 elisp 并不十分熟悉,而且我不知道这里发生的大部分情况。从这个 sn-p 开始,我该怎么做才能开始调试? (我意识到我可以启动 emacs 调试器,但它不是 PKE meter,我不能随便挥动它。)

【问题讨论】:

    标签: emacs latex elisp org-mode beamer


    【解决方案1】:

    当您找到相关的 sn-p 代码时找出问题所在的最佳方法是使用 Edebug

    您应该阅读文档以了解更多信息,但基本上这是我的程序:

    1. 找出崩溃的代码部分
    2. 使用 Edebug 检测代码 (C-uC-M-x)
    3. 重新执行代码,一步一步搞清楚是怎么回事(n)
    4. 如果问题出在另一个函数中,请跳转到 GOTO 2。

    迭代直到您理解代码并找到修复它的方法。


    【讨论】:

      【解决方案2】:

      发布此答案只是为了了解对错误标记的特定问题的特定解决方案。

      显然,我在另一台机器上的 Beamer 版本有一个“正常”的 Beamer 环境,它指定了一个空白的、未格式化的块。这在这台机器的安装中不存在,或者至少 org/XeLaTeX 不知道。

      我的步骤是:

      1. 搜索所有未命名的标题
      2. 为每一个单独命名
      3. 使用标识字符串重现错误
      4. 对照org-beamer-mode 中给出的可用类型列表检查块类型属性
      5. 删除有问题的类型并用另一个替换它

      这很好,但我认为这不是“最佳答案”,因为它不涉及对 emacs 解释器试图告诉我的内容的实际理解。如果我对 TeX 的一般情况没有一个很好的了解,那么它就不可能奏效。不知道这种技术是否会在面试中给任何人留下深刻印象;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-18
        • 2012-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多