Cách định cấu hình chính tả để bỏ qua một số môi trường trong LaTeX


10

Có cách nào để nói vim không kiểm tra chính tả một phần của tài liệu latex không? Chẳng hạn, khối mã sử dụng mintedmôi trường hoặc URL trong \url{}?

(Tôi không chắc nó có liên quan để kiểm tra chính tả nhưng tôi đang sử dụng plugin vimtex để chỉnh sửa các tệp latex.)



@Gregoire cũng đề cập đến câu hỏi này trong vimtex / problems / # 219 .
Karl Yngve Lervåg

Câu trả lời:


10

Bạn có thể tắt kiểm tra chính tả cho các mục cú pháp bằng cách thêm chúng vào một cụm cùng với @NoSpell. Bạn có thể đọc :help spell-syntaxmột số thông tin và xem tệp cú pháp tex của bạn rất có thể chứa một số ví dụ. Nếu bạn gõ, :tabe $VIMRUNTIME/syntax/tex.vimbạn sẽ nhận được tệp cú pháp tex trong một tab mới. Nếu sau đó bạn tìm kiếm, /\c@NoSpellbạn có thể thấy một dòng như

 syn cluster texMathZoneGroup add=@NoSpell

Các texMathZoneGroupcụm đã được định nghĩa trước trong kịch bản để chứa một số hạng mục cú pháp và đây @NoSpellđược thêm vào cluster để kiểm tra chính tả vô hiệu hóa cho các mặt hàng này. Tôi e rằng tôi không thể nói chính xác nơi tốt nhất để thực hiện thay đổi cho các mục cú pháp cụ thể của bạn vì tôi không biết rõ tệp cú pháp đó. Có thể có một cụm rõ ràng đã có sẵn nơi bạn có thể chỉ cần thêm @NoSpellhoặc bạn có thể phải tạo một cụm mà contains=các mục trong câu hỏi. Bạn cũng nên tạo một bản sao của tệp cú pháp trong thư mục thời gian chạy của người dùng và áp dụng các thay đổi của mình ở đó thay vì thay đổi tệp cú pháp được phân phối hoặc áp dụng các thay đổi của bạn trong một after/syntax/tex.vimhoặc tập lệnh khác chạy sau khi tệp cú pháp được tải .

Vì bạn sử dụng một plugin, nên nó có thể có các tùy chọn liên quan đến mục nào được kiểm tra chính tả. Tôi không sử dụng vimtexnhưng Karl Lervåg khá tích cực ở đây và nếu bạn nhận được sự chú ý của anh ấy có thể trả lời cho bạn.


Không có lựa chọn như vậy trong vimtexngày hôm nay, không. Nhưng có vẻ hợp lý khi bỏ qua chính tả trong môi trường đúc, vì vậy tôi có thể cập nhật plugin tương ứng. Cảm ơn lời giải thích tốt đẹp!
Karl Yngve Lervåg

Tôi đã tìm xung quanh trong mã và tôi đã không tìm thấy một khu vực hiện có cho môi trường đúc tiền nên tôi đã cố gắng tạo ra khu vực của riêng mình như thế này: syn region mintedZone start="\\begin{minted}" end="\\end{minted}" contains=@NoSpellnhưng dường như nó không có ích. Bất cứ đề nghị nào?
Grégoire

@ Grégoire Xin vui lòng, chúng ta hãy tiếp tục cuộc thảo luận này trong vấn đề vimtex .
Karl Yngve Lervåg

5

Bạn có thể thêm các quy tắc cú pháp của riêng bạn để ví dụ ~/.vim/after/syntax/tex.vim. Để ngăn việc kiểm tra chính tả bên trong một lệnh như \url, bạn có thể sử dụng đoạn mã sau:

syntax match texStatement '\\command' nextgroup=texMyCommand
syntax region texMyCommand matchgroup=Delimiter start='{' end='}' contained contains=@NoSpell

Ở đây texStatementDelimiterlà các nhóm được xác định bởi plugin cú pháp nội bộ, xem :e $VIMRUNTIME/syntax/tex.vim.

Nếu bạn muốn hiểu các lệnh trên, tôi có thể đề xuất các phần trợ giúp sau:

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.