Sie sind hier

Einspaltige Zusammenfassung über zwei Seiten in einem zweispaltigen Dokument

Hallo,

ich bin -- nachdem ich einen Tipp von Markus gelesen hatte -- bei http://tex.stackexchange.com/ über einen Beitrag gestolpert, bei dem beschrieben wird, wie man eine einspaltige Zusammenfassung über mehrere Seiten in einem zweispaltigen Dokument setzen kann. Ich würde das gerne mit den KOMA-Script-Klassen umsetzen.

Leider werden durch die dort beschriebene Lösung dabei vor dem Titel leere Seiten eingefügt - ohne den \maketitle-Befehl geht es. Prinzipiell hab ich das Vorgehen verstanden, allerdings bin ich auf der untersten TeX-Ebene nicht so bewandert, dass ich tatsächlich wüsste, was im einzelnen mit den Boxen passiert, um es verbessern zu können. Hat jemand eine Idee, wie man das Beispiel anpassen könnte, damit es reibungslos funktioniert? Oder gibt es gar einen clevereren Ansatz? Das Minimalbeispiel ist bereits auf KOMA-Script umgestellt.

\documentclass[twocolumn,abstract]{scrartcl}
%\documentclass[twocolumn]{article}
 
\usepackage{blindtext}
 
\makeatletter
\newsavebox\longtwo@box
\def\longtwocolumn{\@ifnextchar[\longtwo@\twocolumn}
\long\def\longtwo@[#1]{%
  \begingroup%
    \let\longtwo@column\twocolumn%
    \let\longtwo@mkttl\maketitle%
    \def\maketitle{%
      \begingroup%
      \let\newpage\relax%
      \longtwo@mkttl%
      \endgroup%
    }%
    \longtwo@column[{%
      \@twocolumnfalse%
      \global\setbox\longtwo@box\vbox{#1}%
      \longtwo@split%
    }]%
    \longtwo@repeat%
  \endgroup
}
\def\longtwo@repeat{%
    \longtwo@column[{%
      \@twocolumnfalse%
      \longtwo@split%
    }]%
  \longtwo@repeat%
}
\def\longtwo@split{%
  \ifdim\ht\longtwo@box>\textheight%
    \begingroup%
    \vbadness10000%
    \setbox0\vsplit\longtwo@box to \textheight%
    \setbox1\vbox{\unvbox\longtwo@box}%
    \global\setbox\longtwo@box\vbox{\unvbox1}%
    \setbox2\vbox to \textheight{%
      \unvbox0%
    }%
    \ht2=0.9\textheight%
    \box2%
    \endgroup%
  \else%
    \ifdim\ht\longtwo@box>0.87\textheight%
      \global\let\longtwo@repeat\clearpage%
    \else%
      \global\let\longtwo@repeat\relax%
    \fi%
    \unvbox\longtwo@box%
  \fi%
}
\makeatother
 
\begin{document}
\title{My title}
\author{My the first}
\longtwocolumn[{
\maketitle%
\begin{abstract}
\Blindtext[6][2]
\end{abstract}
}]
\Blindtext[4][2]
\end{document}
forum: 
Bild von Markus Kohm

Da wir ja ziemlich genau wissen, woran wir sind, können wir und das Leben vielleicht ein wenig vereinfachen:

\documentclass[twocolumn,abstract]{scrartcl}
 
\usepackage{lipsum}
 
\makeatletter
\newsavebox\twocolumnargbox
\newcommand{\longtwocolumn}[1][]{%
  % Wir wollen zunächst einspaltig arbeiten:
  \onecolumn
  \begingroup
    % Während des Zusammenbaus der Box sind keine expliziten \newpage oder
    % \clearpage erlaubt.
    \let\clearpage\relax
    \let\newpage\relax
    \global\setbox\twocolumnargbox\vbox{%
      #1%
      \bigskip
    }%
  \endgroup
  \typeout{^^J%
    TRACE: Initial height=\the\ht\twocolumnargbox, 
           depth=\the\dp\twocolumnargbox}%
  % Jetzt müssen wir so lange einzelne Seiten ausgeben, bis der Rest der Box
  % kleiner als eine Seite ist.
  \@whiledim \textheight<\ht\twocolumnargbox\do {%
    \typeout{TRACE: Split of \the\textheight\space from 
                    \the\ht\twocolumnargbox}%
    \splittopskip\topskip % Für das Zerteilen dieselben Rahmenbedingungen,
    \splitmaxdepth\maxdepth % die auch für den Seitenaufbau gelten.
    \vsplit\twocolumnargbox to \textheight\clearpage
  }%
  % Den Rest geben wir dann einfach als optionales Argument von \twocolumn aus:
  \typeout{TRACE: Final height=\the\ht\twocolumnargbox, 
                        depth=\the\dp\twocolumnargbox}%
  \twocolumn[\unvbox\twocolumnargbox]%
}
\makeatother
 
\begin{document}
 
\title{Long One Column Abstract with Two Column Document}
\author{Markus Kohm}
 
\longtwocolumn[{
  \maketitle
  \begin{abstract}
  \lipsum[1-20]
  \end{abstract}
}]
 
\section{Here we go}
\lipsum
\end{document}

Im Prinzip arbeitet das Paket scrlayer-notecolumn für die Notiz-Spalten ganz ähnlich.

Comments for "Einspaltige Zusammenfassung über zwei Seiten in einem zweispaltigen Dokument" abonnieren