Khớp dấu ngoặc


7

Tôi đang sử dụng vim để chỉnh sửa mã LaTeX và tôi thường viết các khoảng như thế (a,b]nhưng điều này gây rối với các tính năng khác của vim. Ví dụ,

  • Nhảy với %: nếu tôi có một cái gì đó giống như \phi((a,b]), trận chung kết )sẽ khớp với lần thứ hai (và một số dấu ngoặc đơn đóng sau này trong mã sẽ khớp với lần đầu tiên.
  • Có một tính năng (tôi không chắc là nó đặc trưng cho vimtex hay chỉ là một tính năng của vim) khi ]]đóng bất kỳ dấu phân cách mở nào và điều này làm cho nó hoạt động sai - nó sẽ cố gắng đóng )từ nhiều dòng trước.
  • Các tsd/ csd/ dsdtính năng của vimtex mà chuyển / thay đổi / xóa delimiters xung quanh không làm việc (tôi nghĩ csddsdlà phần mở rộng của vim-vòm nhưng tôi không chắc chắn). Cụ thể, hoặc họ chọn các dấu phân cách sai hoặc không làm gì cả.

Hiện tại tôi đang đưa ra )ý kiến ​​để giảm thiểu điều này. Điều này giải quyết vấn đề về dấu ngoặc đơn sau đó trong tệp khớp sai, nhưng khớp trong cùng một dòng không hoạt động (và những thứ như tsdtừ vimtex không hoạt động đúng).

Có giải pháp nào tốt hơn, hay giải pháp chuẩn cho loại vấn đề này không? Lý tưởng nhất điều này cũng sẽ đối phó với [a,b).


3
Đây thực sự là một vấn đề rất khó khăn. Rất khó để biết làm thế nào để phù hợp với parantantes nếu parant tổng hợp bắt đầu và kết thúc là loại khác nhau. Tôi nhớ chúng tôi đã có một cuộc thảo luận về vấn đề này tại một vấn đề vimtex một lần. Bạn có thể thử tìm kiếm các chủ đề vấn đề và xem nếu bạn tìm thấy bất cứ điều gì, hoặc bạn có thể tạo ra một vấn đề mới.
Karl Yngve Lervåg

@ KarlYngveLervåg Tôi nghĩ đây là vấn đề có liên quan ?
B. Mehta

Vâng, điều đó có liên quan. mặc dù chủ đề là thụt. Vấn đề vẫn là, như đã đề cập ở trên, rằng vốn dĩ rất khó để có được quyền này đối với các trường hợp không cân bằng.
Karl Yngve Lervåg

Một cách giải quyết khác có thể là sử dụng \DeclarePairedDelimiterlệnh từ gói mathtools để sau đó chỉ cần viết như thế nào \leftopenint{a, b}. Tôi đã học được về điều này trong câu hỏi
1

1
@Jan Tôi khá thích giải pháp này! Nếu bạn muốn viết nó như một câu trả lời, tôi rất vui lòng chấp nhận nó.
B. Mehta

Câu trả lời:


1

Một cách giải quyết khác có thể là sử dụng \DeclarePairedDelimiterlệnh từ gói mathtools để sau đó chỉ cần viết như thế nào \leftopenint{a, b}. Xem câu trả lời được chấp nhận cho câu hỏi này .

\documentclass{minimal}
\usepackage{mathtools}
\DeclarePairedDelimiter\leftopenint{(}{]}
\DeclarePairedDelimiter\rghtopenint{[}{)}

\begin{document}
  \begin{equation*}
   \leftopenint{-\infty, \frac{1}{N} } \cup \rghtopenint*{\frac{1}{N}, \infty}
  \end{equation*}
\end{document}

cung cấp cho tôi những gì được đăng dưới đây. Lưu ý rằng *làm cho quy mô phân cách.

nhập mô tả hình ảnh ở đây

Chỉ cần lưu ý sự xuất hiện không đối xứng của dấu ngoặc trong tiêu đề cũng phá vỡ tô sáng cú pháp và các lệnh như đóng môi trường khớp . Tôi có thể sửa lỗi này bằng cách thuê ngoài các định nghĩa này thành một tệp riêng biệt và sau đó sử dụng \include...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.