Risposte nei forum create
-
AutoreRisposte
-
::
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
::Ma ho delle domande:
è possibile chiedere all’utente in fase di esecuzione un valore, per esempio una password? ovvero un dato che non dovrebbe essere scritto nel sorgente (se non è chiaro il quesito ditemelo)?
Ho provato con la funzione io.read(‘*number’) di Lua ma l’esecuzione non si interrompe come accadrebbe con un normale script in Lua.Altra domanda:
è possibile inserire il simbolo di percentuale in una stringa Lua tramice il codice carattere unicode.Il pacchetto luacode mette a disposizione ben due comandi e due ambienti che accedono indirettamente a \directlua. Se proprio hai bisogno di % nel codice Lua, usi \luaexec oppure l’ambiente luacode (in entrambi c’è l’espansione preliminare dei token fatta da TeX); c’è anche l’ambiente luacode* che non interpreta nulla (una specie di \directlua{\verb|…|}, per capirci).
Ciao
EnricoGrazie per la risposta, ne farò prezioso riferimento per il futuro, come sempre!!!
Grazie ancora.
R.
::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 scaricamentola 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.
::Buongiorno, digitando da terminale
`texdoc lualatex`
compare una breve guida di 15 pagine in cui vengono spiegate le differenze sostanziali tra lualatex e gli altri motori di composizione. La cito magari qualcuno non lo sapesse. Per me è stata utile per iniziare a capire di cosa si stesse parlando.Ciao a tutti
FraEsatto. Se si vuole conoscere qualche utile primitiva:
`texdoc luatex`Ciao
ansysUmh,
vedo che l’interesse per Lua(La)TeX sta crescendo anche nel nostro forum.
Intendo questo, un messaggio che contribuisce alla ‘guida’ di ansys, aggiungo brevi note:
Nel codice Lua, argomento di una macro \directlua, non inserite mai il simbolo di commento del doppio dash (–). Il motivo è che LuaTeX legge il codice inserendolo su un unica riga pertanto il simbolo che serve per segnarare una riga di commento nel linguaggio Lua, si estenderebbe per tutto il codice che lo segue, che venendo processato come un normale commento.Per commentare basta usare il simbolo di % proprio perché il codice Lua all’interno di \directlua viene prima processato da TeX. Ma questo fa nascere ulteriori guai, per esempio come inserire nel codice Lua il simbolo di % stesso, simbolo che è utilizzato per scrivere speciali stringhe di testo.
Inoltre qualsiasi macro, o meglio qualsiasi backslash viene gestito prima da TeX con altri effetti collaterali, che si possono risolvere con trucchetti. I caratteri speciali di Lua e di TeX producono quindi problemini la cui soluzione, almeno per quel che ne so e per quel che è LuaTeX adesso, non è molto elegante.
Ma ho delle domande:
è possibile chiedere all’utente in fase di esecuzione un valore, per esempio una password? ovvero un dato che non dovrebbe essere scritto nel sorgente (se non è chiaro il quesito ditemelo)?
Ho provato con la funzione io.read(‘*number’) di Lua ma l’esecuzione non si interrompe come accadrebbe con un normale script in Lua.Altra domanda:
è possibile inserire il simbolo di percentuale in una stringa Lua tramice il codice carattere unicode.Bye
::Ok, proverò a cercare nella guida che ho, al massimo se non ci cavo fuori niente metterò un’altra discussione.
(ha un isotopo radioattivo e uno che proviene da un decadimento radioattivo ma è stabile 🙂 Alla fine non sapevo che nick mettere e dato che nessuno ne avrebbe cercato uno così me lo sono preso io! Mezza internet è piena di miei account col nick Elemento 38 😛 )
Grazie delle informazioni sulla fisica.
… e buon LaTeX.
Ciao
::Grazie della risposta, ma non posso eliminare l’ambiente figura perché se no non posso inserire la didascalia sotto l’immagine.
(eh, l’elemento 38 è il più bello di tutti 😆 )
Immaginavo che tu volessi la didascalia, ed allora entri nel tormentone sul posizionamento degli oggetti flottanti a cui non aggiungo niente se non rimandadoti ad una buona guida.
Ma, almeno, l’elemento 38 non è radiattivo!!!
Saluti
::Grazie mille, appena arrivo a casa provo!
Avrei anche un problema con un’immagine, se la inserisco con l’ambiente figure e poi scrivo delle righe di testo alla fine dell’ambiente, le righe me le sposta sopra l’immagine e quest’ultima me la mette dopo il testo!Per il ilbro, l’ho già scaricato e messo sul Kindle 😉
Grazier mille,
EnricoL’ambiente figure introduce nel flusso della composizione un oggetto flottante, ovvero un elemento che trova la sua collocazione sulla pagina in funzione degli altri elementi vicini (testo per esempio). LaTeX sceglie dove metterlo.
Se vuoi un elemento che non si sposta, eventualità rara, elimina l’ambiente figure.
NB. non oso andare a cercare l’elemento 38 nella tavola periodica!Ciao (Benvenuto anche da parte mia)
::Caro GuIT,
sono forse anni che non posto piu` ma ora sono riemerse domande a cui non so rispondere. Qui abbiamo un vecchio template per la stesura di rapporti nel formato richiesto, purtroppo e` un lavoro vecchio, quick&dirty, e quindi funziona solo con LaTeX (no pdflatex). Per la compilazione, utilizzo “latex” prima e “dvipdfm -p a4” poi.il problema che ho ora e` il seguente: come inserisco una presentazione power point di 60 slide nel rapporto?
Se fosse compilabile con pdflatex, utilizzerei pdfpages, dopo aver “stampato” la presentazione (2 pg per foglio) su pdf. Questo pdf e` fatto con adobe acrobat, ho provato a convertirlo in ps usando pdf2ps e anche convert ma ci sono errori:
`
pdf2ps print.pdf
ERROR: /undefined in –get–
Operand stack:
–dict:6/6(L)– –dict:9/12(L)– R13 –dict:10/10(ro)(G)– R13
Execution stack:
%interp_exit .runexec2 –nostringval– –nostringval– –nostringval– 2 %stopped_push –nostringval– –nostringval– –nostringval– false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop –nostringval– –nostringval– 3 1 30 –nostringval– %for_pos_int_continue –nostringval– –nostringval– –nostringval– –nostringval– %array_continue –nostringval– false 1 %stopped_push –nostringval– %loop_continue –nostringval– –nostringval– –nostringval– –nostringval– –nostringval–
Dictionary stack:
–dict:1119/1686(ro)(G)– –dict:0/20(G)– –dict:107/200(L)– –dict:107/200(L)– –dict:104/127(ro)(G)– –dict:241/347(ro)(G)– –dict:20/24(L)– –dict:4/6(L)– –dict:20/20(L)– –dict:5/8(L)– –dict:1/1(ro)(G)– –dict:9/12(L)–
Current allocation mode is local
Last OS error: 2
ESP Ghostscript 815.02: Unrecoverable error, exit code 1
`e cmq, anche se riuscissi a convertirlo in ps, come lo inserisco poi in latex? dovrei spezzare il ps di 30 pagine in 30 figure, e inserire 30 figure di una pagina ciascuna.
Vi ringrazio per i vostri consigli!
NucleoCiao, ascolta una cosa,
se tu disponi della presentazione in Power Point in pdf ED il documento originale proveniente da latex in PDF, quindi disponi di due file pdf, unirli è semplice: basta creare un terzo sorgente tex in cui inserisco prima un documento, poi l’altro proprio con pdfpages.
Se questo non si può fare allora scusami, non ho capito il problema.
Alla prossima.
::
Vi riporto alcune ulteriori informazioni sulla questione LuaTeX / librerie scritte da Luigi che ha acconsentito che le pubblicassi sul forum:
Come potete leggere, la questione tecnica non è così rosa e fiori…> Incredibile.
…che funzioni ?
Beh ….si.
Il nocciolo è questo: sotto linux si usa dlopen
e le shared object libraries (*.so) hanno un complesso meccanismo per
la risoluzione dei simboli (le funzioni, le costanti etc che la libreria esporta).
Cfr man ld.so
Ora, la gestione dei conflitti dei simboli è … non gestita.
Se due simboli vanno in conflitto allora seg.fault e buona notte al secchio.
Ad esempio: metti che luatex carichi luasql il quale a sua volta chiami save_png pensando che sia di libpng1
A sua volta luatex ha al suo interno libpng, ma è libpng1.1 in cui esiste sempre save_png
ma evolve in modo doverso da libpng1.
ld.so allora dice a luasql di usare save_png di libpng1.1 e voilà, al
99% dei casi corruzione della pagina di memoria del processo luatex (segmentation fault) e aborto. Se avevi una transazione in corso nel db, saluti e baci (beh no, postgres è robusto: ma se usi sqlite c’è il rischio di corrompere il database).
Per complicare le cose, *non* è detto il lua usato come riferimento (gli header) da luasql
sia lo stesso lua di luatex (fino ad oggi si, lo è) per cui in teoria se le cose con la 0.65 funzionano magari con la 0.70 no, e con la 0.71 si ancora, e così via.
Insomma per certe cose è meglio valutare se ricorrere ad un processo
esterno tramite \write18 (che funziona sempre).Ora sotto Windows le cose cambiano e sotto Mac cambiano ancora.
Quindi vedi bene il guazzabuglio.> Spero che alla fine LuaTeX sia abbastanza stabile sulle maggiori
> distribuzioni, proprio perché eseguire query dirette da database apre
> le porte ad applicazioni molto potenti ed utili.
purtroppo no. alla fine è una questione di sistema operativo: prima o
poi le librerie devono essere aggiornate.È tutto,
evidentemente non è così semplice far impallidire la stampa unione di Word…
::
Durante la giornata ho scambiato alcune mail con Luigi Scarso sul problema incontrato.
Il problema non era dovuto a particolari policy di sicurezza di LuaTeX, come ero stato indotto a credere per via di alcuni esperimenti che avevo già condotto con la libreria lfs, ma semplicemente che l’applicazione non trovava i percorsi.Ho quindi fatto nel seguente modo:
ho aperto con i diritti di admin il file di configurazione /usr/local/texlive/2010/texmf/web2c/texmf.cnf , aggiungendo alla variabile CLUAINPUTS il percorso /usr/lib/luada così:
`% Lua needs to look for binary lua libraries distributed with packages.
CLUAINPUTS = .;$SELFAUTOLOC/lib/{$progname,$engine,}/lua//`a così:
`
% Lua needs to look for binary lua libraries distributed with packages.
CLUAINPUTS = .;/usr/lib/lua//;$SELFAUTOLOC/lib/{$progname,$engine,}/lua//`Notare che il doppio slash significa l’accesso a tutte le subdirectory del percorso.
Ho anche scoperto che in realtà la libreria lua file system è in realtà già distribuita con TeX Live (MiKTeX non so), e che quindi per usarla non serve installare niente (per esempio per leggere la directory di lavoro in cui si trova il sorgente).
Una modifica in pochissimo tempo è bastata per la connessione al database e l’esecuzione della query.
Sono impressionato, come forse vi sarete già accorti, della potenza del concetto: il mondo TeX è oggi in grado di accedere direttamente a database del calibro di PostgreSQL.
A breve (spero) pubblicherò un articoletto completo dall’installazione di PostgreSQL alla compilazione finale del sorgente con lualatex.
Un saluto
Grazie
::funziona tutto, comunque dà precedenza all’asy nella directory /opt/texbin e dovrei relinkare l’eseguibile in /usr/local/bin che peraltro va in contrasto con dei file della 2.02…..disinstallandolo ho dovuto far generare di nuovo i formati a latex pensando di avere rovinato l’installazione della TL2010. Quindi c’è un pò di lavoro da fare, ma l’installazione funziona perfettamente……
cambiando un attimo discorso mi sapresti consigliare un archivio remoto veloce e sempre aggiornato ? il default del ctan mi va sul mirror dell’uniroma che è sempre lentissimo….ho sempre usato quello dell’univ di erlangen però ho notato che nn è aggiornato come credevo….
grazie di tutto 😀
Se il problema è la velocità, anch’io do il mio meta-contributo:
Copia lo script che trovi nel post ed eseguilo sul tuo sistema Linux per ottenere una classifica in velocità dei mirror di CTAN.
Bye
Ps. magari, se ti va, segnalami se dalla data del post qualche mirror è cambiato.
::Sperando di non sollevare le vostre ire, vi spiego come ho risolto il mio problema.
Ho creato un database con Access che poi ho usato con per una stampa unione con Word. Mi rendo conto che parlare bene di Office in casa dei Latexiani (spero si possa dire) possa apparire un po’ strano, ma tant’è. Sono anche riuscito a fare in modo che la stampa unione inserisca le immagini variabili per record, che i record alla fine vengano uno dopo l’altro e tante altre cose che desideravo.
Certamente Latex potrebbe fare uguale ma io non ci sono riuscito e non avevo il tempo sufficiente da dedicarci.
Una risposta finale mi sembrava doverosa, anche se non fatta con Latex.
Saluti e al prossimo topic.
DavideTranquillo, non ci arrabbiamo (almeno io) 😆
Volevo solo dire che la tua soluzione con Office non ne esclude una seconda con strumenti più potenti portabili e liberi.
Anzi, credo che sarebbe assai utile confrontarle se un giorno o l’altro lo farai con LaTeX con il clamoroso titolo:
—— Office vs LaTeX ——
Ciao.
::
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
::Vorrei installare l’ultima versione di Asysmptote in aggiunta alla distro TexLive 2010 ho installata sul mio notebook su Ubuntu 9.04 e configurata secondo la guida di Enrico G. che lo stesso mi ha passato su questo forum. Su SourceForge ho trovato dei post riguardanti l’installazione :
http://sourceforge.net/projects/asymptote/forums/forum/409349/topic/3915664
che mi dicono di scaricare dal CTAN l’archivio compatibile per la TL e poi procedere con la compilazione standard. Il mio schema di installazione di TexLive è :
scheme-full
ma mi dà un errore di installazione quando lancio checkinstall (sudo make install + crazione pacchetto deb ) da terminale :
`
Installing with make…Installing with install…========================= Risultato installazione ===========================
Creating asy-keywords.el
./asy -dir base -config “” -render=0 -l > asy.list
ls base/*.asy | grep -v plain\* | \
grep -v three_\* | grep -v featpost3D | xargs ./asy -dir base -config “” -render=0 -l >> asy.list
perl ./asy-list.pl asy.list 2.08
cd doc && make asy-latex.pdf
make[1]: ingresso nella directory «/home/artynet/Scrivania/asymptote/asymptote-ctan/doc»
pdflatex asy-latex.dtx
make[1]: pdflatex: comando non trovato
make[1]: *** [asy-latex.pdf] Errore 127
make[1]: uscita dalla directory «/home/artynet/Scrivania/asymptote/asymptote-ctan/doc»
make: *** [sty] Errore 2**** Installazione fallita. Creazione del paccheto annullata.
Ripristina il file sovrascritto dal backup…OK
Pulitura in corso…OK
Ciao.
`eppure digitando da terminale :
`artynet@artynet-laptop:~$ pdflatex
This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010)
restricted \write18 enabled.`l’eseguibile è presente e correttamente linkato !
Dove sbaglio ? Prima avevo provato pure a scaricare il sorgente e configurare con :
`$ ./configure –enable-texlive-build`
e poi :
`
$ make
$ sudo checkinstall`ma stesso errore…..cosa devo fare ?
Scusa, ma hai esigenze particolarissime per volerti avvalere dell’ultima versione?
Asymptote è inserito in CTAN quindi anche in TeXLive 2010, quindi si installa normalmente con tlmgr.
Normalmente la versione di asymptote su ctan è leggermente indietro rispetto a quella più recente, ed è l’unico “problemino”.
Per esempio la mia TeXLive 2010 da Asymptote alla versione 2.02 contro la 2.08 attuale.Il comando d’installazione è semplicissimo, da terminale digita:
`
tlmgr install asymptote
`
Buon asy.
::
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
-
AutoreRisposte