Robitex's Blog

Ideas in the web

TeXStudio: inserire la data corrente


Perché data e ora?

Una delle cose che mi mancavano in TeXStudio era la possibilità d’inserire nel sorgente LaTeX la data e l’ora corrente con una semplice combinazione di tasti. Questa funzionalità mi permette di tracciare molto semplicemente l’evoluzione temporale del documento e di misurare il tempo che ho impiegato per scriverne una data porzione.

Infatti, in un sorgente LaTeX è possibile inserire dei commenti tramite il carattere di percentuale: tutto quello che vi compare dopo verrà ignorato dal compositore tipografico in fase di compilazione.

Una stringa di timestamp potrebbe per esempio essere:

% 12/06/2015 :: 11:35:32 ::

Come vedete il timestamp è preceduto dal carattere di commento del simbolo percentuale seguito dalla data e dall’ora. Sarebbe un tantino noioso inserirlo a mano digitandolo da tastiera nella finestra dell’editor per di più quando il tempo stringe e la relazione va consegnata🙂

Per chi non ha mai sentito il termine LaTeX, ho l’onere di provocare io questo evento e di indirizzarvi naturalmente al sito del TeX User Group nazionale — il GuIT — per trarne ulteriori informazioni.

Scripting in TeXStudio

Pur preferendo l’essenzialità di uno shell editor per LaTeX come TeXWorks, ultimamente ho cominciato a usare TeXStudio per le sue numerosissime feature. Tra queste vi è la possibilità di associare una combinazione di tasti all’esecuzione di uno script in Javascript come recita il manuale.

Questo post vi spiega come realizzarlo.

Al lavoro con le macro in Javascript

Innanzi tutto si apre la finestra di modifica delle macro che vedete qui sotto (da menù: Macro -> Modifica macro):

TeXStudio macro window

TeXStudio macro window

Si preme il tasto + per inserirne una nuova e dopo averne specificato il nome basta scrivere il codice nella rispettiva finestra inserendo obbligatoriamente nella prima riga il testo “%SCRIPT”. Questa chiave farà in modo che TeXStudio interpreti il codice seguente come codice Javascript.

Per inserire testo possiamo avvalerci del metodo insertText() dell’oggetto editor. Facciamo una prova con questo primo script:

%SCRIPT

editor.insertText("% testo inserito via macro :-)")

Adesso, tornati alla finestra principale di TeXStudio possiamo eseguire lo script con la combinazione di tasti “Shift + F1” se abbiamo inserito la macro nella posizione 1. Aprendo il menù macro dovremo vedere tra le voci quella nuova di prova con l’indicazione della combinazione di tasti associata.

A questo punto è solo questione di trovare le funzioni Javascript per la data: Date() e di fare un po’ di prove con i metodi dell’oggetto. Ovviamente non è mia intenzione approfondire il linguaggio Javascript ma solo scrivere il codice per l’inserimento automatico del timestamp secondo un formato personalizzato mostrato precedentemente.
Prima di mostrarvi il codice completo vi saluto.
R.

%SCRIPT
var dt = new Date()
var y = dt.getFullYear()
var m = dt.getMonth() + 1
if (m < 10) { m = "0" + m}

var d = dt.getDate()
var s1 = "% " + d + "/" + m + "/" + y

var hour = dt.getHours()
var min = dt.getMinutes()
if (min<10) {min = "0"+min}
var sec = dt.getSeconds()
if (sec<10) {sec = "0" + sec}
var s2 = " :: " + hour + ":" + min + ":" + sec

editor.insertText(s1 + s2 + " :: ")

2 risposte a “TeXStudio: inserire la data corrente

  1. furbenzio 12/06/2015 alle 21:53

    bello. È possibile, che tu sappia, fare lo stesso in texworks?

    • robitex 13/06/2015 alle 09:17

      Ciao. Con TeXWorks è più semplice (almeno per me).
      Dal menù Script -> TeXWorks Scripting -> Mostra cartella script : apri la directory dove puoi salvare i piccoli file in QTScript, in Lua o in Python.
      I linguaggi devono essere attivati esplicitamente nelle preferenze, mentre una serie di linee iniziali di commento impostano il nome, la combinazione di tasti, ecc.
      Info qui
      R.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: