TeXShop: selezione automatica motore bibliografico

  • Creatore
    Topic
  • #108962
    Up
    0
    Down
    ::


    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]

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #108963
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Si, bravo @Little!

        Sono contento che tu ti sia cimentato in questa scrittura di un applescript in grado di estendere le funzionalità di TeXShop.
        Il tuo proposito di dimostrare la fattibilità, secondo me è perfettamente riuscito. Sarà forse possibile scriverlo meglio, ma ha una funzione particolare che forse non è così esplicita. Quella di scrivere correttamente la riga magica in modo da evitare gli errori che spesso si commettono digitando queste delicate frasi speciali.

        Qualche anno fa qulcuno dei nostri frequentatori aveva predisposto uno script con interfaccia grafica adatto a TeXworks, che consentiva di inserire direttamente ogni riga magica senza errori di battitura e con la sintassi speciale di diversi shell editor, in particolare di TeXShop che è un po’ esigente in merito allo spellng delle righe magiche; TeXworks e TeXstudio sembrano essere maggiormente di “bocca buona”.

        Ma sempre restando nel campo di TeXShop, perché non cercare allora di creare un applescript e un engine che, selezionato nella finestrella accanto a Typeset, apra questa finestrella di interfaccia grafica così che l’utente possa scegliere le righe magiche con dei semplici click su delle check box, e con un click finale su un bottone inserisca le righe magiche? Mi dirai: a che cosa serve visto che ci sono già le voci da cliccare nel menù Macros? Serve perché attualmente nel menù Macros, si possono scegliere solo la codifica, il compositore e il root file, ma TeXShop comprende anche altre righe magiche che non sono presenti in quel menù.

        La cosa inviata a Koch potrebbe entrare, eventualmente modificata, nella dotazione normale di TeXShop, ma solo Koch lo può fare.

      • #108964
        Up
        0
        Down
        ::


        Teoricamente la tua idea dovrebbe essere fattibilissima e una persona che conosce il linguaggio applescript (ma, in realtà, si potrebbero usare anche altri linguaggi) probabilmente stenderebbe una bozza abbastanza rapidamente. Il problema di questo tipo di cose è cercare di farle funzionare sempre e non solo sui miseri e semplici file di test. Questo tra le altre cose è anche il motivo per cui le macro già presenti in TeXShop sono “inutilmente” complicate. Tanto per fare un esempio…se io avessi scritto per intero lo script che ho proposto sarebbe stato lungo circa un terzo di quello che è. Ho preferito copiare e modificare uno script già presente e scritto da persone sicuramente più competenti di me nella speranza di estendere la sua capacità di operare senza causare danni.
        Io nella mia ignoranza ho sempre usato solamente le righe magiche standard (codifica, root, ts-program, bib-program). Quali sono le altre righe magiche?

      • #108965
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Spelling per la scelta del dizionario di sillabazione; certo ora con le ultime versioni di TeXShop, la selezione tramite spelling cancellerebbe tutta la capacità che ha TeXShop di usare il dizionario più adatto, cosa che secondo me sa fare piuttosto bene. Io non ho mai usato spelling, ma credo che sia utile per file che devono andare anche ad altre persone che non usano TeXStudio, magari TeXworks o TeXstudio.

        • #108966
          Up
          0
          Down
          ::


          mmmm….dubito molto di saper scrivere uno script che sia flessibile e possa funzionare sia su texshop che su texstudio e texworks. A dirla tutta sono ottimista di poterlo scrivere per texshop solo perché gran parte del lavoro è già fatto e presente in altra forma (le macro predefinite). Come ho scritto sono ben lontano dall’essere un programmatore, non ho mai usato applescript prima d’ora e non sono nemmeno troppo pratico di altri linguaggi. Non sono insomma la persona adatta per fare una cosa tanto ampia e tanto complessa (considerando anche che non avrei nemmeno abbastanza tempo da dedicare alla cosa). Sicuramente proverò a mettere in piedi qualcosa su texshop nei prossimi giorni ma dubito di riuscire a fare di più 🙂

      Visualizzazione 3 filoni di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top