gerarchia chiamata pacchetti

  • Creatore
    Topic
  • #92018
    Up
    0
    Down
    ::


    Ciao a tutti,

    prima di andare a cena, il qui pro quo che ho generato in questa discussione mi ha fatto tornare in mente un dubbio passato al quale mi ero (o mi era stato…) risposto “vedi nella documentazione dei vari pacchetti che carichi”

    Ripropongo la domanda:

    C’è un modo di sapere, guardando con occhi attenti, oppure cambiando qualche opzione oppure non lo so…chi è il responsabile della chiamata dei pacchetti che sono caricati?

    Nell’esempio:

    Il dubbio era se graphicx fosse caricato o meno da pgfplots. Così tolgo la chiamata a pgfplots e lo trovo caricato comunque…non so perché cerco e scopro che un mio pacchetto lo caricava…ok quindi confermato che non era caricato da pgfplots..e invece no…

    Dunque c’è un modo di sapere che:

    1) sono io che chiamo pgfplots;
    2) prima era pgfplots cje chiamava graphicx;
    3) poi era il mio pacchetto che chiamava graphics?

    Buon appetito!

    Corrado.

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #92019
      Up
      0
      Down
      ::

      Dork” post=91561Ciao a tutti,

      prima di andare a cena, il qui pro quo che ho generato in questa discussione mi ha fatto tornare in mente un dubbio passato al quale mi ero (o mi era stato…) risposto “vedi nella documentazione dei vari pacchetti che carichi”

      Ripropongo la domanda:

      C’è un modo di sapere, guardando con occhi attenti, oppure cambiando qualche opzione oppure non lo so…chi è il responsabile della chiamata dei pacchetti che sono caricati?

      Nell’esempio:

      Il dubbio era se graphicx fosse caricato o meno da pgfplots. Così tolgo la chiamata a pgfplots e lo trovo caricato comunque…non so perché cerco e scopro che un mio pacchetto lo caricava…ok quindi confermato che non era caricato da pgfplots..e invece no…

      Dunque c’è un modo di sapere che:

      1) sono io che chiamo pgfplots;
      2) prima era pgfplots cje chiamava graphicx;
      3) poi era il mio pacchetto che chiamava graphics?

      Buon appetito!

      Corrado.

      Cerca graphicx nel file log e lo scoprirai. Puoi ricavare qualche indizio anche dal messaggio finale che ottieni con [tt]\listfiles[/tt].

      Ciao
      Enrico

    • #92020
      Up
      0
      Down
      ::


      L’ordine lo avevo notato ma..le parentesi no 🙂 come si dice, quando basta un niente…

      Molto molto utile anche \listfiles, grazie mille!

      Corrado.

    • #92021
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Come sai io sono quello che dice sempre di leggere la documentazione e il file .log fa parte della documentazione; un po’ strana, ma documenta quello che un determinato “job” di compilazione ha fatto. Non è certo una lettura facile e divertente, ma pur sempre il file .log documenta tutta la storia di quel particolare job di compilazione.

        Anche il comando listfiles indicatoti da Enrico è utilissimo.

        Ma vorrei aggiungere una cosa che rende la lettura del file .log o dell’output di listfiles un po’ difficle da interpretare.

        Un certo pacchetto può venire chaiamto da diversi altri pacchetti; oppure per sbaglio potrebbe essere caricato più volte nello stesso preambolo. i comandi \RequirePackage e \usepackage controllano se un dato file è già stato caricato; se sì, talvolta, non sempre (non ho capito da cosa dipenda questo comportamanto) quei coandi controlalno anche quali opzioni sono state chiamante nelle varie chiamate; se le chiamante sono fatte con le stesse opzioni, quei comandi evitano di caricare di nuovo il pacchetto chiamato; se le opzioni osno diverse viene emesso un messaggio d’errore che informa del conflitto di opzioni; in ogni caso, anche se al messaggio d’errore si ordina di proseguire, il pacchetto chiamanto per secondo non viene caricato.

        Leggere il file .log o l’output di listfiles permette di trovare i pacchetti che sono stati effettivamente caricati; quindi non si vedono chiamate multple. nel file log le parentesi tonde aperte e chiuse aiutano a districarsi un po’, ma permettono solo di risalire al pacchetto o alla classe che ha effettivamente caricato il pacchetto, non ha quelle altre chiamate che sono state ignorate. Sempre meglio di niente, ma non è facile scovare l’intera verità. Bisognerebbe aprire tutti i pacchetti caricati e farsi una liste delle chiamante eseguite cone \RequirePackage, poi forse si riesce a scoprire davvero chi chiama che cosa.

        Infatti come ti ha detto @cfiandra, pgf chiama tikz che a sua volta chiama graphicx; se tu direttamente o indirettamente hai chiamanto graphicx prima di pgf, quando è il turno di tikz di chiamare graphicx, si scopre che il pacchetto c’è già e non viene chiamato una seconda volta. Analogamante, ma viceversa se tu chiami graphicx dopo pgf.

        Un altro tipico esempio è quello di molti che chiamano amsmath, amsymb e amsfonts; ma amsfonts è già chiamato da amssymb, quindi non viene caricato una seconda volta.

        Sarebbe desiderabile che tutti i pacchetti siano chiamabili senza opzioni; e questo meccanismo sarebbe perfetto per non chiamare due volte lo stesso pacchetto; e che ogni pacchetto sia configurabile con un comando del tipo \nomepacchettosetup; in modo che si possano anche cambiare le opzioni specificate altrove e non si avrebbe il conflitto di opzioni, al massimo un messaggio, in caso di opzioni mutuamente esclusive, che la tal opzione è stata annullata, perché successivamente contrastata dall’opzione tal’altra. Ma il LaTeX Team non può stare dietro alla miriade di pacchetti (quasi 3000) di cui è composto TeXLive, e la responsabilità di fare queste cose rimane sulle spalle di chi ha creato i pacchetti. Peccato che i pacchetti esistono da almeno 20 anni, alcuni non sono obsoleti affatto, ma il loro autori nel frattempo siano morti; nessuno lo sa, quindi quei pacchetti non verranno mai aggiornati.

        Ognuno dovrebbe aiutare i curatori dei vari pacchetti sengalando loro eventuali conflitti, in modo che i curatori possano provvedere. Spesso le cose non vannao così. Io ho avuto recentemente una conferma che un curatore può anche invitare gli utenti del suo pacchetto a segnalare gli errori; io curo anche il file di descrizione della lingua Latina, che fa parte di LaTeX2e da quando esso esiste; chiesi anche aiuto ad un docente di latino dell’università per darmi una mano su alcune cosette; in questi 20 anni ho avuto tre segnalazioni di cose da correggere da utenti tedeschi. Ma tre giorni fa il prof che mi aveva dato una mano mi ha detto che quel file è inutilizzabile, perché si riferisce al latino moderno (e poi neanche tanto benei…) ma non va bene per il latino classico. D’accodo ma cosa serve mettere la richiesta di segnalare errori e segnalando l’indirizzo e-mail a cui rivolgersi se poi non ci si rivolge a nessuno e non si usa il software o si reinventa l’acqua calda per fare una cosa che basterebbe segnalare?

        Questo grido di dolore è un po’ Off Topic, ma è collegato ai famosi conflitti, a chi carica che cosa, a quali opzioni siano state specificate, eccetera.

      • #92022
        Up
        0
        Down
        ::


        Restando off topic ma non troppo (poi ci rientro) capisco quello che dici, ma credo che non tutti sappiano come fare segnalazioni o contribuire…io per esempio ho appena scoperto git..e ne sono entusiasta, lo sto usando da me per la mia tesi, non vedo l’ora di usarlo per altro, e spero di poterlo usare per dare una mano.. Per fare un altro esempio (che ti riguarda) ricordo che avevo scritto delle note nel tuo documento per le codifiche, modificando qualcosa verso la fine (non ricordo ma l’ho scritto nel documento che ho stampato) che non funzionava nella procedura di conversione per come l’avevo capita…non te l’ho ancora mandata eppure è un po’ che anche ci scriviamo e rispondiamo (ma vorrei sistemarla decente prima :-))…ecco… quindi penso a tutti quelli che hanno un problema di altro tipo, magari un pacchetto che da errore, chiedono aiuto e magari lo si risolve..e una volta risolto la priorità è un’altra: andare avanti…e a parte questo..credimi…che se non sei un esperto E non ti consideri tale…non penserai mai a un errore del dio supremo alieno che ha scritto il pacchetto in chissà quale stato di trans con tutti quei geroglifici..ma sei tu novello e pivello che hai sbagliato..e anche se fossi (quasi) sicuro che hai ragione non ti sentiresti comunque probabilmente all’altezza di segnalarlo (sempre che tu sappia come fare…che parole usare per descrivere il problema…se hai capito qule è il problema…)… forse però è anche una fortuna sia così o vi ritrovereste sommersi da e-mail per le quali nel 90% (forse più) dei casi il problema è solo lato utente e risolvibile legendo una guida…(o sl forum in modo da essere d’aiuto anche a chi usa la funzione “cerca” :-)) boh non so…

        I ogni modo, tornando a noi è vero quello che dici e quello che pensavo era proprio una sorta di “grafo delle chiamate” così da vedere anche i rami morti. Comunque fossi stato attento alle parentesi, avrei capito il problema perché nella prima compilazione avrei avuto (scrivo a braccia eh…):

        (babel(…))…(pgfplots(tiks(graphicx)))…(miouniud)

        poi invece, commentata la chiamata a pgfplots avrei visto

        (babel(…))…(miouniud(graphicx))

        e mi sarei subito ricordato che avevamo richiamato graphicx (se necessario) nel pacchetto…e sopratutto non avrei avuto dubbi che chiamare pgfplots portava, in un modo o nell’altro, ad attivare (se non già fatto..e non lo era nel mio caso) graphicx…quindi non avrei avuto il dubbio di aver dato un consiglio sbagiato (…cosa che, tornando off topic…diminuisce la mia spinta emotiva a espormi nel dare aiuto e ancora meno ad arrogarmi la presunzione di segnalare un errore, per esempio, a te)….e mi sarei sentito molto meglio da subito 🙂 (..è una cosa stupida..ma è così :-))

        come vedi…più sai e più fai e più sai (e fai) e più ti senti sicuro nel dare una mano e nel correggere (o provarci)..ma solitamente chi incontra problemi…è proprio quello che non sa… 🙂 (e spesso non sa nemmeno qual’è il problema..oltre al fatto che “non funziona” …)

        Dal mio punto di vista, è per questo che servono i gruppi…in un gruppo si presuppone di avere medesime competenze, e medesimi desideri (anche se nella realtà potrebbe non essere così..lo si suppone comunque) e quindi ci si confronta…per miouniud.sty io e te abbiamo fatto un gruppo (dove tu eri la parte predominante :-), grazie +1) ma io non ho avuto nessun problema a scrivere sopra quello che scrivevi tu, a proporre, chiedere, provare, ecc… perché ci stavamo lavorando noi…ok non era utile a nessuno se non a me..ma credo che comunque nessuno (se non avesse cominciato a far parte del gruppo di “sviluppo”) avrebbe mai detto “toc toc…ho provato a usarlo, qui mi da errore, secondo me il problema è questo, non so come risolverlo, ciao, quando risolvete figata così lo uso bene..nel frattempo mi arrangio in altro modo”…e fra qualche mese, quando lo sistemerò facendolo anche bellino nella descrizione, e lo proporrò a Gorni come aggiornamento di quello proposto attualmente, se lo accettasse è ovvio che spererei che qualcuno mi scrivesse quel “toc toc…” ma so che sarà più probabile che quel qualcuno scriva timidamente qui sul forum (come farei io…) …magari pensando a un errore suo..o di un altro pacchetto…e magari né io né te quel giorno ce ne accorgiamo…e non sarà risolto…

        una mia grandissima amica una volta mi disse “se ti aspetti qualcosa dagli altri resterai sempre deluso…è praticamente impossibile che quello che pensi tu in quel momento sia quello che pensano loro nello stesso momento” e non perché non siano brave persone ma solo perché non sono …e quello che ti aspetti da loro è solo quello che faresti tu (con la conoscenza che hai senza essere loro) se fossi in loro (senza però avere la loro conoscenza perché in realtà sei “solo” tu)

        In ogni modo..io sono Felicissimo che fra tutti aiutate anche me 🙂 Grazie 🙂 …e spero e provo nel mio piccolo anche io a dare una mano (che tra l’altro sto LaTeX mi piaceva prima e mi sta piacendo sempre di più :-)) (negli ultimi tre giorni ho già convertito due persone a informarsi e a vedere come funziona…e una di loro è un prof delle superiori :-))

        Notte notte 🙂

        Corrado.

      • #92023
        Up
        0
        Down
        ::


        Segnalo che su TeXLive è apparso pkgloader.

        Ciao
        Claudio

      • #92024
        Up
        0
        Down
        ::

        cfiandra” post=91753Segnalo che su TeXLive è apparso pkgloader.

        Ciao
        Claudio

        Battuto sul tempo! Stavo per segnalarlo io 🙂

        Ciao
        Tommaso

      • #92025
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          che, come ho già avuto occasione di commentare, risolve molti conflitti Ma non TUTTI.
          Claudio

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

      Go to top