Cara mengonfigurasi ejaan untuk mengabaikan beberapa lingkungan di LaTeX


10

Apakah ada cara untuk memberitahu vim untuk tidak memeriksa ejaan bagian dari dokumen lateks? Misalnya, blok kode menggunakan mintedlingkungan atau URL \url{}?

(Saya tidak yakin ini relevan untuk memeriksa ejaan tetapi saya menggunakan plugin vimtex untuk mengedit file lateks.)



@ Gregoire juga menyebutkan pertanyaan ini di vimtex / issues / # 219 .
Karl Yngve Lervåg

Jawaban:


10

Anda dapat menonaktifkan pemeriksaan ejaan untuk item sintaks dengan menambahkannya ke sebuah cluster bersama-sama dengan @NoSpell. Anda dapat membaca :help spell-syntaxuntuk beberapa informasi dan melihat file sintaks tex Anda yang kemungkinan besar sudah berisi beberapa contoh. Jika Anda mengetik, :tabe $VIMRUNTIME/syntax/tex.vimAnda harus mendapatkan file sintaks tex di tab baru. Jika kemudian mencari, /\c@NoSpellAnda mungkin melihat garis seperti

 syn cluster texMathZoneGroup add=@NoSpell

The texMathZoneGroupCluster telah didefinisikan sebelumnya dalam script untuk mengandung sejumlah item sintaks dan di sini @NoSpellditambahkan ke cluster untuk menonaktifkan pemeriksaan ejaan untuk item ini. Saya khawatir saya tidak bisa mengatakan dengan tepat di mana tempat terbaik untuk membuat perubahan untuk item sintaksis khusus Anda karena saya tidak tahu file sintaks itu dengan sangat baik. Mungkin sudah ada cluster yang sudah jelas di mana Anda bisa menambahkan @NoSpell, atau Anda mungkin harus membuat cluster yang contains=item-item tersebut. Ini juga merupakan ide yang baik untuk membuat salinan file sintaks di direktori runtime pengguna Anda dan menerapkan perubahan Anda di sana daripada mengubah file sintaks terdistribusi, atau untuk menerapkan perubahan Anda dalam after/syntax/tex.vimskrip lain yang berjalan setelah file sintaks dimuat .

Karena Anda menggunakan plugin, plugin ini mungkin memiliki opsi yang terkait dengan item yang diperiksa ejaannya. Saya tidak menggunakan vimtextetapi Karl Lervåg cukup aktif di sini dan jika Anda mendapatkan perhatiannya bisa menjawabnya untuk Anda.


Tidak ada opsi seperti itu di vimtexhari ini, tidak. Tetapi sepertinya masuk akal untuk mengabaikan ejaan dalam lingkungan tercetak, jadi saya mungkin memperbarui plugin secara bersamaan. Terima kasih atas penjelasannya!
Karl Yngve Lervåg

Saya melihat-lihat dalam kode dan saya tidak menemukan wilayah yang ada untuk lingkungan dicetak jadi saya mencoba untuk membuat saya sendiri seperti ini: syn region mintedZone start="\\begin{minted}" end="\\end{minted}" contains=@NoSpelltetapi tampaknya tidak membantu. Ada saran?
Grégoire

@ Grégoire Tolong, mari kita lanjutkan diskusi ini dalam masalah vimtex .
Karl Yngve Lervåg

5

Anda dapat menambahkan aturan sintaks Anda sendiri ke eg ~/.vim/after/syntax/tex.vim. Untuk mencegah pemeriksaan ejaan di dalam perintah seperti \url, Anda dapat menggunakan kode berikut:

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

Berikut texStatementdan Delimitergrup yang ditentukan oleh plugin sintaksis internal, lihat :e $VIMRUNTIME/syntax/tex.vim.

Jika Anda ingin memahami perintah di atas, saya dapat merekomendasikan bagian bantuan berikut:

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.