- Questo topic ha 41 risposte, 7 partecipanti ed è stato aggiornato l'ultima volta 10 anni fa da
OldClaudio.
-
CreatoreTopic
-
23 Agosto 2016 alle 19:11 #107494::
Ho cercato sull’Arte di scrivere con LaTeX ma non ho trovato risposta a questo mio quesito.Sto scrivendo un documento utilizzando la classe book.
Tutte le pagine del mio documento vengono numerate.Vorrei che le pagine che precedono l’indice non venissero numerate, le pagine dell’indice venissero numerate in numeri romani e le pagine successive all’indice venissero numerate in maniera classica, a partire da 1 in poi.
C’è un modo per soddisfare questa particolare richiesta?
-
CreatoreTopic
-
AutoreRisposte
-
-
23 Agosto 2016 alle 20:03 #107495::
Se hai letto L’Arte, hai sicuramente incontrato i comandi \frontmatter, \mainmatter e \backmatter; Se te ne sei dimenticato rileggi.Aggiungo, non richiesto, alcune mie considerazioni, che sono condivise da molti qui nel forum.
1) togliere la numerazione del tutto si fa con lo stile di pagina empty
2) la numerazione romana in lettere latine minuscole è un’oscenità, visto che i romani non avevano le minuscole, meno che mai la i con il puntino; se usassi per la numerazione delle pagine il maiuscoletto, la cosa sarebbe accettabile, ma …
3) … iniziare la prima parte con numerazione romana e poi proseguire con la numerazione in cifre arabe (come ho fatto nella guida Introduzione all’arte della composizione tipografica con LaTeX (ma l’ho fatto solo per mostrare che si può fare, non perché si debba fare)) era quanto si faceva ai tempi della composizione in piombo; prima si componeva il testo con le pagine numerate in cifre arabe da 1 in poi; poi si prendeva nota delle pagine da indicare nell’indice, e si componeva la parte iniziale con un’altra numerazione, per non dover rinumerare tutto il resto. Tutto ciò con la composizione elettronica non ha più ragion d’essere. Se lo vuoi fare prendi spunto da quella guida, Introduzione all’arte, ma non sentirtene obbligato.Invece, se vuoi, ridefinisci \frontmatter e \mainmatter in modo che non cambino numerazione, ma usali con attenzione, perché nella \frontmatter potresti voler indicare altre cose oltre il frontespizio e l;indice, e i sezionamenti che si fanno nella \frontmatter non devono essere numerati, ma molti, se non tutti, devono finire nell’indice; il supersezionamento eseguito con \frontmatter e \mainmatter ti permette di ottenere questo risultato.
-
23 Agosto 2016 alle 23:22 #107496::
La prima facciata del mio documento è la copertina ({titlepage}), la seconda è la pagina bianca che LaTeX aggiunge per far iniziare i nuovi capitoli nelle facciate di destra e la terza è l’indice.La struttura del mio documento è la seguente:
`
…
\begin{document}\begin{titlepage}
COPERTINA
\end{titlepage}\frontmatter
\tableofcontents
\mainmatter
CORPO DEL LIBRO
\backmatter
BIBLIOGRAFIA
\end{document}
`Attualmente l’indice è numerato con i numeri romani, le pagine dall’inizio del corpo del libro in poi sono numerate in numeri arabi e la seconda facciata (cioè il retro di copertina bianco) è numerato con il numero 2…se io volessi eliminare la numerazione delle facciate precedenti all’indice come potrei fare? Ribadisco che la seconda facciata (quella bianca numerata con il 2) la inserisce automaticamente LaTeX quindi non saprei come metterci lo stile di pagina empty visto che nel mio codice quella facciata non compare…
-
24 Agosto 2016 alle 4:40 #107497::
alessandropagin” post=107620La prima facciata del mio documento è la copertina ({titlepage}), la seconda è la pagina bianca che LaTeX aggiunge per far iniziare i nuovi capitoli nelle facciate di destra e la terza è l’indice.
La struttura del mio documento è la seguente:
`
…
\begin{document}\begin{titlepage}
COPERTINA
\end{titlepage}\frontmatter
\tableofcontents
\mainmatter
CORPO DEL LIBRO
\backmatter
BIBLIOGRAFIA
\end{document}
`Attualmente l’indice è numerato con i numeri romani, le pagine dall’inizio del corpo del libro in poi sono numerate in numeri arabi e la seconda facciata (cioè il retro di copertina bianco) è numerato con il numero 2…se io volessi eliminare la numerazione delle facciate precedenti all’indice come potrei fare? Ribadisco che la seconda facciata (quella bianca numerata con il 2) la inserisce automaticamente LaTeX quindi non saprei come metterci lo stile di pagina empty visto che nel mio codice quella facciata non compare…
Ci fai vedere tutto il codice, preambolo compreso?
Prova a caricare il pacchetto emptypage, ma non garantisco.Ah: avendolo scritto io, ti posso assicurare che sull’Arte la faccenda della numerazione e dei comandi relativi è spiegata diffusamente 🙂
Ciao
Tommaso
-
24 Agosto 2016 alle 5:08 #107498::
Intanto sposta \frontmatter prima della copertina. poi usa \pagestyle{empty} poi componi la copertina; subito dopo se vuoi le paigne numerate, metti \pagestyle{plain}; dopo \mainmatter, metti \pagestyle{headings}. Nel preambolo usa anche il pacchetto emptypage, che ti toglie il numero dalla pagina bianca.
-
24 Agosto 2016 alle 19:11 #107499::
@OldClaudio: ho fatto le modifiche che mi hai suggerito, resta il fatto che le pagine che precedono l’indice (copertina e retro di copertina) vengono comunque numerate, solo che il numero non è visibile…infatti la terza pagina che è l’indice è numerata con “iii” anzichè con “i”…la mia richiesta era proprio come non numerare le pagine precedenti all’indice nel senso che arrivati all’indice vorrei che LaTeX lo numerasse a partire da “i”.
@illinguista1972: non dico che nell’Arte l’argomento della numerazione delle pagine non sia trattato, dico che non è spiegato come far partire la numerazione da una pagina diversa dalla prima…poi può darsi che mi sbagli ma quando qualche giorno fa ero andato in cerca non l’avevo trovato 😉
-
24 Agosto 2016 alle 20:17 #107500::
Dunque le pagine del frontespizio e il suo retro non hanno il numero ma sono numerate, perché la terza pagina è numerata iii.
Se non usi hyperref, la via più semplice è quella di fare così:`\documentclass[…]{…}
…
\begin{document}
\pagenumbering{alpha}
\pagestyle{empty}\begin{titelepage}
frontespizio
\end{tilepage}
\cleardoublepage\frontmatter
\tabelofcontents\mainmatter
…
\end{document}`
Con il pacchetto hyperref credo che ci siano dei problemini, perché mi pare di ricordare che non gestisca le numerazioni letterali. Puoi provare a farlo con hyperref, ma non stupirti se trovi Warning del tipo “Duplicate anchor” o simili.
-
24 Agosto 2016 alle 22:11 #107501
-
25 Agosto 2016 alle 4:11 #107502::
alessandropagin” post=107627Grazie mille!
Un’ultima cosa…se volessi seguire il tuo consiglio e trasformare i numeri romani “minuscoli” in “maiuscoli” come potrei fare?Prova questo codice.
`\makeatletter
\DeclareRobustCommand{\doscroman}{\textsc}
\def\scroman#1{\expandafter\@scroman\csname c@a#1\endscname}
\def\@scroman#1{\expandafter\doscroman\expandafter{\romannumeral#1}}
\let\ORlmph@outputpage@hook\mph@outputpage@hook
\def\frontmatter{\cleardoublepage
\pagenumbering{scroman}
%\renewcommand*\mph@outputpage@hook{%
%\bgroup
%\advance\c@page\m@ne
%\immediate\write\@auxout{%
%\string\mph@setcol{ii:\roman{page}}{\string\mph@nr}%
%}%
%\egroup
%}%
}
\def\mainmatter{\cleardoublepage
\pagenumbering{arabic}%
\let\mph@outputpage@hook\ORlmph@outputpage@hook}
\makeatother`
-
25 Agosto 2016 alle 5:48 #107503::
Esistono vari modi; uno è quello che ti ha indicato Lorenzo (anche se mi sembra che ci sia una “a” di troppo, ma forse mi sbaglio); leggermente diverso è quello indicato Nell’Introduzione all’arte dove si usa un comando \SCroman leggermente diverso. Il concetto di ciò che viene esposto nell’Introduzione è che i numeri romani minuscoli dovrebbero poter essere stamapati anche e non si usa il font tondo; per esempio il font sans serif, senza grazie, che è privo della forma maiuscoletta.Il più comodo che ho trovato in documenti successivi all’Introduzione all’arte è quello di ridefinire gli stili di pagina, facilissimo da fare con il pacchetto fancyhdr, che poi è quello che sia usa quasi sempre, indicando \tesctsc o \scshape nel campo del numero della pagina; ovviamante bisogna ridefinere sia lo stile plain, si gli stili headings e myheadings. Ha lo svantaggio di richiedere più righe di convigurazione, ma ha il vantaggio di lavorare sempre bene in tutte le pagine (le cifre arabe nel font maiuscoletto, sono le cifre normali, non le cifre minuscole, che sì, si possono ottenere specificando anche \oldstylenumbers, ma non le userei oer i veri numeri della pagina, limitandoli alle citazioni nel testo. Ovviamente questa via, come quella di Lorenzo richede che la famiglia di font usata per i numeri di pagna disponga della forma maiuscoletta, altrimenti viene usato il cosiddetto “error font” che in generale è il tondo di serie media.
Il bello di LATeX è che si può fare praticamante tutto, ma non esiste una sola soluzione a ciascun problema tipografico; quindi esiste anche la possibilità di trovare la soluzione più elegante, oppure la più efficace, oppure la prima che viene in mente, oppure… In ogni caso è tale la sviluppare la creatività di ciascuno. Prova a sviluppare la tua e vedrai l’aumento di soddisfazione che ne ricavi.
-
25 Agosto 2016 alle 6:01 #107504
-
25 Agosto 2016 alle 6:34 #107505::
Be’, usare fancyhdr non è equivalente a scrivere righe misterirose come le tue.Per esempio, tu scrivi [tt]\csname c@a#1\endcsname[/tt] ma quell’ “a” per me è misterioso, perché non mi risulta che esista un contatore LaTeX che si chiami “apage”.
Può darsi che tu abbia collaudato il tuo codice, e può darsi che funzioni benissimo, malgrado io non capisca come; il fatto che io non capisca la presenza di quell’ “a”, non vuol dire che non ci voglia e/o che il codice non funzioni.Ma ogni volta che scrivo del codice, so benissimo che diventa misterioso se non lo commento; ecco perché mi ostino a raccomandare di scrivere pacchetti dtx, estensione che, non per niente, indica “documented TeX”. So benissimo che passati due giorni io non mi ricordo più perché ho scritto quel che ho scritto.
In questo momento sto preparando dei moduli per polyglossia; li preparo usando lo stile dtx (auto estraenete; vale a dire che elaborato con pdflatex ogni file produce direttamente la documentazione col codie commentato e i file col codice pulito, senza commenti), ma poi lo devo inviare a Reutenhauer, che per prima cosa, ammesso che lo usi, toglie e getta via la documentazione conservando solo il codice. E siccome non capisce il codice scritto da altri, ci mette secoli ad inserire, se mai lo inserisce, il codice per le funzionalità di polyglossia.
-
25 Agosto 2016 alle 7:43 #107506::
OldClaudio” post=107631Be’, usare fancyhdr non è equivalente a scrivere righe misterirose come le tue.
Le righe misteriose non le ho scritte io (non ne sarei capace!): di solito me le passate tu o Enrico, ma ho anche altri fornitori!
Il mio punto di vista è sempre quello di un utente “normale”.
Il comando standard \frontmatter usa i numeri romani minuscoli. Non hanno molto senso. Quindi vorrei usare un pacchetto che rimedia.
`\usepackage{frontmatter-fix}`
o qualcosa del genere, che sia ben scritto e compatibile con le classi più diffuse. Ripeto, per me un utente di LaTeX dovrebbe usare comandi di alto livello: mettere le mani sotto il cofano è roba da guru!Te la senti di scriverlo? 😉
-
25 Agosto 2016 alle 10:17 #107507::
Allora intanto uso il codice proposto da lorenzo.pantieri, per quanto per me abbia molte righe misteriose. Poi se ne nascerà un pacchetto che consente di usare i numeri romani maiuscoli con un’istruzione ad alto livello sarò ben felice di adottare quella soluzione.Intanto grazie mille ad entrambi! 😉
-
25 Agosto 2016 alle 16:29 #107508::
Vedete, Lorenzo e Alessandro. non è difficile scrivere macro come quelle proposte da Lorenzo.
Il problema difficile è scriverle in modo che il tutto sia compatibile con hyperref che riconosce solo i comandi \arabic e \romanumeral (o i loro comandi subalterni) per creare i link alle pagine.
Se questi link non servono, si può fre facilmente, ma produrre un pacchetto che dilazioni l’effettiva definizione del comando di alto livello, quello per l’utente, al momento di eseguire lo statement \begin{document}, in modo da verificare se sia stato caricato hyperref e comportarsi in modo diverso a seconda del risultato del test è una cosa non banale e che lascia insoddisfatto l’utente che vuole i numeri romani in maiuscoletto ma vuole anche usare hyperref.La strada che passa per la ridefinizione dello stile delle pagine può essere una buona strada, ma impatta con le scelte di ridefinizione eseguite e/o desiderate dall’utente.
In definitiva questa dei numeri romani maiuscoletti è una cosa che va risolta localmente da ciascun utente a seconda delle sue esigenze e delle sue capacità.
La soluzione migliore sarebbe quella di NON usare i numeri romani nella parte iniziale; vecchia abitudine oggi del tutto desueta. Desueta non vuol dire che nessuno la usi più, ma che rappresenta un ritorno al passato anche se mancano i vincoli che c’erano nel passato.
-
25 Agosto 2016 alle 17:39 #107509::
OldClaudio” post=107641Vedete, Lorenzo e Alessandro. non è difficile scrivere macro come quelle proposte da Lorenzo.
“Why do you dress me in borrowed robes? (Macbeth)
OldClaudio” post=107641Il problema difficile è scriverle in modo che il tutto sia compatibile con hyperref […]. La soluzione migliore sarebbe quella di NON usare i numeri romani nella parte iniziale; vecchia abitudine oggi del tutto desueta. Desueta non vuol dire che nessuno la usi più, ma che rappresenta un ritorno al passato anche se mancano i vincoli che c’erano nel passato.
I numeri romani (maiuscoli!!) un senso ce l’hanno: se l’indice è di dieci pagine, non mi va che la tesi cominci a pagina 11.
Attendo un bel pacchetto. Solido.
-
25 Agosto 2016 alle 20:52 #107510::
MAIUSCOLI?
Non vorrai dirmi che ci vuole un pacchetto per tre righe di codice oppure un pacchetto per eseguire un patch del comando \frontmatter; in entrambi i casi basta cambiare \pagenumbering{roman} in \pagenumbering{Roman}.
La sintassi LaTeX è più che sufficiente.
volendo non c’è da cambiare niente, basta fare`…
\begin{document}
….
\frontmatter
\pagenumbering{Roman}
…`Il difficile non sono i numeri romani MAIUSCOLI, ma quelli MAIUSCOLETTI.
Infatti non basta rimpicciolire il maiuscolo come nell’esempio della riga di sopra, ma bisogna cambiare forma perché cambiando corpo i tratti del segno diventano troppo sottili. Magari si può fare anche quello in mancanza di meglio, ma è un ripiego.
-
25 Agosto 2016 alle 21:38 #107511::
lorenzo.pantieri” post=107628[…]
Prova questo codice.
`\makeatletter
\DeclareRobustCommand{\doscroman}{\textsc}
\def\scroman#1{\expandafter\@scroman\csname c@a#1\endscname}
\def\@scroman#1{\expandafter\doscroman\expandafter{\romannumeral#1}}
\let\ORlmph@outputpage@hook\mph@outputpage@hook
\def\frontmatter{\cleardoublepage
\pagenumbering{scroman}
%\renewcommand*\mph@outputpage@hook{%
%\bgroup
%\advance\c@page\m@ne
%\immediate\write\@auxout{%
%\string\mph@setcol{ii:\roman{page}}{\string\mph@nr}%
%}%
%\egroup
%}%
}
\def\mainmatter{\cleardoublepage
\pagenumbering{arabic}%
\let\mph@outputpage@hook\ORlmph@outputpage@hook}
\makeatother`Ma no, è chiaro che dovrebbe essere`\def\scroman#1{\expandafter\@scroman\csname c@#1\endscname}`e non`\def\scroman#1{\expandafter\@scroman\csname c@a#1\endscname}`(via quella [tt]a[/tt]: come dice @OldClaudio, mica è [tt]apage[/tt] il nome del contatore! 🙂 )
Comunque, questo codice è molto “sporco”: cosa c’entra il patch alla macro [tt]\mph@outputpage@hook[/tt], che appartiene al pacchetto mparhack? Avrò bisogno di farlo se sto usando tale pacchetto, altrimenti no.
Ecco un esempio semplice, ma, nel suo piccolo, completo e compilabile:
`
\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc} % in realta`, questo file e` in puro ASCII a 7 bit
\usepackage[italian]{babel}\title{Il mio bel libro}
\author{A.~U.~Tore}\makeatletter
\newcommand*\scroman [1]{\expandafter\@scroman \csname c@#1\endcsname}
\newcommand*\@scroman[1]{%
\expandafter\textsc\expandafter{\romannumeral #1}%
}\renewcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
\pagenumbering{scroman}%
}
% (o, meglio, usare il pacchetto “etoolbox”)% Questa, invece, e` una mia idea (che @egreg9, fra gli altri, non ama!)
\newenvironment{noNumbersInSectioningCommands}{\c@secnumdepth \z@}{}\makeatletter
\begin{document}
% Usiamo l'idea di @OldClaudio:
\pagenumbering{alph}
\pagestyle{empty}\begin{titlepage}
\centering
\vspace*{\fill}
{\Huge
\csname @title\endcsname % produce il titolo
\par}
\bigskip
{\Large
\csname @author\endcsname % produce l'autore
\par}
\vspace{0pt plus 2 fill}
\null
\end{titlepage}\frontmatter
\pagestyle{headings}\tableofcontents
\begin{noNumbersInSectioningCommands}
\chapter{Prefazione}
Una lusinghiera prefazione segue qui.\end{noNumbersInSectioningCommands}
\mainmatter
\chapter{A}
Anna ama avere amici, anche assolutamente assurdi.\chapter{B}
Bruno balbetta banali battute buttando bucce bananesche.\chapter{C}
Carla corre contro corrente, creando contestazioni.\chapter{D}
Duilio, dopo dieci d\`{\i} di dormite, divenne discretamente docile.\chapter{E}
Eccetera eccetera\ldots\end{document}
`
Notate la “birichinata” commessa per stampare il titolo della prefazione… 😉Ciao.
—
Gustavo
-
26 Agosto 2016 alle 3:04 #107512
-
26 Agosto 2016 alle 8:43 #107513::
lorenzo.pantieri” post=107643I numeri romani (maiuscoli!!) un senso ce l’hanno: se l’indice è di dieci pagine, non mi va che la tesi cominci a pagina 11.
Attendo un bel pacchetto. Solido.
Mah, credo che solo il catalogo IKEA ® abbia dieci pagine di indice…
Io credo che nel 2016 un documento, qualunque sia, debba cominciare a pagina 1, punto e basta. A meno di vezzi tipografici di qualche casa editrice o altri motivi che non è affatto il caso di esibire in una tesi di laurea, triennale o magistrale che sia.
Tu stesso, poi, usando a piene mani ArsClassica, usi a piene mani anche ClassicThesis, ed entrambi gli stili usano nel frontmatter numeri romani minuscoli: ci saremmo aspettati che risolvessi tu questo vezzo tipografico! Altro che ordinare un pacchetto! 🙂
Ciao
Tommaso
-
26 Agosto 2016 alle 9:17 #107514::
illinguista1972″ post=107650Mah, credo che solo il catalogo IKEA ® abbia dieci pagine di indice…
Il (bellissimo!) manuale utente di Mathematica ha un indice che dura dieci pagine. Non solo, c’è tutta una prima parte con indicazioni di carattere generale (novità del software, indicazioni su come usare il manuale, eccetera) che apre il lavoro. Gli indici sono addirittura due: uno breve (due pagine) e uno dettagliato (dieci pagine, appunto). In tutto, 24 pagine di roba, numerata con numeri romani (minuscoli, ahimè). Il manuale poi (ri)comincia a pagina 1. Per me, è giusto così.
In ogni caso, è un vezzo: a me piace che il primo capitolo di un libro cominci a pagina 1: frontespizio, colophon, dedica e indici (anche se brevi) li voglio numerati a parte.
illinguista1972″ post=107650
Tu stesso, poi, usando a piene mani ArsClassica, usi a piene mani anche ClassicThesis, ed entrambi gli stili usano nel frontmatter numeri romani minuscoli: ci saremmo aspettati che risolvessi tu questo vezzo tipografico! Altro che ordinare un pacchetto! 🙂Non ne sono capace. Il codice che us(iam)o (di Enrico, se ben ricordo) mi è incomprensibile. Di sicuro, mi piacerebbe che \frontmatter ci arrivasse da solo. 😉
-
26 Agosto 2016 alle 9:39 #107515::
Be’ dopo il messaggio di Gustavo, non è difficile, magari banale, mettere insieme il pacchetto per Lorenzo; che dopo averlo visto, si rende conto che il pacchetto ad hoc è solo un vezzo.
Allora ecco il pacchetto scfrontmatter.sty:`\ProvidesPackage{scfrontmatter}%
[2016/08/26 v.1.0 front matter with page numbering in small caps]
% From code provided by Gustavo
\RequirePackage{etoolbox}
% Define a two step replacement code for a new small cap macro
% such that a lowercase roman page number is typeset in small caps
\newcommand*\scroman [1]{\expandafter\@scroman \csname c@#1\endcsname}
\newcommand*\@scroman[1]{%
\expandafter\textsc\expandafter{\romannumeral #1}%
}
% Patch \frontmatter so that it uses the above macros; it uses the
% \patchcmd from the etoolbox package
\patchcmd{\frontmatter}{roman}{scroman}{}{}
%
% END
\endinput`
L’esempio di Gustavo, che usa il pacchetto e a cui ho tolto alcuni vecchi costrutti e le definizione “biricchina” (che è del tutto inutile, ma può essere un ottimo esempio di come fare in altre circostanze) diventa semplicemente questo:`\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc} % in realta`, questo file e` in puro ASCII a 7 bit
\usepackage[italian]{babel}
\usepackage{emptypage}
\usepackage{scfrontmatter}
\title{Il mio bel libro}
\author{A.~U.~Tore}\usepackage{hyperref}
\begin{document}
\pagenumbering{alph}
\pagestyle{empty}\begin{titlepage}
\centering
\vspace*{\stretch{1}}
{\Huge
\csname @title\endcsname % produce il titolo
\par}
\bigskip
{\Large
\csname @author\endcsname % produce l'autore
\par}
\vspace*{\stretch{2}}
\end{titlepage}\frontmatter
\pagestyle{headings}\tableofcontents
\chapter{Prefazione}
Una lusinghiera prefazione segue qui.\mainmatter
\chapter{A}
Anna ama avere amici, anche assolutamente assurdi.\chapter{B}
Bruno balbetta banali battute buttando bucce bananesche.\chapter{C}
Carla corre contro corrente, creando contestazioni.\chapter{D}
Duilio, dopo dieci d\`i di dormite, divenne discretamente docile.\chapter{E}
Eccetera eccetera\ldots\end{document}`
I vecchi costrutti che ho eliminato sono le scritture esplicite, del tipo [tt] \z@ plus 1 fill[/tt] che si possono sostituire con il comando \stretch{…} da preferire sempre perché è più difficile sbagliare la sintassi della lunghezza elastica.
Nello stesso modo ho sostituito [tt]\`{\i}[/tt] con il più semplice [tt]\`i[/tt] che provvede da solo a mettere l’accento sopra la i senza puntino; Io preferirei mantenere l’uso esplicito di [tt]\usepackage[utf8]{inputenc}[/tt] (anche se l’ho lasciato commentato) perché l’uso della macro esplicita dell’accento funziona meglio con la codifica interna dei caratteri (LICR: LaTeX Internal Character Representation). Tuttavia questi sono dettagli che esulano dall’argomento sollevato da Alessandro.Invece la definizione birichina di cambiare il valore del contatore secnumdepth non serve nella front matter; Gustavo può verificare che il nuovo file senza la definizione birichina produce lo stesso risultato che si ottiene con la sua definizione.
Infatti nella frontmatter identificata con la dichiarazione \frontmatter, i comandi di sezionamento non asteriscati non sono numerati ma vanno nell’indice lo stesso, così come vanno nelle testatine i relativi argomenti. I comandi di sezionamento asteriscati, invece si comportano “normalmente”, nel senso che non sono numerati, il loro titolo non va nell’indice né nelle testatine. In questo modo non c’è da ammattire con l’aggiunta di comandi come [tt]\addtocontents{toc}{}{…}[/tt].
Come si vede ho aggiunto la chiamata a hyperref; il titolo nell’indice rappresta l’ancora del link e cliccandoci sopra il testo mostrato nella finestra di lettura del file composto si sposta al target del link. Però il numero della pagina non costituisce un’ancora per sostarsi alla pagina. Rendere il numero di pagina attivo come hyperlink produce errori.
Lo stesso se per le testatine e/o i piedini si usano font privi di grazie, è evidente che il comando \textsc non è efficace, e il maiuscoletto non esce.
Lo so che questo problema si può aggirare, e l’ho anche aggirato in altri contesti, ma la soluzione, come ho già scritto, richiede di spostare il comando \textsc ad altri comandi, molto più complesso di questa soluzione. Soluzione che nasconde le difficoltà sotto il tappeto; fa quello che deve fare in condizioni “normali”; che cosa voglia dire “normali” dipende dalle circostanze.
Se Gustavo, che è molto bravo ad usare anche i comandi di basso livello, vuole cimentarsi con le problematiche che ho indicato, non solo è evidentemente libero di farlo, ma anche un benemerito perché puoi insegnare molto a tutti.
-
26 Agosto 2016 alle 10:09 #107516::
OldClaudio” post=107652Be’ dopo il messaggio di Gustavo, non è difficile, magari banale, mettere insieme il pacchetto per Lorenzo; che dopo averlo visto, si rende conto che il pacchetto ad hoc è solo un vezzo.
Certo, ho sempre saputo che è un vezzo!
Apprezzo l’idea di non specificare la codifica, così il pacchetto è usabile anche da chi usa una codifica diversa da “utf8”.
Il pacchetto funziona anche con le classi KOMA?
Se sì, perché non lo carichi su CTAN?
Ah, “scfrontmatter” è un ottimo nome!
Fammi sapere se decidi di caricarlo su CTAN: per me sarebbe una gran comodità…
-
26 Agosto 2016 alle 11:38 #107517::
lorenzo.pantieri” post=107655Se sì, perché non lo carichi su CTAN?
Fammi sapere se decidi di caricarlo su CTAN: per me sarebbe una gran comodità…
Santo cielo, no! Se ad ogni risposta di TeX.SX, LaTeX Community etc ogni 3 righe di codice diventassero un pacchetto non si capirebbe più nulla! Ci sarebbero centinaia di migliaia di pacchetti: non si saprebbe neppure chi fa che cosa e sarebbe impossibile ricordarsi che tale funzione è in pacchetto x anzichè y… Senza contare poi la nomenclatura.
Scusate, ma questa è un’osservazione cattiva 👿 😀 😀 Lorenzo: non aggiorni MacTeX da anni… quindi l’utilità di avere il pacchetto su CTAN e quindi su TeXLive, MacTeX e MikTeX è proprio limitata 😉
Ciao
Claudio
-
26 Agosto 2016 alle 11:48 #107518::
cfiandra” post=107658Santo cielo, no! Se ad ogni risposta di TeX.SX, LaTeX Community etc ogni 3 righe di codice diventassero un pacchetto non si capirebbe più nulla!
Certo, non tutte le soluzioni meritano di diventare pacchetti. Però alcune sì, e questa per me lo è: i numeri romani minuscoli sono abominevoli, e a mio avviso che il comando \frontmatter li produca è un bug di LaTeX.
Un pacchetto non deve necessariamente essere lungo. Per esempio, il pacchetto “indentfirst”, che uso regolarmente, è composto da due righe di codice in tutto:
`\let\@afterindentfalse\@afterindenttrue
\@afterindenttrue`
Meglio scrivere
`\uespackage{indentfirst}`
o le due righe di cui sopra? Io dico che è meglio caricare il pacchetto. È più amichevole per l’utente finale.cfiandra” post=107658
Ci sarebbero centinaia di migliaia di pacchetti: non si saprebbe neppure chi fa che cosa e sarebbe impossibile ricordarsi che tale funzione è in pacchetto x anzichè y… Senza contare poi la nomenclatura.Mi risulta che già ora ci si siano migliaia di pacchetti e centinaia di classi…
cfiandra” post=107658Scusate, ma questa è un’osservazione cattiva 👿 😀 😀 Lorenzo: non aggiorni MacTeX da anni… quindi l’utilità di avere il pacchetto su CTAN e quindi su TeXLive, MacTeX e MikTeX è proprio limitata 😉
L’argomento è ad hominen, e quindi irrilevante. 😉 Aggiornerò LaTeX quando cambierò computer (e cambierò computer quando sarò costretto a farlo). Ora non se ne parla: il mio sistema è perfetto per le mie esigenze, e non lo cambio. ❗
-
26 Agosto 2016 alle 12:03 #107519
-
26 Agosto 2016 alle 12:07 #107520::
lorenzo.pantieri” post=107659L’argomento è ad hominen, e quindi irrilevante. 😉 Aggiornerò LaTeX quando cambierò computer (e cambierò computer quando sarò costretto a farlo). Ora non se ne parla: il mio sistema è perfetto per le mie esigenze, e non lo cambio. ❗
Questa affermazione regge parlando di sistemi operativi, ma il sistema TeX non è un sistema operativo, da quello che so. Gira BENISSIMO da Leopard in qua, non avendo bisogno di alcuna architettura hardware particolare.
Ma il padrone sei tu.
Ciao
Tommaso
-
26 Agosto 2016 alle 13:33 #107521::
lorenzo.pantieri” post=107659
Santo cielo, no! Se ad ogni risposta di TeX.SX, LaTeX Community etc ogni 3 righe di codice diventassero un pacchetto non si capirebbe più nulla!
Certo, non tutte le soluzioni meritano di diventare pacchetti. Però alcune sì, e questa per me lo è: i numeri romani minuscoli sono abominevoli, e a mio avviso che il comando \frontmatter li produca è un bug di LaTeX.
Un pacchetto non deve necessariamente essere lungo. Per esempio, il pacchetto “indentfirst”, che uso regolarmente, è composto da due righe di codice in tutto:
`\let\@afterindentfalse\@afterindenttrue
\@afterindenttrue`
Meglio scrivere
`\uespackage{indentfirst}`
o le due righe di cui sopra? Io dico che è meglio caricare il pacchetto. È più amichevole per l’utente finale.Hai completamente ragione sul fatto che sia più amichevole. Ma a livello pratico sostituire tre righe con una (fra l’altro da inserirsi sempre nel preambolo) non cambia nulla. Chiaro, se fossero centinaia torna comodo.
lorenzo.pantieri” post=107659
Ci sarebbero centinaia di migliaia di pacchetti: non si saprebbe neppure chi fa che cosa e sarebbe impossibile ricordarsi che tale funzione è in pacchetto x anzichè y… Senza contare poi la nomenclatura.
Mi risulta che già ora ci si siano migliaia di pacchetti e centinaia di classi…
Io avevo usato un ordine di grandezza diverso 😉 Credimi, quella soluzione non andrebbe bene. Già ora se prendi la famiglia dei pacchetti con desinenza -tikz o -pgf ci si mette una vita a ricordarsi chi fa che cosa. Ora che sto finendo il dottorato, ho diversi pezzi di codice che potrebbero stare bene in pacchetti, ma per comodità non li ho mai creati. Faccio prima ad averli sottomano nel preambolo che se devo cambiare qualcosa si fa in un secondo, mentre cambiare un pacchetto vorrebbe dire modificarne la versione nell’albero personale. Il che rendebbe semi-inutilizzabili documenti precedenti (a meno di sistemare opzioni per retrocompatilità). Invece così è semplice ed efficace: ogni documento ha nel suo preambolo un pezzettino di codice indipendente che funziona perfettamente.
lorenzo.pantieri” post=107659
Scusate, ma questa è un’osservazione cattiva 👿 😀 😀 Lorenzo: non aggiorni MacTeX da anni… quindi l’utilità di avere il pacchetto su CTAN e quindi su TeXLive, MacTeX e MikTeX è proprio limitata 😉
L’argomento è ad hominen, e quindi irrilevante. 😉 Aggiornerò LaTeX quando cambierò computer (e cambierò computer quando sarò costretto a farlo). Ora non se ne parla: il mio sistema è perfetto per le mie esigenze, e non lo cambio. ❗
Guarda, io condivido solo in piccola parte. Per me (e lo consiglio anche a i miei studenti) una distribuzione non va aggiornata sul pc in cui si sta scrivendo una tesi. E preciso, solo durante il periodo di scrittura. Si evitano possibili esaurimenti nervosi 😀 Altrimenti, si, meglio aggiornare.
Ciao
Claudio
-
26 Agosto 2016 alle 14:25 #107522::
No, Lorenzo, quel breve codice che ho scritto per il file scfrontmatter.sty, te lo copi e incolli in un nuovo file con quel nome e te lo salvi nel tuo albero personale.Non so se funzioni con le classi KOMA perché non le uso; certamente non ne faccio nemmeno un test per vedere se funziona, perché non saprei che cosa collaudare.
Non lo metterei mai su CTAN, per due motivi: uno è che il codice è di Gustavo; un altro perché il suo uso è di portata limitata come ho cercato di scrivere in diversi messaggi di questo filone. Per una cosa del genere, cioè scrivere un pacchetto valido per mote classi dotate del comando \frontmatter, auspicabilmente per tutte, e che non abbia le limitazioni che ho descritto, richiede moltissimo tempo e un mucchio di test con classi che non mi sognerei mai di usare.
Come sai quando voglio strafare uso la classe memoir, altrimenti preferisco scrivermi le mie classi dall’inizio alla fine; abbiamo assodato che io ho un approccio a LaTeX diverso dal tuo, molto più simile a quello di Gustavo con il quale mi sento in perfetta sintonia. Non mi sento in sintonia con te, perché il tuo approccio alla composizione programmata è troppo diverso dal mio. Rispetto le tue scelte; non sono obbligato a condividerle,come tu non sie obbligato a condividere le mie. Ogni utente di LaTeX fa come meglio crede; oltretutto le soluzioni ai problemi di composizione sono sempre molteplici e chi può dire quali siano le scelte migliori?
Da ingegnere mi ricordo sempre gli imperativi categorici della mia disciplina, imperativi assolutamente diversi da quelli dei matematici:
1) Se un problema di ingegneria ha una soluzione, allora ne ha infinite.
2) Se un problema di ingegneria non ha soluzioni, allora bisogna trovarne una lo stesso.
L’ultima non è una istigazione a delinquere: è semplicemente che bisogna cambiare i presupposti del problema per trovare una soluzione fisicamente realizzabile; talvolta le specifiche del problema sono fisicamente irrealizzabili, quindi cambiarne i presupposti significa analizzarli criticamente per vedere perché sono fisicamente incompatibili, e una volta trovato il perché non è generalmente difficile modificarli per rispettare la fisica realizzabilità.Con LaTeX funziona nello stesso modo, salvo che la “fisica realizzabilità” diventa un concetto diverso.
-
26 Agosto 2016 alle 14:42 #107523::
È un discorso di eleganza, semplicità e anche usabilità a lungo termine. Vuoi mettere scrivere
`\documentclass{book}
\usepackage{indentfirst} % rientra il primo capoverso di ogni sezione
\usepackage{scfrontmatter} % numeri romani in maiuscoletto nel frontmatter
\begin{document}`
oppure scrivere le corrispondenti righe di codice, criptiche (per un utente normale)?illinguista1972Il sistema TeX […] gira BENISSIMO da Leopard in qua, non avendo bisogno di alcuna architettura hardware particolare.
Il mio computer, con il suo OS e la distribuzione LaTeX installata, è perfetto per le mie esigenze. Perfetto. Non ho bisogno di nient’altro. Tutti i software, da Safari a LaTeX, da iWeb a Mathematica, fanno esattamente quello che voglio che facciano.
Prevedo che quando cambierò computer e distribuzione LaTeX avrò dei problemi(ni?). Alcuni documenti LaTeX non saranno più compilabili e altri non appariranno come sono ora, regolati al millimetro: dovrò metterci le mani, e perderci del tempo prezioso. Forse (ma non ci voglio pensare!) dovrò rinunciare a qualche applicazione. iWeb, per esempio: Apple l’ha dismesso, ma per me è fon-da-men-ta-le, il mio sito mi serve per fare un sacco di cose, vitali per il mio lavoro. iWeb funzionerà ancora sul nuovo Mac? E Mathematica? Ne ho una vecchissima versione (perfetta per me), dubito che girerà su un sistema nuovo. Eccetera.
cfiandra” post=107662Per me (e lo consiglio anche a i miei studenti) una distribuzione non va aggiornata sul pc in cui si sta scrivendo una tesi. E preciso, solo durante il periodo di scrittura. Si evitano possibili esaurimenti nervosi 😀 Altrimenti, si, meglio aggiornare.
Certo, si possono avere più versioni di TeX installate. Ma:
1. non mi serve una versione più aggiornata di LaTeX, visto che la versione che uso ora è perfetta per me;
2. c’è qualcuno di voi che può escludere categoricamente che aggiornando non abbia problemi?
Ecco perché non aggiorno!Riguardo al numero, a me non pare che cambi qualcosa tra avere migliaia di pacchetti o decine di migliaia. Uso LaTeX per comporre i documenti più diversi, ma di pacchetti alla fine ne uso poche decine… Idem per le classi: quelle su CTAN sono centinaia, io ne conosco sì e no una decina…
Vediamo se Claudio pubblica il pacchetto.
-
26 Agosto 2016 alle 19:50 #107524::
Ti ho già spiegato che non lo pubblicherò e perché. Se lo vuole fare Gustavo, è padronissimo di farlo, visto che il codice è suo.Ma il tuo approccio al fatto di aggiornare o non aggiornare il sistema operativo ha un senso, ma solo per te. Non per gli utenti normali.
Mi spiego. Hai nel tuo sito diversi file che proponi agli altri di usare e che chiunque può scaricarsi e provare ad usare. Ma non ci riesce perché non sono aggiornati, perché i template fanno riferimento alla codifica applemac, perché i pacchetti invocati non esistono più o, il che è lo stesso, sono stati aggiornati in modo non retrocomaptibiile, eccetera.Tu per te stesso sei soddisfatto di quello che hai, perché fa esattamente quello che vuoi fare, nel modo che preferisci, eccetera; ma non lo puoi condividere con altri. Questo è il punto. Quando scrivi sul forum per avere consigli chiedi agli altri di non usare pacchetti o funzionalità recenti, perché da te non girano. Perché allora chiedi agli altri di restare con software vecchio? 3 o 4 anni di anzianità per un software non sono 3 o 4 anni di anzianità per un romanzo. Anche a me piace rileggere libri che ho letto molti anni fa, ma non vorrei tornare ad usare il DOS 6.3 che usavo fino a quando sono passato a Windows 95. Eppure sul mio PC che girava con quel DOS, ho scritto programmi che permettevano di elaborare certi dati per il mio ateneo in tempi dell’ordine dei 30 secondi; quando finalmente, dopo molte insistenze, l’ateneo ha preso in mano la situazione e ha rifatto lo stesso software per un sistema a finestre, gli stessi dati venivano elaborati in tempi dell’ordine dei 15 minuti.
Sarebbe forse questo un motivo per tornare al DOS?Certo quando un sistema operativo passa alla versione successiva possono succedere delle piccole incompatibilità con la versione precedente. Ma guarda caso, il mio libro Sintesi dei circuiti passivi, che ho scritto verso la fine degli anni ’80, su una macchina DOS con il LaTeX209 di allora, su una macchina dalle performance limitatissime, gira ancora oggi sul mio Mac El Capitan, avendo cambiato, in pratica, solo il primo comando \documentstyle con \documentclass con gli altri piccoli cambiamenti indotti da questo cambio; ormai quel vecchio testo ha quasi 30 anni di vita, ma il suo software gira ancora oggi. Nel frattempo ho aggiunto delle cose, ho corretto degli errori, ho rifatto tutti i disegni dei circuiti con un mio pacchettino scritto in linguaggio TeX che gira ancora oggi dopo quasi 25 anni, invece di incollare sulla copia camera-ready di allora i disegni composti dal disegnatore tecnico del dipartimento. In questi 30 anni gli adattamenti a sistemi operativi DOS -> Windows -> MAC, mi sarà costato forse mezz’ora in totale: un minuto all’anno in media?
Come vedi il prezzo pagato per le modifiche dovute all’aggiornamento del software è irrisorio. Ci sono programmi come iWeb che Apple ha dismesso? Nel frattempo Apple distribuisce altri programmi che fanno le stesse cose e meglio (non saprei dirti quali programmi, perché non ho un sito web, ma quando scorro l’Apple Store ne vedo moltissimi, alcuni da comprare alcuni free). Con questi programmi bisogna prenderci la mano, ma non è più complicato che lasciare Windows per passare a Mac.
E non è detto che le vecchie app non funzionino più con i nuovi sistemi operativi. Di solito le vecchie app funzionano anche con i nuovi sistemi operativi, a meno che non sfruttino funzionalità che sono state modificate in modo non retrocompatibile, ma se non provi, non lo puoi sapere. Direi che uno dei problemini causati dagli aggiornamenti è costituito dal fatto che una CPU a 32 bit, non regge programmi scritti per CPU a 64 bit; raramente succede il contrario. Funziona ancora, ma di fatto ho dovuto abbandonare il mio precedente Mac Book Pro comprato 10 anni fa, a causa del fatto che il suo processore Intel è a 32 bit, e non si può più aggiornare nemmeno il sistema operativo. Ciò nonostante qualche volta lo uso e funziona ancora benissimo col suo vecchio sistema operativo 10.6 (oggi uso il sistema 10.11 su un Mac Book Pro più recente, che tra l’altro ha il disco a stato solido, un SSD, Solid State Disk, e va che è una scheggia).Non avere paura ad aggiornare; ma se vuoi mantenere lo status quo, vedi di non interagire con nessuno che invece sia aggiornato. 🙂
-
26 Agosto 2016 alle 20:06 #107525
-
26 Agosto 2016 alle 21:14 #107526::
Ho perso un’altra volta un intero messaggio, pure molto lungo, per colpa del mio router che sta smettendo di funzionare, e ora mi tocca riscriverlo daccapo! 😡 Ma la colpa è solo mia, che non me li salvo.Proviamo a riprodurlo cosi com’era: vediamolo come un esercizio di memoria…
OldClaudio” post=107652[…] I vecchi costrutti che ho eliminato sono le scritture esplicite, del tipo [tt] \z@ plus 1 fill[/tt] che si possono sostituire con il comando \stretch{…} da preferire sempre perché è più difficile sbagliare la sintassi della lunghezza elastica.
Ma certo, stupido io! Ecco cosa succede a rileggere di continuo The TeXbook 😉 : si finisce che non si pensa più ai comandi di alto livello! Non è nemmeno questione di costrutti vecchi o nuovi, perché [tt]\stretch[/tt] era descritto già nel libro di Lamport del 1994 (pagina 215, in fondo) e, anzi, mi pare (anche se non sono sicuro al 100%) che abbia sempre fatto parte del LaTeX, anche nella versione 2.09.
OldClaudio” post=107652Nello stesso modo ho sostituito [tt]\`{\i}[/tt] con il più semplice [tt]\`i[/tt] che provvede da solo a mettere l’accento sopra la i senza puntino; Io preferirei mantenere l’uso esplicito di [tt]\usepackage[utf8]{inputenc}[/tt] […]
DI nuovo: ma certo! In questo caso, però, vorrei osservare due cose:
- Non ho fatto ricorso al pacchetto inputenc perché quando invio esempi di codice a un Internet forum sono disposto anche a fare i salti mortali pur di non uscire, finché ci riesco, dalla codifca ASCII a 7 bit; ciò per massimizzare le probabilità che il codice possa essere, all’occorrenza, copiato e incollato senza errori; ecco perché non scrivo le lettere accentate nel codice, ma le indico con quella che — volendo usare nomi un po’ pomposi 🙂 — sarebbe, sì, la codifica LICR. Avevo però lasciato la riga`% \usepackage[utf8]{inputenc}`proprio per ricordare qual è la pratica raccomandata.
- Quello di scrivere [tt]\`{\i}[/tt], com’era necessario fare una volta, anziché [tt]\`{i}[/tt] è, per me, uno habit talmente inveterato e fossilizzato che neanche me ne accorgo, a meno di usare una concentrazione tenace. Indubbiamente, però, in un codice affisso in pubblico si dovrebbe scrivere [tt]\`{i}[/tt] (si noti che la sintassi LaTeX standard prevede che si usino le graffe).
Ripeto, comunque, che, a parte il caso di codice diffuso tramite i siti di Rete, la pratica migliore è usare inputenc, per diverse, ben note ragioni che non sto a ripetere qui (la più importante delle quali, forse, è proprio l’interazione con i pacchetti hyperref e bookmark).
OldClaudio” post=107652Invece la definizione birichina di cambiare il valore del contatore secnumdepth non serve nella front matter; Gustavo può verificare che il nuovo file senza la definizione birichina produce lo stesso risultato che si ottiene con la sua definizione. […]
Terzo errore! 😳 Anche questo lo sapevo
: infatti, la definizione del comando [tt]\@chapter[/tt] in [tt]book.cls[/tt] è
`
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}
`
Dall’esame della prima e della seconda riga si vede benissimo che il controllo sul valore di [tt]secnumdepth[/tt] e sul fatto di trovarsi nella sezione [tt]\mainmatter[/tt] vengono posti esattamente sullo stesso piano. In questo caso, però, un esame attento del codice dell’ambiente [tt]noNumbersInSectioningCommands[/tt] (al quale, naturalmente, solo su questo forum ho dato un nome così lungo… 🙂 ) rivela quale fosse il suo intento originario: quello di sopprimere non già la numerazione dei capitoli (comando [tt]\chapter[/tt]), bensì quella delle unità dai paragrafi (comando [tt]\section[/tt]) in giù; infatti dice [tt]\c@secnumdepth \z@[/tt], non [tt]\c@secnumdepth \m@ne[/tt]! 😉 — Paragrafi nel front matter?! — direte voi; sì, a volte faccio anche di queste cose… 🙄OldClaudio” post=107652Come si vede ho aggiunto la chiamata a hyperref; il titolo nell’indice rappresta l’ancora del link e cliccandoci sopra il testo mostrato nella finestra di lettura del file composto si sposta al target del link. Però il numero della pagina non costituisce un’ancora per sostarsi alla pagina. Rendere il numero di pagina attivo come hyperlink produce errori. […]
Be’, se ci si muove con attenzione si possono usare anche le pagine (per la precisione, le loro testatine) come destinazioni ([tt]\pdfdest[/tt], presupponendo l’uso di pdfTeX). Fornisco di seguito due esempi compilabili.
Il primo esempio, stavolta, è concepito in maniera tale da non riportare a uno il numero di pagina dopo la pagina del titolo (recto/verso); in altre parole, in maniera tale che la facciata del titolo conti come pagina 1 (o meglio, I), il suo verso conti come pagina 2 (o meglio, II), la facciata ancora successiva sia la pagina 3 (o meglio, III) e così via; non mi ricordo più se la domanda originale chiedeva questo oppure no. Ecco qui il codice:
`
\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc} % in realta`, questo file e` in puro ASCII a 7 bit
\usepackage[italian]{babel}
\usepackage{hyperref}\title{Il mio bel libro}
\author{A.~U.~Tore}\makeatletter
\newcommand*\scroman [1]{\expandafter\@scroman \csname c@#1\endcsname}
\newcommand*\@scroman[1]{%
\expandafter\textsc\expandafter{\romannumeral #1}%
}\renewcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
% Evitiamo di rimettere a 1 il numero di pagina:
\gdef\thepage{\@scroman\c@page}%
}
% (o, meglio, usare il pacchetto “etoolbox”)% Questa, invece, e` una mia idea (che @egreg9, fra gli altri, non ama!):
\newenvironment{noNumbersInSectioningCommands}{\c@secnumdepth \z@}{}\makeatother
% Decommentare la riga seguente per esaminare i nomi delle destinazioni:
% \showoutput\begin{document}
% Vogliamo che la pagina del titolo sia contata come pagina 1:
\begin{titlepage}
\pagestyle{empty}
\pagenumbering{roman} % a solo uso e consumo di hyperref
\centering
\vspace*{\stretch{1}}
{\Huge
\csname @title\endcsname % produce il titolo
\par}
\bigskip
{\Large
\csname @author\endcsname % produce l'autore
\par}
\vspace{\stretch{2}}
\cleardoublepage % per far si`che le impostazioni dello stile di pagina
% si applichino anche al verso della pagina del titolo
\end{titlepage}\frontmatter
\tableofcontents
\begin{noNumbersInSectioningCommands}
\chapter{Prefazione}
Una lusinghiera prefazione segue qui.
Tale prefazione si trova a pagina~\pageref{Prefazione}.
\label{Prefazione}\section{Una sezione nella prefazione\ldots}
\ldots cosa che, naturalmente, non si dovrebbe fare!
Non di rado, per\`{o}, a me capita di essere cos\`{\i} perverso,
e questo \`{e} il motivo per cui, senza riflettere, mi era venuta l'idea di
usare l'ambiente \texttt{noNumbersInSectioningCommands}.% Decommentare le seguenti 3 linee per vedere dove e` messo “\pdfdest”:
% \showboxbreadth = 1000
% \showboxdepth = 10
% \showlists\end{noNumbersInSectioningCommands}
\mainmatter
\chapter{A}
Anna ama avere amici, anche assolutamente assurdi.\chapter{B}
Bruno balbetta banali battute buttando bucce bananesche.\chapter{C}
Carla corre contro corrente, creando contestazioni.\chapter{D}
Duilio, dopo dieci d\`{i} di dormite, divenne discretamente docile.
% Poiche` questo codice va affisso in pubblico, scriviamo “\`{i}”
% e non “\`{\i}”.\chapter{E}
Eccetera eccetera\ldots\section{Ricordiamoci una cosa}
La \hyperref[Prefazione]{Prefazione} si trova a pagina~\pageref{Prefazione}.\end{document}
`Il secondo esempio ritorna all’impostazione standard: ricominciare la numerazione da 1 (be’, in realtà da I) dopo la pagina del titolo. Si noti che, così facendo, si avranno ben tre pagine per le quali il valore del contatore [tt]page[/tt] è 1 e altrettante per le quali è 2; quindi, per evitare di avere destinazioni con nomi coincidenti, bisogna usare tre schemi di numerazione che appaiano distinti agli occhi di hyperref, cioè, più precisamente, che generino stringhe di caratteri diverse al netto di eventuali comandi di formattazione. Va benissimo il suggerimento di @OldClaudio di usare lo schema [tt]alph[/tt] per il titolo; poi, [tt]\frontmatter[/tt] userà [tt]scroman[/tt] e [tt]\mainmatter[/tt], naturalmente, [tt]arabic[/tt]. Riassumendo, i nodi [tt]\pdfdest name[/tt] collocati nella testatina delle tre pagine per le quali risulta [tt]\value{page}[/tt] = 1 avranno come argomento:
- quello del titolo, [tt]{page.a}[/tt];
- quello del front matter, [tt]{page.i}[/tt];
- quello del main matter, [tt]{page.1}[/tt];
Analogamente, gli argomenti per le tre pagine con [tt]\value{page}[/tt] = 2 saranno [tt]{page.b}[/tt], [tt]{page.ii}[/tt] e [tt]{page.2}[/tt], rispettivamente. Notate che il caso del front matter funziona grazie alla grande robustezza di hyperref, il quale provvede automaticamente, e silenziosamente, a rimuovere tokens estranei come [tt]\textsc[/tt]. Ecco il codice del secondo esempio:
`
\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc} % in realta`, questo file e` in puro ASCII a 7 bit
\usepackage[italian]{babel}
\usepackage{hyperref}\title{Il mio bel libro}
\author{A.~U.~Tore}\makeatletter
\newcommand*\scroman [1]{\expandafter\@scroman \csname c@#1\endcsname}
\newcommand*\@scroman[1]{%
\expandafter\textsc\expandafter{\romannumeral #1}%
}\renewcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
\pagenumbering{scroman}%
}
% (o, meglio, usare il pacchetto “etoolbox”)% Questa, invece, e` una mia idea (che @egreg9, fra gli altri, non ama!):
\newenvironment{noNumbersInSectioningCommands}{\c@secnumdepth \z@}{}\makeatother
% Decommentare la riga seguente per esaminare i nomi delle destinazioni:
% \showoutput\begin{document}
% Vogliamo che la pagina del titolo sia contata come pagina 1:
\begin{titlepage}
\pagestyle{empty}
\pagenumbering{alph} % a solo uso e consumo di hyperref
\centering
\vspace*{\stretch{1}}
{\Huge
\csname @title\endcsname % produce il titolo
\par}
\bigskip
{\Large
\csname @author\endcsname % produce l'autore
\par}
\vspace{\stretch{2}}
\cleardoublepage % per far si`che le impostazioni dello stile di pagina
% si applichino anche al verso della pagina del titolo
\end{titlepage}\frontmatter
\tableofcontents
\begin{noNumbersInSectioningCommands}
\chapter{Prefazione}
Una lusinghiera prefazione segue qui.
Tale prefazione si trova a pagina~\pageref{Prefazione}.
\label{Prefazione}\section{Una sezione nella prefazione\ldots}
\ldots cosa che, naturalmente, non si dovrebbe fare!
Non di rado, per\`{o}, a me capita di essere cos\`{\i} perverso,
e questo \`{e} il motivo per cui, senza riflettere, mi era venuta l'idea di
usare l'ambiente \texttt{noNumbersInSectioningCommands}.% Decommentare le seguenti 3 linee per vedere dove e` messo “\pdfdest”:
% \showboxbreadth = 1000
% \showboxdepth = 10
% \showlists\end{noNumbersInSectioningCommands}
\mainmatter
\chapter{A}
Anna ama avere amici, anche assolutamente assurdi.\chapter{B}
Bruno balbetta banali battute buttando bucce bananesche.\chapter{C}
Carla corre contro corrente, creando contestazioni.\chapter{D}
Duilio, dopo dieci d\`{i} di dormite, divenne discretamente docile.
% Poiche` questo codice va affisso in pubblico, scriviamo “\`{i}”
% e non “\`{\i}”.\chapter{E}
Eccetera eccetera\ldots\section{Ricordiamoci una cosa}
La \hyperref[Prefazione]{Prefazione} si trova a pagina~\pageref{Prefazione}.\end{document}
`OldClaudio” post=107652Se Gustavo, che è molto bravo ad usare anche i comandi di basso livello, vuole cimentarsi con le problematiche che ho indicato, non solo è evidentemente libero di farlo, ma anche un benemerito perché puoi insegnare molto a tutti.
Be’ grazie! 🙂 Ho molto poco da insegnare, ma quel poco che posso lo insegno molto volentieri!
Mi sono ricordato di tutto quel che volevo dire? Spero di sì! Allora, almeno per adesso…
Ciao.
—
Gustavo
-
26 Agosto 2016 alle 21:49 #107527::
OldClaudio” post=107667Ti ho già spiegato che non lo pubblicherò e perché. Se lo vuole fare Gustavo, è padronissimo di farlo, visto che il codice è suo. […]
Ma no, io ho semplicemente ripulito da banali sviste e ridondanze del codice affisso da Lorenzo; deve dirci lui chi ne è l’autore. Comunque, secondo me si tratta ormai di «folklore», codice che è di tutti e di nessuno; di pubblico dominio, insomma.
Facciamo così: il pacchetto lo pubblica Lorenzo; così, poi, pur di averlo nell’albero TeX Live magari si aggiorna… 😉
Ciao.
—
GustavoP.S.: Be’, parlo io, che sono il meno aggiornato di tutti! 😛
-
26 Agosto 2016 alle 23:13 #107528::
Poiché il Padova Pride Village fa, alle 02.30 del mattino, un baccano insopportabile che nemmeno una discoteca di Rimini, impedendomi di dormire — è scandaloso, però! Ma può esistere una cosa simile? — ho elaborato un esempio un po’ balordo che illustra come si potrebbe procedere in un’ottica un po’ più generale. Tale esempio usa il pacchetto bullcntr, una delle cose più stupide che io abbia mai scritto in vita mia, per stampare i numeri di pagina come gruppetti ordinati di pallini. A proposito di pacchetti da sfrondare dal CTAN…!Avviso: codice non robustissimo, meglio non provare ad alterare le dimensioni e il disegno dei pallini, sempre a causa del meccanismo asincrono di output del TeX.
`
\documentclass[a4paper]{book}
\usepackage[T1]{fontenc}
% \usepackage[utf8]{inputenc} % in realta`, questo file e` in puro ASCII a 7 bit
\usepackage[italian]{babel}
\usepackage{bullcntr}
\usepackage{hyperref}\title{Il mio bel libro}
\author{A.~U.~Tore}\makeatletter
\newcommand*\@bullcntr[1]{%
\texorpdfstring
{\@b@ll@cntr #1}%
{\@ctr@asts@representation #1}%
}
\newcommand*\@ctr@asts@representation[1]{%
\ifcase #1\or *\or **\or ***\or ****\or +% + = *****
\or +*\or +**\or +***\or +****\fi
}\renewcommand\frontmatter{%
\cleardoublepage
\@mainmatterfalse
% Evitiamo di rimettere a 1 il numero di pagina:
\gdef\thepage{\@bullcntr\c@page}%
}
% (o, meglio, usare il pacchetto “etoolbox”)% Questa, invece, e` una mia idea (che @egreg9, fra gli altri, non ama!):
\newenvironment{noNumbersInSectioningCommands}{\c@secnumdepth \z@}{}\makeatother
% Decommentare la riga seguente per esaminare i nomi delle destinazioni:
% \showoutput\begin{document}
% Vogliamo che la pagina del titolo sia contata come pagina 1:
\begin{titlepage}
\pagestyle{empty}
\pagenumbering{bullcntr} % a solo uso e consumo di hyperref
\centering
\vspace*{\stretch{1}}
{\Huge
\csname @title\endcsname % produce il titolo
\par}
\bigskip
{\Large
\csname @author\endcsname % produce l'autore
\par}
\vspace{\stretch{2}}
\cleardoublepage % per far si`che le impostazioni dello stile di pagina
% si applichino anche al verso della pagina del titolo
\end{titlepage}\frontmatter
\tableofcontents
\begin{noNumbersInSectioningCommands}
\chapter{Prefazione}
Una lusinghiera prefazione segue qui.
Tale prefazione si trova a pagina~\pageref{Prefazione}.
\label{Prefazione}\section{Una sezione nella prefazione\ldots}
\ldots cosa che, naturalmente, non si dovrebbe fare!
Non di rado, per\`{o}, a me capita di essere cos\`{\i} perverso,
e questo \`{e} il motivo per cui, senza riflettere, mi era venuta l'idea di
usare l'ambiente \texttt{noNumbersInSectioningCommands}.% Decommentare le seguenti 3 linee per vedere dove e` messo “\pdfdest”:
% \showboxbreadth = 1000
% \showboxdepth = 10
% \showlists\end{noNumbersInSectioningCommands}
\mainmatter
\chapter{A}
Anna ama avere amici, anche assolutamente assurdi.\chapter{B}
Bruno balbetta banali battute buttando bucce bananesche.\chapter{C}
Carla corre contro corrente, creando contestazioni.\chapter{D}
Duilio, dopo dieci d\`{i} di dormite, divenne discretamente docile.
% Poiche` questo codice va affisso in pubblico, scriviamo “\`{i}”
% e non “\`{\i}”.\chapter{E}
Eccetera eccetera\ldots\section{Ricordiamoci una cosa}
La \hyperref[Prefazione]{Prefazione} si trova a pagina~\pageref{Prefazione}
(\emph{hard link}: \hyperpage{+}).\end{document}
`Può essere davvero il caso di decommentare [tt]\showoutput[/tt] per controllare i nomi di destinazione dati alle pagine.
Ciao.
—
Gustavo
-
27 Agosto 2016 alle 2:45 #107529::
letteracdp” post=107670
Ma no, io ho semplicemente ripulito da banali sviste e ridondanze del codice affisso da Lorenzo; deve dirci lui chi ne è l’autore. Comunque, secondo me si tratta ormai di «folklore», codice che è di tutti e di nessuno; di pubblico dominio, insomma.Se dipendesse da me, pubblica pure il pacchetto. Mi offro da farti da beta tester: ricompilo i mie documenti e vedo se c’è qualche incompatibilità (per esempio con il codice che uso per l’indice analitico, o con varioref).
OldClaudio” post=107667Hai nel tuo sito diversi file che proponi agli altri di usare e che chiunque può scaricarsi e provare ad usare. Ma non ci riesce perché non sono aggiornati, perché i template fanno riferimento alla codifica applemac, perché i pacchetti invocati non esistono più o, il che è lo stesso, sono stati aggiornati in modo non retrocomaptibiile, eccetera.
Non dovrebbero esserci problemi, a compilare quei file. La codifica “applemac” non la uso, nei modelli sul sito. I pacchetti invocati non esistono più??? Spero di no! Nei modelli ho usato solo pacchetti molto standard:
`fontenc
inputenc
microtype
babel
layaureo
frontespizio
emptypage
indentfirst
booktabs
tabularx
graphicx
subfig
caption
listings
quoting
amsmath
amssymb
amsthm
varioref
biblatex
xcolor
lipsum
eurosym
hyperref
bookmark`
nel modo più elementare possibile. Pensa che, addirittura, ho evitato di inserire caratteri accentati!!! 😉OldClaudioQuando scrivi sul forum per avere consigli chiedi agli altri di non usare pacchetti o funzionalità recenti, perché da te non girano.
Certo. È il prezzo da pagare per avere un sistema non aggiornato. Nel mio caso, il gioco vale la candela.
OldClaudioCi sono programmi come iWeb che Apple ha dismesso? Nel frattempo Apple distribuisce altri programmi che fanno le stesse cose e meglio (non saprei dirti quali programmi, perché non ho un sito web, ma quando scorro l’Apple Store ne vedo moltissimi, alcuni da comprare alcuni free).
Non mi risulta che Apple distribuisca un’alternativa a iWeb “che faccia le stesse cose, e meglio”. Sicuramente esistono innumerevoli applicazioni per fare un sito, solo che, in mancanza di iWeb, dovrei cominciare a fare delle ricerche per capire quale può fare al caso mio. E poi dovrei impararla. E poi dovrei regolare il risultato finale come piace a me. Non credo si tratti di minuti, ma di ore (che potrei anche non avere…). Tutto ciò, per fare la stessa cosa che faccio con iWeb. A che pro?
In ogni caso, quando aggiornerò il mio sistema ti saprò dire. Aprirò un topic dal titolo “Le mie (dis)avventure con l’aggiornamento”. Qualcosa mi dice che avrò delle cose da raccontare… 😉
-
27 Agosto 2016 alle 4:26 #107530::
lorenzo.pantieri” post=107672
In ogni caso, quando aggiornerò il mio sistema ti saprò dire. Aprirò un topic dal titolo “Le mie (dis)avventure con l’aggiornamento”. Qualcosa mi dice che avrò delle cose da raccontare… 😉Oh ne avrai sicuramente di disavventure da raccontare….in 3 anni un software in continua evoluzione quale è la distribuzione tex potrebbe cambiare completamente.
Sicuramente il processo di aggiornamento sarebbe stato più facile con un aggiornamento continuo. Forse avresti dovuto correggere incompatibilità più spesso ma le incompatibilità sarebbero state poche e facili da trovare. Adesso ti ritrovi nel circolo vizioso che non aggiorni perché non hai mai aggiornato e le incompatibilità potrebbero essere tali da perderci ore; ma più aspetti ad aggiornare e più il tempo che ci metterai a correggere gli errori aumenterà. Inoltre più aspetti e più chiedere aiuto sarà difficile: più tempo passa infatti e più sarà difficile trovare qualcuno che abbia un minimo di memoria sui cambiamenti che ci sono stati. Invece se chiedi aiuto quando un problema si verifica (e non anni dopo) potresti, con un pò di fortuna, trovare qualcuno che ha appena risolto il tuo problema e che quindi ti riesce ad aiutare in tempo zero.
Non che mi cambi qualcosa sapere che tu hai una distribuzione aggiornata…quella di sopra era solo una riflessione 🙂Già che ci sono scrivo anche un’altra cosa riferita ad un intervento ormai vecchio presente in questa discussione…
Noto che nell’ultimo periodo (e non è una cosa che ho visto più di una volta solo in questo forum) c’è un pò di confusione su cosa sia un bug e sono abbastanza sicuro che questa parola venga usata in modo non proprio non perché ignoriamo il suo significato ma perché vogliamo dare forza alla nostra frase.
Un bug si ha quando un software si comporta in modo diverso da come dovrebbe.
Dal punto di vista informatico sarebbe un bug se latex stampasse l’indice in maiuscoletto invece che in minuscolo e non il contrario (nel codice di frontmatter infatti non c’è scritto che deve stamparlo in maiuscoletto)
Il fatto che ci sono vari motivi per preferire il maiuscoletto non giustifica la classificazione di bug.Se scrivo un codice di simulazione del tempo sul giro di una monoposto da f1 senza considerare l’effetto della resistenza aerodinamica il problema non è del codice e lo stesso non è buggato.
Potrei infatti aver escluso volutamente l’effetto del drag. Ad esempio mi poteva interessare avere una stima quantitativa dell’importanza della efficienza aerodinamica della monoposto.
Adesso una persona che prende il mio codice e lo lancia, vedendo risultati in palese contrasto con la realtà, potrebbe pensare che il codice abbia qualche problema.
La realtà è che il codice fa esattamente quello che deve fare. Non può essere definito buggato!
Semplicemente è venuta a mancare una unità di intenti tra lo sviluppatore e l’utilizzatore.
Non cominciamo ad estendere la classificazione di bug a tutto.
Altrimenti poi ci troviamo a dire che quando mia sorella in cucina prepara una pasta al tonno e non ci mette i capperi è buggata, solo perché io non mangerei mai una pasta al tonno senza capperi.
Non è la stessa cosa, un bug è altro!😀
-
27 Agosto 2016 alle 6:09 #107531::
Little” post=107673Forse avresti dovuto correggere incompatibilità più spesso ma le incompatibilità sarebbero state poche e facili da trovare.
Bello il tuo intervento! Forse avrei dovuto fare così. In ogni caso, aggiornamento o no, in questi anni ho continuato a scrivere “bellissimi documenti”… Quando alla questione “bug vs feature”, tutto sta a intendersi! 😉
-
27 Agosto 2016 alle 6:14 #107532::
Quello di scrivere \`{\i}, com’era necessario fare una volta, anziché \`{i} e, per me, uno habit talmente inveterato e fossilizzato che neanche me ne accorgo, a meno di usare una concentrazione tenace. Indubbiamente, però, in un codice affisso in pubblico si dovrebbe scrivere \`{i} (si noti che la sintassi LaTeX standard prevede che si usino le graffe).
La scrittura [tt]\`{\i}[/tt] era obbligatoria con LaTeX209.
LaTeX2e è nato con lo stesso vincolo, ma su mia richiesta la scrittura senza la [tt]\i[/tt] , cioè [tt]\`{i}[/tt] è stata aggiunta quasi subito.
Le parentesi attorno all’argomento sono necessarie solo quando l’argomento è formato da più di un token; Quindi per le lettere accentate le graffe non sono obbligatorie se non quando l’argomento, pur essendo formato da un solo token, è costituito da una macro; per esempio [tt]\'{\oe}[/tt] richiede o le graffe o lo spazio dopo la macro [tt]\oe[/tt] oppure un gruppo vuoto come in [tt]\’\oe{}[/tt], ma tutte queste graffe rendono la lettura del testo sorgente più difficile.
Concordo con te di lasciare quello che scrivi nei vari forum tutto composto a 7 bit; ma anche [tt]\`i[/tt] è tutto a 7 bit, e se volessi scrivere (con l’accento vietato dalle norme UNI) “seguìto”, sei libero di scrivere nel sorgente [tt]segu\`ito[/tt]. Anche se è a 7 bit con la macro per l’accento, specificare la codifica d’ingresso oltre che la codifica di uscita T1, permette di NON mettere i bastoni fra le ruote all’algoritmo di sillabazione perché viene usato il glifo giusto, già accentato. Probabilmente non è una cosa importante per brevi esempi di testo scritto negli esempi minimi compilabili, ma direi che l’uso non privato delle codifiche d’entrata e di uscita sia una prassi da usare sempre.Sai, quando c’è di mezzo qualcosa che influenza la sillabazione, mio malgrado, mi sento un pizzicorino fastidioso, proprio perché finora ho scritto i pattern di sillabazione per una quindicina di lingue (non tutti presenti su CTAN) e quindi la sillabazione è diventata un mio chiodo fisso.
Per l’idea di sezionare i capitoli della front matter, direi che il codice da usare sarebbe più efficace così (sempre facendo riferimento al solito pacchettino scfrontmatter.sty di qualche messaggio fa:`\ProvidesPackage{scfrontmatter}%
[2016/08/26 v.1.0 front matter with page numbering in small caps]
% From a code provided by Gustavo
\RequirePackage{etoolbox}
% Define a two step replacement code for a new small cap macro
% such that a lowercase roman page number is typeset in small caps
\newcommand*\scroman [1]{\expandafter\@scroman \csname c@#1\endcsname}
\newcommand*\@scroman[1]{%
\expandafter\textsc\expandafter{\romannumeral #1}%
}
% Patch \frontmatter so that it uses the above macros; it uses the
% \patchcmd from the etoolbox package. Also \mainmatter is patched so
% as to renumber everything until subsections.
\patchcmd{\frontmatter}{{roman}}{{scroman}\c@secnumdepth=\m@ne}{}{}
\patchcmd{\mainmatter}{{arabic}}{{arabic}\c@secnumdepth=\tw@}{}
% END
\endinput`
In questo modo si cambia il valore del contatore secnumdepth, ma bisogna ristabilirlo con la main matter, quindi tocca mettere un patch anche su [tt]\mainmatter[/tt].Ma sezionare i capitoli della front matter è fuori luogo; una Presentazione divisa in sezioni appartiene alla main matter. Certo non esistono regole precise su questi argomenti, ma sarebbe meglio se almeno noi del GuIT ci dessimo delle regole; ne abbiamo scritte in questi 10 e più anni del GuIT, ma con il nostro spirito italico siamo poco disposti ad assoggettarci a regole. Immagino i commenti: e perché mai un capitolo della parte iniziale non dovrebbe essere suddiviso in paragrafi e magari anche in sotto paragrafi? Chi l’ha detto! figuriamoci! Io faccio come meglio credo. Io ho ragione e gli altri hanno torto (tipica frase da barone universitario). Nessuno mi venga a dire che cosa debbo fare o non fare. Ma chi si crede di essere. Lei non sa chi sono io! Quante volte ci siamo sentiti rispondere in questo modo quando abbiamo provato a proporre delle regole…:-( 🙁 🙁
-
27 Agosto 2016 alle 11:24 #107533::
OldClaudio” post=107675[…]
La scrittura [tt]\`{\i}[/tt] era obbligatoria con LaTeX209.
LaTeX2e è nato con lo stesso vincolo, ma su mia richiesta la scrittura senza la [tt]\i[/tt] , cioè [tt]\`{i}[/tt] è stata aggiunta quasi subito.
@OldClaudio, quanti anni tu credi che io abbia? 😉OldClaudio” post=107675[…] specificare la codifica d’ingresso oltre che la codifica di uscita T1, permette di NON mettere i bastoni fra le ruote all’algoritmo di sillabazione perché viene usato il glifo giusto, già accentato. Probabilmente non è una cosa importante per brevi esempi di testo scritto negli esempi minimi compilabili, ma direi che l’uso non privato delle codifiche d’entrata e di uscita sia una prassi da usare sempre.
Aspetta, non ingeneriamo confusione nei lettori: quella che conta per la sillabazione è la codifica in uscita, quella in ingresso è ininfluente: l’algoritmo di sillabazione di TeX lavora sulla lista orizzontale in cui è temporaneamente memorizzato un capoverso prima della sua divisione in righe (come sai perfettamente). Nota che in quasi tutti gli esempi che affiggo in pubblico includo sempre la linea`\usepackage[T1]{fontenc}`proprio perché la sillabazione sis quella che deve essere.
OldClaudio” post=107675[…]
Per l’idea di sezionare i capitoli della front matter, direi che il codice da usare sarebbe più efficace così (sempre facendo riferimento al solito pacchettino scfrontmatter.sty di qualche messaggio fa:`\ProvidesPackage{scfrontmatter}%
[2016/08/26 v.1.0 front matter with page numbering in small caps]
% From a code provided by Gustavo
\RequirePackage{etoolbox}
% Define a two step replacement code for a new small cap macro
% such that a lowercase roman page number is typeset in small caps
\newcommand*\scroman [1]{\expandafter\@scroman \csname c@#1\endcsname}
\newcommand*\@scroman[1]{%
\expandafter\textsc\expandafter{\romannumeral #1}%
}
% Patch \frontmatter so that it uses the above macros; it uses the
% \patchcmd from the etoolbox package. Also \mainmatter is patched so
% as to renumber everything until subsections.
\patchcmd{\frontmatter}{{roman}}{{scroman}\c@secnumdepth=\m@ne}{}{}
\patchcmd{\mainmatter}{{arabic}}{{arabic}\c@secnumdepth=\tw@}{}
% END
\endinput`
In questo modo si cambia il valore del contatore secnumdepth, ma bisogna ristabilirlo con la main matter, quindi tocca mettere un patch anche su [tt]\mainmatter[/tt].Mi sembra che la classe memoir abbia delle opzioni che fanno qualcosa del genere, no?
OldClaudio” post=107675Ma sezionare i capitoli della front matter è fuori luogo; una Presentazione divisa in sezioni appartiene alla main matter. Certo non esistono regole precise su questi argomenti, ma sarebbe meglio se almeno noi del GuIT ci dessimo delle regole; […] Nessuno mi venga a dire che cosa debbo fare o non fare. Ma chi si crede di essere. Lei non sa chi sono io! Quante volte ci siamo sentiti rispondere in questo modo quando abbiamo provato a proporre delle regole…:-( 🙁 🙁
È vero quel che dici; però è anche vero che la disputa sulle regole di un’arte, la questione stessa se un’arte possa avere, e fino a che punto, regole normative, e via discorrendo sono questioni che agitano qualunque arte che sia veramente tale.
Ciao.
—
Gustavo
-
27 Agosto 2016 alle 11:32 #107534::
letteracdp” post=107676È vero quel che dici; però è anche vero che la disputa sulle regole di un’arte, la questione stessa se un’arte possa avere, e fino a che punto, regole normative, e via discorrendo sono questioni che agitano qualunque arte che sia veramente tale.
Una frase da incorniciare!
-
27 Agosto 2016 alle 15:04 #107535::
Aspetta, non ingeneriamo confusione nei lettori: quella che conta per la sillabazione è la codifica in uscita, quella in ingresso è ininfluente: l’algoritmo di sillabazione di TeX lavora sulla lista orizzontale in cui è temporaneamente memorizzato un capoverso prima della sua divisione in righe (come sai perfettamente). Nota che in quasi tutti gli esempi che affiggo in pubblico includo sempre la linea…
Non è mia intenzione confondere i lettori; so benissimo che quello che conta, o la sola cosa che dovrebbe contare, è la codifica di uscita; ma quando si vogliono scrivere cose “strane” (come sai un altro dei miei chiodi fissi è il greco… molti lettori sono umanisti che scrivono anche in greco classico, e se non vogliono usare la traslitterazione latino-greca che ho più o meno inventato per poter comporre in greco con una tastiera “latina”, funzionerebbe anche senza specificare la codifica d’entrata; ma gli umanisti preferiscono scrivere direttamente in greco e allora il discorso LICR diventa essenziale) è necessario specificare anche la codifica d’entrata. Quindi il lettore NON viene confuso se gli si dice: specifica sia la codifica d’entrata sia quella di uscita.
Quanti anni hai? non lo so, ma sei certamente più giovane di me; nello stesso tempo hai un approccio a LaTeX uguale al mio quando negli anni ’80 ho cominciato ad usare LaTeX (ovviamente LaTeX209, perché LaTeX2e è uscito nel ’94), ma allora io viaggiavo verso i cinquanta, mentre tu probabilmente viaggiavi verso i trenta. Oggi io ho 76 anni suonati; quindi il prefisso Old mi si addice.
Non so se memoir faccia quello che ho scritto; certamente consente di non numerare le sezioni nella frontmatter, come è giusto che sia, secondo me.
Ma, come dice Tantau descrivendo tikz e pgf, in tipografia le regole ci sono ma è lecito trasgredirle se si sa quello che si sta facendo; egli aggiunge che siccome quasi nessuno di noi è un tipografo professionista, è meglio attenersi alle regole. La tipografia è un’arte, ma è anche una tecnica che serve essenzialmente a mettere a suo agio il lettore (Bringhurst); deve farlo attraverso diversi mezzi che vanno dal layout della pagina, fino alla strutturazione del testo, al lessico usato, dal tipo di fraseggio, e da tante altre cose. Ma mentre l’arte di scrivere richiede delle abilità che non tutti abbiamo (uso la prima plurale, perché io non ho queste abilità e suppongo di non essere il solo), l’arte di “mettere in pagina lo scritto”, secondo Bringhurst deve giocare sugli aspetti non verbali, ma deve passare inosservata perché non deve distrarre il lettore.Ora nel nostro caso, sezionare o non sezionare un “capitolo” nella frontmatter, si parla dell’aspetto verbale; quindi sezionare si può fare, ma con sezioni numerate si ottiene che il numero del capitolo sia zero; per evitare il valore “zero” per il numero del capitolo, come succede regolarmente nella frontmatter, diventa necessario alterare il valore del contatore secnumdepth, ripristinandone i valori di default nella mainmatter. Oppure quel “capitolo” non deve stare nella frontmatter. Altra possibilità: si può ridefinire il numero della sezione in modo che non faccia riferimento al numero del capitolo; graficamante ci starebbe, ma poi ci sarebbero problemi di target duplicati con hyperref. Non vedo altre soluzioni. Credo che nemmeno tu ne veda altre, tanto che hai creato l’ambente con quel nome lunghissimo. Il risultato finale è lo stesso, ma se la modifica viene fatta nella definizione della macro \frontmatter, il tutto avviene in modo automatico, senza possibilità di scordarsi di mettere le sezioni dentro quell’ambiente speciale. Ma su questo siamo d’accordo; anche con approcci diversi, lo scopo è lo stesso e le due diverse soluzioni (mica tanto) sono una ennesima riprova che gli stessi risultati si possono ottenere per vie diverse.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.