使用编写LaTeX时latex-mode
,我经常想在文本中编写“半开间隔”。例如,[0,1)
,它指的是集所有号码的x
使用0 <= x < 1
。
不幸的是,这些“不平衡的定界符”似乎使缩进解析器混乱,导致后面的文本不适当地缩进,通常向右漂移。
这是一个示例文档。下面的文本是执行后的结果C-x h M-x indent-region
。正确的行为是使所有两个段落都缩进0个空格。
\documentclass{article}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat
at dui et mattis. Here is a half open interval $[0,1)$. Proin
fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu
neque id egestas. Here is another $[1,2)$. Nullam et lectus
convallis, placerat neque non, vehicula nisi. Fusce imperdiet
dignissim ante, eget fringilla nisi.
Integer fermentum nunc eget purus molestie commodo. Integer
tristique tincidunt odio, vel rutrum diam commodo quis. Fusce a
aliquet quam. Cras suscipit est et nisl sollicitudin
iaculis. Aliquam erat volutpat. Phasellus sapien arcu, aliquet ut
hendrerit in, lobortis nec ante.
\end{document}
目前,我正在用一个丑陋的方法解决这个问题:我定义了一个LaTeX宏,该宏可以扩展为空,并在该宏的调用内编写“匹配”定界符。这样可以使压头重新同步。
\documentclass{article}
\newcommand{\ugh}[1]{}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat
at dui et mattis. Here is a half open interval $[0,1)$. Proin
fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu
neque id egestas. \ugh{(]} Now on the next line we are back in sync.
Nullam et lectus convallis, placerat neque non, vehicula nisi. Fusce
imperdiet dignissim ante, eget fringilla nisi.
\end{document}
但这确实令人不快。有更好的解决方案吗?
我正在使用GNU Emacs 24.4.1。
3
没有回答您的问题,但是您是否考虑过尝试AUCTeX?它不会遭受这个小错误的困扰。
—
giordano
@giordano:我已经看过了。它的默认行为比我想要的要重得多。我更喜欢像代码一样编辑LaTeX,而且我真的不想要WYSIWYG风格的编辑器内渲染。也许有可能关闭所有功能并拥有文本编辑器的经验,但这仍然使AUCTeX看起来过于矫kill过正。
—
Nate Eldredge
您指的是哪种所见即所得的行为?只有此类功能是预览和折叠模式,默认情况下它们都不处于活动状态(您甚至不需要加载相应的程序包即可使用AUCTeX)。在插入宏和环境时,AUTCeX和vanilla * TeX模式之间的主要区别是优越的自动完成机制。如果您重视自动补全功能,则可以选择AUCTeX。此外,在AUCTeX中,您始终必须编辑* TeX代码,没有其他可能性,我不知道您为什么会有这种错误印象。
—
giordano