Immagine centrata a tutta pagina

  • Creatore
    Topic
  • #75740
    Up
    0
    Down
    ::


    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

Visualizzazione 19 filoni di risposte
  • Autore
    Risposte
    • #75741
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        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

      • #75742
        Up
        0
        Down
        ::

        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

      • #75743
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          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.

        • #75744
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::

            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]

          • #75745
            Up
            0
            Down
            ::

            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

          • #75746
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::

              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.

            • #75747
              lorenzo.pantieri
              Partecipante
                Up
                0
                Down
                ::

                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.

              • #75748
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::

                  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.

                • #75749
                  lorenzo.pantieri
                  Partecipante
                    Up
                    0
                    Down
                    ::

                    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.

                  • #75750
                    OldClaudio
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      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

                    • #75751
                      lorenzo.pantieri
                      Partecipante
                        Up
                        0
                        Down
                        ::

                        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

                      • #75752
                        Up
                        0
                        Down
                        ::

                        lorenzo.pantieri” post=75054Io vorrei che fosse solo:
                        `\chapter{Prefazione}
                        `

                        Hai provato? Se sei in [tt]\frontmatter[/tt] e Miede non ha fatto pasticci dovrebbe funzionare.

                        Ciao
                        Enrico

                      • #75753
                        Up
                        0
                        Down
                        ::

                        egreg9″ post=75055

                        Io vorrei che fosse solo:
                        `\chapter{Prefazione}
                        `

                        Hai provato? Se sei in [tt]\frontmatter[/tt] e Miede non ha fatto pasticci dovrebbe funzionare.

                        Ciao
                        Enrico

                        Ahah! 😀

                        Pensate che bello sarebbe se funzionasse! 😛

                        Ciao e scusate la risata!
                        Tommaso

                      • #75754
                        Up
                        0
                        Down
                        ::

                        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

                      • #75755
                        Up
                        0
                        Down
                        ::

                        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
                        Enrico

                        Ahah! 😀

                        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

                      • #75756
                        lorenzo.pantieri
                        Partecipante
                          Up
                          0
                          Down
                          ::

                          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 H for 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.

                        • #75757
                          Up
                          0
                          Down
                          ::

                          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 H for 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

                        • #75758
                          lorenzo.pantieri
                          Partecipante
                            Up
                            0
                            Down
                            ::

                            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… 😉

                            Ciao,
                            L.

                          • #75759
                            Up
                            0
                            Down
                            ::

                            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

                          • #75760
                            Up
                            0
                            Down
                            ::

                            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

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

                        Go to top