Come configurare l'incantesimo per ignorare alcuni ambienti in LaTeX


10

C'è un modo per dire a Vim di non controllare l'ortografia di una parte di un documento in lattice? Ad esempio, il blocco di codice utilizzando l' mintedambiente o gli URL in \url{}?

(Non sono sicuro che sia rilevante per il controllo ortografico, ma sto usando il plug-in vimtex per modificare i file in lattice.)



@Gregoire ha anche menzionato questa domanda in vimtex / issues / # 219 .
Karl Yngve Lervåg,

Risposte:


10

È possibile disabilitare il controllo ortografico per gli elementi della sintassi aggiungendoli a un cluster insieme a @NoSpell. Puoi leggere :help spell-syntaxalcune informazioni e guardare il tuo file di sintassi tex che molto probabilmente contiene già diversi esempi. Se digiti :tabe $VIMRUNTIME/syntax/tex.vim, dovresti ottenere il file di sintassi tex in una nuova scheda. Se poi cerchi, /\c@NoSpellpotresti vedere una linea simile

 syn cluster texMathZoneGroup add=@NoSpell

Il texMathZoneGroupcluster è stato definito in precedenza nello script per contenere un numero di elementi di sintassi e qui @NoSpellviene aggiunto al cluster per disabilitare il controllo ortografico per questi elementi. Temo di non poter dire esattamente dove apportare la modifica migliore per i tuoi particolari elementi di sintassi poiché non conosco molto bene quel file di sintassi. Potrebbe esserci già un cluster evidente in cui è possibile semplicemente aggiungere @NoSpello potrebbe essere necessario creare un cluster contenente contains=gli elementi in questione. È inoltre consigliabile creare una copia del file di sintassi nella directory di runtime dell'utente e applicare le modifiche lì anziché modificare il file di sintassi distribuito o applicare le modifiche in uno after/syntax/tex.vimo altri script eseguiti dopo il caricamento del file di sintassi .

Dal momento che si utilizza un plug-in, potrebbero essere disponibili opzioni relative a quali elementi vengono controllati. Non lo uso vimtexma Karl Lervåg è piuttosto attivo qui e se ottieni la sua attenzione potrebbe risponderti.


Non ci sono tali opzioni vimtexoggi, no. Ma sembra logico ignorare l'ortografia negli ambienti coniati, quindi potrei aggiornare il plugin di conseguenza. Grazie per la bella spiegazione!
Karl Yngve Lervåg,

Mi sono guardato intorno nel codice e non ho trovato una regione esistente per un ambiente coniato, quindi ho cercato di crearne una mia in questo modo: syn region mintedZone start="\\begin{minted}" end="\\end{minted}" contains=@NoSpellma non sembra aiutare. Qualche suggerimento?
Grégoire,

@ Grégoire Per favore, continuiamo questa discussione nel numero di vimtex .
Karl Yngve Lervåg,

5

È possibile aggiungere le proprie regole di sintassi ad es ~/.vim/after/syntax/tex.vim. Per impedire il controllo ortografico all'interno di un comando come \url, è possibile utilizzare il seguente codice:

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

Qui texStatemente ci Delimitersono gruppi che sono definiti dal plugin di sintassi interno, vedi :e $VIMRUNTIME/syntax/tex.vim.

Se vuoi capire i comandi sopra, posso consigliare le seguenti sezioni di aiuto:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.