J'essaie de désactiver marginpar lors du démarrage d'un nouvel environnement multicols avec ce nouvel environnement, qui utilise les multicols et forfaits chngpage:largeur d'en-tête sur la dernière page du chapitre
\newenvironment{multi}[1]{%
\newlength{\newtextwidth}%
\setlength{\newtextwidth}{\marginparwidth}%
\addtolength{\newtextwidth}{-1cm}%
\addtolength{\headheight}{.5cm}%
\let\oldheadrule\headrule%
\addtolength{\headwidth}{\newtextwidth}%
\begin{adjustwidth}{}{-\newtextwidth}\begin{multicols}{#1}}%
{\end{multicols}\end{adjustwidth}}
Ce qui fonctionne très bien: latex header http://img6.imageshack.us/img6/6757/screenshotewa.png
Uhm, presque, depuis la dernière page du chapitre en cours "Lorem ipsum" il se comporte comme si je ne l'avais pas demander à: \ addtolength {\ headwidth} {\ newtextwidth}: latex header at the end of the chapter http://img11.imageshack.us/img11/6072/screenshotwbd.png
Comment pourrais-je résoudre ce problème?
Modifier:
J'utilise aussi fancyhdr.
2ème Edition:
A PoC:
\documentclass[12pt,a4paper,oneside]{report}
\usepackage[utf8]{inputenc}
\usepackage[top=2cm,left=2cm,right=4.5cm]{geometry}
\usepackage{chngpage}
\usepackage{color}
\usepackage{amsmath}
\usepackage[pdftex,bookmarks,pdfpagemode=UseOutlines,bookmarksopen,backref
,colorlinks,urlcolor=blue,linktocpage]{hyperref}
\usepackage{url}
\usepackage{amssymb}
\usepackage{lipsum}
\usepackage{fancyhdr}
\usepackage{multicol}
\usepackage{indentfirst}
\usepackage{listings}
\usepackage{boxedminipage}
\pagestyle{fancy}
\setlength{\columnseprule}{1pt}
\setlength{\marginparwidth}{4cm}
\rhead{\large\leftmark}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}
\makeatletter
\renewcommand*\@makechapterhead[1]{%
{\parindent \[email protected] \raggedright \normalfont
\huge\bfseries
#1\par\nobreak
\vskip 20\[email protected]
}}
\makeatother
\let\oldmarginpar\marginpar
\renewcommand\marginpar[1]{\-\oldmarginpar[\sffamily\raggedleft\footnotesize #1]%
{\sffamily\raggedright\footnotesize
\begin{boxedminipage}{\marginparwidth}#1\end{boxedminipage}
}}
\newenvironment{multi}[1]{%
\newlength{\newtextwidth}%
\setlength{\newtextwidth}{\marginparwidth}%
\addtolength{\newtextwidth}{-1cm}%
\addtolength{\headheight}{.5cm}%
\let\oldheadrule\headrule%
\addtolength{\headwidth}{\newtextwidth}%
\begin{adjustwidth}{}{-\newtextwidth}\begin{multicols}{#1}}%
{\end{multicols}\end{adjustwidth}}
\begin{document}
\tableofcontents
\chapter{Lorem ipsum}
\begin{multi}{2}
\lipsum[1-20]
\end{multi}
\chapter{Lorem ipsum}
\begin{multi}{2}
\lipsum[1-20]
\end{multi}
\chapter{Lorem ipsum}
\begin{multi}{2}
\lipsum[1-20]
\end{multi}
\end{document}
Il devrait être possible de poursuivre une seule colonne sur la même page, après "multi", mais les en-têtes doivent être conservés comme quand la page a été démarrée dans l'environnement "multi". Pourquoi aurais-je besoin d'une seule colonne après plusieurs colonnes sur la même page avec un marginpar? Imaginez présenter le code source de l'article, avec de petits indices en marge.
Il peut être utile de montrer un exemple complet de LaTeX, y compris tous les paquets que vous utilisez - par ex. \ headwidth est défini dans fancyheadings, pas dans LaTeX de base. –