jar*_*ltz 7 emacs formatting latex
我的问题是我在emacs中写了一个LaTeX文档,里面有很多C代码.我在各个地方使用\ minted和\ verbatim环境.当我编译LaTeX(使用pdflatex)时,生成的pdf看起来很好.在原始的LaTeX代码中,我希望能够使用C-major模式的规则进行自动缩进.
例如,我希望能够标记以下区域
\begin{verbatim}
void main(void)
{
printf("Hello World \n\r");
}
\end{verbatim}
Run Code Online (Sandbox Code Playgroud)
并让emacs自动格式化它看起来像
\begin{verbatim}
void main(void)
{
printf("Hello World \n\r");
}
\end{verbatim}
Run Code Online (Sandbox Code Playgroud)
换句话说,我希望能够使用C模式中的规则在实际C代码的部分上运行indent-region,即使我处于LaTeX模式.
有谁知道这是否可能?
这是一个快速修复方法。通过一些工作,您可以使其通用 - 即检查当前的主要模式,并在完成后切换回该模式。按原样,它切换到 c 模式,缩进,然后切换到 LaTeX 模式 (AucTex),这解决了眼前的问题:
(defun indent-region-as-c (beg end)
"Switch to c-mode, indent the region, then switch back to LaTeX mode."
(interactive "r")
(save-restriction
(narrow-to-region beg end)
(c-mode)
(indent-region (point-min) (point-max)))
(LaTeX-mode))
Run Code Online (Sandbox Code Playgroud)
将其绑定到您最喜欢的键上,您就可以完成所有设置了。
| 归档时间: |
|
| 查看次数: |
923 次 |
| 最近记录: |