Lõm trong dấu ngoặc vuông


8

Một câu hỏi khác về thụt lề trong AocateeX ...

Tôi muốn có thể thụt lề nội dung trong dấu ngoặc vuông [...]. Nó sẽ hữu ích cho các danh sách tùy chọn tikz, ví dụ, hoặc các cây được vẽ bằng cách sử dụng foresthoặc qtree: cả hai gói này đều sử dụng dấu ngoặc vuông cho cú pháp của chúng, giúp dễ dàng quét mã nguồn trong trình soạn thảo hỗ trợ thụt lề.

Thật không may, AocateeX chỉ thụt lề nội dung của môi trường và nội dung giữa các dấu ngoặc nhọn {...}.

Các foreství dụ cũng là một tình huống mà gian lận bằng cách thêm dấu ngoặc xung quanh nội dung chúng tôi muốn thụt vào sẽ không làm việc, vì niềng răng sẽ thoát khỏi tất cả các nội dung được đánh giá là một cái cây.

Thí dụ:

\documentclass{article}
\usepackage{forest}

\begin{document}

\begin{forest}
  [A
  [B]
  [C
  [D]
  [E]
  ]
  ]
\end{forest}

\end{document}

Mà tôi muốn thụt lề như:

\documentclass{article}
\usepackage{forest}

\begin{document}

\begin{forest}
  [A
    [B]
    [C
      [D]
      [E]
    ]
  ]
\end{forest}

\end{document}

Là có một cách?


Chỉ bên trong forestmôi trường?
giordano

@giordano Lý tưởng nhất, ở mọi nơi. Nhưng nếu bạn có một giải pháp làm việc đặc biệt cho rừng, đó vẫn sẽ là một khởi đầu tốt.
T. Verron

Chà, tôi đã có một ý tưởng nhưng không thực sự hiệu quả, vì vậy tôi phải suy nghĩ nhiều hơn
giordano

@giordano @ T.Verron Như một thời gian đã qua kể từ bài đăng cuối cùng: Bạn đã tìm thấy một giải pháp cho điều này? Tôi đã cố gắng điều chỉnh giải pháp cho Lisp được đề cập ở đây nhưng không có kết quả. Chính xác hơn, tôi đã thử (modify-syntax-entry ?\[ "(]" LaTeX-mode-syntax-table) (modify-syntax-entry ?\] ")[" LaTeX-mode-syntax-table).
Timm

@Timm Đáng buồn thay, tôi vẫn không có giải pháp nào. Bảng cú pháp là chính xác: character: [ (...) syntax: (] which means: open, matches ]nhưng có vẻ như cơ chế thụt lề của AocateeX bỏ qua thông tin này.
T. Verron

Câu trả lời:


7

Cài đặt LaTeX-begin-regexpLaTeX-end-regexpkhông giúp đỡ ở đây vì bên trong LaTeX-indent-level-countnó tìm kiếm dấu gạch chéo ngược trước khi kiểm tra biểu thức chính quy.

Tôi đã làm cho nó hoạt động bằng cách sửa đổi TeX-brace-count-line. Giải pháp này được tính []là cú đúp {}. So sánh nó sẽ có chức năng ban đầu nếu bạn muốn thấy sự khác biệt.

(defun TeX-brace-count-line ()
  "Count number of open/closed braces."
  (save-excursion
    (let ((count 0) (limit (line-end-position)) char)
      (while (progn
               (skip-chars-forward "^{}[]\\\\" limit)
               (when (and (< (point) limit) (not (TeX-in-comment)))
                 (setq char (char-after))
                 (forward-char)
                 (cond ((eq char ?\{)
                        (setq count (+ count TeX-brace-indent-level)))
                       ((eq char ?\})
                        (setq count (- count TeX-brace-indent-level)))
                       ((eq char ?\[)
                        (setq count (+ count TeX-brace-indent-level)))
                       ((eq char ?\])
                        (setq count (- count TeX-brace-indent-level)))
                       ((eq char ?\\)
                        (when (< (point) limit)
                          (forward-char)
                          t))))))
      count)))
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.