Risposte nei forum create
-
AutoreRisposte
-
::
i doppi # sono dovuti al fatto che è definito all’interno di un comando contenitore che richiama la ridefinizione.Per quanto riguarda immediate sono obbligato a metterlo perché se si presentano due sezioni nella stessa pagina quando viene processato il valore di \thesection è lo stesso per entrambi le sezioni, cosa che non succede nel caso in cui si utlizzi \immediate.
Senza immediate il problema non si pone tutto funziona perfettamente, ma i numeri scritti nel file sono errati.
Anche il pacchetto minitoc è obbligato a scrivere \immediate per garantire l’integrità dei dati.
::
Diciamo che la prova è più accademica visto che per il momento non mi serve. Mi rendo conto che è necessario compilare due volte e cancellare il file ogni volta, ma questo è un problema che volevo pormi successivamente.
Tableofcontents non lo posso usare perché si occupa già di creare l’indice globale di tutti gli articoli presenti. L’uso di queste macro mi servirebbe teoricamente per creare un sommario ad esempio in una review molto lunga, che compare insieme ad altri articoli che invece non necessitano di questo minisommario.
La prova con \newwrite funziona, ma il risultato è sempre lo stesso come se ci fosse qualcosa che inibisce la scrittura e l’uso di lipsum sblocchi la cosa…Se spulcio il file log ritrovo le prime tre righe nel log file, come se il valore passato a \write fosse maggiore di 15. strano perché il log riporta \@uscita=\write3
[edit]
Ho risolto. Tutto è imposto da \immediate che costringe il comando a essere svolto immediatamente. Tranne che su \openout, che viene eseguito al momento dello shipout. Quindi i capitoli che compaiono sulla prima pagina non possono essere scritti perché non si sa dove scriverli…
::
trovi tutti i file all’indirizzo
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pythonjp/doc_jp/texinputs/
::
Dopo aver studiato un po’ il problema e aver capito come funziona il comando \vsplit sono riuscito a far quello che volevo, cambiare l’ordine delle pagine comporre, all’occorrenza l’indice con un rimando all’interno se l’indice stesso era più lungo di una pagina.
Vi posto un esempio minimo che ho utilizzato come caso studio per capire il funzionamento di vsplit e di come venissero gestite ordine ecc.
`
\documentclass{article}
\usepackage{lipsum,calc}
\begin{document}
\setlipsumdefault{1-3}
\newlength{\paginamax} \setlength{\paginamax}{\textheight-15pt}
%riempio il box
\newbox\contenuto
\newbox\copia
\newbox\primapagina
\setbox\contenuto=\vbox{\lipsum}
%creo una copia dei contenuti
\setbox\copia=\copy\contenuto
%controllo che il box ecceda una pagina
\setbox201=\vsplit\copia to \textheight
\ifvoid\copia
%il contenuto è vuoto compongo la pagina con il contenuto così com'è…
\thispagestyle{empty}
\box\contenuto
\else
%richiedo lo splitting del box e creo la prima pagina
\setbox\primapagina=\vsplit\contenuto to \paginamax
\setbox\primapagina=\vbox{\unvbox\primapagina\par\hfill\footnotesize{(continua…)}}
% il contenuto rimanente è nella seconda pagina
\box\contenuto
%definisco il nuovo stile
\newpage
\thispagestyle{empty}
\box\primapagina
\fi
\end{document}
`
Spero possa essere utile ad altri, ed aspetto consigli su come risolvere in modo più furbo.
Grazie e ciao 🙂
::
Riguardando il codice mi sono accorto di un errore credo dovuto al copipa incolla, sistemando quello qualcosa migliora.
Hai scritto nel tuo codice\newlength{\LMDwidth} \setlength{\LMDwidth}{\textwidth}
\newlength{\LMDwidtha} \setlength{\LMDwidth}{\textwidth}
\newlength{\LMDwidthb} \setlength{\LMDwidth}{\textwidth}ma dovrebbe essere
\newlength{\LMDwidth} \setlength{\LMDwidth}{\textwidth}
\newlength{\LMDwidtha} \setlength{\LMDwidtha}{\textwidth}
\newlength{\LMDwidthb} \setlength{\LMDwidthb}{\textwidth}Ciao
::
Ci sono vari metodi a seconda della classe del documento che usi.
Se stai usando la classe book puoi mettere
`
\frontmatter
\tableofcontents
\mainmatter
`
Cosa succede? \frontmatter cambia la numerazione in numeri romani minuscoli, inserisci il tuo sommario e poi dici a latex di passare alla numerazione normale, che riparte da 1.
in questo modo non sei costretto a cambiare lo stile delle pagine.
-
AutoreRisposte