Documento LaTeX con estrazione dati da DB MySQL

  • Creatore
    Topic
  • #55853
    Up
    0
    Down
    ::


    Buongiorno a tutti.
    Vorrei realizzare le schede esplicative degli antichi strumenti di fisica esposti nel museo di cui sono il curatore in LaTex estraendo un certo numero di campi da un database MySQL già esistente.

    L’idea sarebbe questa (non so se sia la soluzione migliore)…
    Creare un file per ogni strumento da spiegare con:
    – comandi di connessione in PHP al database
    – query di estrazione dati
    – entro PHP i comandi latex di generazione di una tabellina con nelle celle i dati estratti dal database

    Nel documento principale includere i vari file dati degli strumenti con il comando include.

    La cosa mi sarebbe di enorme comodo, dato che una modifica/aggiornamento dei dati nel database (che fa da cuore gestionale sia interno al museo che di un sito web) si ripercuoterebbe immediatamente pure nei fogli di spiegazioni, senza dover fare la cosa ogni volta a mano come adesso.

    La mia domanda è: si può oppure è fantascienza?
    E se sì, come si fa a far eseguire dei comandi PHP-MySQL a LaTex, quali i pacchetti da attivare?

    Grazie

Visualizzazione 33 filoni di risposte
  • Autore
    Risposte
    • #55854
      admin
      Amministratore del forum
        Up
        0
        Down
        ::


        Il messaggio andrebbe meglio in “Altri programmi”.
        Non so risponderti, ma vedi se con samiel riesci a fare qualcosa: Biblatex e database.

        Ciao,
        ansys.

      • #55855
        Up
        0
        Down
        ::


        L’origine di tutto ciò è il punto 2 di questa discussione
        http://www.guit.sssup.it/phpBB2/viewtopic.php?t=5840&highlight=mysql
        Tuttavia lì non viene detto come fare, ma solo che è “semplice” (spero sia così!) se c’è poca dinamicità.
        In effetti relativamente al documento di testo principale tutta la formattazione è nel preambolo (non ho bisogno di dinamicità per figure o altro). L’unica parte mutevole sono le tabelline in alto a destra per ciascun testo di spiegazioni con le caratterisitiche salienti dello strumento…
        Tutto sommato (mi illudo) basterebbe un modulo che dia a Latex i comandi PHP e di MySQL, una volta appurata la presenza di un web server attivato su PC, com’è ovviamente sul mio…

      • #55856
        dianoia
        Partecipante
          Up
          0
          Down
          ::


          Non so se ho capito bene, si tratta di inserire all’interno di un sito web un link a partire dal quale php
          1) estrae i dati dal db,
          2) li usa per completare un codice tex per poi
          3) lanciare la compilazione pdfltaex e
          4) aprire il documento risultante…?

          Non mi sembra tremendamente complesso. Devi definire un buon file main.tex all’interno del quale definire tutte le parti statiche ed un \input{} ad un file (temporaneo) contenente le parti variabil,i fornite mediante i dati del db. La cosa un’attimo più rognosa potrebbe essere creare in maniera coerente il file da passare come input al main.tex.

        • #55857
          robitex
          Amministratore del forum
            Up
            0
            Down
            ::


            Umh,
            la cosa più importante a mio avviso, è che serve una procedura equilibrata per ottenere un risultato di qualità. Consiglio quindi soluzioni semplici, ma funzionanti, da perfezionare nel tempo, piuttosto che architetture complesse completamente automatiche ma troppo lunghe da realizzare.

            Dunque tu hai un problema di reporting, ed intendi usare LaTeX.
            Ecco come immaginerei di fare:
            1- programmare in un linguaggio di scripting interpretato
            2- spostamento della logica compositiva nel sorgente LaTeX e non nello script.

            In definitiva proverei a scrivere uno script in Lua od in Python, che effettuino la query verso il database e creino uno o più sorgenti LaTeX, eseguendone poi la compilazione.
            Io non conosco PHP ma se ti trovi meglio con questo linguaggio puoi usarlo.
            Scegliere Lua potrebbe essere ancor più utile se si pensa di utilizzare lualatex. Con il nuovo motore infatti sembra possibile consultare il database relazionare direttamente da un sorgente LaTeX.

            La scaletta di lavoro:
            a- preparare un sorgente LaTeX che produca una scheda con dati statici, base futura di una classe di documento specifica;
            b- script che esegua la query sul db;
            c- script che crea il file sorgente e lo compila con pdflatex;
            d- assemblaggio del codice per lo script definitivo;

            Un po’ di codice Lua commentato che crea sorgenti LaTeX e li compila lo puoi leggere sul mio blog (per esempio in questo post http://robitex.wordpress.com/2010/12/13/reinventare-inventario/ ).
            Ecco il codice Lua di una funzione che prende il nome del file e lo compila con LaTeX (molto semplice non credi?) e funziona in Windows e Linux e Mac.

            `
            local function makepdf( fn )
            print(“Start pdfLaTeX run…”)
            os.execute(“pdflatex ” .. fn)
            print(“End”)
            end
            `

            Recentemente mi sono interessato ad alcuni moduli Python che prevedono la costruzione di file a partire da template a campi variabili, ma prima è necessario fare esperienza con una soluzione più manuale e semplice, prima di passare ad uno sviluppo definitivo. Meglio una soluzione rabberciata ma funzionante che un codice portentoso ma inconcludente!

            Ciao

          • #55858
            robitex
            Amministratore del forum
              Up
              0
              Down
              ::


              Dimenticavo,
              A MySQL si accede attraverso la libreria esterna del progetto Kepler luasql, ecco un esempio di codice:
              `
              require “luasql.mysql”
              env = assert (luasql.mysql())
              con = assert (env:connect”my_db”)
              for id, name, address in rows (con, “select * from contacts”) do
              print (string.format (“%s: %s”, name, address))
              end
              `

              Potremo scrivere insieme un articoletto sull’argomento (eventualmente scrivetemi via e-mail sul blog è pubblicato l’indirizzo che qui non riporto per motivi di anti spam).

              Ciao

            • #55859
              Up
              0
              Down
              ::

              Non so se ho capito bene, si tratta di inserire all’interno di un sito web un link a partire dal quale php
              1) estrae i dati dal db,
              2) li usa per completare un codice tex per poi
              3) lanciare la compilazione pdfltaex e
              4) aprire il documento risultante…?

              Diciamo in soldoni che la parte prettamente web è perfettamente risolta e operativa. L’obiettivo è lavorare esclusivamente in ambito LaTex (se si può), nel senso che ho i testi esplicativi degli strumenti già tutti scritti (in Word). Lì ogni blocco relativo a uno strumento presenta il testo (non serve la dinamicità). Poi in alto a sinistra c’è una piccola immagine del dispositivo (testo attorniato) e a destra una tabella con le caratteristiche sempre col testo attorniato. Sono i campi di questa tabellina che vorrei connettere al db MySQL in ambito LaTex. E ho già le query scritte in PHP -MySQL che provengono dal sito internet che ho realizzato e mi piacerebbe procedere a un riciclaggio. Per questo motivo sono interessato a soluzioni in ambito PHP.

              Mi chiedevo insomma se ci fosse un sistema per far interpretare ed eseguire server-side un listato in PHP-MySQL attivando qualche pacchetto a me chiaramente ignoto. Credo di aver intuito che invece il metodo suggeritomi prevede il Latex come ultimo passo ossia si genera un file che al posto di essere visualizzato nel web tramite comandi html ha comandi di formattazione latex poi eseguiti dal processo di uscita del PDF. E’ così?

            • #55860
              dianoia
              Partecipante
                Up
                0
                Down
                ::


                La mia esperienza di reportistica con latex si basa sull’uso di python, connesso ad un db sqlite. Una cosa un pò in piccolo quindi. La struttura logica è questa:
                1. un file report_main.tex da non modificare “mai”, che contiene la chiamata \inut{} ad un file secondario, modifcato dallo script
                2. tale file secondario contiene delle parole chiave quali CLIENTE, PREZZO, DESCRIZIONE…
                3. avviato lo script, viene chiesto a quale cliente si vuole scrivere,… quindi python si occupa di estrarre i dati necessari e di stotituire le parole chiave suddette con il testo contenuto nel db. Mera sostituzione di stringhe quindi!!
                4. ovviamente alla fine python lancia la compilazione, con un minimo di gestione dell’exit status per valutare vari errori (esistono anche delle librerie che si occupano in modo efficiente di cose analoghe)

                Nella forma della sostituzione di stringhe il lavoro, per quanto maccheronico, non dovrebbe essere molto difficile.[/b]

                Confermo quindi la versione “Latex come ultimo passaggio”, che non lancia altri programmi ma anzi viene lanciato alla fine dell’interazione con l’utente.

                Una domanda banale: gli strumenti sono tanti e tali che non vale la pena preparare tutti i relativi pdf prima? Perchè compilare ogni volta che un utente clicca su uno strumento? Forse le informazioni ed il numero degli strumenti sono soggetti a variazioni e quindi saresti costretto a (ricordarti di) generare i pdf?

                Saluti!
                Pietro

              • #55861
                robitex
                Amministratore del forum
                  Up
                  0
                  Down
                  ::

                  Non so se ho capito bene, si tratta di inserire all’interno di un sito web un link a partire dal quale php
                  1) estrae i dati dal db,
                  2) li usa per completare un codice tex per poi
                  3) lanciare la compilazione pdfltaex e
                  4) aprire il documento risultante…?

                  Diciamo in soldoni che la parte prettamente web è perfettamente risolta e operativa. L’obiettivo è lavorare esclusivamente in ambito LaTex (se si può), nel senso che ho i testi esplicativi degli strumenti già tutti scritti (in Word). Lì ogni blocco relativo a uno strumento presenta il testo (non serve la dinamicità). Poi in alto a sinistra c’è una piccola immagine del dispositivo (testo attorniato) e a destra una tabella con le caratteristiche sempre col testo attorniato. Sono i campi di questa tabellina che vorrei connettere al db MySQL in ambito LaTex. E ho già le query scritte in PHP -MySQL che provengono dal sito internet che ho realizzato e mi piacerebbe procedere a un riciclaggio. Per questo motivo sono interessato a soluzioni in ambito PHP.

                  Mi chiedevo insomma se ci fosse un sistema per far interpretare ed eseguire server-side un listato in PHP-MySQL attivando qualche pacchetto a me chiaramente ignoto. Credo di aver intuito che invece il metodo suggeritomi prevede il Latex come ultimo passo ossia si genera un file che al posto di essere visualizzato nel web tramite comandi html ha comandi di formattazione latex poi eseguiti dal processo di uscita del PDF. E’ così?

                  La cosa è semplice concettualmente:
                  una query ricava un set di dati
                  con i dati si forma un pdf che poi l’utente scarica
                  (il classico concetto di report)

                  latex interviene nella produzione del pdf, quindi è indispensabile che in un qualche momento venga scritto il file sorgente per la compilazione
                  questo momento può essere già stabilito, allora sei tu che generi i pdf e li metti on-line, oppure può essere un momento qualsiasi, allora il server genera al momento il sorgente, lo compila e lo mette on-line per lo scaricamento

                  la prima modalità statica può essere risolta con uno script che esegue la query, ecc
                  la seconda dinamica, deve essere eseguita dal server, con un più elevato tempo di esecuzione.

                  Nel tuo caso codice PHP deve essere in grado di compiere tutti i passaggi: query, creazione sorgente, compilazione (interazione con il s.o.) e link per lo scaricamento.
                  Io non conosco PHP ma penso sia in grado di farlo, altrimenti penso sia facile documentarsi.

                  Tuttavia se i dati non cambiano frequentemente, conviene a mio avviso, presentare il pdf già pronto da scaricare (è in sostanza la stessa situazione in cui mi trovo quando creo il pdf di un post del blog, proprio con uno script che lavora con LaTeX)

                  Scusa se mi sono ripetuto, ma mi sembrava opportuno mettere l’accento non sulla singola tecnologia (PHP o LaTeX), ma sull’architettura del processo.
                  Buon LaTeX!!

                  PS. sto scrivendo un articoletto sull’accesso ai dati di un db direttamente da un sorgente TeX (lualatex) e spero presto di metterlo on-line con il relativo PDF.
                  Al momento riporterò qui il link.

                • #55862
                  Up
                  0
                  Down
                  ::


                  Grazie per l’interessamento.
                  Ho esplorato questa soluzione SQLTEX. In effetti sarebbe proprio quello che sto cercando.
                  http://oveas.com/freeware/overige/sqltex/sqltex-documentation?start=2
                  Ci sono comandi SQL dentro il documento principale in latex. Fantastico!
                  Tuttavia io lavoro sotto Vista e W7. Ho instalalto perl, ma poi niente da fare… Non essendoci l’installer per Windows del sistema non ne sono andato fuori! Anzi, ho proprio il sospetto che la cosa non possa funzionare con questi S.O. 😥
                  In ogni caso sarebbe proprio ciò che vado cercando…
                  Ho pure esplorato ratexdb ma anche in questo caso senza successo alcuno…

                • #55863
                  robitex
                  Amministratore del forum
                    Up
                    0
                    Down
                    ::

                    Grazie per l’interessamento.
                    Ho esplorato questa soluzione SQLTEX. In effetti sarebbe proprio quello che sto cercando.
                    http://oveas.com/freeware/overige/sqltex/sqltex-documentation?start=2
                    Ci sono comandi SQL dentro il documento principale in latex. Fantastico!
                    Tuttavia io lavoro sotto Vista e W7. Ho instalalto perl, ma poi niente da fare… Non essendoci l’installer per Windows del sistema non ne sono andato fuori! Anzi, ho proprio il sospetto che la cosa non possa funzionare con questi S.O. 😥
                    In ogni caso sarebbe proprio ciò che vado cercando…
                    Ho pure esplorato ratexdb ma anche in questo caso senza successo alcuno…

                    Se la tua situazione ideale è inserire una query in un sorgente LaTeX, allora perché non ricorrere direttamente a LuaLaTeX?
                    Lavori come sempre con il ben noto e documentato markup di LaTeX (con lievi modifiche nel caricamento di alcuni pacchetti), ma ti ritrovi la possibilità di far lavorare la libreria che si chiama guarda un po’, LuaSQL.

                    Funziona sai, ci sto proprio lavorando (con un database server PostgreSQL però).
                    Bye

                  • #55864
                    Up
                    0
                    Down
                    ::

                    Grazie per l’interessamento.
                    Ho esplorato questa soluzione SQLTEX. In effetti sarebbe proprio quello che sto cercando.
                    http://oveas.com/freeware/overige/sqltex/sqltex-documentation?start=2
                    Ci sono comandi SQL dentro il documento principale in latex. Fantastico!
                    Tuttavia io lavoro sotto Vista e W7. Ho instalalto perl, ma poi niente da fare… Non essendoci l’installer per Windows del sistema non ne sono andato fuori! Anzi, ho proprio il sospetto che la cosa non possa funzionare con questi S.O. 😥
                    In ogni caso sarebbe proprio ciò che vado cercando…
                    Ho pure esplorato ratexdb ma anche in questo caso senza successo alcuno…

                    Se la tua situazione ideale è inserire una query in un sorgente LaTeX, allora perché non ricorrere direttamente a LuaLaTeX?
                    Lavori come sempre con il ben noto e documentato markup di LaTeX (con lievi modifiche nel caricamento di alcuni pacchetti), ma ti ritrovi la possibilità di far lavorare la libreria che si chiama guarda un po’, LuaSQL.

                    Funziona sai, ci sto proprio lavorando (con un database server PostgreSQL però).
                    Bye

                    C’è sempre il trucco di \input{|} (occorre abilitare shell-escape) che funziona più o meno come $(

                  • #55865
                    robitex
                    Amministratore del forum
                      Up
                      0
                      Down
                      ::


                      Ad un velocissimo sguardo SQLTeX soffre di alcune limitazioni, come quella di un massimo di record di 1000, ma posso benissimo sbagliarmi.
                      Era solo per comunicarvi la mia sensazione su questo software.
                      A presto.
                      Ps. forse concluderò la guida su LuaLaTeX+postgreSQL nel giro di uno o due giorni.
                      Saluti

                    • #55866
                      admin
                      Amministratore del forum
                        Up
                        0
                        Down
                        ::

                        Ps. forse concluderò la guida su LuaLaTeX+postgreSQL nel giro di uno o due giorni.

                        [OT]
                        A quando quella di LuaLaTeX? 😮
                        [OT]

                      • #55867
                        robitex
                        Amministratore del forum
                          Up
                          0
                          Down
                          ::

                          Ps. forse concluderò la guida su LuaLaTeX+postgreSQL nel giro di uno o due giorni.

                          [OT]
                          A quando quella di LuaLaTeX? 😮
                          [OT]

                          La cosa ideale sarebbe quella di lavorare in due o tre persone e presentare l’articolo per ArSTeXnica di ottobre.
                          Tempi più brevi sarebbero incompatibili con i miei impegni.
                          Saluti.

                        • #55868
                          admin
                          Amministratore del forum
                            Up
                            0
                            Down
                            ::

                            [quote]Ps. forse concluderò la guida su LuaLaTeX+postgreSQL nel giro di uno o due giorni.

                            [OT]
                            A quando quella di LuaLaTeX? 😮
                            [OT]

                            La cosa ideale sarebbe quella di lavorare in due o tre persone e presentare l’articolo per ArSTeXnica di ottobre.
                            Tempi più brevi sarebbero incompatibili con i miei impegni.
                            Saluti.[/quote]
                            😥 io non so ancora nulla di LuaLaTeX… Chi si cimenta con robitex alla guida? egreg9?
                            Comunque scherzi a parte, so bene dei vostri impegni, diamo tempo al tempo 🙂

                            Ciao,
                            ansys.

                          • #55869
                            Up
                            0
                            Down
                            ::

                            Se la tua situazione ideale è inserire una query in un sorgente LaTeX, allora perché non ricorrere direttamente a LuaLaTeX?
                            Lavori come sempre con il ben noto e documentato markup di LaTeX (con lievi modifiche nel caricamento di alcuni pacchetti), ma ti ritrovi la possibilità di far lavorare la libreria che si chiama guarda un po’, LuaSQL.

                            Funziona sai, ci sto proprio lavorando (con un database server PostgreSQL però).
                            Bye

                            Ah, questo è molto interessante. Allora ne approfitto per chiederti delle cose, poiché ho diversi documenti realizzati in Latex e vorrei essere sicuro di non creare problemi installando ‘sto LuaLatex.
                            In particolare sulle mie due macchine ho installato
                            MiKtex 2.9
                            TecnicCenter 1.0

                            Ora, vorrei capire cosa comporta l’installazione di LuaLatex su pregressi file perfettamente funzionanti. Sai com’è, vorrei andarci con i piedi di piombo, poiché Latex lo uso per molte cose…
                            Grazie mille

                          • #55870
                            OldClaudio
                            Partecipante
                              Up
                              0
                              Down
                              ::


                              Garda che proababilmente con MiKTeX 2.9 LuaLaTeX ce l’hai già a bordo, quindi non devi installare niente; semplicemente usarlo o non usarlo; non è che eprché vuoi usare LuaLaTeX, i vecchi file non li puoi più gestire; li tratti come sempre hai fatto con uno degli altri eseguibili della distribuzioni MiKTeX: hai dato una occhiata al contenuto della cartella C:\programmi\MiKTeX\2.9\miktex\bin\ ? Lì ci sono tutti gli eseguibili della distribuzione MiKTeX.

                            • #55871
                              robitex
                              Amministratore del forum
                                Up
                                0
                                Down
                                ::


                                PS. sto scrivendo un articoletto sull’accesso ai dati di un db direttamente da un sorgente TeX (lualatex) e spero presto di metterlo on-line con il relativo PDF.
                                Al momento riporterò qui il link.

                                Eccomi qui con il link alla guida:

                                PostgreSQL gestisce i dati, LuaLaTeX li stampa


                                Enjoy!

                              • #55872
                                Up
                                0
                                Down
                                ::

                                Garda che proababilmente con MiKTeX 2.9 LuaLaTeX ce l’hai già a bordo, quindi non devi installare niente; semplicemente usarlo o non usarlo; non è che eprché vuoi usare LuaLaTeX, i vecchi file non li puoi più gestire; li tratti come sempre hai fatto con uno degli altri eseguibili della distribuzioni MiKTeX: hai dato una occhiata al contenuto della cartella C:\programmi\MiKTeX\2.9\miktex\bin\ ? Lì ci sono tutti gli eseguibili della distribuzione MiKTeX.

                                E in effetti c’è!
                                Questo è molto interessante. Ora devo capire un po’ i comandi, soprattutto perché i miei DB sono in MySQL e devo anche dire dove trovarli…
                                Un passo alla volta.
                                Intanto cominciamo bene
                                \directlua{require(“luasql.mysql”)}
                                dà “Undefined control sequence” 😥

                              • #55873
                                robitex
                                Amministratore del forum
                                  Up
                                  0
                                  Down
                                  ::

                                  Garda che proababilmente con MiKTeX 2.9 LuaLaTeX ce l’hai già a bordo, quindi non devi installare niente; semplicemente usarlo o non usarlo; non è che eprché vuoi usare LuaLaTeX, i vecchi file non li puoi più gestire; li tratti come sempre hai fatto con uno degli altri eseguibili della distribuzioni MiKTeX: hai dato una occhiata al contenuto della cartella C:\programmi\MiKTeX\2.9\miktex\bin\ ? Lì ci sono tutti gli eseguibili della distribuzione MiKTeX.

                                  E in effetti c’è!
                                  Questo è molto interessante. Ora devo capire un po’ i comandi, soprattutto perché i miei DB sono in MySQL e devo anche dire dove trovarli…
                                  Un passo alla volta.
                                  Intanto cominciamo bene
                                  \directlua{require(“luasql.mysql”)}
                                  dà “Undefined control sequence” 😥

                                  Ciao,
                                  il comando di compilazione è
                                  `lualatex nomefile`
                                  ovviamente se continui a compilare con pdflatex utilizzi il motore di composizione pdftex e non luatex.
                                  Accertati che la libreria luaSQL per il tuo db sia installata e che il suo percorso compaia in texmf.cfg

                                  Non vorrei però consigliarti una strada (LuaLaTeX / database ) che ti faccia perdere tempo, visto alcuni problemi che possono sorgere. Forse è meglio utilizzare uno script vero e proprio in Lua che produca il sorgente tex e lo compili con pdflatex, prima di passare alla soluzione lualatex.
                                  Nel mio blog dovresti trovare indicazioni di come può essere scritto uno script del genere.
                                  Non è che sto cambiando idea, è solo che è un argomento così poco esplorato ancora, che è necessario valutare una soluzione più tradizionale. Sia chiaro, scrivendo la guida che ti ho segnalato, non ho incontrato problemi dopo aver capito come settare il path alla libreria LuaSQL per LuaTeX. Lo scopo infatti era quello di dimostrare che connettersi ad un database server direttamente da LuaLaTeX è possibile.

                                  Il codice dello script poi, potrà essere facilmente riciclato nella soluzione lualatex/database.

                                  Ciao

                                • #55874
                                  Up
                                  0
                                  Down
                                  ::


                                  Mi scuso con tutti coloro che hanno preso a cuore la questione; ma una classica settimana d’inferno ha assorbito il mio tempo su altre cose…

                                  Confesso, senza vergogna, che il mio uso di LaTex è decisamente pratico e su cose standard da guida ABC. Di conseguenza mi sono decisamente perso… Mi servirebbe proprio un esempio pratico guidato al 100%, foss’anche semplicissimo, ma per capire come estrarre dati dal database, cosa attivare, ecc. In caso contrario non sono in grado di creare in autonomia quanto suggerito. 😳

                                  Vi scrivo il codice “reale” PHP-MySQL che estrae il nome dello strumento con chiave il numero d’inventario del 1876.

                                  $conn = mysql_connect(HOST, DEFAULT_USER, DEFAULT_PWD) or die (‘Connessione impossibile’);
                                  mysql_select_db(‘museofisica’);

                                  // nome strumento
                                  $nome = mysql_query(”
                                  SELECT Inv1876, Nome
                                  FROM strumenti
                                  WHERE Inv1876 = ‘127’
                                  “);

                                  Mi rendo conto che la questione sia complessa, ma non credo di essere l’unico sotto SO Windows che ha necessità di mettere in LaTex dati da un DB o quanto meno ci vedo una grande utilità che meriterebbe un pacchetto ad hoc “configurabile”.
                                  Avete tutta la mia stima per le vostre capacità operative e informatiche, ma io sono a livello 0,0002 in ambito programmazione LaTex, limitandomi appunto all’ABC dei pacchetti che mi servono…

                                • #55875
                                  robitex
                                  Amministratore del forum
                                    Up
                                    0
                                    Down
                                    ::

                                    Mi scuso con tutti coloro che hanno preso a cuore la questione; ma una classica settimana d’inferno ha assorbito il mio tempo su altre cose…

                                    Confesso, senza vergogna, che il mio uso di LaTex è decisamente pratico e su cose standard da guida ABC. Di conseguenza mi sono decisamente perso… Mi servirebbe proprio un esempio pratico guidato al 100%, foss’anche semplicissimo, ma per capire come estrarre dati dal database, cosa attivare, ecc. In caso contrario non sono in grado di creare in autonomia quanto suggerito. 😳

                                    Vi scrivo il codice “reale” PHP-MySQL che estrae il nome dello strumento con chiave il numero d’inventario del 1876.

                                    $conn = mysql_connect(HOST, DEFAULT_USER, DEFAULT_PWD) or die (‘Connessione impossibile’);
                                    mysql_select_db(‘museofisica’);

                                    // nome strumento
                                    $nome = mysql_query(”
                                    SELECT Inv1876, Nome
                                    FROM strumenti
                                    WHERE Inv1876 = ‘127’
                                    “);

                                    Mi rendo conto che la questione sia complessa, ma non credo di essere l’unico sotto SO Windows che ha necessità di mettere in LaTex dati da un DB o quanto meno ci vedo una grande utilità che meriterebbe un pacchetto ad hoc “configurabile”.
                                    Avete tutta la mia stima per le vostre capacità operative e informatiche, ma io sono a livello 0,0002 in ambito programmazione LaTex, limitandomi appunto all’ABC dei pacchetti che mi servono…

                                    La conclusione da te raggiunta sulla necessità di un pacchetto ad hoc è per me piuttosto interessante.
                                    Tornando al problema, dovresti chiarire come intendi processare i dati nel db:
                                    i documenti devono essere prodotti al volo quando richiesti dall’utente web?
                                    oppure
                                    l’utente web può banalmente scaricare i documenti dal sito già pronti?
                                    R.

                                  • #55876
                                    Up
                                    0
                                    Down
                                    ::


                                    Dunque, un eventuale utente web può già scaricare schede tecniche, visualizzare immagini ecc. dal sito del Museo. La potenza del PHP-MySQL permette tutto ciò e di fatto lì non ho altro da aggiungere-programmare.

                                    La questione LaTex salta fuori nella produzione di documenti PDF con:
                                    – le spiegazioni vetrina per vetrina che il visitatore “fisico” può leggere durante la visita e che non sono scaricabili on-line, ma sono solo cartacei nel museo;
                                    – gli equivalenti documenti PDF che do agli studenti che fanno il corso di formazione per diventare guide del Museo.

                                    Entrambi questi file sono attualmente in WORD. Il fatto è che aggiornamenti ecc. sul database, vengono immediatamente resi attivi nel sito (che è fortemente collegato al DB), ma non chiaramente sui documenti Word e tale cosa è decisamente onerosa per me.
                                    Di qui l’idea di riportare il tutto in LaTex e collegare tali file con il DB. A fine compilazione mi interessa solo il file PDF che eventualmente:
                                    – metto in rete in una sezione riservata a disposizione degli studenti-guida;
                                    – oppure stampo per aggiornare i fogli esplicativi per i visitatori.

                                    Quindi nessuna interattività internet mi è necessaria, ma solo la compilazione del codice LaTex & altro per far uscire dei PDF. Sono eventualmente questi da scaricare via web (studenti).

                                  • #55877
                                    robitex
                                    Amministratore del forum
                                      Up
                                      0
                                      Down
                                      ::

                                      Dunque, un eventuale utente web può già scaricare schede tecniche, visualizzare immagini ecc. dal sito del Museo. La potenza del PHP-MySQL permette tutto ciò e di fatto lì non ho altro da aggiungere-programmare.

                                      La questione LaTex salta fuori nella produzione di documenti PDF con:
                                      – le spiegazioni vetrina per vetrina che il visitatore “fisico” può leggere durante la visita e che non sono scaricabili on-line, ma sono solo cartacei nel museo;
                                      – gli equivalenti documenti PDF che do agli studenti che fanno il corso di formazione per diventare guide del Museo.

                                      Entrambi questi file sono attualmente in WORD. Il fatto è che aggiornamenti ecc. sul database, vengono immediatamente resi attivi nel sito (che è fortemente collegato al DB), ma non chiaramente sui documenti Word e tale cosa è decisamente onerosa per me.
                                      Di qui l’idea di riportare il tutto in LaTex e collegare tali file con il DB. A fine compilazione mi interessa solo il file PDF che eventualmente:
                                      – metto in rete in una sezione riservata a disposizione degli studenti-guida;
                                      – oppure stampo per aggiornare i fogli esplicativi per i visitatori.

                                      Quindi nessuna interattività internet mi è necessaria, ma solo la compilazione del codice LaTex & altro per far uscire dei PDF. Sono eventualmente questi da scaricare via web (studenti).

                                      Ottimo. La cosa è più semplice. Le schede aggiornate dal db in LaTeX sono un idea eccellente!
                                      Pensa che una volta attivo, il sistema sarebbe in grado di creare schede di visita diverse da quelle di istruzione interna delle guide, ed in effetti sono due tipi diversi di documenti!
                                      Con gli stessi dati (sempre aggiornati) ottengo diversi documenti.
                                      1 – schede di visita
                                      2 – schede interne per le guide
                                      3 – elenchi d’inventario
                                      4 – ecc

                                      Un altra cosa è importante da sapere è:
                                      hai accesso al database solo da PHP o disponi della possibilità di connetterti al db server comunque?
                                      (Scusa se ti faccio tutte queste domande, ma le risposte mi servono per capire la situazione.)
                                      R.

                                    • #55878
                                      Up
                                      0
                                      Down
                                      ::


                                      Indubbiamente. E’ il motivo per cui sin dall’inizio mi sono buttato su un DB MySQL per la gestione del Museo, non solo per una questione di visibilità sul web, ma soprattutto di carattere gestionale. Si presta uno strumento? Bene, un clic e la scheda d’uscita è stampata così come il cartellino “strumento assente” e il foglio con la lista del contenuto di un eventuale imballaggio…

                                      Sono alle prese con un profondo aggiornamento dei documenti poiché 3 mesi fa ho trasferito il Museo in una nuova ala della scuola, più ampia e luminosa; si sono aggiunte 2 vetrine, 40 strumenti in più (sfioro quota 300) e circa una 60-ina hanno cambiato vetrina rispetto a prima. Nel frattempo alcuni sono stati restaurati presso un centro specializzato, con novità di datazione e di costruttore, inoltre ho dovuto riorganizzare le voci riguardanti le caratterisitche di conservazione. Ebbene, tutto ciò è già aggiornato nel web, ma nei documenti word no.
                                      Di qui l’idea di inserire i database anche nei file di spiegazione sfruttando LaTex… Altrimenti il lavoro di aggionamento dei file è spaventosamente oneroso!

                                      Dopo esser diventato matto a rimettere Apache, PHP, MySQL sul nuovo computer con SO W7 64 bit (un delirio!!!), finalmente tutto funziona. La cartella /data con i DB è in un’altra partizione del disco (non si sa mai), ma il percorso mi è noto…

                                      Non ho alcun problema a scrivere quel che ti serve per avere un quadro informatico della situazione. Ho capia del DB sia sul mio PC che sul server di scuola. Ma posso tranquillamente lasciar perdere il collegamento al server e lavorare sul mio PC, fisso o portatile che sia. Al database accedo in locale via SQL-Yog (soprattutto transazione) oltre che dalle pagine dinamiche phtml del sito (selezione e basta), che chiaramentee ho tutto in copia sul PC… Ovviamente i comandi web sono in PHP-MySQL + HTML e qui me la cavo piuttosto bene…

                                    • #55879
                                      robitex
                                      Amministratore del forum
                                        Up
                                        0
                                        Down
                                        ::

                                        Indubbiamente. E’ il motivo per cui sin dall’inizio mi sono buttato su un DB MySQL per la gestione del Museo, non solo per una questione di visibilità sul web, ma soprattutto di carattere gestionale. Si presta uno strumento? Bene, un clic e la scheda d’uscita è stampata così come il cartellino “strumento assente” e il foglio con la lista del contenuto di un eventuale imballaggio…

                                        Sono alle prese con un profondo aggiornamento dei documenti poiché 3 mesi fa ho trasferito il Museo in una nuova ala della scuola, più ampia e luminosa; si sono aggiunte 2 vetrine, 40 strumenti in più (sfioro quota 300) e circa una 60-ina hanno cambiato vetrina rispetto a prima. Nel frattempo alcuni sono stati restaurati presso un centro specializzato, con novità di datazione e di costruttore, inoltre ho dovuto riorganizzare le voci riguardanti le caratterisitche di conservazione. Ebbene, tutto ciò è già aggiornato nel web, ma nei documenti word no.
                                        Di qui l’idea di inserire i database anche nei file di spiegazione sfruttando LaTex… Altrimenti il lavoro di aggionamento dei file è spaventosamente oneroso!

                                        Dopo esser diventato matto a rimettere Apache, PHP, MySQL sul nuovo computer con SO W7 64 bit (un delirio!!!), finalmente tutto funziona. La cartella /data con i DB è in un’altra partizione del disco (non si sa mai), ma il percorso mi è noto…

                                        Non ho alcun problema a scrivere quel che ti serve per avere un quadro informatico della situazione. Ho capia del DB sia sul mio PC che sul server di scuola. Ma posso tranquillamente lasciar perdere il colleegamento al server e lavorare sul mio PC. Al database accedo via SQL-Yog oltre che dalle pagine dinamiche phtml del sito, che chiaramentee ho tutto in copia sul PC…

                                        Ok.
                                        Per le mie conoscenze inizierei così:
                                        Filosofia: piccolo, semplice ma funzionante!
                                        0- eseguo esclusivamente operazioni di lettura dei dati;
                                        1- il sistema di creazione delle schede è indipendente dal resto e non si occupa di altro;
                                        2- LaTeX non si deve occupare di scaricare dati (niente LuaLaTeX), ma solo di comporli tipograficamente.

                                        Allora occorre:
                                        fase del linguaggio
                                        1- scelgo un linguaggio di scripting (sono i più semplici) per cui sono disponibili le librerie di accesso al db MySQL;

                                        fase del primo test
                                        2- scrivo un primo script che funziona da console che:
                                        2.0- installazione linguaggio e libreria, poi lo script dovrà:
                                        2.1- prende come argomento per esempio il numero identificativo di uno strumento,
                                        2.2- chiede all’utente username e password,
                                        2.3- si connette al db ed esegue la query,
                                        2.4- con i dati trovati costruisce il file sorgente LaTeX minimo,
                                        2.5- lo compila.

                                        fase LaTeX
                                        3.1- scrivo un documento LaTeX modello per ogni tipo di scheda
                                        3.2- eventualmente, realizzo delle classi di documento vere e proprie

                                        fase di messa in produzione
                                        4.1- perfeziono lo script per lavorare con i nuovi modelli in LaTeX
                                        4.2- implemento delle opzioni più flessibili, per esempio per generare TUTTE le schede in una volta, oppure quelle di un subset di strumenti

                                        fase evoluzione
                                        5- sostituzione dello script con un sistema ad interfaccia grafica

                                        Il pregio di questo procedimento è che ogni fase richiede un set minimo di conoscenze specifiche:
                                        * Panni dell’admin: conoscenze SQL di query semplici
                                        * Panni del programmatore: programmazione semplice con linguaggi di scripting
                                        * Panni del TeX user: conoscenza di base dei pacchetti utili per ottenere la composizione desiderata

                                        Inoltre ciascuno strumento (MySQL, linguaggio di scripting, LaTeX) viene usato per quello che è, mentre lo strumento di centro (il linguaggio di scripting) può successivamente cambiare per soluzioni più potenti, senza che sia necessario modificare gli altri due.

                                        Ma quale linguaggio di scripting usare per iniziare?
                                        Se penso alla fase 5 (con eventuale uso del framework Django http://www.djangoproject.com/ ) mi rivolgerei a Python.
                                        Se penso invece alla semplicità del codice penso senz’altro a Lua (anche Python è semplice ma Lua lo è di più).

                                        Da quel che so, queste due sono le due alternative (io inizierei con Lua anche a costo di reimplementare il codice in Python alla fase 5).

                                        Ora tutta un’altra questione:
                                        Siccome sto scrivendo un articolo per ArSTeXnica (la rivista del GuIT) esattamente su questi argomenti, ti invito se vuoi, a scrivermi via e-mail (che trovi sul mio blog) per collaborare come co-autore in base alla tua esperienza.
                                        La scadenza di consegna dell’articolo dovrebbe essere tra poco, per l’uscita sul numero di aprile, ma siccome ormai si profila inesorabile per i miei impegni lo slittamento ad ottobre (seconda uscita annuale e meeting quindi), il tempo disponibile aumenterà.
                                        Ciao

                                      • #55880
                                        Up
                                        0
                                        Down
                                        ::


                                        Ok, grazie mille.
                                        Spero che il Pyton non sia difficile, tuttavia le strutture di programmazione le ho dal PHP (e a suo tempo dal Fortran).
                                        Allora ti scrivo in posta, così posos anche mostrarti meglio le mie desiderata mandandoti dei documenti prototipo che qui non posso allegare. Magari a cose fatte (lo spero veramente) scrivo qui come procede o com’è andata a finire.
                                        A presto.

                                      • #55881
                                        robitex
                                        Amministratore del forum
                                          Up
                                          0
                                          Down
                                          ::

                                          Ok, grazie mille.
                                          Spero che il Pyton non sia difficile, tuttavia le strutture di programmazione le ho dal PHP (e a suo tempo dal Fortran).
                                          Allora ti scrivo in posta, così posos anche mostrarti meglio le mie desiderata mandandoti dei documenti prototipo che qui non posso allegare. Magari a cose fatte (lo spero veramente) scrivo qui come procede o com’è andata a finire.
                                          A presto.

                                          Per cominciare con Python puoi consulatare direttamamente un articolo sull’argomento a questo link:
                                          http://www.blackbirdblog.it/programmazione/python/python-e-mysql

                                          Quì altre notizie sulle varie librerie disponibili:
                                          http://wiki.python.org/moin/MySQL

                                          Per il resto ci sentiamo via e-mail.
                                          Un saluto
                                          R.

                                        • #55882
                                          dianoia
                                          Partecipante
                                            Up
                                            0
                                            Down
                                            ::


                                            Per l’estrazione dei dati con python e per la loro collocazione in un file .tex ho qualche precedente, sarei lieto di aiutare!

                                          • #55883
                                            robitex
                                            Amministratore del forum
                                              Up
                                              0
                                              Down
                                              ::

                                              Per l’estrazione dei dati con python e per la loro collocazione in un file .tex ho qualche precedente, sarei lieto di aiutare!

                                              Anche per un articolo su ArSTeXnica?
                                              Scrivetemi e faremo un buon lavoro con poco impegno di tempo.
                                              Grazie a tutti.

                                              NB.
                                              il mio indirizzo di posta elettronica non lo pubblico direttamente qui (abbiamo già abbastanza problemi con lo spam), ma lo trovi le info sul mio blog alla pagina http://robitex.wordpress.com/about/

                                            • #55884
                                              Up
                                              0
                                              Down
                                              ::


                                              Molto bene. Allora ci si sente in posta. E’ evidente che la faccenda può intereessare altri utenti. Sarà mia cura aggiornare con voi questa discussione con i progressi raggiunti ed eventualmentee indicare un futuro link a come risolvere la cosa. E Pyton sia!

                                            • #55885
                                              Up
                                              0
                                              Down
                                              ::


                                              Bene, un piccolo aggiornamento.
                                              Ho scoperto che un’anima pia ha provato a realizzare una versione di “latexdb” per SO Windows. Il sisteema si chiama ratexdb
                                              http://www.hoens.net/robin/ratexdb/
                                              ma come ho avuto modo di sapere dallo stesso realizzatore, sembra che non possa al momento più funzionare a causa del fatto che nel frattempo un certo file è divenuto absoleto…
                                              Mi ha espressamente detto che è sua intenzione provare a realizzare la stessa cosa in ambiente C++, ma non tanto presto. Quindi al momento niente da fare…
                                              In poche parole… ancora in alto mare.
                                              Non ho modo di provare, ma al momento credo che l’opzione migliore resti quella, potendo, di montarsi Linux sul PC e di utilizzare il pacchetto latexdb…

                                            • #55886
                                              Up
                                              0
                                              Down
                                              ::


                                              Per dovere di cronaca, qui la nuova versione in C di quanto tentato in precedenza sotto ruby.
                                              http://hoens.net/robin/natexdb/

                                              Tuttavia non sono riuscito a farla funzionare 🙁 . Colpa mia, ovviamente, tuttavia ritengo che una guida passo passo sia importante, poiché ciò che è ovvio per un programmatore non necessariamente lo è per i comuni mortali.
                                              Se qualcuno ha tempo per provare…

                                              In attesa invece di provare sotto LINUX il pacchetto latexdb, per il momento ho adottato una soluzionee di ripiego: ho realizzato una pagina dinamica che mi genera il codice Latex della tabella di mio interesse con i campi prelevati dal Database. Naturalmente devo fare copia e incolla dello script per portarlo dentro il file tex 300 volte, ma sempre meglio che controllare e adattare/riscrivere a mano 300 tabelle…

                                            • #55887
                                              Up
                                              0
                                              Down
                                              ::


                                              Sempre per dovere di cronaca, come promesso, faccio seguire questo aggiornamento.
                                              Ho provato sotto sistema operativo W Vista (scusate la bestemmia) il sistema lì previsto d’integrazione con un db MySQL, con risultato orripilante. Per funzionare, funziona, ma con una formattazione ben precisa e rigidissima, il che impedisce di inserire di fatto tanti compi da database entro un testo. Insomma, è fatto soprattutto per tabelle.

                                              Mi sono dato da fare e ho montato Linux Xubuntu (ultima versione disponibile) sui un vecchio PC al fine di provare il pacchetto latexdb. Anche in questo caso, per funzionare, funziona, ma a me servirebbe qualcosa di più sofisticato e soprattutto integrabile in un editor per latex. La compilazione del file .tex in latexdb avviene infatti da terminale, digitando “latexdb nomefile.tex”.
                                              Se uno ha da mandare 100 copie di una lettera commerciale con una tabella di componenti, la cosa è decisamente ottima, ma nel caso di un documento complesso con molto testo, figure e relativamente pochi campi da database, c’è da diventare matti. Si dovrebbe lavorare entro un qualsiasi editor per latex con tutti i campi di richiamo al database MySQL compilati come testo nel PDF (non si ha la formattazione corretta di tutto il documento). Dopodiché compliare da terminale, sperando che tutto ciò che un ha messo dentro sia complensibile pure per latexdb, che dà in uscita un documento DVI, mentre le immagini che uso sono pensate per PDF…
                                              Ho notato poi che se per caso vi fosse un errore qualsiasi nello script del file tex, in fase di compilazione sotto latexdb, non solo il processo si pianta (logico), ma tutte le righe dopo l’errore vengono cancellate dal documento originale!!! Quindi si perdono anche 200 pagine, se non si ha l’accortezza di farsi una bella copia del file…

                                              A mio modesto parere, sarebbe interessante prevedere come uscita non solo un documento DVI, ma pure un nuovo file tex, con tutto lo script latex e la sostituzione dei comandi latexdb con i compi conseguenti alla query. Anche se allora non c’è differenza con la soluzione che ho adottato per ripiego e cioè di usare una pagina dinamica php per concretizzare una query MySQL e farmi uscire una tabella latex da incollare nel documento tex.

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

                                          Go to top