5

我默认为所有 LaTeX 文件启用自动填充模式。

这通常很好,但有时一个乳胶文件主要包含表格,我想在编辑该特定文件时禁用自动填充模式。

是否可以在 .tex 文件的顶部指定我希望它是例外?或者,是否可以在 .emacs 中指定这些文件的路径/名称?

4

4 回答 4

4

查看官方 Emacs 文档中的“文件中的局部变量”部分。有一个eval变量,允许评估任何代码。所以它看起来像(把它放在文件末尾,注释字符应该是特定于模式的):

# Local Variables:
# eval: (auto-fill-mode -1)
# End:
于 2011-07-12T19:33:48.693 回答
3

我喜欢在文件中查找某些内容以确定是否具有自动填充的解决方案。

如果要将标识符放在顶部,可以使用如下代码:

(defun my-auto-fill-disabling-hook ()
  "Check to see if we should disable autofill."
  (save-excursion
    (when (re-search-forward "Some Unique Identifier" 1000 t)
      (auto-fill-mode -1))))

(add-hook 'find-file-hooks 'my-auto-fill-disabling-hook)

并且显然更改"Some Unique Identifier"为合理的 - 例如搜索表格本身。然后你会得到你想要的,带有表格的 LaTeX 文件不会被自动填充。

注意:@Alex 建议使用文件局部变量,但根据手册本身这是一个错误:

然而,以这种方式启用次要模式通常是错误的。大多数次要模式,如自动填充模式,代表个人用户偏好。如果您想使用次要模式,最好在您的 init 文件中设置主要模式挂钩,以单独为您自己打开次要模式(请参阅初始化文件),而不是使用局部变量列表将您的品味强加给每个人.

于 2011-07-12T19:48:26.643 回答
3

这种方法在技术上并没有禁用填充模式,但与启用 eval 不同,它是安全的,并且可以达到预期的结果。将这样的一行作为文件的第一行。只需指定正确的主要模式,可能是文本,并将填充列设置为适当的大值:

-*- mode: text; fill-column: 99999 -*-

如前所述,您可以编写一个钩子来决定是否应启用自动填充,但我觉得这比必要的工作多。

于 2017-08-02T03:48:04.267 回答
1

不确定添加了哪个 Emacs 版本,但您也可以auto-fill-function在每个文件的基础上“中性化”变量:

# Local Variables:
# auto-fill-function: (lambda nil nil)
# End:
于 2014-03-11T02:10:35.083 回答