antonio.macrì

Risposte nei forum create

Stai visualizzando 15 risposte – dal 31 al 45 (di 418 totali)
  • Autore
    Risposte
  • in risposta a: LaTeX + git #51015
    Up
    0
    Down
    ::


    Chiedo agli autori: per caso avete intenzione di trasferire il repository su GitHub?

    Ho dato una lettura alla guida, alcuni paragrafi sono particolarmente scorrevoli, anche piacevoli da leggere. 😉 Comunque ho notato alcuni refusi e un paio di imprecisioni. Per il momento li segno qui, anche per discuterne (se volete potete integrarli voi, se li ritenete validi).

    Innanzitutto, parlando di GUI io farei almeno una menzione a gitk o gitg.

    Ma andiamo al sodo: paragrafo 3.4.1.

    Se si vogliono riportare allo stato dell’ultimo commit registrato solo determinati file che sono modified ma non ancora staged, adottando la terminologia vista all’inizio, senza toccare la restante working directory si può utilizzare il comando
    `$ git commit — < file >`

    Immagino si intenda [tt]git checkout[/tt].

    Poco dopo (infatti):

    Il comando git checkout — può anche essere usato per ripristinare file accidentalmente cancellati prima effettuare un nuovo commit. In questo caso l’uso del doppio trattino è necessario dal momento che il file cancellato non si trova nella working directory e Git non capirebbe che è con certezza un elenco di file cancellati.

    Non mi risulta che [tt]–[/tt] sia necessario. Come al solito, è consigliato se si possono avere ambiguità, ma non mi pare sia obbligatorio. Ovviamente, dato che il file è stato cancellato, non è possibile usare TAB per completarne automaticamente il nome, ma non per questo non viene riconosciuto da git.

    A seguire:

    I file tolti dalla staging area possono poi anche essere ripristinati allo stato del commit precedente usando il comando git commit — illustrato qui sopra.

    Come sopra: [tt]git checkout[/tt]?

    Paragrafo 3.4.2:

    L’opzione –amend del comando git commit permette di modificare l’ultimo commit, ma a patto che non sia già stato inviato a un server remoto con git push. Questa apparente limitazione è dovuta al fatto che quando il server remoto riceve la nuova versione del repository non si aspetta che la cronologia dei commit che già conosce venga modificata e questa è una misura di sicurezza voluta dagli sviluppatori di Git che assicura che un repository non possa essere alterato da malintenzionati.

    Sembra naturale pensare a una misura di sicurezza, ma in realtà non è così, o meglio: non in questo senso. Si può benissimo inviare al server remoto un commit modificato: basta usare [tt]git push -f[/tt]. Il motivo per cui va usato con attenzione è che altera la cronologia dei commit nel server remoto e può mandare in subbuglio i repositori degli altri sviluppatori (non mi è mai capitato ma leggendo in giro non sembra piacevole ;)). Se vogliamo trovare un motivo “di sicurezza”, è per costringere a fare il merge in locale, evitando che vada perso del lavoro. Per esempio se A e B partono dallo stesso commit, fanno ciascuno un commit nella propria copia di lavoro e poi A fa il push, se anche B potesse fare semplicemente il suo push, andrebbe eseguito un merge automatico in remoto …che git non prevede! 😉 Di conseguenza o si fa il merge locale o si perde il lavoro di A!

    Un’altra cosa. Quando viene descritto [tt]git revert[/tt], dato che si cita HEAD, può essere il punto giusto per parlare delle notazioni [tt]^[/tt] e [tt]~N[/tt], che evitano di dover ricopiare l’hash certe volte. Infine, opinione personale, io lascerei stare [tt]inotifywait[/tt] che va completamente contro il senso di un sistema come git, in cui ogni commit dovrebbe avere uno specifico obiettivo.

    Ciao,
    Antonio

    in risposta a: Guida tematica alla riga di comando. #74650
    Up
    0
    Down
    ::

    Elrond” post=80921… inoltre permette di individuare più facilmente le modifiche quando si fa uso dei diff (come con i vari sistemi di controllo delle revisioni): andare a ytovare una microscopica modifica (per esempio una virgola in più o in meno) su una riga di centinaia di caratteri diventa un’impresa simile alla ricerca dell’ago nel pagliaio, invece con una riga di pochi caratteri è molto più semplice.

    Esempio: senza evidenziazione (nel terminale le differenze non sono evidenziate, ci sono solo colori diversi per le righe aggiunte ed eliminate), sfido chiunque a trovare rapidamente la modifica al file [tt]section/notefinali.tex[/tt] nel commit https://github.com/GuITeX/guidalineadicomando/commit/d265884480e00f59b23538280b2be5ed98ed5f11 (la riga è lunga oltre 400 caratteri)

    Concordo, e né GitHub né Bitbucket fanno alcun “a capo automatico” quando visualizzano i diff.

    Questa è una di quelle cose che distinguono LaTeX, nell’uso con git, rispetto agli altri linguaggi di programmazione. Generalmente programmando non si oltrepassano mai gli 80 o al massimo 120 caratteri, per motivi “fisiologici”, mentre in LaTeX è esattamente il contrario. Penso che si possa sottolineare questo aspetto nella guida git4latex, suggerendo all’utente come comportarsi: sarebbe interessante porre all’attenzione proprio le peculiarità dell’uso di git con documenti LaTeX.

    Premetto che ancora non ho una posizione irremovibile su questo, però voglio far notare una cosa: se dopo aver modificato il testo si inseriscono le interruzioni di riga ridistribuendo il testo, facendolo a mano o con un editor, si rischia di avere lo stesso problema. Basta aggiungere una parola al testo (ho trovato un esempio :D) per ottenere un diff ancora difficile da interpretare:
    ` In questa situazione diventa
    -importante assicurarsi che le figure PDF siano aggiornate, infatti è facile
    -dimenticarsi di ricompilare la figura dopo aver fatto una piccola modifica al
    -suo codice sorgente. È evidente che in questo caso \texttt{make} può risultare
    -molto utile per controllare in maniera efficiente che le figure Ti\emph{k}Z
    -siano sempre aggiornate.
    +importante assicurarsi che le figure \textsc{PDF} siano aggiornate, infatti è
    +facile dimenticarsi di ricompilare la figura dopo aver fatto una piccola
    +modifica al suo codice sorgente. È evidente che in questo caso \texttt{make}
    +può risultare molto utile per controllare in maniera efficiente che le figure
    +Ti\emph{k}Z siano sempre aggiornate.`
    Essendo un diff su più di una riga, nemmeno GitHub evidenzia le differenze.

    Ciao
    Antonio

    in risposta a: Flusso di lavoro in Latex #81584
    Up
    0
    Down
    ::

    EmilLask” post=80877Potrei realizzare degli script anche con TexMaker?

    Tra chi lo utilizza c’è qualcuno che potrebbe mostrarmi un esempio di script?
    Ad esempio: seleziono una successione di righe e in ogni riga aggiungo \item all’inizio e \\ alla fine.

    Grazie

    Emil

    Per TeXworks, ammesso che [tt]\item[/tt] all’inizio e [tt]\\[/tt] alla fine abbiano un senso 🙂 ecco:
    `// TeXworksScript
    // Title: Itemize
    // Description: Aggiunge \item all'inizio e \\ alla fine di ogni riga
    // Author: Nome Cognome
    // Version: 1.0
    // Date: 2012-12-29
    // Script-Type: standalone
    // Context: TeXDocument
    // Shortcut: Ctrl+K, Ctrl+Z

    var selection = TW.target.selection;
    if (selection != “”) {
    selection = selection.replace(/^/gm, “\\item “);
    selection = selection.replace(/$/gm, “\\\\”);
    TW.target.insertText(selection);
    }
    undefined;`
    La prima porzione è un’intestazione con dei metadati. L'[tt]undefined[/tt] finale serve per evitare dei problemi con qualche vecchia versione di TeXworks.

    Più info qui. Tutti gli script sono contenuti in una cartella che puoi raggiungere dal menu Script → Scripting TeXworks → Mostra cartella script.

    Ovviamente in casi semplici come questo basta anche un cerca/sostituisci, ma in generale con gli script puoi fare roba piuttosto complessa. 😉

    Ciao,
    Antonio

    PS: oops! è un forte off-topic, chiedo scusa… 😳

    in risposta a: Latex e Perl #81440
    Up
    0
    Down
    ::

    EmilLask” post=80692Innanzitutto un saluto agli amici del Forum.
    Spero di poterlo frequentare con assiduità e di imparare molto dall’esperienze dei numerosi e competenti partecipanti.
    Mentre cercavo una risposta alla possibilità di realizzare un ordinamento alfabetico di una tabella all’interno di Latex, mi sono imbattuto in un post in cui si faceva riferimento a Perl.
    Due quesiti:
    1) Anche in Latex2 non è possibile un ordinamento alfabetico per colonna di una tabella?
    2) dove posso trovare documentazione che mi permetta innanzitutto di capire come Perl e Latex possono interagire?

    Ho trovato molto sul Web riguardo a Perl, ma non vorrei addentrarmi senza prima avere capito come si combina con Latex, considerato che al momento è l’unico motivo che mi spingerebbe ad approfondirlo.

    Grazie

    Emil

    Non mi è chiara una cosa: vuoi riordinare la tabella modificando il sorgente stesso, oppure vuoi lasciare il sorgente intatto e far sì che la tabella risulti ordinata nel solo PDF?

    Nel primo caso, lascerei perdere Perl (opinione personale: non amo Perl) e scriverei uno script per TeXworks (in Javascript). TeXworks è un editor che viene incluso nelle maggiori distribuzioni LaTeX, quindi quasi certamente ce l’hai già installato. È la via più comoda per applicare delle modifiche al sorgente, perché selezioni il testo nell’editor stesso ed esegui lo script che lo elabora. Nel secondo caso, come ti hanno già scritto, la scelta migliore è usare Lua e LuaTeX. Non credo che Perl si combini particolarmente bene con LaTeX, tranne evidentemente in PerlTeX (di cui non avevo mai sentito parlare).

    In ogni caso, dipende da come son fatte le tabelle che vuoi ordinare: se ce ne dai un esempio, possiamo ragionare sicuramente meglio. 😉

    Ciao,
    Antonio

    in risposta a: Guida tematica alla riga di comando. #74637
    Up
    0
    Down
    ::

    Elrond” post=80625Il workflow di un progetto collaborativo in genere è questo: un “capo” ha accesso al repository “ufficiale”, tutti gli altri utenti creano fork, fanno le modifiche sul proprio fork e poi chiedono il merge nel repository “ufficiale”. In pratica tutti glu utenti hanno accesso in scrittura solo al proprio repository. È (più o meno) necessario una gestione del genere perché se tutti avessero accesso in scrittura contemporanea a un unico repository si potrebbero facilmente creare conflitti di cui ognuno dovrebbe occuparsi, in questo modo se ne occupa solo il responsabile del repository principale 😛

    Questo può avvenire per repository personali (ai quali in genere l’unico ad avere accesso in scrittura è chi li crea) o progetti molto grandi (per questioni di controllo e integrazione dei diversi commit). Ma se sul progetto lavora un team abbastanza compatto, allora tutti i membri hanno accesso allo stesso repository in scrittura. Peraltro, se il repo è open source (nel senso che tutti lo possono leggere), allora chiunque può contribuire in maniera meno diretta al progetto con qualche forma di pull request.

    Alcuni che si avvicinano a Git temono i conflitti a priori, ma nei progetti comuni solitamente i conflitti sono abbastanza rari. Una delle caratteristiche più importanti di Git è che è un Distributed VCS: non esiste alcun server, soprattutto non esiste alcun meccanismo di lock (che ha invece SVN). Il lock può essere utile per file binari che vengono modificati spesso, per i quali non si può fare alcun merge. Ma quando si scrive un documento LaTeX si lavora quasi esclusivamente su file di testo (tex, sty, cls, dtx, eccetera: le eventuali immagini sono aggiunte all’inizio e quasi mai modificate) e allora spesso i conflitti possono essere risolti in maniera quasi automatica. Comunque sia, tocca proprio a ciascuno sviluppatore risolvere i conflitti, in locale.

    Non va mai dimenticato quel “distributed”… 😉


    Comunque l’accoppiata Git+LaTeX è fenomenale e son d’accordo che una guida tematica a Git sarebbe molto utile. Tempo permettendo, mi piacerebbe anche contribuire. 🙂

    in risposta a: Decisione errata in base a confronto tra dimensioni #81316
    Up
    0
    Down
    ::

    Liverpool” post=80550E per la seconda domanda, hai una risposta? Come faccio a mostrare l’asterisco anche nella finestra dei messaggi di Texmaker e non solo nel file log?

    Texmaker rimuove esplicitamente tutti gli asterischi dagli avvisi (forse lo fa per ripulire gli avvisi LaTeX3; comunque è un bug).

    Ciao,
    Antonio

    in risposta a: Generare warning in un sorgente (non pacchetto né classe) #81286
    Up
    0
    Down
    ::

    egreg9″ post=80519Non rispecchierà veramente la realtà, ma se il tuo scopo è di far riconoscere l’avviso ai metodi balordi di TeXStudio o Kile, è una via sicura. Perché “metodi balordi”? Perché disabituano l’utente a prestare attenzione al log; non hai idea di quanti esempi che producono errori, bellamente ignorati da chi chiede aiuto, si vedano in giro.

    Punto di vista autorevole, ma personalmente non son d’accordo.

    L’utente con un minimo di pratica sa che il log è importante, che può aiutare a risolvere dei problemi e sa che ogni tanto va letto comunque (per esempio io lo faccio prima della “consegna”). Ma non trovo affatto pratico leggerlo a ogni compilazione.

    Per un principiante, trovo ingiustificabile chiedergli di scorrere ogni volta il log in cerca di avvisi (o errori), si perderebbe tra tutti quei file, quei numeri e quell’accozzaglia amorfa che ne vien fuori. Se gli errori sono ignorati da un utente inesperto, secondo me in gran parte ne è causa il meccanismo pressoché scriteriato che c’è dietro (TeX non aiuta affatto, ma spesso è colpa dei pacchetti; per fortuna mi pare che LaTeX3 stia cercando di render più razionale la gestione dei messaggi).

    Perciò quei “metodi balordi” secondo me sono necessari. Non lo dico perché in quello di TeXworks c’è del mio, ma semmai è il contrario: l’ho scritto convinto dell’importanza di un decente riconoscimento dei messaggi.

    Ogni tanto Lorenzo sottolinea qualche punto debole di LaTeX che spaventa i principianti e li allontana: ecco, secondo me questo è uno di quelli.

    in risposta a: Generare warning in un sorgente (non pacchetto né classe) #81283
    Up
    0
    Down
    ::

    Liverpool” post=80513Vorrei generare in un sorgente [tt].tex[/tt] un avviso che compaia nella finestra dei messaggi quando si compila (come succede ad esempio per [tt]pgfplots[/tt] a proposito della compatibilità). Non dico nel file [tt].log[/tt] ma proprio nella finestrella che compare sotto il codice (con riferimento a Texmaker) con le scritte rosse per gli errori e blu per gli avvisi. Ho provato con [tt]\typeout[/tt] e [tt]\immediate\write16[/tt] (che ho spudoratamente copiato dal codice di [tt]pgfplots[/tt]), ma riesco ad ottenere gli avvisi solo nel file [tt].log[/tt]. Come si fa?

    Grazie

    `\documentclass{article}

    \begin{document}

    \makeatletter
    \def\text{Qui l'avviso che potrebbe anche andare\MessageBreak
    a capo nell'output}
    \def\textnl{\text, senza l'indicazione\MessageBreak del numero di riga}

    \ClassWarning{nome}{\text}
    \ClassWarningNoLine{nome}{\textnl}
    \PackageWarning{nome}{\text}
    \PackageWarningNoLine{nome}{\textnl}

    \@latex@warning{\text}
    \@latex@warning@no@line{\textnl}

    \GenericWarning{\@spaces\@spaces\space}{%
    Warning: \text}
    \GenericWarning{\@spaces\@spaces\space}{%
    Warning: \textnl\@gobble}
    .
    \end{document}`

    Forse non sbaglio se dico che LaTeX suddivide gli avvisi in due categorie: quelli generati da un pacchetto/classe e quelli interni al nucleo di LaTeX. I primi quattro comandi servono per la prima categoria (Class Warning o Package Warning). I due seguenti vengono usati internamente da LaTeX (LaTeX Warning). Gli ultimi due sono le varianti del comando base al quale si rifanno tutti i precedenti.

    [tt]\GenericWarning[/tt] dà la massima libertà, ma produce un output non formattato, per questo c’è bisogno di quegli [tt]\@spaces[/tt] ed eventualmente di [tt]\@gobble[/tt].

    Ciò che viene mostrato nella finestrella è semplicemente quello che gli editor hanno ricavato analizzando il log. Più un messaggio è ben formato, più facile sarà riconoscerlo per gli editor: per questo motivo io non userei [tt]\GenericWarning[/tt]. Per il riconoscimento degli avvisi TeXmaker controlla semplicemente che compaia la stringa “Warning: “, ma il comportamento degli altri editor può variare. Per esempio TeXworks cerca esplicitamente l’output dei primi sei comandi.

    In definitiva credo che la scelta migliore sia usare [tt]\PackageWarning[/tt]. Non deve necessariamente trovarsi dentro un pacchetto, puoi usarlo dovunque: se per esempio stai scrivendo una libreria per pgfplots, puoi mettere come primo argomento il nome della libreria stessa (o persino “pgfplots”). 😉

    PS: per altro, sugli avvisi/info io non prenderei ispirazione dal codice di pgfplots… non riesco a spiegarmi perché faccia qualcosa come `! Package pgfplots Warning: …` ossia mostrare un avviso preceduto da “!”, che è tipico degli errori! Fregando in questo modo gli editor… 🙁 Oltre a quella “notification” di [tt]compat=newest[/tt] che nessun editor (mi risulta) riconosce: perché non un info o un warning? Boh!

    in risposta a: [RISOLTO] Elenco numerato spezzato #81171
    Up
    0
    Down
    ::


    Se anche non si fosse potuto dare [tt]resume[/tt] in quel modo, valeva sempre la pena provare a racchiudere [tt]\setlist[/tt] in un gruppo: se il pacchetto è fatto a modo, i comandi come quello hanno effetto locale (e infatti, a parte casi particolari, così funzionano [tt]\captionsetup[/tt], [tt]\hypersetup[/tt], …).

    `\documentclass[a4paper,11pt]{report}

    \usepackage{enumitem}

    \begin{document}
    Ecco il primo elenco:
    \begin{enumerate}
    \item Uno
    \item Due
    \item Tre
    \end{enumerate}

    Ed ecco il secondo, che dovrebbe proseguire dal primo:
    \begingroup
    \setlist[enumerate]{resume}
    \begin{enumerate}
    \item Quattro
    \item Cinque
    \end{enumerate}
    Anche:
    \begin{enumerate}
    \item Sei
    \item Sette
    \end{enumerate}
    \endgroup

    Ripartiamo da 1:
    \begin{enumerate}
    \item Nuovo Uno
    \item Nuovo Due
    \item Nuovo Tre
    \end{enumerate}
    \end{document}`

    in risposta a: [RISOLTO] Elenco numerato spezzato #81169
    Up
    0
    Down
    ::

    franen” post=80388`\documentclass[a4paper,11pt]{report}
    \usepackage{enumitem}
    \setlist[enumerate]{resume}
    \begin{document}

    Ecco il primo elenco:
    \begin{enumerate}
    \item Uno
    \item Due
    \item Tre
    \end{enumerate}

    Ed ecco il secondo, che dovrebbe proseguire dal primo:
    \begin{enumerate}
    \item Quattro
    \item Cinque
    \end{enumerate}

    \end{document}`
    Però così mantieni una numerazione crescente in tutto il documento, non so se è quello che vuoi…

    Si può dare [tt]resume[/tt] anche localmente:
    `\documentclass[a4paper,11pt]{report}

    \usepackage{enumitem}

    \begin{document}
    Ecco il primo elenco:
    \begin{enumerate}
    \item Uno
    \item Due
    \item Tre
    \end{enumerate}

    Ed ecco il secondo, che dovrebbe proseguire dal primo:
    \begin{enumerate}[resume]
    \item Quattro
    \item Cinque
    \end{enumerate}

    Ripartiamo da 1:
    \begin{enumerate}
    \item Nuovo Uno
    \item Nuovo Due
    \item Nuovo Tre
    \end{enumerate}
    \end{document}`

    Ciao,
    Antonio

    in risposta a: TeX Live 2012 per Ubuntu da PPA #80876
    Up
    0
    Down
    ::


    Grazie!

    Doc” post=80079Bisogna vedere se arriverà la 2013, cosa su cui nutro moltissimi dubbi!

    E già!

    Elrond” post=80081Inoltre al momento Debian testing è in freeze a tempo indeterminato (fa parte del normale piano di rilascio delle versioni stabili), in questo periodo dubito che possa aggiornare i pacchetti di TeX Live se non per motivi di sicurezza.

    Giustissimo, non ci avevo pensato. In effetti vedo che gli ultimi aggiornamenti sono di giugno.

    Dunque mi chiedo per chi è veramente utile la versione pacchettizzata (e mi rispondo: solo per siti come ScribTeX, ShareLaTeX e simili, forse).

    Ciao,
    Antonio

    in risposta a: TeX Live 2012 per Ubuntu da PPA #80874
    Up
    0
    Down
    ::


    Grazie!

    Tra i vantaggi della versione pacchettizzata è annoverabile il fatto che si può scegliere di non installare alcune parti, direi.

    Ora che le due versioni coincidono (a parte qualche ritardo), non credete che per un utente alle prime armi (per esempio i lettori dell’Arte) sia conveniente consigliargli quella dei repo? Forse gli aggiornamenti sono caricati con qualche giorno/settimana di ritardo, ma non credo che tutti eseguano tlmgr ogni settimana. So che Claudio lo ribadisce ogni tanto, ma mi viene in mente un mio amico (che pure usa LaTeX con soddisfazione) che aggiorna quando lo costringo io 😛 perché non gli compilano più i documenti su cui collaboriamo. 😉

    in risposta a: Problemi con la composizione della monografia #80866
    Up
    0
    Down
    ::


    Benvenuto sul forum!

    Hai letto la documentazione di toptesi (che puoi aprire dando [tt]texdoc toptesi[/tt] dal terminale)? Al momendo non ho una distribuzione per provare, ma i comandi presentati nel paragrafo 3.4 dovrebbero fare quello che cerchi.

    Ciao,
    Antonio

    in risposta a: L’arte di scrivere con LaTeX • Edizione 2012 #80837
    Up
    0
    Down
    ::


    Per @Enrico: non riesco a eliminare questo messaggio. Per cortesia, potresti farlo tu?

    in risposta a: L’arte di scrivere con LaTeX • Edizione 2012 #80834
    Up
    0
    Down
    ::


    Complimenti per la nuova versione!
    Per ora ho solo scorso velocemente le pagine, ho notato che nella prefazione compare la sezioncina “Sull’edizione 2012”: ma è 2012 o 2013? 🙂

Stai visualizzando 15 risposte – dal 31 al 45 (di 418 totali)

Go to top