Risposte nei forum create
-
AutoreRisposte
-
30 Maggio 2020 alle 6:24 in risposta a: come sapere i fonts installati on the box in texlive 2020 #118074::
carmar” post=118482Robitex devo ringraziarti veramente molto per la risoluzione del problema che ho posto. Vorrei però approfittare ancora un poco della tua disponibilità:
1) Il linguaggio di programmazione lualatex si può utilizzare in tikz al posto del pgf ?
2) Potresti consigliarmi una guida alla programmazione con lualatex ?Ancora molte grazie.
Figurati. Son contento che gli utenti comincino ad avvalersi di LuaLaTeX.
Vengo a risponderti alle domande.
1) si naturalmente, puoi usare TikZ oppure anche PGF che è la libreria grafica sottostante di Tikz.
2) LuaLaTeX non è altro che il formato LaTeX eseguito non da pdfTeX ma da LuaTeX. Con le dovute cautele, si può essere certi che se una codice gira in pdfLaTeX gira anche in LuaLaTeX perciò la base non cambia. Si possono usare quasi tutti i pacchetti LaTeX.La differenza principale tra pdfTeX e LuaTeX è che quest’ultimo incorpora un interprete Lua a cui si può accedere con la nuova primitiva \directlua{codice lua}. Lua è un linguaggio basato sul C e può ampliare il campo applicativo del sistema TeX enormemente.
Quindi la programmazione LuaLaTeX di cui chiedevi una guida, si compone di linguaggio (La)TeX e linguaggio Lua.
Ho scritto una guida ma non è ancor completa, o per lo meno manca di alcuni esempi pratici proprio di come possano interagire TeX e Lua. Quindi per il momento, fino a che questa guida tematica del GuIT non sarà pronta consiglio di imparare Lua, cosa che rimane validissima sempre, con il libro “Programming in Lua” di uno dei principali Autori del linguaggio stesso (tra l’altro un testo composto in LaTeX 🙂 ).
Altro riferimento che però è molto tecnico è il manuale di luatex che puoi aprire a schermo con il comando:
`$ texdoc luatex`
digitato in una finestra di comando del sistema operativo (un terminale se Linux).
Inoltre, possono essere letti alcuni articoli su LuaTeX che riguardano l’esecuzione di codice esterno o l’accesso a db sql, su ArsTeXnica. Li trovi nella pagina dedicata su questo sito.
R.
::carmar” post=118479Perchè non mi consente di allegare il file nomi.lua?
ora provo a mandarlo così:
return {“B. RAFFAELE”,
“C. PATRIZIA”,
“C. FABIANA”,
“C. DIEGO”,
“C. GIADA”,
“C. ALEJANDRA”,
“D. BRISCILLA”,
“D. ADRIANA RITA”,
“D. FEDERICO”,
“D. MIRIAM”,
“D. TERESA”,
“G. NICOLA”,
“I. ANNA MARIA”,
“M. JESSICA”,
“M. JENNIFER”,
“M. ANTONIA”,
“M. MARTINA”,
“N. CIRO”,
“N. VALERIA”,
“P. ANTONIO”,
“P. VINCENZO”,
“P. ANGELO”,
“P. ANTONIO”,
“R. FRANCESCA PIA”,
“S. DANILO”,
“S. ALESSIO”,
“S. MATTIA”,
“T. MARTINA”,
“T. ANTONIO MARIO”,
“V. SABRINA”,
}Ciao.
Hai tutto il necessario già dal mio precedente messaggio.
Vediamo in ordine.
1) eseguire lualatex, bene è sufficiente dare il comando da terminale una volta resa la directory con il sorgente corrente:
> lualatex nomefile
Lo shell editor è più comodo ma esegue la stessa cosa dietro le quinte. Ciascuno ha un differente modo ma cerca nei menu “opzioni” o “configurazione”.2) scrivere la macro \studente
va inserita nel preambolo del documento:
`\newcommand{\studente}[1]{\directlua{
local data = data or dofile “nomefiledati.lua”
local n = tonumber(#1)
tex.sprint(data[n])
}}`Quello che fa è inserire il nome dello studente che si trova alla posizione n nella lista all’interno del file che ho chiamato “nomefiledati.lua”.
`\studente{3}`
Questa macro può essere migliorata per controllare che lo studente numero n esiste e che non sia stato già inserito precedentemente da una macro \studente. Che tutti gli studenti siano alla fine stati inseriti sarà compito della macro successiva:
`\newcommand{\studente}[1]{\directlua{
local data = data or dofile “nomefiledati.lua”
check_t = check_t or {}
local n = tonumber(#1)
local studente = data[n]
if not studente then
error(“posizione '”..n..”' vuota”)
end
if check_t[n] then
error(“Studente '”..studente..”'già inserito”)
end
check_t[n] = true
tex.sprint(studente)
}}`a questo punto la macro seguente da inserire alla fine del documento ma prima di \end{document} può controllare che ogni studente sia stato inserito:
`\newcommand{\checkinsertion}{\directlua{
local data = data or dofile “nomefiledati.lua”
for n, studente in ipairs(data) do
if not check_t[n] then
error(“Lo studente '”..studente..”' non è stato inserito nel compito”)
end
end
}}`Riassumendo: inserisci le definizione delle due macro \studente e \checkinsertion nel preambolo del documento.
Scrivi \studente{numero nella lista} e poi il testo del test.
La macro controllerà se per caso il numero studente è già stato inserito e segnalerà l’errore.
Per controllare che tutti gli studenti della lista hanno il proprio compito, scrivi \checkinsertion prima di \end{document}.
Se qualche studente manca verrà segnalato un errore.Ti allego i file:
[attachment=2435]studenti.lua[/attachment]
[attachment=2434]provacompitoIBIC.tex[/attachment]
Alla prossima.
R.
Attachments:
You must be logged in to view attached files.::oierpa” post=118467Ciao.
Grazie mille per l’interessamento.Per le tabelle delle revisioni farò come al solito un milione di prove.
Non conosco LuaLaTeX, ho paura di dover ricominciare da zero…La mia idea è quella di trasportare TUTTO il manuale di sicurezza su Latex, perché è più facile gestire grandi documenti, una volta che sono stati composti. Lo farò solo per i documenti relativi alla sicurezza del lavoro, quelli della qualità non sono maneggiati solo da me e sono molti di più, negli anni ho costruito un gestionale con Access (imparando la programmazione in VBA man mano, più o meno come sto facendo con LaTeX) per automatizzare il lavoro ed evitare di avere migliaia di moduli che non si trovano mai.
Nel frattempo lavorerò su 2 fronti, sia su latex che su word in caso di modifiche, ma non sono documenti che si editano ogni giorno, quindi nel giro di qualche mese dovrei riuscire a farcela. Mentre travaso i contenuti però vorrei lavorare parallelamente ad una struttura di documento che non necessariamente ricopi il modello originale, ma che dia le stesse informazioni.
Anche se i puristi della tipografia storceranno sicuramente il naso, avere una tabella nell’intestazione di pagina che riassuma le informazioni fondamentali senza costringere il lettore a cercarle da qualche parte nel testo, è molto comodo, mi riferisco alla revisione, al titolo del documento …
Visto che hai problemi simili ai miei, immagino che ti sia scontrato anche tu con le testatine di pagina che contengono alcune informazioni come la revisione, l’edizione …. come lo hai risolto?
O più che altro, che approccio hai adottato?Grazie in anticipo.
Per il momento mi preme di più farti vedere un esempio: costruire la tua tabella di “revisioni” ma tenendo separati i dati dal documento.
Ti allego direttamente i file…
[attachment=2430]e_2020-05-20.pdf[/attachment]
[attachment=2431]e.tex[/attachment]
e il contenuto del file datarev.lua (l’estensione lua non è ammessa dal forum per il momento)
`
return {
{1, “Rev. Generale”, “Tutto”},
{2, “Descrizione”, “10.2”},
{3, “Reimpaginazione”, “Tutto”},
}
`Come vedi i dati delle revisioni sono contenuti nel file datarev.lua in un formato strutturato che sfrutta il “costruttore di tabelle Lua”.
Nel sorgente LuaLaTeX il file viene letto e il codice della tabella “iniettato”.Questo è solo un esempio che non fa uso di alcun pacchetto (fontspec è caricato solo per mostrare come appare un preambolo minimo per lualatex). Non posso scendere nei dettagli del codice in questa sede.
La tabella riproduce lo stile con i “filetti chiusi” a cui i lettori di documenti word sono abituati.
Si perché ti tocca valutare anche questo aspetto, cosa si aspettano di trovare chi legge.
Alla prossima.
R.
Attachments:
You must be logged in to view attached files.::oierpa” post=118463Ciao a tutti.
Innanzi tutto spero che il virus non vi abbia toccato direttamente e stiate tutti bene.Passo al mio problema.
Sembra ieri, ma ormai 3 anni fa iniziavo un documento, aziendale, con Latex, purtroppo allora ho dovuto interromperne la composizione in questo ambiente perché alcune difficoltà mi avevano fermato e la necessità di presentare il documento in tempi consoni con la vita aziendale non mi ha consentito di andare avanti, ma non ho mai abbandonato l’idea. Ora dovendo revisionare quel documento e tutti quelli collegati e avendo in questi anni lavoricchiato con Latex, mi è venuta la malsana idea di riprendere in mano la questione.
Il documento è la valutazione dei rischi aziendali in ambito di sicurezza, all’epoca avevo cominciato con il solo rischio chimico, ma il corpus di documenti è davvero grande. I documenti sono scritti in word ovviamente, con l’impronta tipica delle procedure del manuale qualità (da cui è stato derivato il template). Al momento non pensavo di migrare alcune caratteristiche (come l’intestazione pagina in forma tabellare, file allegato), ma devo per forza inserire la tabella delle revisioni all’inizio di ogni elaborato (allego 2 file, nel primo si vede la struttura della tabella nel secondo la tabella è in anteprima di stampa).
Il documento finale che vorrei preparare sarebbe una classe book dove ogni valutazione (manuale generale, rischio chimico, rischio incendio, videoterminali …. allegati grafici e moduli) è un capitolo. Ho pensato di far così perché ogni valutazione di rischio sono circa 30 pagine, alcuni hanno molte tabelle e immagini. Poi ci sono le planimetrie aziendali, le tavole con le vie di fuga zona per sona (una dozzina), questi sono tutti allegati.
Nel file word ho usato gli stili e i livelli di testo per non impazzire con gli indici, ho inserito poi le edizioni e le revisioni del documento nelle proprietà personalizzate del file, in modo che compaiano nell’intestazione quando il campo viene aggiornato (in questo modo l’informazione è in un solo posto quindi devo correggerla una volta sola).Di per se il problema non sembra insormontabile, ma quello che sono riuscito ad ottenere non è graficamente bellissimo a mio parere (allego immagine).
Perciò mi chiedevo se qualcuno aveva già affrontato il problema per darmi qualche dritta.
Riporto di seguito il codice minimo.`
\documentclass[a4paper,twoside] {article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{tabularx}
\usepackage{booktabs}\begin{document}
\begin{table}[h]
\centering
% \caption{Prove tabella}
% \begin{tabularx}{0.95\textwidth}{ccc}
\begin{tabular}{ccc}
\toprule
\multicolumn{3}{c}{\textbf{Indice delle revisioni}}\\
\midrule
\textbf{Data} & \textbf{Descrizione} & \textbf{Par.}\\
\midrule
1 & Rev. Gen & Tutto\\
\hline
2 & Descrizione & 10.2\\
\hline
3 & Reimpaginazione & Tutto \\
\bottomrule
\end{tabular}
% \end{tabularx}
\end{table}
\begin{table}[h]
\centering
\begin{tabular}{cccc}
% \begin{tabularx}{0.95\textwidth}{cccc}
\toprule
& EMISSIONE & VERIFICA & APPROVAZIONE \\
\midrule
DATA & 19/02/2020 & 19/05/2020 & 19/05/2020 \\
\midrule
FUNZIONE & DIREZIONE & CDA & CDA \\
\bottomrule
% \end{tabularx}
\end{tabular}
\end{table}\end{document}
`
Come si vede ho spezzato in due la tabella, che in word è unica, ma questo non è un problema insormontabile, stavo più che altro cercando una soluzione graficamente carina.
Ho un po’ di libertà nell’assemblare il documento finale, non mi è stato richiesto di farlo proprio identico.L’ultima domanda è relativa a git.
É possibile in qualche modo legare la tabella alle revisioni che gestisco con git?
Uso git più che altro per generare un hash che metto di solito in seconda pagina, dietro la copertina, in modo da capire dal PDF, che versione del documento ho in mano e la data di ultima modifica, ma se riuscissi a collegare i dati, sarebbe magnifico.Anche se il documento word è abbastanza strutturato (ma non è gestito come documento master), l’aggiornamento è sempre problematico (e lo è sempre stato).
Un saluto a tutti.
Ciao.
Il tuo problema è complesso e anche se in ambiti diversi mi sembra di averlo affrontato con la documentazione professionale che riguarda il lavoro aziendale che svolgo.
Ormai sono arrivato a una configurazione stabile anche se il codice lo vorrei riorganizzare.
Si procede sempre in questo modo: per successive iterazioni.
Non serve dire che in azienda sono il solo a usare il sistema TeX, altrimenti credo che le varie funzionalità si troverebbero a uno stadio più avanzato.Dunque, non ho capito se userai TeX + Word oppure porterai tutto su TeX.
Comunque sia la mia esperienza mi suggerisce ti consigliarti senz’altro LuaLaTeX.
Con Lua hai due grandi vantaggi:
– gestione dati praticamente impossibile da fare con il solo TeX (pensa ai databade SQL per esempio)
– font Open TypeOra, lo so quelle tabelle sono brutte di suo, specie se si deve sistemarle nelle testatine e nei piè di pagina.
Prova a usare i filetti “tradizionali” \hline e lo specificatore di colonna p per gestire la larghezza fissa.
Quanto a git ci sono su CTAN vari pacchetti. Per esempio https://ctan.org/pkg/latex-git-logBuon TeXing!
R.
::carmar” post=118446Scusate, può anche essere che sull’argomento esista già una discussione ma io non l’ho trovata. Vorrei avere una mano nel risolvere il seguente problema. Ho scritto in latex una serie di esercizi da far svolgere ai ragazzi come compito in classe. Per ciascuno degli alunni ho preparato circa quattro esercizi. Vorrei sapere se è possibile definire un campo, da mettere all’inizio di ciascun gruppo di circa quattro esercizi, da riempire con il nome e cognome dell’alunno presi da un file esterno e, se possibile, come farlo oppure dove andare a studiare la soluzione. Molte grazie per l’attenzione.
Ciao,
questo è un problema molto importante per me. La soluzione migliore che ho trovato è quella di usare LuaLaTeX. Con questo compositore compatibile con codice LaTeX (tranne cambiare un paio di pacchetti nel preambolo rispetto a pdfLaTeX) si può usare Lua, un linguaggio di programmazione che amplia considerevolmente proprio le capacità di elaborare dati rispetto a TeX.Per esempio, per rappresentare i dati in un file esterno si può usare il costruttore di tabelle di Lua. Nel tuo caso hai una lista di nomi e quindi questo:
`
return {
“Alessandro Manzoni”,
“Giuseppe Verdi”,
“Ludovico Ariosto”,
}
`Si tratta di una lista di stringhe separate da virgole. Un file contenente quel testo può essere letto direttamente da Lua e inserito come campo variabile nel documento.
`
% !TeX program = LuaLaTeX
\documentclass{article}
% caricamento dati da file esterno
\directlua{
dati = dofile “nomi.lua”
}
\newcommand{\campo}[1]{\directlua{
local n = tonumber(#1)
local nome = dati[n]
if nome then tex.sprint(nome) end
}}
\begin{document}
Compito in classe di \textbf{\campo{3}}
\end{document}
`Ecco, questo è il funzionamento di base. Prova a creare il file dati nomi.lua con la lista dei nomi e ha compilare con LuaLaTeX il secondo sorgente d’esempio.
I vantaggi sono:
non si ha necessità di alcun pacchetto
i dati si possono strutturare con complessità arbitraria
i dati si possono modificare tramite funzioni di formattazione
l’esecuzione è molto veloceTi aiuto a scrivere il codice se vuoi portare avanti questa soluzione su misura.
Alla prossima.
R.
4 Maggio 2020 alle 5:17 in risposta a: [RISOLTO] Errore tlmgr: BAD signature from “TeX Live Distribution” #1179384 Maggio 2020 alle 4:10 in risposta a: [RISOLTO] Errore tlmgr: BAD signature from “TeX Live Distribution” #117935::matteo.l” post=118367Ho provato un paio di mirror diversi e danno tutti lo stesso errore, ci deve essere stato qualche errore di upload, se il problema non si risolve in giornata sarà il caso di mandare una segnalazione all’indirizzo indicato.
Matteo
Ciao a tutti,
non si tratta di un errore ma dell’invio di un nuovo certificato di autenticità gpg al server CTAN principale per il rinnovo del precedente prossimo alla scadenza.
Occorre quindi qualche tempo perché anche tutti gli altri server si aggiornino.
In caso di urgenze è possibile usare l’opzione seguente per tlmgr:
`–verify-repo=none`Tutto dovrebbe tornare normale entro poche ore.
Su Windows, il certificato gpg di solito non è controllato per la mancanza di componenti software credo, perciò questi utenti non dovrebbero accorgersi del problema.Un saluto.
R.
21 Aprile 2020 alle 9:04 in risposta a: File `verse.sty’ not found.^^M su Ubuntu 19.10, TeX Live 2020 #117846::
Ciao,
il punto di inizio con Lua è determinare il numero di pagine del pdf. Con texlua:
`local pages
local doc = pdfe.open(“doc.pdf”)
if doc then
pages = pdfe.getnofpages(doc)
pdfe.close(doc)
end
print(pages or “pages not recognized”)`
ammettendo che nella stessa directory dello script (che ho chiamato split.lua) ci sia il file doc.pdf.
Se lo script vi produce un errore è probabile che lo stiate eseguendo con una versione troppo vecchia di texlua.Da questo punto, occorre studiarsi la documentazione di LuaTeX.
Questa libreria è oggetto di sviluppo, ma credo che possa rendre LuaTeX un coltellino svizzero per tutte quelle operazioni che oggi demandiamo a strumenti esterni. Anche pdftex con il pacchetto pdfpages fa già parecchie cose.
Alla prossima.
R.
1 Aprile 2020 alle 14:02 in risposta a: Software o pacchetto per cercare dal main document attraverso i file \input #117728::LucaLuca01″ post=118145Salve a tutti,
avrei bisogno di una mano nella ricerca di un software che permetta di eseguire il trova e sostituisci dal documento principale anche attraverso i file aggiunti col comando \input. Io utilizzo TeXstudio che non riesce a farlo per quanto sappia, poi magari c’è qualche opzione strana che non sono riuscito a trovare). Ho cercato sul web, ma non sono arrivato a nulla…Vi ringrazio
Ciao la soluzione di Ivan ti permette di rimanere con il tuo editor preferito.
Tuttavia ti segnalo che l’editor Visual Studio Code consente all’utente il controllo totale sulle operazioni di trova e sostituisci su più file, con o senza espressioni regolari.
Mi trovo molto bene poiché è possibile controllare la sostituzione una per una, file per file. Si possono escludere singoli file dall’operazione di sostituzione e si ha un’anteprima di quanto sostituzioni sono possibili per singolo file.
In altre parole si tratta di una funzione avanzata che può tornare utile.
A presto.
R.
::giuseppeloscomm” post=118068Buongiorno a tutti,
Sto usando questo codice per creare un albero, solo che non sono in grado di passare dai nodi E,F,I,N,O in avanti, cioò vorrei creare un ulteriore ramo dopo questi. Riuscite a darmi una mano? 😕 😀
Vi linko il codice usato:
`
\documentclass[12pt]{article}
\usepackage{design_ASC}
\usepackage{tikz}
\setlength\parindent{0pt}
\title{\textbf{Alberi
}}\author{Prova\\
\textsc{Creazione alberi}
}
\date{\today}
\begin{document}
\setlength{\droptitle}{-5em}
\maketitle
\section{\textit{Creazione alberi}}\begin{center}
\tikz [font=\small,
grow=right,
level 1/.style={sibling distance=3em},
level 2/.style={sibling distance=3em}
level 3/.style={sibling distance=3em},
level distance=3cm]
\node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=1cm, align=flush center] {$S^1_0$=1} % root
child { node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=2cm, align=flush center] {$S^{1u}_1$=0.5}
child { node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=2cm, align=flush center] {$O$}}
child { node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=2cm, align=flush center] {$N$}}
child{node [shape=rectangle, rounded corners=1mm, inner sep=4, text width=2cm, align=flush center] {}}}
child { node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=2cm, align=flush center] {$S^{1m}_1$=1}
child { node [shape=rectangle, rounded corners=1mm, inner sep=4, text width=2cm, align=flush center] {}}
child { node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=2cm, align=flush center] {$I$}}
child{node [shape=rectangle, rounded corners=1mm, inner sep=4, text width=2cm, align=flush center] {}}}
child { node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=2cm, align=flush center] {$S^{1u}_1$=3.5}
child{node [shape=rectangle, rounded corners=1mm, inner sep=4, text width=2cm, align=flush center] {}}
child { node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=2cm, align=flush center] {$F$}}
child{node [shape=rectangle, rounded corners=1mm,draw, inner sep=4, text width=2cm, align=flush center] {$E$}}}
\end{center}
\end{document}`Ciao.
guardando il codice del grafico in TikZ che hai postato, gli obiettivi principali devono essere due:
il primo è comprendere la struttura sintattica tra codice e struttura ad albero;
il secondo è introdurre gli stili così da dare al codice più compattezza.Per l’obiettivo 1 considera che un sotto ramo viene creato da un nodo con la sintassi:
child {node {un nodo}} se
è vuoto il nodo diventa una foglia (un nodo terminale per intenderci), altrimenti si riparte ricorsivamente con la stessa sintassi.
Partiamo da un codice semplice:
`\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node {root}
child {node {left}}
child {node {right}
child {node {a}}
child {node {b}}
};
\end{tikzpicture}
\end{document}`
Come vedi i nodi a e b sono inseriti dentro il nodo right con il codice:
`=
child {node {a}}
child {node {b}}`Ovviamente tutto è specificato nel manuale, credo nel capitolo 21.
L’indentazione, ovvero inserire spazi per allineare verticalmente il codice, è utile per individuare visivamente i rami.Cerca quindi di creare la struttura del tuo albero senza preoccuparti dello stile, usando la sintassi ricorsiva che abbiamo visto.
Rispetto alla struttura che vuoi raggiungere ho trascurato solo il disegno dei collegamenti tra nodi diciamo a X, ma non ti preoccupare, prima la struttura complessiva poi il resto.
In un secondo momento puoi occuparti poi dello stile, come la forma dei nodi, la direzione orizzonatale eccetera.
Alla prossima.
R.
-
AutoreRisposte