Disattivazione di marginpar (marginparwidth) in ambiente multicols
-
03-07-2019 - |
Domanda
Sto provando a disattivare marginpar all'avvio di un nuovo ambiente multicols con questo:
\renewenvironment{multicols}[1]{% \let\oldmarginparwidth\marginparwidth \setlength{\marginparwidth}{0}% \begin{multicols}{#1} }{% \end{multicols}% \setlength{\marginparwidth}{\oldmarginparwidth}% }
Tuttavia, non funziona. Cosa mi sto perdendo?
Soluzione
Il comando che hai ricevuto non funzionerà a metà pagina, per farlo devi usare il pacchetto changepage.
\usepackage{changepage}
Presumo che tu stia cercando di occupare l'intera larghezza della pagina. L'ho soprannominato dalla classe tufte-latex:
Innanzitutto, definisci un importo di "sporgenza" che verrà aggiunto all'inizio alla larghezza del testo e sottratto alla fine:
\newlength{\overhang}
\setlength{\overhang}{\marginparwidth}
\addtolength{\overhang}{\marginparsep}
Quindi usa \ adjustwidth con la quantità di sporgenza quando vuoi rimuovere lo spazio marginpar:
\begin{adjustwidth}{}{-\overhang}
% This will be displayed full-width
\end{adjustwidth}{}{-\overhang}
Come ha sottolineato Damien, puoi comunque usare marginpars in questo modo, supereranno solo la larghezza di pagina. \ multicols ti impedirà comunque di usare i float.
Spero che sia quello che ti serve!
Altri suggerimenti
Non sono sicuro esattamente cosa stai cercando qui, ma generalmente le marginbar non sono già consentite nei multicol. Dalla documentazione multicol:
... float e marginbar non sono ammessi nell'attuale implementazione [Questo è dettato dalla mancanza di tempo. Per implementare i galleggianti è necessario reimplementare l'intera routine di output LATEX.].
Sono riuscito a farlo funzionare usando il pacchetto chngpage e definendo un nuovo ambiente che imposta / ripristina valori diversi prima / dopo quell'ambiente.
Tuttavia, ho ancora un problema nell'ultima pagina di ogni \ capitolo: larghezza dell'intestazione nell'ultima pagina del capitolo