
In Erweiterung einer vorherigen Frage,Schattierte Multicols, wie kann ich in der Multicol-Umgebung abgerundete Ecken für die äußeren 4 Ecken (also die Ecken direkt neben den Seitenrändern) einfügen
Diese Frage ist nur dann wirklich relevant, wenn Multicol-Shading oder Multicol-Ränder verwendet werden; eine Lösung finden Sie in Teil I dieser Frage (siehe Link oben).
Die Hauptsache ist also, dass die Umgebung in der Lage sein muss, einen Seitenumbruch in der Mitte vorzunehmen. David Carlisle hat in einem der Kommentare vorgeschlagen, den Box-Befehl zu patchen, aber wie kann das so gemacht werden, dass bei einer linken Spalte nur die linken beiden Ecken abgerundet werden, bei einer rechten Spalte nur die rechten beiden Ecken und bei einer mittleren Spalte keine Ecken (wenn es 3 oder mehr Spalten gibt).
Antwort1
Wie in der Frage erwähnt, ersetzt dies im Wesentlichen nur \fcolorbox
durch mdframed
(mit Dank an Marco für die Bereitstellung der richtigen mdframed
Beschwörung)
\documentclass{article}
\usepackage{multicol}
\usepackage[framemethod=tikz]{mdframed}
\makeatletter
\let\old@page@sofar\page@sofar
\let\old@box\box
\let\old@rlap\rlap
\def\page@sofar{%
\let\box\colorcolumn
\def\rlap{\let\box\old@box\old@rlap}%
\old@page@sofar
}
\def\colorcolumn#1{%
\ifnum#1=\mult@rightbox
\def\zz{\begin{mdframed}[middlelinewidth=2pt,roundcorner=5pt,leftline=false,backgroundcolor=yellow]}%
\fi
\ifnum#1=\numexpr\mult@rightbox+2\relax
\def\zz{\begin{mdframed}[middlelinewidth=2pt,roundcorner=5pt,rightline=false,backgroundcolor=yellow]}%
\fi
\ifnum#1=\numexpr\mult@rightbox+4\relax
\def\zz{\begin{mdframed}[middlelinewidth=2pt,roundcorner=5pt,rightline=false,leftline=false,backgroundcolor=yellow]}%
\fi
\kern\dimexpr-15pt\relax
{\let\box\old@box\vtop{%
\zz{%
\hbox{\box#1\llap{\phantom p}}}%
\end{mdframed}}}%
\kern\dimexpr-15pt\relax
}
\makeatother
\def\a{Red blue green yellow black white. }
\def\b{One two three four five six. }
\def\c{\stepcounter{enumi} \Roman{enumi}
\a\a\b\b\a\a\b\a\a\b\b\b\b\b\b\a\a\b}
\begin{document}
\begin{multicols}{3}
\c\c\c\c\c\c\c\c\c\c
\end{multicols}
\end{document}