Ich hab hier mal etwas mit den Längen gespielt. Die Rahmen der Boxen sind jetzt exakt mit dem Text bündig und die Eintragung in der Mitte hat genau den Platz, der zwischen zwei Spalten leer bleibt. Kommt das für dich hin?
Code:
\documentclass{scrbook}
%
\usepackage{ucs}% % Allow Unicode
\usepackage[utf8x]{inputenc}% % Umlaute in der Eingabe
\usepackage[T1]{fontenc}% % Umlaute in der Ausgabe
\usepackage[english,ngerman]{babel}% % Sprachenpaket
\usepackage{multicol}%
\usepackage{blindtext}%
\usepackage{calc}
\newlength{\lenZ}
%
\begin{document}
\begin{multicols}{2}
\blindtext
\end{multicols}
\newcommand{\YAparbox}[3]{%
\noindent%
\begin{minipage}{\textwidth}
\fbox{\parbox[][][c]{(\linewidth-\columnsep)/2-2\fboxsep-2\fboxrule}{#1}}%
\parbox[][][c]{\columnsep}{\centering #2}%
\fbox{\parbox[][][c]{(\linewidth-\columnsep)/2-2\fboxsep-2\fboxrule}{#3}}\\[\lenZ]
\end{minipage}
\normalsize
}%%% END of \YAparbox
%* -*----1----*----2----*----3----*----4----*----5----*----6----*----7--
\newcommand{\YAparboxHL}{%
\noindent%
\begin{minipage}{\textwidth}
\fbox{\parbox[c][][c]{(\linewidth-\columnsep)/2-2\fboxsep-2\fboxrule}{\centering \textbf{2008}}}%
\parbox[][][c]{\columnsep}{\mbox{}}%
\fbox{\parbox[c][][c]{(\linewidth-\columnsep)/2-2\fboxsep-2\fboxrule}{\centering \textbf{2010}}}\\[\lenZ]
\end{minipage}
\normalsize
}%%% END of \YAparboxHL
%* -*----1----*----2----*----3----*----4----*----5----*----6----*----7--
\setlength{\lenZ}{0.48em}
\YAparboxHL
\YAparbox{kurzer Text}{\mbox{!}}{längerer Text bla bla blub blub bla bla blub blub bla bla blub blub}
\YAparbox{links ein längerer Text bla bla blub blub bla bla blub blub bla bla blub blub}{\mbox{!}}{rechts kurzer Text}
\YAparbox{\mbox{}}{\mbox{}}{links nichts}
\YAparbox{rechts nichts}{\mbox{!}}{\mbox{}}
\begin{multicols}{2}
\blindtext
\end{multicols}
\end{document}
Kurze Erklärung dazu: Mit dem calc-Paket können beliebige Längen miteinander verrechnet werden. Daher ist jetzt die Länge der gerahmten Parboxen
(\linewidth-\columnsep)/2-2\fboxsep-2\fboxrule
was nichts anderes heisst als:
Gesamtbreite des einspaltigen Textes minus Breite des Raums zwischen den Spalten in zweispaltigen Text, das dann geteilt durch 2 entspricht einer Spaltenbreite im zweispaltigen Satz.
Von diesem Wert wird 2x der Abstand des fbox-Rahmens vom innenstehenden Text abgezogen (2x, da es ja rechts und links der Fall ist), und dann wird noch 2x die Liniendicke des Rahmens abgezogen (wieder rechts und links).
(Hoffentlich ist das noch einigermassen verständlich.)
Lesezeichen