マルチコル環境でmarginpar(marginparwidth)をオフにする

StackOverflow https://stackoverflow.com/questions/822126

  •  03-07-2019
  •  | 
  •  

質問

これで新しいマルチコル環境を開始するときにmarginparをオフにしようとしています:

\renewenvironment{multicols}[1]{%
  \let\oldmarginparwidth\marginparwidth 
  \setlength{\marginparwidth}{0}%
  \begin{multicols}{#1}
}{%
  \end{multicols}%
  \setlength{\marginparwidth}{\oldmarginparwidth}%
}

ただし、機能しません。何が足りないのですか?

役に立ちましたか?

解決

そこにあるコマンドはページの途中で機能しません。それを行うにはchangepageパッケージを使用する必要があります。

\usepackage{changepage} 

私はあなたがページの幅全体を占有しようとしていると思います。 tufte-latexクラスからこれにニックネームを付けました:

最初に、最初にテキスト幅に追加され、最後に減算される「オーバーハング」量を定義します:

\newlength{\overhang}
\setlength{\overhang}{\marginparwidth}
\addtolength{\overhang}{\marginparsep}

その後、marginparスペースを削除する場合は、オーバーハング量とともに\ adjustwidthを使用します。

\begin{adjustwidth}{}{-\overhang}
% This will be displayed full-width
\end{adjustwidth}{}{-\overhang}

Damienが指摘したように、まだこのようなmarginparsを使用できます。それらはページ幅を超えるだけです。ただし、\ multicolsを使用すると、floatを使用できなくなります。

それがあなたが必要とすることを願っています!

他のヒント

ここで何を探しているのか正確にはわかりませんが、一般に、marginparsはすでにマルチコルでは許可されていません。 multicolドキュメントから:

  

... floatsおよびmarginparsは現在の実装では許可されていません[これは時間の不足によって決まります。 fl oatsを実装するには、LATEX出力ルーチン全体を再実装する必要があります。]

chngpageパッケージを使用し、その環境の前後で異なる値を設定/リセットする新しい環境を定義することで、それを機能させることができました。

ただし、各\ chapterの最後のページにはまだ問題があります:章の最後のページのヘッダー幅

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top