[英]LaTeX indentation (formatting) in Emacs
what is the correct way to do indentation of a LaTeX document in Emacs (AucTex)?在 Emacs (AucTex) 中缩进 LaTeX 文档的正确方法是什么?
For example when I have a list:例如,当我有一个列表时:
\begin{itemize}
\item orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst.
\item orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst.
\end{itemize}
and would like to ended up with:并希望以:
\begin{itemize}
\item orem ipsum dolor sit amet, consectetur
adipiscing elit. Aliquam enim urna, mattis eu aliquet eget,
condimentum id nibh. In hac habitasse platea dictumst.
\item orem
ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim
urna, mattis eu aliquet eget, condimentum id nibh. In hac
habitasse platea dictumst.
\end{itemize}
I tried indent-region
but it doesn't do anything and the LaTeX-fill-*
produces weird results like:我试过indent-region
但它没有做任何事情并且LaTeX-fill-*
会产生奇怪的结果,例如:
\begin{itemize} \item orem ipsum dolor sit amet, consectetur
adipiscing elit. Aliquam enim urna, mattis eu aliquet eget,
condimentum id nibh. In hac habitasse platea dictumst. \item orem
ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim
urna, mattis eu aliquet eget, condimentum id nibh. In hac
habitasse platea dictumst. \end{itemize}
Thanks!谢谢!
Are you sure you have installed AUCTeX correctly?您确定您已正确安装 AUCTeX 吗? AUCTeX's LaTeX mode is called LaTeX-mode
, while latex-mode
is the (lame) Emacs default. AUCTeX 的 LaTeX 模式称为LaTeX-mode
,而latex-mode
是(蹩脚的)Emacs 默认模式。 Check the current major mode with Ch m
.使用Ch m
检查当前的主要模式。
When I place the cursor at the beginning of the environment and press Cc Cq Ce
( LaTeX-fill-environment
), I get the following:当我将光标放在环境的开头并按Cc Cq Ce
( LaTeX-fill-environment
)时,我得到以下信息:
\begin{itemize}
\item orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam
enim urna, mattis eu aliquet eget, condimentum id nibh. In hac
habitasse platea dictumst.
\item orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam
enim urna, mattis eu aliquet eget, condimentum id nibh. In hac
habitasse platea dictumst.
\end{itemize}
List of AUCTeX fill commands: AUCTeX 填充命令列表:
Cc Cq Ce
( LaTeX-fill-environment
) Cc Cq Ce
( LaTeX-fill-environment
)Cc Cq Cp
( LaTeX-fill-paragraph
) Cc Cq Cp
( LaTeX-fill-paragraph
)Cc Cq Cr
( LaTeX-fill-region
) Cc Cq Cr
( LaTeX-fill-region
)Cc Cq Cs
( LaTeX-fill-section
) Cc Cq Cs
( LaTeX-fill-section
) You can also just press Mq
( fill-paragraph
) as you type.您也可以在键入时按Mq
( fill-paragraph
)。
I make extensive use of the following function, which I borrowed from Luca da Alfaro :我广泛使用了从Luca da Alfaro借来的以下函数:
(defun fill-sentence ()
(interactive)
(save-excursion
(or (eq (point) (point-max)) (forward-char))
(forward-sentence -1)
(indent-relative)
(let ((beg (point)))
(forward-sentence)
(if (equal "LaTeX" (substring mode-name (string-match "LaTeX" mode-name)))
(LaTeX-fill-region-as-paragraph beg (point))
(fill-region-as-paragraph beg (point))))))
This works outside AUCTeX too.这也适用于 AUCTeX 之外。 I bind it to Mj
using:我使用以下方法将其绑定到Mj
:
(global-set-key "\ej" 'fill-sentence)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.