您最喜欢的 Emacs 和/或 AUCTeX 命令/技巧是什么?
这里的重点是我不知道我不知道什么。我是一名 Emacs 和 AUCTeX 用户,希望提高我对 Emacs 和 AUCTeX 的使用,尤其是在效率方面。我已经使用 Emacs–AUCTeX 组合有一段时间了(4-5 年),目前已经形成了良好的习惯。我对这个组合很满意,但经常想知道我是否在不知不觉中以低效的方式做某事。
因此,我希望学习一些想法,例如,向我的 .emacs 文件添加一些内容或新的快捷键(尽管我怀疑我已经知道其中的大部分)。所以,如果你有你认为我(和其他人)可能会受益的提示,请分享。
答案1
寻找技巧
很难说什么是最好的建议为你。特别是如果你没有给出更详细的工作流程描述。找到它的最佳方法可能是阅读手册从头到尾。另外一定要阅读RefTeX 手册因为它包含在 Emacs 中,你应该使用它的命令来处理引用和交叉引用。其他可以找到提示的地方是查看其他人的 .emacs 并浏览emacs,奥克泰克斯,引用文本以及等效标签堆 溢出和极好的 用户。
学习和配置 Emacs 是一个永无止境的过程,正如使用 emacs 进行 TeX 工作流程的简单指南。这样,你就会学到越来越多的东西。你学到新东西并不一定意味着你之前效率低下。
我的建议
以下是我想分享的一些技巧。它们可能与您无关,因此上述建议可能是最好的。
找到对你有用的 AUCTeX 和 RefTeX 命令并学习它们,请参阅emacs+AUCTeX 的有用快捷键、键绑定或预定义命令。
使用折叠式的折叠宏和环境,这样就更容易专注于文档的内容。要使用折叠,您必须激活 TeX-fold-mode。这可以通过临时激活它(通过 )M-x TeX-fold-mode或永久激活它(通过将以下内容放入 .emacs 中)来完成
(add-hook 'TeX-mode-hook #'TeX-fold-mode) ;; Automatically activate TeX-fold-mode.
在这两种情况下,您还必须C-c C-o C-b折叠缓冲区中的每个项目(还有其他命令可以折叠缓冲区的部分)。 下面是一个没有折叠的简单缓冲区:
以下是同一个缓冲区,但有折叠。如果将光标放在折叠项上,则将其展开,例如,如果将光标放在an emphasized part
它展现给\emph{an emphasized part}
。
使用功能扩展"为
csquotes
宏(另见AUCTeX 的 csquotes 集成无法与 babel 协同工作)。使用 AUCTeX 与语言包的集成,请参阅我怎样才能让 AUCTeX 使用与 babel 加载的相同语言的拼写词典?和我怎样才能让 AUCTeX 使用与 polyglossia 所加载的相同语言的拼写词典?
使用LaTeX 数学模式有效地插入数学公式https://stackoverflow.com/a/8055820/789593在“AUCTeX 的 LaTeX-math-mode”下。
不要只使用 AUCTeX。使用 YASnippet 可以更轻松地插入经常插入的结构,请参阅使用模板. 使用 Org-mode 进行草稿,具体描述如下每天使用 LaTeX 和工作流程?
答案2
Org-mode 的单选表是一种在 Emacs/AUCTeX 中创建表格的简单、快捷的方法。它们提供了 Org-mode 电子表格的所有计算功能,如果需要简单的自动更新数据,这会非常方便。
源 org-table 可以comment
使用comment
包放置在环境中,也可以放置在包之后\end{document}
。radio 表可以放置在文档中的任何位置,方法是用
% BEGIN RECEIVE ORGTBL table_name
% END RECEIVE ORGTBL table_name
表格将自动以 LaTeX 格式在这两个标签内生成,并且每次更新组织表时都会更新。激活orgtbl-mode
(次要模式)将使在 AUCTeX 中编辑组织表变得更加容易。
无线电表说明
根据要求,简要解释一下无线电表是什么,并提供更多信息的链接:
无线表格是一种在 Emacs 中以任何模式使用 Org 模式表格的方法。其背后的想法是,人们应该能够在任何模式(即 LaTeX 模式)中创建表格,同时仍然在次要 AND 中使用 Org 语法,而orgtbl-mode
不会在主要模式下产生错误。这意味着将有一个 Org 语法中的“源表格”,一个所需语法(即 LaTeX 语法)中的“目标表格”,以及一个转换器函数,用于将一个转换为另一个并将表格放置在适当的位置。从某种意义上说,表格通过转换器函数发送到其最终位置,就像无线电信号从发射器发送到接收器一样。
对于无线电表,“受体”由两行注释定义,这些注释是我们正在使用的主要模式。对于 LaTeX 模式,这两行采用上面写的形式。然后,在其他地方创建源表,并在其顶部添加一个特殊行,形式为
#+ORGTBL: SEND table_name translation_function arguments....
现在,如果将 Org 语法中的源表按原样放置在 LaTeX 文档中肯定会导致错误,那么处理此问题有两种方法:要么将其发送到该\end{document}
行之外,将所有源表分组到文档末尾并将它们与目标表分开,要么将它们包装在包comment
定义的环境中comment
,这将允许将源表保持在靠近目标的位置。
至于翻译函数,Org-mode
提供了一个非常基本的通用翻译函数,该函数将提供足够好的表格。可以修改此翻译函数以满足用户的需求。
以下是官方文档的链接:http://www.gnu.org/software/emacs/manual/html_node/org/Radio-tables.html#Radio-tables
答案3
这个问题问得很有道理!你知道,有很多技巧可以让你的生活更轻松。我的前 3 个技巧如下:
- M-q:根据变量调整当前段落(或区域,如果已设置)的对齐方式
fill-column
[没有它不行,但我花了数周时间才发现] - C-l:将光标重新置于屏幕中央(单击将当前行置于屏幕中央,单击将当前行置于屏幕顶部,单击将当前行置于屏幕底部)。[在教程中学到了;很好,不想在屏幕底部写字]
- M-x align-current:Emacs 对齐表格,大部分情况下会变得更好,如果没有,请使用C-x u撤消。
除此之外:当我一边思考一边写复杂的东西时,我会使用 org-mode。
答案4
我刚刚发现了这一点:C-c =出现一个包含文档目录的缓冲区,让您可以选择并浏览文档。