LaTeX e Vim: differenze tra le versioni

Revisione compatibilità
m (aggiunta verifica)
(Revisione compatibilità)
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili|Wheezy|Jessie|Stretch|Sid}}
== Introduzione a LaTeX ==
== Introduzione a LaTeX ==
Se non conoscete LaTeX o ne avete solo sentito parlare, e ne siete in qualche modo incuriositi, potreste trovarvi spaesati di fronte alla mastodontica quantità di informazioni presenti in internet. Di seguito si elencano le principali risorse.
Se non conoscete LaTeX o ne avete solo sentito parlare, e ne siete in qualche modo incuriositi, potreste trovarvi spaesati di fronte alla mastodontica quantità di informazioni presenti in internet. Di seguito si elencano le principali risorse.
Riga 7: Riga 7:
; [http://www.andy-roberts.net/misc/latex/index.html Getting to grips with Latex]:Questa risorsa, in inglese, con una serie di tutorial ed esempi molto ben fatti affronta in maniera pragmatica e diretta tutti i principali problemi della scrittura di documenti LaTeX. Parte anch'esso da zero ma si trovano certi dettagli più avanzati non presenti nel precedente link.
; [http://www.andy-roberts.net/misc/latex/index.html Getting to grips with Latex]:Questa risorsa, in inglese, con una serie di tutorial ed esempi molto ben fatti affronta in maniera pragmatica e diretta tutti i principali problemi della scrittura di documenti LaTeX. Parte anch'esso da zero ma si trovano certi dettagli più avanzati non presenti nel precedente link.


; [http://www.guit.sssup.it/download/#manual I manuali e le traduzioni di GuIT]: Questo è un elenco di documenti in italiano tradotti dal Gruppo Utenti Tex Italiani (ma non solo). Si va dalle introduzioni ad argomenti molto specifici e avanzati. Tra di essi si segnala in particolare [http://www.lorenzopantieri.net/LaTeX_files/ArteLaTeX.pdf L'Arte di scrivere con LaTeX], una guida molto ben scritta che parte da zero per arrivare ad un uso mediamente avanzato di LaTeX.
; [http://guitex.org/home/it/doc I manuali e le traduzioni di GuIT]: Questo è un elenco di documenti in italiano tradotti dal Gruppo Utenti Tex Italiani (ma non solo). Si va dalle introduzioni ad argomenti molto specifici e avanzati. Tra di essi si segnala in particolare [http://www.lorenzopantieri.net/LaTeX_files/ArteLaTeX.pdf L'Arte di scrivere con LaTeX], una guida molto ben scritta che parte da zero per arrivare ad un uso mediamente avanzato di LaTeX.


; [http://a2.pluto.it/a2/a273.htm#almltitle2976 Capitolo 50: LaTeX]: Come non segnalare inoltre il capitolo dedicato a LaTeX della monumentale opera '''Appunti di Informatica Libera''' di ''Daniele Giacomini''. Vi si trovano informazioni utili, tra le altre cose, sulle spaziature, le lunghezze, le scatole (''box''), i contatori.
; [http://a2.pluto.it/a2/a273.htm#almltitle2976 Capitolo 50: LaTeX]: Come non segnalare inoltre il capitolo dedicato a LaTeX della monumentale opera '''Appunti di Informatica Libera''' di ''Daniele Giacomini''. Vi si trovano informazioni utili, tra le altre cose, sulle spaziature, le lunghezze, le scatole (''box''), i contatori.
Riga 17: Riga 17:
-->
-->
== Installazione ==
== Installazione ==
LaTeX è un linguaggio di markup, non un programma o un pacchetto, dunque non è possibile "installarlo". Come per i linguaggi di programmazione, si installa in realtà un compilatore che sia in grado di convertire il codice sorgente in un opportuno output. A corredo di esso saranno poi presenti altri pacchetti con il compito di provvedere a ulteriori funzionalità (come per esempio fornire font, documentazione, estensioni, eccetera).
LaTeX è un linguaggio di markup, non un programma o un pacchetto, dunque non è possibile "installarlo". Come per i linguaggi di programmazione, si installa in realtà un compilatore che sia in grado di convertire il codice sorgente in un opportuno output. A corredo di esso saranno poi presenti altri pacchetti con il compito di fornire ulteriori funzionalità (font, documentazione, estensioni, eccetera).


La versione consigliata di tutti questi applicativi è quella conosciuta come ''texlive''. Per installarne una versione completa, si installi il pacchetto <code>texlive</code>.
La distribuzione consigliata di tutti questi applicativi è quella conosciuta come ''texlive''. Per installarne una versione completa, si installi il metapacchetto <code>texlive-full</code>:
Sebbene sia possibile installare anche versioni non complete, questo è il comportamento consigliato, soprattutto per i non esperti.
<pre>
# apt-get install texlive-full
</pre>
Il metapacchetto <code>texlive</code> fornisce invece una versione della distribuzione funzionante e comprensiva dei pacchetti più usati, ma non completa.
È fortemente consigliato installare versioni complete della distribuzione, soprattutto per i non esperti.


Per installare Vim con il supporto avanzato per LaTeX bastano invece i pacchetti <code>vim-gtk</code>, <code>vim-latexsuite</code> e <code>vim-addon-manager</code>.
Per installare Vim con il supporto avanzato per LaTeX bastano invece i pacchetti <code>vim-gtk</code>, <code>vim-latexsuite</code> e <code>vim-addon-manager</code>.
<pre>
# apt-get install vim-gtk vim-latexsuite vim-addon-manager
</pre>
Per utilizzare effettivamente il plugin è necessario dare il comando
Per utilizzare effettivamente il plugin è necessario dare il comando
<pre>$ vim-addons install latex-suite</pre>
<pre>$ vim-addons install latex-suite</pre>
Riga 32: Riga 39:
Di seguito si elencano le principali scorciatoie.
Di seguito si elencano le principali scorciatoie.
====Ambienti====
====Ambienti====
Dopo aver scritto una parola in ''insert mode'', si prema <code>F5</code> indifferentemente in ''insert mode'' o in ''normal mode''. Si aprirà un environment con la parola appena scritta come nome e con gli opportuni placeholder. Ciò è particolarmente utile per ambienti usati frequentemente, come <code>equation</code>, <code>gather</code>, <code>align</code>, <code>enumerate</code>, <code>itemize</code>, <code>description</code>, eccetera; in alcuni casi il plugin inserisce anche altro codice, per esempio nel caso dell'ambiente <code>equation</code> sarà inserita anche la riga <code>\label{<++>}</code>.
Dopo aver scritto una parola si prema <code>F5</code> indifferentemente in ''insert mode'' o in ''normal mode''. Si aprirà un environment con la parola appena scritta come nome e con gli opportuni placeholder. Ciò è particolarmente utile per ambienti usati frequentemente, come <code>equation</code>, <code>gather</code>, <code>align</code>, <code>enumerate</code>, <code>itemize</code>, <code>description</code>, eccetera; in alcuni casi il plugin inserisce anche altro codice, per esempio nel caso dell'ambiente <code>equation</code> sarà inserita anche la riga <code>\label{<++>}</code>.


;Esempio
;Esempio
Riga 50: Riga 57:


====Comandi====
====Comandi====
Dopo aver scritto una parola in ''insert mode'', si prema <code>F7</code> indifferentemente in ''insert mode'' o in ''normal mode''. La parola appena scritta sarà trasformata in un comando con un argomento obbligatorio. Ciò è particolarmente utile per comandi quali <code>\text</code>, <code>\intertext</code>, <code>\label</code>, <code>\cite</code>, <code>\ref</code>, <code>\eqref</code>, eccetera. Anche in questo caso il plugin inserisce codice extra per alcuni comandi (per esempio, nel caso del comando <code>\frac</code> vengono inseriti due argomenti obbligatori anzichè uno solo).
Dopo aver scritto una parola si prema <code>F7</code> indifferentemente in ''insert mode'' o in ''normal mode''. La parola appena scritta sarà trasformata in un comando con un argomento obbligatorio. Ciò è particolarmente utile per comandi quali <code>\text</code>, <code>\intertext</code>, <code>\label</code>, <code>\cite</code>, <code>\ref</code>, <code>\eqref</code>, eccetera. Anche in questo caso il plugin inserisce codice extra per alcuni comandi (per esempio, nel caso del comando <code>\frac</code> vengono inseriti due argomenti obbligatori anzichè uno solo).


;Esempio
;Esempio
Riga 65: Riga 72:
[http://vim-latex.sourceforge.net/documentation/latex-suite/latex-command-maps.html Scorciatorie per i comandi]
[http://vim-latex.sourceforge.net/documentation/latex-suite/latex-command-maps.html Scorciatorie per i comandi]


====Bibliografia====
====Bibliografia e riferimenti====
Il plugin <code>latexsuite</code> è in grado di memorizzare tutti i label presenti nel documento, nonchè le opere in bibliografia (se date con <code>\bibitem</code>). Per richiamarle nel momento del bisogno la scorciatoia da usare è <code>F9</code>. Dopo aver scritto <code>\ref{</code> (o gli analoghi <code>\vref{</code>, <code>\eqref{</code>, eccetera), si prema <code>F9</code>. Si aprirà una finestra di dialogo con le opzioni disponibili per il completamento, da cui sarà possibile scegliere quella desiderata con <code>Invio</code>.
Il plugin <code>latexsuite</code> è in grado di memorizzare tutti i label presenti nel documento, nonchè le opere in bibliografia. Per richiamarle nel momento del bisogno la scorciatoia da usare è <code>F9</code>.
 
Dopo aver scritto <code>\ref{</code> (o gli analoghi <code>\vref{</code>, <code>\eqref{</code>, eccetera), premendo <code>F9</code> si aprirà una finestra con i riferimenti disponibili per il completamento, da cui è possibile scegliere <code>Invio</code>.
 
Dopo aver scritto <code>\cite{</code> (o comandi analoghi), premendo <code>F9</code> si aprirà una finestra con le citazioni bibliografiche disponibili per il completamento, da cui è possibile scegliere con <code>Invio</code>. Nota: questo comportamento funziona solo se si gestisce la bibliografia con <code>\thebibliography</code>.


[http://vim-latex.sourceforge.net/documentation/latex-suite/bibtex-bindings.html Scorciatoie per la bibliografia]
[http://vim-latex.sourceforge.net/documentation/latex-suite/bibtex-bindings.html Scorciatoie per la bibliografia]
Riga 74: Riga 85:
'''''Sezionamento''''': esistono scorciatoie specifiche per inserire i comandi di sezionamento quali <code>\section</code>, <code>\chapter</code>, eccetera. Sono tutte composte di tre lettere maiuscole consecutive (per esempio <code>SSE</code>, <code>SCH</code> e <code>SSS</code> producono <code>\section</code>, <code>\chapter</code> e <code>\subsection</code> rispettivamente).
'''''Sezionamento''''': esistono scorciatoie specifiche per inserire i comandi di sezionamento quali <code>\section</code>, <code>\chapter</code>, eccetera. Sono tutte composte di tre lettere maiuscole consecutive (per esempio <code>SSE</code>, <code>SCH</code> e <code>SSS</code> producono <code>\section</code>, <code>\chapter</code> e <code>\subsection</code> rispettivamente).


'''''Esponenti''''': al posto di scrivere manualmente <code>^{}</code> possiamo premere <code>^^</code>
'''''Esponenti''''': al posto di scrivere manualmente <code>^{}</code> possiamo premere <code>^^</code> che inserirà automaticamente le parentesi ed il placeholder per uscire dall'esponente.
che inserirà automaticamente le parentesi ed il placeholder per uscire dall'esponente.


'''''Pedici''''': al posto di scrivere manualmente <code>_{}</code> possiamo premere <code>__</code> che inserirà automaticamente le parentesi graffe ed il placeholder per uscire dal pedice.
'''''Pedici''''': al posto di scrivere manualmente <code>_{}</code> possiamo premere <code>__</code> che inserirà automaticamente le parentesi graffe ed il placeholder per uscire dal pedice.
Riga 81: Riga 91:
'''''Segno uguale''''': al posto di <code>&=&</code> è possibile scrivere solo <code>==</code>.
'''''Segno uguale''''': al posto di <code>&=&</code> è possibile scrivere solo <code>==</code>.


'''''Lettere greche''''': per inserire svariate lettere greche è possibile digitare il carattere <code>`</code> seguito dall'iniziale della lettera voluta. Per esempio, <code>`a</code> produce <code>\alpha</code>. Per ovvi motivi di non coincidenza dei due alfabeti, non tutte le lettere greche si possono ottenere in questo modo, inoltre non sempre la lettera da usare corrisponde all'iniziale.
'''''Lettere greche''''': per inserire svariate lettere greche è possibile digitare il carattere <code>`</code> seguito dall'iniziale della lettera voluta. Per esempio, <code>`a</code> produce <code>\alpha</code>. Data la non coincidenza dei due alfabeti, non tutte le lettere greche si possono ottenere in questo modo, inoltre non sempre la lettera da usare corrisponde all'iniziale.


*[http://vim-latex.sourceforge.net/documentation/latex-suite/section-mappings.html Scorciatoie per il sezionamento]
*[http://vim-latex.sourceforge.net/documentation/latex-suite/section-mappings.html Scorciatoie per il sezionamento]
Riga 90: Riga 100:
Il folding è la capacità di Vim di fare delle "ripiegature" nel file, ovvero nascondere certe parti del documento per rendere la navigazione più agevole. Questa funzionalità è fondamentale per navigare velocemente in documenti con vari capitoli, paragrafi e sotto-paragrafi.
Il folding è la capacità di Vim di fare delle "ripiegature" nel file, ovvero nascondere certe parti del documento per rendere la navigazione più agevole. Questa funzionalità è fondamentale per navigare velocemente in documenti con vari capitoli, paragrafi e sotto-paragrafi.


Per attivare il folding con la <code>latexsuite</code> basta premere <code>\rf</code> (''Refresh Folding'') in ''normal mode''. Per aprire o chiudere un folding basta andarci sopra col cursore e premere <code>za</code> sempre in ''normal mode''.  
Per attivare il folding con la <code>latexsuite</code> basta premere <code>\rf</code> (''Refresh folds'') in ''normal mode''. Per aprire o chiudere un folding basta andarci sopra col cursore e premere <code>za</code> sempre in ''normal mode''.  


Altri comandi li trovate nel menu ''Strumenti -> Piegature''.
Altri comandi li trovate nel menu ''Strumenti -> Piegature''.
Riga 129: Riga 139:
g:Tex_ViewRule_pdf</pre>
g:Tex_ViewRule_pdf</pre>


; Compilare grandi documenti : Nel caso sia necessario compilare un documento complesso (che abbia al suo interno per esempio dei comandi <code>\include</code> o <code>\input</code>) esistono altri strumenti che vengono in aiuto. Uno di essi è <code>latexmk</code>: il pacchetto fornisce l'omonimo comando di shell che provvede autonomamente a compilare il numero di volte necessari i vari documenti (e solo quando necessario). Infine, è sempre possibile avvalersi dell'utility <code>make</code>, istruendola con un opportuno '''makefile'''.
; Compilare grandi documenti : Nel caso sia necessario compilare un documento complesso (per esempio con al suo interno per esempio dei comandi <code>\include</code> o <code>\input</code>) esistono altri strumenti che ci vengono in aiuto. Uno di essi è <code>latexmk</code>: il pacchetto fornisce l'omonimo comando di shell che provvede autonomamente a compilare il numero di volte necessari i vari documenti (e solo quando necessario). Infine, è sempre possibile avvalersi dell'utility <code>make</code>, istruendola con un opportuno '''makefile'''.
 
== Configurazione avanzata ==
== Configurazione avanzata ==
Per configurare il comportamento del plugin <code>latexsuite</code> secondo le proprie personali esigenze è necessario editare il succitato file <code>'''texrc'''</code>. Qui è possibile ridefinire le macro, il comportamento in fase di compilazione e visualizzazione, l'uso dei placeholder, il comportamento delle finestre di dialogo (per esempio per gli ambienti e la bibliografia), le scorciatoie, il folding e altro ancora.
Per configurare il comportamento del plugin <code>latexsuite</code> secondo le proprie personali esigenze è necessario editare il succitato file <code>'''texrc'''</code>. Qui è possibile ridefinire le macro, il comportamento in fase di compilazione e visualizzazione, l'uso dei placeholder, il comportamento delle finestre di dialogo (per esempio per gli ambienti e la bibliografia), le scorciatoie, il folding e altro ancora.
Riga 141: Riga 152:
|Autore = [[Utente:TheNoise|TheNoise]]
|Autore = [[Utente:TheNoise|TheNoise]]
|Verificata_da =
|Verificata_da =
: [[Utente:Spoon|Spoon]] 16:01, 11 ago 2014 (CEST)
: [[Utente:HAL 9000|HAL 9000]] 12:20, 3 set 2014 (CEST)
: [[Utente:HAL 9000|HAL 9000]] 12:20, 3 set 2014 (CEST)
: [[Utente:Spoon|Spoon]] 15:24, 26 mag 2015 (CEST)
|Estesa_da =
|Estesa_da =
: [[Utente:Spoon|Spoon]] 16:01, 11 ago 2014 (CEST)
: [[Utente:Spoon|Spoon]] 16:01, 11 ago 2014 (CEST)
68

contributi