- Questo topic ha 4 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 2 anni, 10 mesi fa da
Luciano Ribichini.
-
CreatoreTopic
-
22 Ottobre 2023 alle 17:37 #121809::
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
-
CreatoreTopic
-
AutoreRisposte
-
-
22 Ottobre 2023 alle 19:36 #121810::
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.
-
23 Ottobre 2023 alle 3:41 #121811
-
25 Ottobre 2023 alle 10:41 #121812::
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
-
25 Ottobre 2023 alle 17:35 #121813
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.