Khi viết LaTeX bằng cách sử dụng latex-mode
, tôi thường muốn viết "khoảng thời gian nửa mở" trong văn bản của mình. Ví dụ, [0,1)
trong đó đề cập đến tập hợp tất cả các số x
với 0 <= x < 1
.
Thật không may, các "dấu phân cách không cân bằng" này dường như gây nhầm lẫn cho trình phân tích cú pháp thụt lề, khiến văn bản sau bị thụt vào không thích hợp, thường trôi về bên phải.
Đây là một tài liệu ví dụ. Văn bản dưới đây là kết quả sau khi làm C-x h M-x indent-region
. Hành vi đúng sẽ là có tất cả các đoạn được thụt vào bởi 0 khoảng trắng.
\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}
Hiện tại tôi đang xử lý vấn đề này với một bản hack xấu xí: Tôi xác định một macro LaTeX mở rộng thành không có gì và viết các dấu phân cách "khớp" bên trong một lời gọi của macro này. Điều này được các indenter trở lại đồng bộ.
\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}
Nhưng điều này thực sự khó chịu. Có một giải pháp tốt hơn?
Tôi đang sử dụng GNU Emacs 24.4.1.