- Questo topic ha 4 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 9 anni, 8 mesi fa da .
-
Topic
-
Buongiorno a tutti…leggevo la discussione sulla nuova versione dell’arte e mi sono imbattuto nei messaggi che riguardavano la funzionalità di AUCTeX di distinguere autonomamente il motore bibliografico da usare. Riporto qui sotto l’ultimo messaggio a riguardo.Elrond” post=109079
AUKTeX distingue da solo il motore da usare? Ottimo.
Sì, semplicemente AUCTeX esegue il parsing della riga
`\usepackage[…]{biblatex}`
e in base alle opzioni che l’utente ha già passato a biblatex decide quale motore utilizzare.OldClaudio” post=109078Ma anche TeXShop e TeXworks lo fanno tramite le righe magiche.
Cioè l’utente deve scrivere una riga in più oltre a
`\usepackage[…]{biblatex}`
e se cambia il motore bibliografico deve cambiare di conseguenza la riga magica. Non mi sembra esattamente la stessa cosa 🙂 (Nota: non sto dicendo che questo modo di procedere sia terribilmente complicato, anzi, però se l’informazione sul motore bibliografico è già contenuta da qualche parte mi sembra inutile duplicarla.)Quando ho letto ciò ho subito pensato che in realtà fosse possibile implementare in TeXShop qualcosa di simile e quindi ho dedicato un’oretta a vedere se ci si riusciva davvero.
Premessa: non sono un programmatore, non avevo mai utilizzato prima applescript e quello che vi vado a presentare qui sotto prendetelo semplicemente come un “si può fare, sicuramente in un modo migliore di questo”
Premessa 2: come ho scritto non ci ho dedicato molto tempo e questo fondamentalmente per due motivi. La prima è che ho sempre usato solo biber quindi non ho la necessità di modificare il motore bibliografico (che da preferenze dell’applicazione ho impostato su biber). Non è quindi questo un miglioramento di cui io beneficerei. La seconda è che si tratta solo di un miglioramento marginale: può essere interessante dal punto di vista accademico ma dal punto di vista funzionale non penso che molte persone abbiano mai pensato che avrebbero voluto di più delle righe magiche per la configurazione rapida dei documenti.
DISCLAIMER: Il codice qui sotto è ad uno stato primordiale e non è mai stato testato in maniera approfondita. Potrebbe causare perdite di dati nei vostri documenti, usatelo quindi solamente con dei documenti di test.
Passiamo adesso al codice. Il cuore è uno script scritto in linguaggio Applescript.
La base di questo script è una macro predefinita di TeXShop chiamata “Program”. Io ho solo modificato leggermente questa macro per adattarla al nuovo scopo.L’idea di base risiede nel far eseguire questo Applescript ogni volta che viene premuto il tasto di compilazione. Questo script andrà a verificare l’esistenza della specifica backend=bibtex e a modificare/creare la riga magica % !BIB TS-program in accordo con la verifica.
Istruzioni
In allegato l’applescript chiamato BackendSelection.scpt (dovete rimuovere l’estensione tex che ho aggiunto per poter allegare il file)
Scaricate il file e salvatelo sulla scrivania (*)Per poter eseguire questo script ogni volta che viene premuto il tasto typeset di TeXShop bisogna creare un engine da utilizzare per la compilazione.
Andate quindi nella cartella ~/Library/TeXShop/Engines/ e create un file (potete anche duplicare uno degli engine già presenti) dal nome pdflatexMod.engine
All’interno di questo file scrivete`#!/bin/bash
PATH=$PATH:/usr/texbin:/usr/local/bin
osascript ~/Desktop/BackendSelection.scpt
pdflatex –file-line-error –synctex=1 “$1″`Riavviate a questo punto TeXShop (se era aperto) e provate a compilare un file di test con questo motore (basta avere la riga magica “% !TEX TS-program = pdflatexMod” per usare questo engine)
(*) si può ovviamente usare un percorso diverso dalla scrivania e per farlo basta cambiare propriamente il percorso dello script all’interno dell’istruzione che lo richiama nel file dell’engine.
Conclusioni
Come detto lo scopo di questo esperimento era semplicemente dimostrare che “si può fare”. Volevo quindi sottoporvi questo test anche per sapere secondo voi quanto potesse essere utile una funzione simile.
Per quanto mi riguarda è una funzione assolutamente superflua ma questo esperimento mi ha dimostrato e vi ha dimostrato (spero) che TeXShop è molto più flessibile di quello che sembra 🙂[attachment=1810]BackendSelection.scpt.tex[/attachment]
- Devi essere connesso per rispondere a questo topic.