- Questo topic ha 14 risposte, 1 partecipante ed è stato aggiornato l'ultima volta 2 mesi, 4 settimane fa da
GuITstaff.
-
CreatoreTopic
-
22 Giugno 2026 alle 13:32 #134019::
Il problema è sia mostrato sia descritto nei sei file che allego: tre file “—.tex” e i corrispondenti “—.pdf”.
Grazie in anticipo a chi mi spiegherà qualche cosa e grazie subito a chi legge.Il problema è spiegato nel testo stesso dei file.
AGGIUNTA
Quando ho fatto il post non ho descritto il problema,
ma ho solo rimandato alla descrizione inserita
come testo negli esempi.
Aggiungo adesso descrizione compatta del problema.La ridefinizione: “\def\contentsname{\relax}”
può essere usata per eliminare intestazione automatica
dell’indice prodotto da “\tableofcontents”.La regolazione ad un valore negativo del parametro “afterskip”
nella ridefinizione di “\section” produce titoletto di sezione
in linea con il testo.Se si fa la seconda cosa (“afterskip” negativo) in un file che usa “babel”
allora la ridefinizione di “\contentsname” non funziona.FINE della AGGIUNTA
Un saluto
BattistaP.S.: si sono caricati solo i file sorgente, perché i pdf sono troppo grandi pur essendo di una sola pagina ciascuno.
B. -
CreatoreTopic
-
AutoreRisposte
-
-
22 Giugno 2026 alle 13:33 #134020::
Battista ho letto il tuo messaggio e ho ricompilato sul mio Mac i tre esempi che hai allegto. Ti confesso che non ho capito che cosa vorresti ottenere. dei Mini-indici dove le voci indicizzate sono scritte un dopo l’altra in una lista che non occupa una pagina intitolata Indice, come succede normalmente nei documenti tradizionali?
Un piccolo indice specifico da inserire all’inizio di ogni capitolo per mostrare ciò che il capitolo contiene?In questo secondo caso puoi usare direttamente il comando \chapterprecis della classe memoir, paragrafo 6.5.3; anzi ti suggerirei di usare questa classe onnipotente che fa tutto e di più; il tempo che occorre per imparare ad usarla è compensato dal tempo risparmiato per inventare nuovi comandi o nuovi ambienti.
Tornando al tuo messaggio, compilando i tuoi tre esempi ho ottenuto solo i soliti indici, con babel, e senza allineamento delle voci. Li ho girati in tutti i modi, ma non sono riuscito a replicare quanto tu dici. Mio Alzeimer incipiente? Forse. Tuttavia il consiglio di studiare memoir non è frutto di Alzeimer.:) 🙂
-
22 Giugno 2026 alle 13:33 #134021::
Caro Claudio
inanzitutto grazie della attenzione e dei suggerimenti.Mi chiedi che cosa vorrei ottenere.
Io vorrei semplicemente l’indice generato da “\tableofcontents” senza la intestazione.
Questo lo ottengo nell’esempio TESTb grazie alla ridefinizione: “\def\contentsname{\relax}” .
Poi vorrei anche che le intitolazioni prodotte da section stessero
in linea e non in display e questo lo ottengo mettendo un valore negativo
per il parametro “afterskip” nella ridefinizione di “\section”. Il guaio è che a questo punto
riappare la intitolazione automatica dell’indice.
L’aspetto problematico è solo questo.No possono farti vedere il risultato, visto che non riesco a caricare i pdf,
ma se hai compilato i miei tre esempi dovresti vedere che:– la intitolazione dell’indice è presente in TESTa, come previsto;
– la intitolazione dell’indice NON è presente in TESTb,
grazie alla ridefinizione di “\contentsname”– la intitolazione dell’indice E’ PRESENTE in TESTc,
non ostante la ridefinizione di “\contentsname”.Per ora non riesco a dire altro.
Grazie ancora.
Un caro saluto, e … buona Pasqua.
Battista -
22 Giugno 2026 alle 13:33 #134022::
Il fatto che nella versione TESTc compaia ancora l’intestazione si corregge correttamente aggiungendo un paio di righe nel preambolo:
[code]\documentclass[a4paper,10pt]{article}% classe
\usepackage[T1]{fontenc}% T1 encoding for text
\usepackage[italian]{babel}% testo italiano
\usepackage{etoolbox}% per disporre del comando \addto
\addto\captionsitalian{\def\contentsname{\relax}}% correzione che elimina l’intestazione
…
[/code]Per comporre le voci dell’indice una dopo l’altra senza lo spazio che le separa verticalmente ho il sospetto che lavorare su \afterskip non sia sufficiente o non sia corretto; infatti non mi sembra che funzioni in nessuno dei tuoi 3 esempi.
Ci provo ancora, e ti farò sapere se ci riesco. -
22 Giugno 2026 alle 13:34 #134023::
Donque i campi di \@startsection NON consentono di modificare gli spazi sopra e/o sotto l’indicazione della voce da inserire nell’indice.
Tuttavia esiste il pacchetto tocloft.sty che consente di modificare più o meno a piacere qualunque dettaglio dell’indice, in particolare gli spazi da inserire prima e dopo ogni voce. Cols seguente codice nel preambolo mi pare che si ottenga direttamente quello che desideri (sempre che io abbia capito bene).
[code]\documentclass[a4paper,10pt]{article}% classe
\usepackage[T1]{fontenc}% T1 encoding for text
\usepackage[italian]{babel}% testo italiano
\usepackage{etoolbox}
\addto\captionsitalian{\def\contentsname{\relax}}
\usepackage{tocloft}% <—————————– pacchetto essenziale
\cftbeforesecskip=0pt% <—————————– impostazione dello spazio tra le voci di \section
%
\makeatletter
% ridefinizione del comando “\section”
\renewcommand\section{\@startsection%
{section}% Nome
{1}% Livello
{\z@}% Rientro
{1em \@plus 1ex \@minus 0.2ex}% before skip, ma se negativo… % era 3.25ex
{-1em} % afterskip”, ma se negativo…; era -2ex
{\normalfont\normalsize\bfseries}% stile di scrittura
}% FINE di “\section”
\makeatother
%
[/code] Era questo ciò che volevi ottenere? -
22 Giugno 2026 alle 13:34 #134024::
Devo integrare perchè Claudio ha postato due messaggi di fila.
A) risposta per punti al messaggio #123224.
Vado per punti.
1) FUNZIONA la soluzione proposta da Claudio. Grazie Claudio !
2) La differenza di comportamento tra i due esempi TESTb e TESTc rimane inspiegata.
3) Mi pare che il mio uso del comando \@startsection per ridefinire \section sia perfettamente corretta.
Io non faccio ridefinizione esplicita di \afterskip. Per me “afterskip” è il nome di un parametro del comando \@startsection.4) Non capisco cosa ci sarebbe di scorretto nei miei esempi,
e non capisco cosa intende Claudio dicendo che nessuno dei tre esempi funziona.
Il primo e il secondo esempio fanno esattamente cosa mi aspetto, il terzo invece no.B) integrazione per rispondere al messaggio #123225
Io non voglio cambiare la spaziatura dell’indice.
Vorrei solo eliminare la intestazione automatica dell’indice e contemporaneamente usare intestazioni di sezione in riga.
I miei esempi TESTb e TESTc mostrano che questa cosa non riesce, almeno non in modo immediato.
(Riesce sì, invece, se uso etoolbox e \addto).
La incapacità di \@startsection di descrivere separatamente lo stile dei titoli di sezione tra testo e indice
è effettivamente un problema, ma non è il mio problema.ancora un saluto a tutti
Battista
p.s.: non conoscevo “tocloft.sty” – adesso lo ho guardato – vedo che non ha a che fare con il problema che ho descritto,
ma MI SARA’ PROBABILMENTE UTILE PER UN ALTRO PROBLEMA –
quindi … grazie Claudio anche di questa segnalazione
la documentazione di tocloft mi ha fatto capire cose che non ero riuscito a capire cercando nella documentazione ufficiale di LaTeX
(anche se non c’entra, ripeto, con il problema per cui ho scritto)
B. -
22 Giugno 2026 alle 13:34 #134025::
Battista, non ti ho spegato perché il terzo esempio non funzionava ed è stato necessario ricorrere a \addto. I comandi per creare l’indice fanno riferimento a quanto specifica babele per le parole infisse, come per esempio \contentsname. Se però mediante \addto aggiungi questa ridefinizione all’elenco delle parole infissie per l’italiano, ecco che riesci a cambiare la parola Indice con quello che ti pare, per esempio il “niente” fornito da ]relax.
La spiegazione del comando afterskip che ti ho messo nei miei commenti dipende dl fatto che se il valore è poisitivo fa quel che ti aspetti, “però” se è negativo serve per altre cose, cioè per lo spaio orizzontale fra l’intestazione della sezione e il testo/titolo della sezione. Questo è difficile da capire dall’astrusità del file source2e.pdf che è scritto per gli addetti ai lavori e non per il comune utente di LaTeX, che in generale non sa nemmeno che il file di documentazione esiste per davvero.
Comunque, evidentemente io avevo capito che non volevi le voci dell’indice spaziate l’una dall’altra e chiaramente non avevo capito bene. Se ti vanno bene spaziate il solo beforeskip va bene.
-
22 Giugno 2026 alle 13:35 #134026
-
22 Giugno 2026 alle 13:35 #134027
-
22 Giugno 2026 alle 13:36 #134028::
Leggo ora il post e vedo che avete risolto… Il problema segnalato, comunque, evidenzia l’inopportunità di modificare comandi interni di LaTeX (nello specifico [tt]@startsection[/tt]) poiché non sai mai come questi interagiscono con pacchetti esterni (in questo caso [tt]babel[/tt]).
Esistono decine di classi e pacchetti che, senza dover reinventare la ruota, permettono ogni sorta di personalizzazione.
Di seguito un emc che risolve il problema segnalato e crea il layout dei paragrafi voluto:
[code]% !TEX encoding = UTF-8 Unicode
% !TEX program = lualatex\documentclass{article}
\usepackage{fontspec}
\usepackage[italian]{babel}
\usepackage{titlesec}
\usepackage{lipsum}\AddToHook{cmd/tableofcontents/before}{\def\contentsname{\relax}}
\titleformat{\section}[runin]{\normalfont\normalsize\bfseries}{\thesection}{1em}{}\begin{document}
\tableofcontents
\section{Paragrafo}
\lipsum[1]
\end{document}[/code]
Matteo -
22 Giugno 2026 alle 13:36 #134029::
OK, sia la soluzione proposta da Claudio sia la soluzione proposta da Matteo funzionano. GRAZIE !
OK, io non devo reinventare la ruota.PERO’ devo fare due precisazioni.
1) Io non ho affatto agito per “modificare comandi interni di LaTeX (nello specifico @startsection)”.
Ho usato @startsection per modificare section, e credo di averlo fatto in un modo conforme a quello che sta indicato in “The LaTeX Companion” (di cui posso adesso consultare solo la seconda edizione).2) Avere una soluzione che funziona va bene, ma sono sempre un poco a disagio quando mi pare di avere qualche cosa in sospeso e che non so spiegare.
In questo caso la cosa che non so spiegare è la differenza tra i miei esempi detti TESTb e TESTc, che adesso non sto a descrivere di nuovo.
Ovviamente il disagio di non capire questa cosa è un fatto soggettivo e personale.saluti
Battistap.s.: a che cosa serve “\usepackage{fontspec}” nell’esempio minimo di Matteo ??
B. -
22 Giugno 2026 alle 13:36 #134030::
Hi visto che nelle righe di autoconfigurazione Matteo compila il suo esempio usando lualatex, non podflatex; fontspec serve per usaare i font OpenType che pdflatex non può usare.
Tieni presente che guardando nella sfera dell’indovino mi pare di vedere un declino di pdflatex e una fioritura di lualatex. Io ancora uso moltissimo pdflatex, ma ci sono cose che, senza invocare il linguaggio Lua, si possono fare solo con lualatex; per esempio, i PDF archiviabili con Lualatex si possono fare senza ricorrere a pacchetti esterni. L’operazione di tagging sta andando avanti solo per lualatex. Quindi sarebbe desiderabile, anche per me, familiarizzarsi di più con lualatex. Non credo, ma forse mi sbaglio, che il LaTeX Companion si occupi di Lualatex; io ho solo la prima edizione e la mia libreria è strapiena; non ho più spazio per altri libri/manuali. 🙁 -
22 Giugno 2026 alle 13:37 #134031::
Raguardo ancora le cose sperando di capire, prima o poi, le cose che adesso non capisco (anche se confermo che le soluzioni proposte da persone più esperte di me funzionano).
Devo far osservare una inesattezza in uno dei messaggi di Claudio.
Il pacchetto “etoolbox” NON è necessario per avere il comando “\addto” che è definito in “babel”.
(vedi codice nel messaggio 123225 e codice con commento in messaggio 123224)
Tutto quì, per ora.
saluti
Battistap.s.:
FORSE nella guida-guit (versione B5-0.99.58 — 2026-01-09 appena scaricata)
c’è qualche problema nella documentazione di “\addto”.
Si vedano le prime righe di pagina 476 e la nota nella stessa pagine, e si veda poi la pagina 649.
Nella prima il comando è riferito a babel; nella seconda sembra (?) riferito a etoolbox.
B. -
22 Giugno 2026 alle 13:37 #134032::
Il pacchetto “etoolbox” NON è necessario per avere il comando “\addto” che è definito in “babel”.
Hai ragione, probabilmente Claudio si è confuso tra [tt]addto[/tt] (definito da [tt]babel[/tt], appositamente per modificare le impostazioni linguistiche) e [tt]appto[/tt] (definito da [tt]etoolbox[/tt], per l’inserimento di codice alla fine di una macro).
-
22 Giugno 2026 alle 13:37 #134033
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.