- Questo topic ha 20 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 14 anni, 2 mesi fa da
illinguista1972.
-
CreatoreTopic
-
1 Luglio 2012 alle 10:45 #75740::
Vorrei inserire in un documento (classe suftesi, opzione supercompact) alcune (molte) immagini, che per forza di cose dovranno essere ciascuna a tutta pagina e ciascuna con una didascalia. Le immagini saranno non numerate: niente elenco, dunque, perché quello che interessa è l’immagine e la didascalia. Non ci saranno riferimenti nel testo, sono immagini di puro commento al testo.Bene. Vi aspettate la domanda? 🙂
Eccola. I capitoli di questo libro sono molto brevi, diciamo tre facciate ciascuno di sicuro, con possibilità di avere qualche riga anche nella quarta. Non tutti i capitoli avranno bisogno di queste immagini, ma soltanto alcuni. Alcuni capitoli, poi, avranno purtroppo più immagini di quelle che potrebbero starci decentemente.
Cerco di spiegarmi. Mettiamo che un capitolo abbia tre facciate e basta. Io vorrei fare una cosa del genere:
Prima facciata
Prima immagine
Seconda facciata
Seconda immagine
Terza facciata
Terza immagine (se c’é una terza immagine)
Naturalmente, le pagine si interrompono dove devono interrompersi. Il problema si presenta quando ho una quarta immagine e un capitolo di tre facciate.
Come fareste, voi? Con un semplice [tt]\includegraphics[/tt] spostandolo prima e dopo per ottenere il risultato voluto (tanto, se l’immagine è grande viene messa per forza in una pagina [tt]p[/tt]), oppure forzereste la posizione dell’immagine?
Ciao
Tommaso
-
CreatoreTopic
-
AutoreRisposte
-
-
1 Luglio 2012 alle 11:33 #75741::
Figurati se non hai mai sentito parlare del pacchetto afterpage…:wink: So che qualcuno guarda a questo pacchetto “with stiff nose” 😯 , ma quando è necessario è necessario 🙂Poi il pacchetto caption dovrebbe metterti a disposizione un comando \caption* che non mette né il numero né la parola Figura prima del numero; puoi fare qualcosa come
`\usepackage{afterpage} % nel preambolo\afterpage{% inizio dell'argomento di \afterpage
\begin{figure}[p]
\includegraphics[width=…]{…}
\caption*{Questa è una figura con la sola didascalia}
\end{figure}
\clerapage}% fine dell'argomento di \afterpage
`
e dai un comando di questo genere per la quarta figura da mettere dopo la fine del capitolo, lasciando l’ultima pagina del capitolo tranquillamente mozza, anche se contiene poche righe e forse la figura ci starebbe lo stesso; se succedesse (a posteriori) togli \afterpage da questa unica figura finale.Per la quinta, sesta … figura, non occorre usare \afterpage, basta che tu metta il solo specificatore di posizione `p’ e ci pensa la routine di uscita a spararne fuori una alla volta prima del capitolo successivo; dopo l’ultimo capitolo, per pura prudenza, ne caso yu volessi ancora mettere qualcosa di non sezionato a livello di \chapter o \chapter*, mettici ancora un \clearpage, poi quello che ti pare comincerà su una nuova pagina
-
4 Luglio 2012 alle 12:10 #75742::
OldClaudio” post=74888Figurati se non hai mai sentito parlare del pacchetto afterpage…:wink: So che qualcuno guarda a questo pacchetto “with stiff nose” 😯 , ma quando è necessario è necessario 🙂
Poi il pacchetto caption dovrebbe metterti a disposizione un comando \caption* che non mette né il numero né la parola Figura prima del numero; puoi fare qualcosa come
`\usepackage{afterpage} % nel preambolo\afterpage{% inizio dell'argomento di \afterpage
\begin{figure}[p]
\includegraphics[width=…]{…}
\caption*{Questa è una figura con la sola didascalia}
\end{figure}
\clerapage}% fine dell'argomento di \afterpage
`
e dai un comando di questo genere per la quarta figura da mettere dopo la fine del capitolo, lasciando l’ultima pagina del capitolo tranquillamente mozza, anche se contiene poche righe e forse la figura ci starebbe lo stesso; se succedesse (a posteriori) togli \afterpage da questa unica figura finale.Per la quinta, sesta … figura, non occorre usare \afterpage, basta che tu metta il solo specificatore di posizione `p’ e ci pensa la routine di uscita a spararne fuori una alla volta prima del capitolo successivo; dopo l’ultimo capitolo, per pura prudenza, ne caso yu volessi ancora mettere qualcosa di non sezionato a livello di \chapter o \chapter*, mettici ancora un \clearpage, poi quello che ti pare comincerà su una nuova pagina
Grazie Claudio 🙂
Avevo sentito parlare di questo pacchetto, ma solo per poter inserire una pagina bianca nel documento. In realtà, la documentazione è striminzita, il comando \afterpage produce il proprio argomento nella pagina immediatamente successiva a quella corrente, se ho capito bene. Se io volessi, allora mettere una figura nella seconda pagina del mio capitolo, basta dare \afterpage circa alla fine della pagina corrente, giusto? Oppure va dato in qualche luogo particolare?
Trovo che nell’Arte si potrebbe menzionare il pacchetto e il codice per inserire una pagina vuota e quello per mettere una figura decorativa a tutta pagina. Magari a qualcuno serve!
Chiedo: essendo le mie figure sufficientemente grandi per finire automaticamente in una pagina a sé, devo mettere comunque [p] dopo \includegraphics?
Ciao
Tommaso
-
4 Luglio 2012 alle 13:29 #75743::
Puoi omettere [p].il pacchetto afterpage è smilzo perché c’è poco da dire; esso trattiene il suo argomento fino a quando la pagina corrente, cioè quella in mezzo alla quale compariva il comando \afterpage{…}, vien emessa e allora quanto era conservato in memoria viene immesso nel flusso del file da comporre e vengono eseguiti i comandi, inserite le figure, composte le tabelle, eccetera.
Per esempio: non è carino far cominciare una longtable verso il fondo della paigna; ricordiamo che non è un oggetto mobile. Allora componi tutto il codice della longtable e lo metti in un file, diciamo MyLongTable.tex, poi nella pagina prima de=i quella dove dovrebbe cominciare la longtable ci metti
`\aftepage{\input{MyLongTable}` e la composizione della longtable viene eseguita solo quando tex ha appena “shiped out” la pagina precedente.Nella GuidaGuIT, nel file delle macro ho provato a definire un comando per dilazione certo materiale fino ad una pagina pari oppure dispari, non alla prima disponibile. Non funziona benissimo perché eredita i difetti di afterpage su cui si appoggia, ma spesso funziona come ci si aspetterebbe.
Io trovo il pacchetto afterpage molto utile, ma di sicuro non per emettere una pagina vuota; come sai i preferisco ridefinirmi i comandi e, sempre nel file di macro della GuidaGuIT, trovi la ridefinizione del comando \cleardoublepage al quale puoi specificare come opzione lo stile della pagina vuota da emettere nel caso ce ne sia bisogno; due righe di ridefinizione di cui conosco vita, morte e miracoli, e nessun pacchetto esterno che talvolta fa cose inaspettate (non sarà il caso di emptypage.sty, ma…)
Parlarne sull’Arte? dipende dal Presidente; credo che mi abbia già risposto di no una volta, alcuni anni fa.
-
4 Luglio 2012 alle 14:18 #75744::
OldClaudio” post=75012Parlarne sull’Arte? dipende dal Presidente; credo che mi abbia già risposto di no una volta, alcuni anni fa.
Parlerei sicuramente di \caption*, innanzitutto: inserire un’immagine con la sola didascalia può capitare (in un libro d’arte, per esempio). Due righe le aggiungeremo sicuramente. E questo va in Paride. 🙂
Su afterpage continuo a essere freddo, in primo luogo perché la sintassi non mi piace (quell’ambiente “figure” messo come argomento di un comando non è un esempio di codice elegante), e inoltre perché a mio avviso i numerosi strumenti che presentiamo nell’Arte sono sufficienti per risolvere (gran parte de)i problemi di posizionamento degli oggetti mobili. Per esempio, nel caso che presenta Tommaso (un capitolo di tre pagine di testo con quattro immagini, con ciascuna immagine in una pagina), il codice potrebbe essere di questo tipo:
`\chapter{Capitolo}Il primo capoverso della prima facciata.
\begin{figure}[!hb] % o [H]
\caption*{…}
\end{figure}…
Testo che va nella seconda facciata.
\begin{figure}[tbh] % o [H]
\caption*{…}
\end{figure}…
Qui siamo nella terza facciata.
\begin{figure}[tbh] % o [H]
\caption*{…}
\end{figure}…
% La quarta facciata non contiene testo
\begin{figure}[p]
\caption*{…}
\end{figure}`
Naturalmente occorrerà provare le preferenze di collocazione — [!hb] o [tbh] o [H] o [p] o altre— per avere il risultato migliore, Potrà essere eventualmente utile dare un \clearpage. Ci vorrà molta pazienza, perché con quando gli oggetti sono tanti e il testo è poco i problemi di impaginazione possono essere grandi.Ma se afterpage permette davvero di levare molte castagne dal fuoco… lascerei decidere Tommaso, che si è imbattuto nel problema ed è la persona più indicata per dire quanto afterpage semplifichi la vita.
[OFF TOPIC]
Da oggi ex presidente! Conoscendo la mia natura, non credevo che nella mia vita avrei mai fatto il presidente di qualcosa. Ci voleva questo esame di stato per smentirmi! 😉[/OFF TOPIC]
-
4 Luglio 2012 alle 14:34 #75745::
lorenzo.pantieri” post=75016
Parlarne sull’Arte? dipende dal Presidente; credo che mi abbia già risposto di no una volta, alcuni anni fa.
Parlerei sicuramente di \caption*, innanzitutto: inserire un’immagine con la sola didascalia può capitare (in un libro d’arte, per esempio). Due righe le aggiungeremo sicuramente. E questo va in Paride. 🙂
Su afterpage continuo a essere freddo, in primo luogo perché la sintassi non mi piace (quell’ambiente “figure” messo come argomento di un comando non è un esempio di codice elegante), e inoltre perché a mio avviso i numerosi strumenti che presentiamo nell’Arte sono sufficienti per risolvere (gran parte de)i problemi di posizionamento degli oggetti mobili. Per esempio, nel caso che presenta Tommaso (un capitolo di tre pagine di testo con quattro immagini, con ciascuna immagine in una pagina), il codice potrebbe essere di questo tipo:
`\chapter{Capitolo}Il primo capoverso della prima facciata.
\begin{figure}[!hb] % o [H]
\caption*{…}
\end{figure}…
Testo che va nella seconda facciata.
\begin{figure}[tbh] % o [H]
\caption*{…}
\end{figure}…
Qui siamo nella terza facciata.
\begin{figure}[tbh] % o [H]
\caption*{…}
\end{figure}…
% La quarta facciata non contiene testo
\begin{figure}[p]
\caption*{…}
\end{figure}`
Naturalmente occorrerà provare le preferenze di collocazione — [!hb] o [tbh] o [H] o [p] o altre— per avere il risultato migliore, Potrà essere eventualmente utile dare un \clearpage. Ci vorrà molta pazienza, perché con quando gli oggetti sono tanti e il testo è poco i problemi di impaginazione possono essere grandi.Ma se afterpage permette davvero di levare molte castagne dal fuoco… lascerei decidere Tommaso, che si è imbattuto nel problema ed è la persona più indicata per dire quanto afterpage semplifichi la vita.
[OFF TOPIC]
Da oggi ex presidente! Conoscendo la mia natura, non credevo che nella mia vita avrei mai fatto il presidente di qualcosa. Ci voleva questo esame di stato per smentirmi! 😉[/OFF TOPIC]
Bentornato fra noi! 🙂
Forse il codice di afterpage non sarà elegante (ma perché, poi?), però se permette di fare a colpo sicuro quello che voglio e mi evita di fare prove su prove, non credi che sia tutto riguadagnato? 😉
Ciao
Tommaso
-
4 Luglio 2012 alle 19:33 #75746::
Bentornato fra noi!
Sì, ben tornato e complimenti per essere sopravvissuto; ora probabilmente aspetterai dieci anni prima di fare il presidente di nuovo 😆
Forse il codice di afterpage non sarà elegante (ma perché, poi?), però se permette di fare a colpo sicuro quello che voglio e mi evita di fare prove su prove, non credi che sia tutto riguadagnato?
Afterpage non si apprezza finché non lo si usa; tuttavia ci sono delle circostanze nelle quali afterpage è utile.
Sono d’accordo con Lorenzo che si tratta di una cosa che dovrebbe possibilmente essere evitata per due motivi:
1) quando si usa afterpage e poi si modifica il documento, potrebbe succedere che \afterpage con il suo argomento debba essere spostato oppure cancellato, senza cancellarne l’argomento; il che toglie un certo tipo di automazione al lavorio di LaTeX dietro le quinte. Non mi sembra il caso di Tommaso, tuttavia ci sono delle circostanze in cui \aftepage garantisce certe cose, come nell’esempio della longtable che ho fatto qualche messaggio fa, e delle altre in cui bisogna rimetterci le mani ad ogni modifica del documento.
2) Funziona al 90%; be’ 90% è una stima ad intuito, non è frutto di una accurata indagine; tuttavia esistono delle circostanze in cui non funziona e il contenuto dell’argomento di \afterpage svanisce. L’autore di afterpage lo dice (e me l’ha confermato in comunicazioni private) che esistono delle circostanze in cui afterpage si scontra con l’algoritmo di output, quando ci sono altri float in sospeso e quando si va ad una nuova pagina con il titolo di un comando di sezionamento; sembra che ci sia un conflitto; quindi bisogna sempre verificare sul documento composto se afterpage ha fatto correttamente il suo lavoro; praticamente questa verifica è automatica perché si compila spesso e altrettanto spessi si esamina il documento composto; ma in questo caso una qualche modifica nei file sorgente prima della posizione di \afterpage potrebbe spostare in fine pagine in una posizione diversa e mettere in crisi l’algoritmo di afterpage; questo potrebbe succedere molte pagine dopo il punto che si è modificato e allora ci si può facilmente dimenticare di andare a controllare dove è finito il materiale che afterpage avrebbe dovuto inserire.Tuttavia è utile e, usato con prudenza e con attenzione, risolve problemi che altrimenti sarebbe difficile risolvere con i codici di posizione, punto esclamativo compreso. Io uso afterpage da circa 15 anni, da quando l’ho scoperto; debbo dire che non lo uso più frequentemente di una volta ogni 200 o 300 pagine; quindi riesco a risolvere i problemi di posizionamento di oggetti ingombranti in modo più automatico. Ma, come dicevo, esistono delle circostanze dove il suo uso è virtualmente indispensabile.
-
5 Luglio 2012 alle 2:28 #75747::
OldClaudio” post=75040Sono d’accordo con Lorenzo che si tratta di una cosa che dovrebbe possibilmente essere evitata per due motivi:
1) quando si usa afterpage e poi si modifica il documento, potrebbe succedere che \afterpage con il suo argomento debba essere spostato oppure cancellato, senza cancellarne l’argomento; il che toglie un certo tipo di automazione al lavorio di LaTeX dietro le quinte. Non mi sembra il caso di Tommaso, tuttavia ci sono delle circostanze in cui \aftepage garantisce certe cose, come nell’esempio della longtable che ho fatto qualche messaggio fa, e delle altre in cui bisogna rimetterci le mani ad ogni modifica del documento.
2) Funziona al 90%; be’ 90% è una stima ad intuito, non è frutto di una accurata indagine; tuttavia esistono delle circostanze in cui non funziona e il contenuto dell’argomento di \afterpage svanisce. […].Questi motivi, soprattutto il secondo, mi paiono ampiamente sufficienti per non consigliare afterpage al lettore dell’Arte, che vuole strumenti che funzionino sempre. (Abbiamo tolto la menzione a xspace proprio perché il risultato non è sempre garantito.)
OldClaudio” post=75040quindi riesco a risolvere i problemi di posizionamento di oggetti ingombranti in modo più automatico. Ma, come dicevo, esistono delle circostanze dove il suo uso è virtualmente indispensabile.
Non so quali siano questi circostanze: l’esempio prospettato da Tommaso (un capitolo di tre pagine di testo con quattro immagini, una per pagina) non è fra questi. In ogni caso, non cambia poi molto: esisterà sempre l’esigenza eccezionale x che può essere risolta al meglio (e esclusivamente) con lo strumento y, ma ciò non significa che l’Arte (che è una guida di base e presenta gli strumenti di uso più comune) debba menzionare y.
Confermo: nella nuova versione dell’Arte parlerei di \caption*, ma non di afterpage.
illinguista1972Forse il codice di afterpage non sarà elegante (ma perché, poi?) […]
Sai farmi un altro esempio di ambiente come argomento di un comando? Dico davvero: in questo momento non mi vengono in mente altri esempi.
Ciao,
L.
-
5 Luglio 2012 alle 5:50 #75748::
Sai farmi un altro esempio di ambiente come argomento di un comando? Dico davvero: in questo momento non mi vengono in mente altri esempi.
Anche a me su due piedi non me ne vengono in mente, ma non ci vedo niente di strano; non è proprio la stessa cosa, ma è un po’ come mettere un ambiente nella definizione di una macro; dipende da che cosa se ne fa il comando; anche
`\aftepage{\input{MyLongTable}` contiene un argomento che a sua volta contiene un ambiente (contenuto nel file MyLongTable.tex).Se ti impressiona il fatto che un ambiente contiene, attraverso \begin e \end, l’apertura e la chiusura di un gruppo, se si è sicuri che non ce ne sia bisogno, basta omettere \begin e \end ed usare i comandi di apertura e di chiusura nudi: per esempio, \figure e \endfigure. Nelle definizioni, di solito ci sta bene. Infatti \begin e \end servono a diverse cose utili: oltre a creare un gruppo essi controllano che ogni ambiente aperto venga chiuso nell’ordine giusto, senza che ne venga chiuso un altro (ogni \end{ambiente} chiude il suo \begin{ambiente} e non è possibile incrociarli o dimenticarsi di chiuderli)); ma se questo sta in una definizione o se sta nell’argomento di un comando, si suppone che chi scrive quei comandi sappia quello che fa e apra e chiuda gli ambienti nell’ordine giusto.
Questi trucchi però non sono per l’Arte e per i lettori a cui è destinato; sono d’accodo con te. ma mettere un intero ambiente come argomento di un comando non mi sembra proprio niente di strano.
PS: hai mai incorniciato un ambiente minipage? Prima che esistesse il pacchetto mdframed, il metodo normale era quello di racchiudere l’ambiente minipage con le sue dichiarazioni e il suo testo dentro l’argomento di \fbox; funzionava benissimo, ma richiedeva un po’ di creatività da parte dell’utente, nel senso che doveva pensarci, visto che non era documentato da nessuna parte. Poi è venuto mdframed e tutto è cambiato…
`% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\centering
\fbox{\begin{minipage}{.5\textwidth}\lipsum[1]\end{minipage}}
\end{document}` Prova il codice sovrastante; puoi constatare che funziona benissimo nonostante l’argomento di \fbox sia un ambiente.
-
5 Luglio 2012 alle 6:11 #75749::
OldClaudio” post=75047Anche a me su due piedi non me ne vengono in mente, ma non ci vedo niente di strano; […]. Questi trucchi però non sono per l’Arte e per i lettori a cui è destinato; sono d’accodo con te. ma mettere un intero ambiente come argomento di un comando non mi sembra proprio niente di strano.
Io lo trovo antiestetico. Di regola un ambiente si usa per raccogliere “roba grossa”, un comando per “cose piccole”. Pensa alla differenza tra
`\begin{otherlanguage*}{english}
…
\end{otherlanguage*}
`
che serve per lunghe parti in inglese, e
`\foreignlanguage{english}{…}`
per singole parole o frasi brevissime. Un comando che racchiude un ambiente è un po’ un controsenso: di sicuro, è brutto.minipage? Nell’Arte, non per caso, non se ne fa menzione. 😉
Ma non è solo quello. Il fatto è che un ambiente “figure”, in cui contenuto è indipendente dal flusso del discorso e che verrà messo da LaTeX dove gli pare, mi piace che venga scritto a sé stante, separato dal resto. Scriverlo dentro un comando che avrà come funzione quello di metterlo nella pagina dopo, non mi piace. È una questione di gusti, quindi la cosa è soggettiva. Ma a me proprio non piace! 😉
L.
-
5 Luglio 2012 alle 12:51 #75750::
Lorenzo, ti capisco, ma come diciamo sempre in questo forum, LaTeX è un text processor, non un word processor.LaTeX è un linguaggio di markup, ma non solo, è anche un linguaggio di programmazione. Tu nell’Arte spieghi in pratica solo la parte markup, senza accennare alla programmazione se non in modo molto lieve. Giusto, se vuoi che l’Arte sia solo una introduzione al markup.
Ma perdi metà della bellezza di LaTeX se accarezzi troppo lievemente la programmazione; ogni dichiarazione ogni comando è anche una comando di un linguaggio di programmazione; ogni definizione è allo stesso livello di una procedura che restituisce un risultato; ogni ambiente è una procedura che tratta un oggetto. Se guardi LaTeX da questo punto di vista, ti accorgi che le dichiarazioni e i comandi non sono molto diversi, forse solo più scomodi, dei click di mouse che puoi fare con un word processor quando scegli qualcosa nei menù oppure quando evidenzi qualcosa poi apri un menù a tendina e scegli una operazione da fare sulla parte evidenziata. La differenza fra LaTeX usato in questo modo e un word processor è che in quest’ultimo il markup non appare sullo schermo, mentre con la composizione asincrona di LaTeX tu sai esattamente quale markup hai usato e come.
Che differenza c’è fra un word processor, e TeXshop, quando evidenzi una parola, scegli dalla barra dei menu Macros, Text styles, Emphasized? L’unica differenza è che il comando \emph con le sue parentesi graffe appare nel file sorgente, e per avere il file composto devi cliccare su Typeset. Le stesse azioni, con menu diversi, che faresti con Word, il quale, essendo sincrono, ti mostra subito il risultato.
E allora? Certo la programmabilità con i linguaggio LaTeX, o con Plain TeX, o con il linguaggio primitivo permette di scrivere file di classe, di estensione, eccetera, meglio che con la programmazione delle macro di Word (per lo meno meglio riguarda la mia esperienza, non dico che sia una affermazione assoluta). Allora ti accordi che minipage e \parbox sono essenziali, che LRbox è essenziale, che \providecommand. \renewcommand, \renewenvironment, e persino, sapendo quel che si sta facendo, \def, \edef, \gdef, \xdef sono utilissimi; ti accorgi che bisogna usare espressamente \@ifdefined e \@ifdefinable; ti accorgi che pacchetti come etoolbox sono comprensibili, solo se conosci gli inner working e ti accorgi della loro utilità perché sapendo come sono gli inner working usi quegli strumenti a ragion veduta. Ti accorgi che i codici di categoria sono essenziali, ti accorgi che c’è molto di più dietro a LaTeX che non soltanto del markup.
Se non vuoi illustrare questo “molto di più”, puoi almeno dedicare mezza pagina a spiegare la differenza fra il semplice markup e il linguaggio di programmazione; il lettore novizio saprà dunque che sta usando un programma in modo elementare, anche se può fare grandi cose sapendone pochissimo o quasi niente di inner workings; ma sa anche che se ha la pazienza di imparare il linguaggio e di conoscere gli inner working può fare grandi cose.
Visto che il nostro Grand Wizard sa fare magie impensabili, come pensi che ci sia arrivato? Tieni conto che lui, come me, abbiamo cominciato a usare TeX o LaTeX quando non c’era uno straccio di documentazione; voi della nuova generazione siete fortunati ad avere tutta la documentazione che ora è disponibile. Solo che talvolta, anche apparendo molto esperti, siete timorosi di provare vie alternative; apparite come persone (penso a dei bambini — voi non siete bambini, ma cercate di vedere la metafora) che, avendo un trenino a molla, non hanno il minimo desiderio di sapere come è fatto dentro.
Venti anni fa, quando chiedevo all’inizio del corso di alzare la mano a coloro che avevano smontato e rimontato un telefono di casa, mezza aula alzava la mano; quando nel mio ultimo anno accademico feci questa domanda agli allievi che avevo di fronte, nessuno alzò la mano. Certo sono i tempi che cambiano e la click generation non è interessata nemmeno a sapere che cosa c’è dietro il click. Nonostante la dimestichezza con il loro portatile, quanti sapevano che anche con Windows disponevano di una finestra per dare i comandi e scrivere dei piccoli script per fare cose che con il mouse sarebbero state impensabili? Risposta semplicissima: nessuno.
Ecco qual è la differenza fra i 20-enni, i 30-40-enni e i 60-70-enni. Non è detto che sia un male; anzi; per fortuna ci sono le differenze.
Ciò non toglie che hai avuto una idea bellissima a pensare all’Arte e di immaginare il tuo lettore tipo come un novizio assoluto o quasi assoluto. Non avevamo mai avuto in Italia un libretto così ben fatto; ora che ci ha messo le mani anche Il Linguista, è diventato ancora più chiaro e ancora più bello.
Quindi perché scrivo queste cose, visto che l’Arte mi piace? Perché osservo una certa resistenza culturale ad andare un po’ più in là del solo markup.Ciao
Claudio
-
5 Luglio 2012 alle 13:42 #75751::
OldClaudio” post=75053Lorenzo, ti capisco, ma come diciamo sempre in questo forum, LaTeX è un text processor, non un word processor.
LaTeX è un linguaggio di markup, ma non solo, è anche un linguaggio di programmazione. Tu nell’Arte spieghi in pratica solo la parte markup, senza accennare alla programmazione se non in modo molto lieve. Giusto, se vuoi che l’Arte sia solo una introduzione al markup.
Ma perdi metà della bellezza di LaTeX se accarezzi troppo lievemente la programmazione; ogni dichiarazione ogni comando è anche una comando di un linguaggio di programmazione; ogni definizione è allo stesso livello di una procedura che restituisce un risultato; ogni ambiente è una procedura che tratta un oggetto. Se guardi LaTeX da questo punto di vista, ti accorgi che le dichiarazioni e i comandi non sono molto diversi, forse solo più scomodi, dei click di mouse che puoi fare con un word processor quando scegli qualcosa nei menù oppure quando evidenzi qualcosa poi apri un menù a tendina e scegli una operazione da fare sulla parte evidenziata. La differenza fra LaTeX usato in questo modo e un word processor è che in quest’ultimo il markup non appare sullo schermo, mentre con la composizione asincrona di LaTeX tu sai esattamente quale markup hai usato e come.
Che differenza c’è fra un word processor, e TeXshop, quando evidenzi una parola, scegli dalla barra dei menu Macros, Text styles, Emphasized? L’unica differenza è che il comando \emph con le sue parentesi graffe appare nel file sorgente, e per avere il file composto devi cliccare su Typeset. Le stesse azioni, con menu diversi, che faresti con Word, il quale, essendo sincrono, ti mostra subito il risultato.
E allora? Certo la programmabilità con i linguaggio LaTeX, o con Plain TeX, o con il linguaggio primitivo permette di scrivere file di classe, di estensione, eccetera, meglio che con la programmazione delle macro di Word (per lo meno meglio riguarda la mia esperienza, non dico che sia una affermazione assoluta). Allora ti accordi che minipage e \parbox sono essenziali, che LRbox è essenziale, che \providecommand. \renewcommand, \renewenvironment, e persino, sapendo quel che si sta facendo, \def, \edef, \gdef, \xdef sono utilissimi; ti accorgi che bisogna usare espressamente \@ifdefined e \@ifdefinable; ti accorgi che pacchetti come etoolbox sono comprensibili, solo se conosci gli inner working e ti accorgi della loro utilità perché sapendo come sono gli inner working usi quegli strumenti a ragion veduta. Ti accorgi che i codici di categoria sono essenziali, ti accorgi che c’è molto di più dietro a LaTeX che non soltanto del markup.
Se non vuoi illustrare questo “molto di più”, puoi almeno dedicare mezza pagina a spiegare la differenza fra il semplice markup e il linguaggio di programmazione; il lettore novizio saprà dunque che sta usando un programma in modo elementare, anche se può fare grandi cose sapendone pochissimo o quasi niente di inner workings; ma sa anche che se ha la pazienza di imparare il linguaggio e di conoscere gli inner working può fare grandi cose.
Visto che il nostro Grand Wizard sa fare magie impensabili, come pensi che ci sia arrivato? Tieni conto che lui, come me, abbiamo cominciato a usare TeX o LaTeX quando non c’era uno straccio di documentazione; voi della nuova generazione siete fortunati ad avere tutta la documentazione che ora è disponibile. Solo che talvolta, anche apparendo molto esperti, siete timorosi di provare vie alternative; apparite come persone (penso a dei bambini — voi non siete bambini, ma cercate di vedere la metafora) che, avendo un trenino a molla, non hanno il minimo desiderio di sapere come è fatto dentro.
Venti anni fa, quando chiedevo all’inizio del corso di alzare la mano a coloro che avevano smontato e rimontato un telefono di casa, mezza aula alzava la mano; quando nel mio ultimo anno accademico feci questa domanda agli allievi che avevo di fronte, nessuno alzò la mano. Certo sono i tempi che cambiano e la click generation non è interessata nemmeno a sapere che cosa c’è dietro il click. Nonostante la dimestichezza con il loro portatile, quanti sapevano che anche con Windows disponevano di una finestra per dare i comandi e scrivere dei piccoli script per fare cose che con il mouse sarebbero state impensabili? Risposta semplicissima: nessuno.
Ecco qual è la differenza fra i 20-enni, i 30-40-enni e i 60-70-enni. Non è detto che sia un male; anzi; per fortuna ci sono le differenze.
Ciò non toglie che hai avuto una idea bellissima a pensare all’Arte e di immaginare il tuo lettore tipo come un novizio assoluto o quasi assoluto. Non avevamo mai avuto in Italia un libretto così ben fatto; ora che ci ha messo le mani anche Il Linguista, è diventato ancora più chiaro e ancora più bello.
Quindi perché scrivo queste cose, visto che l’Arte mi piace? Perché osservo una certa resistenza culturale ad andare un po’ più in là del solo markup.Bellissimo post, il tuo! Nell’Arte ci ho messo molto di mio (anzi: ci abbiamo messo molto di nostro!). Eppure, il file Prefazione.tex dell’Arte comincia così:
`\markboth{\spacedlowsmallcaps{Prefazione}}{\spacedlowsmallcaps{Prefazione}}
\phantomsection
\addcontentsline{toc}{chapter}{\tocEntry{Prefazione}}
\chapter*{Prefazione}
`
Io vorrei che fosse solo:
`\chapter{Prefazione}
`
Forse ci si arriverà, forse no. A me piacerebbe che LaTeX tendesse alla semplicità del teorema di Pitagora. O dell’ala dell’aeroplano. In ogni caso, è giusto che in una guida come l’Arte ci sia una piccola traccia della personalità degli autori. La mia personalità mi ha fatto “evitare come la peste i tecnicismi” (cito dalla prefazione).Se ho dato un (piccolo, piccolissimo) contributo alla comunità LaTeX, è stato quello. E quindi non me me volere, se la prossima edizione dell’Arte non conterrà una menzione ad afterpage. 😉
Lorenzo
-
5 Luglio 2012 alle 14:03 #75752
-
5 Luglio 2012 alle 19:56 #75753
-
5 Luglio 2012 alle 19:58 #75754::
OldClaudio” post=75053
Quindi perché scrivo queste cose, visto che l’Arte mi piace? Perché osservo una certa resistenza culturale ad andare un po’ più in là del solo markup.Questa frase mi ha fatto pensare 🙂 Grazie Claudio per il tuo intervento. Si potrebbe andare avanti un millennio su questa strada.
Ciao
Tommaso
-
5 Luglio 2012 alle 20:26 #75755::
illinguista1972″ post=75063
[quote=”lorenzo.pantieri” post=75054]Io vorrei che fosse solo:
`\chapter{Prefazione}
`Hai provato? Se sei in [tt]\frontmatter[/tt] e Miede non ha fatto pasticci dovrebbe funzionare.
Ciao
EnricoAhah! 😀
Pensate che bello sarebbe se funzionasse! 😛
Ciao e scusate la risata!
Tommaso[/quote]
`\documentclass{scrbook}
\usepackage{arsclassica}
\begin{document}
\frontmatter
\tableofcontents
\chapter{Prefazione}\phantomsection
\addcontentsline{toc}{chapter}{\tocEntry{Prefazione}}
\chapter*{Prefazione}
\markboth{\spacedlowsmallcaps{Prefazione}}{\spacedlowsmallcaps{Prefazione}}
\end{document}`
Non vedo differenze (ci potrebbe essere solo il rightmark sbagliato). Ovviamente \markboth deve comunque andare dopo \chapter*.Ciao
Enrico
-
6 Luglio 2012 alle 5:26 #75756::
egreg9″ post=75055Hai provato? Se sei in [tt]\frontmatter[/tt] e Miede non ha fatto pasticci dovrebbe funzionare.
Se uso il modello di ClassicThesis, basato su scrreprt, non funziona.
`\mph@outputpage@hook undefined.See the LaTeX manual or LaTeX Companion for explanation.
Type Hfor immediate help.
…l.96 \frontmatter
?
`
Passare a scrbook senza usare il modello di Miede mi sembra un azzardo: quel modello funziona bene se lo si usa come Miede ha previsto (accrocchi compresi). Cambiare strada è rischioso…Ciao,
L.
-
6 Luglio 2012 alle 8:49 #75757::
lorenzo.pantieri” post=75071
Hai provato? Se sei in [tt]\frontmatter[/tt] e Miede non ha fatto pasticci dovrebbe funzionare.
Se uso il modello di ClassicThesis, basato su scrreprt, non funziona.
`\mph@outputpage@hook undefined.See the LaTeX manual or LaTeX Companion for explanation.
Type Hfor immediate help.
…l.96 \frontmatter
?
`
Passare a scrbook senza usare il modello di Miede mi sembra un azzardo: quel modello funziona bene se lo si usa come Miede ha previsto (accrocchi compresi). Cambiare strada è rischioso…Ciao,
L.È semplicemente sbagliato usare scrreprt: non c’è nessun motivo per scegliere questa classe invece di scrbook.
Ciao
Enrico
-
6 Luglio 2012 alle 11:29 #75758
-
6 Luglio 2012 alle 14:00 #75759::
lorenzo.pantieri” post=75082
È semplicemente sbagliato usare scrreprt: non c’è nessun motivo per scegliere questa classe invece di scrbook.
Concordo. Ma Miede fa così, e penso sia rischioso cambiare il codice del suo modello che, l’abbiamo detto più volte, sta insieme quasi per miracolo… 😉
Fa’ una prova; secondo me funziona senza alcun problema.
Ciao
Enrico
-
6 Luglio 2012 alle 14:39 #75760::
egreg9″ post=75084
[quote=”egreg9″ post=75079]È semplicemente sbagliato usare scrreprt: non c’è nessun motivo per scegliere questa classe invece di scrbook.
Concordo. Ma Miede fa così, e penso sia rischioso cambiare il codice del suo modello che, l’abbiamo detto più volte, sta insieme quasi per miracolo… 😉
Fa’ una prova; secondo me funziona senza alcun problema.
Ciao
Enrico[/quote]Do ragione a Enrico. Mi sono sempre chiesto perché un report e non un book per un libro di 200 pagine. 😉
Prova magari con le primissime sezioni. Se va, si potrebbe cominciare da qui a ripulire un po’ il codice del libro.
Ciao
Tommaso
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.