TeX: differenza tra \bye ed \end

  • Creatore
    Topic
  • #121809
    Up
    0
    Down
    ::


    Ciao a tutti,

    1) Si tratta piu’ che altro di una curiosita’.
    2) Se scrivo il “classico” hello, world in TeX e lo chiudo con \bye oppure con \end
    non vedo nessuna differenza.
    3) Qual e’ la differenza tra \bye ed \end in un file .tex ?
    4) Il TeXbook non lo possiedo proprio, perche’ “mi fa paura”.

    Saluti
    Luciano

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #121810
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Domanda difficile perché quasi tutti usiamo LaTeX e non ci verrebbe mai in mente di usare il TeX-the-program primitivo.
        Per il poco che so usando quel programma molto indirettamante, è quando compongo un file .dtx (documented tex) che serve per scrivere un documento che contiene codice ben documentato, non ocn i soliti ocmandi con le righe che cominciano con %; per se stessi, ma obbligatoriamente per i pacchetti da caricare su CTAN e da distribuire agli utenti, si usa unformato che include un primo tratto di codice scritto in tex e un secondo tratto di codice scritto in latex. La parte scritta in \tex finisce con un \bye, la parte scritta in latex comincia con un \documentclass e finisce con un end{document{; dopo questa riga con dei marker speciali c’è euello che deve essere prodotto compilando il file .dtx.
        Non voglio annoiarti con dettagli fini e delicati; ma se apri un file .dtx (se usi TeX Live, si trovano in /textmf-dist/sourcepacchetto>: per esempio per il pacchetto begingreek, devi cercare nella cartella /texmf-dist/source/latex/begingreek/) e lo apri col tuo solito shell editor, vedi subito le tre parti di questo file, la prima in linguaggio tex, la seconda il linguaggio latex e la terza col codice commentato.. Nella prima vedi che si finisce con \bye.

        Ho il sospetto che \bye vada bene nei file sorgente e \end vada bene nelle sedute interattive dove il codice da complire è scritto una riga alla volta con la pastiera nel terminale. Non ci metterei la mano sul fuoco, ma le volte che ho provato a usare \end nel file, mi ha segnalato che qualcosa era errrato; non ho analizzato di più il problema, ma qualcuno che conosce il TeX-the-program certamante ti può dare indicazioni meno funose dele mie.

        Comunuque, se vuoi scaricare il TeXbook dalla rete, cerca col tuo browser la stringa The TeXbook, e sarai portato ad un sito dove puoi sfogliare tutto il TeXbook; Se il driver della tua stampante lo consente,, puoi stampre tutto il testo in forma di file PDF, che puoi salvare nella cartella Downloads, cambiargli il nome che contiene anche l’indirizzo Web, e mettertelo in una cartela doc=ve tieni documenti visualizzabili quando ti occorre. Non so quanto l’operazione sia legale; forse lo è perché dovrebbero essere scaduti i temini del copyright. Tuttavia fai attenzione. Dal sito CTAN sarebbe possibile scaricare il file sorgente per compilare il TeXbook ma se lo apri c’è scritto chiaramante che non puoi comporlo perché il risultato ha il copyright sia della American Mathematical Society, sia dell’editore Addison Wesley., se provi a compilarli sulla console ti appare un messaggio che ti informa che non lo puoi copiare, se premi return, ti si ripete il messaggio all’infinito. Però puoi sempre leggere il file sorgente e ci impari un certo numero di cose.
        Io non l’ho mai letto tutto, ma ho ben due copie del libro stampato, una del 1984 e l’altra del 1996. Noioso come qualunque altro manuale, Con LaTeX invece ho due copie del libro di Leslie Lamport, una del Latex209 e l’altra del LaTeX2e, che non sono affatto noiose, perché il manuale è solo in un’appendice, mentre il grosso del libro è fatto di esempi commentati e descritti in ogni dettaglio.

      • #121811
        Up
        0
        Down
        ::


        Ciao a tutti,

        1) grazie Claudio!
        2) topic chiuso, per me.
        Saluti
        Luciano

      • #121812
        Up
        0
        Down
        ::

        linden-limmer” post=122373Ciao a tutti,

        1) Si tratta piu’ che altro di una curiosita’.
        2) Se scrivo il “classico” hello, world in TeX e lo chiudo con \bye oppure con \end
        non vedo nessuna differenza.
        3) Qual e’ la differenza tra \bye ed \end in un file .tex ?
        4) Il TeXbook non lo possiedo proprio, perche’ “mi fa paura”.

        [tt]\end[/tt] è una primitiva, mentre [tt]\bye[/tt] è una macro
        `
        \outer\def\bye{\par\vfill\supereject\end}
        `
        Che fa [tt]\supereject[/tt]?
        `
        \def\supereject{\par\penalty-\@MM}
        `
        Ogni penalità minore di [tt]-9999[/tt] in modo verticale fa entrare in azione la routine di output, che è definita così:
        `
        \output{\plainoutput}
        \def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
        \advancepageno
        \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}

        \def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over
        \line{}\kern-\topskip\nobreak\vfill\supereject\fi}
        `
        Siccome [tt]-\@MM[/tt] è [tt]-20000[/tt], la routine di output è chiamata e [tt]\outputpenalty[/tt] è [tt]-20000[/tt]; se ci sono ancora inserti pendenti, cioè [tt]\insertpenalties[/tt] è positivo, viene ancora chiamata la routine di output. Quindi lo scopo di [tt]\supereject[/tt] è di continuare finché le code degli inserti non sono esaurite.

        Se non si adoperano [tt]\topinsert \midinsert \pageinsert \footnote[/tt] non c’è grande differenza dal punto di vista pratico. Ma con [tt]\end[/tt] potrebbe capitare di perdersi un pezzo di note a piè di pagina, se TeX non riesce a piazzarle nella pagina corrente.

        Usa [tt]\bye[/tt].

        Ciao
        Enrico

      • #121813
        Up
        0
        Down
        ::


        Ciao a tutti,

        1) grazie Enrico!
        2) la risposta e’ molto al di la’ di quello che posso capire io.
        3) Il messaggio finale e’ tuttavia chiaro: uso \bye.

        Saluti e grazie ancora
        Luciano

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

    Go to top