Sie sind hier

Automatische Überschrift über zweispaltigen Text

Hallo Experten,

als Latex-Neueinsteigerin habe ich die komplizierte Aufgabe eine Latex-Vorlage für "halbwissenschaftliche" Veröffentlichungen zu erstellen, wobei ein bestimmtes Layout erfüllt werden soll.
Ich benutze dafür scrreprt. Es soll ein zweispaltiger Text sein, wobei auf jeder Seite eine einspaltige Überschrift (automatisch als Referenz der ersten section auf der Seite) erscheinen soll.In dem Minimalbsp. unten wäre das also Einleitung auf der ersten und Thermodynamische Grundlagen auf der 2. Seite. Ich habe daran gedacht das über die Kopfzeile zu machen mit dem \automark Befehl, allerdings sind die Kopfzeilen-Felder ja schon belegt.

Das 2. Problem ist die farbige Unterlegung der Kopfzeile (die Lösung habe ich aus dem Forum). Gibt es eine Möglichkeit die Box sowohl höher als auch breiter zu machen (ich habe unelegant \\eingefügt um sie nach unten breiter zu machen). Der \rule Befehl hilft da nicht, weil Text rein soll.

Hier das Beispiel:

\documentclass[pdftex,12pt,a4paper,twoside,twocolumn,parskip,2.1headlines]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{fancybox}
\usepackage{color}
\input{dvipsnam.def}
\usepackage [left=0.87in, right=0.87in, top=1.77in, bottom=1.2in, foot=0.5in,headsep=0.80in, headheight=0.59in]{geometry}

\usepackage[manualmark]{scrpage2}
\pagestyle{scrheadings}
\cfoot{} \lefoot {} \rofoot{}
\refoot{\copyright Name, 2007}
\lofoot{\copyright Name, 2007}
\lehead{\colorbox [named]{CadetBlue}{\parbox{\textwidth}{Report Nr.1\\ }}}
\rehead{Seite \thepage\\}
\lohead{\colorbox [named]{CadetBlue}{\parbox{\textwidth}{Seite \thepage\\}}}
\rohead {Titel des Reports}
\setheadsepline[\textwidth]{0,4pt}
\setfootsepline[\textwidth]{0,4pt}

\begin{document}

\section*{Einleitung}
Hier steht \vspace{5cm} Text.
\section*{Die Mechanismen der Druckerhöhung}
Hier steht
\vspace{10cm}
Text.
\section*{Dampfdruck und Dichte von Wasser}
Hier steht
\vspace{10cm}
Text.
\subsection* {Definition des Sättigungsdruckes}
Hier steht
\vspace{10cm}
Text.
\subsection* {Sättigungsdampfdruck des Wassers}
Hier \vspace{10cm} steht Text.
\section*{Thermodynamische Grundlagen}
Hier steht Text.
\subsection*{Thermodynamische Konstanten}
Hier steht Text.

\end{document}

Sorry für das lange Posting und schon mal danke für etwaige Vorschläge. Gruß, Anne

Bild von Markus Kohm

Die Kopfbreite und die horizontale Ausrichtung kann man bei scrpage2 einstellen. Näheres ist Kapitel 4 der KOMA-Script-Anleitung zu entnehmen.

Den Kopf höher machen, geht am einfachsten, indem Du in Deiner Kopfdefinition innerhalb der \colorbox irgendwo eine \rule[gewünschte vertikale Verschiebung]{0pt}{gewünschte Höhe} reinpackst.

Dein Problem mit der einspaltigen Überschrift, das ich als Problem mit einer Überschrift über beide Spalten deute, hört sich wirklich extrem nach einem Kolumnentitel an. Du solltest also mit \automark arbeiten und an geeigneter Stelle in Deiner Kopfdefinition noch ein \leftmark oder \rightmark einfügen. Ich habe leider gerade keine Zeit, mich näher damit zu befassen. Wäre schön, wenn einer der geübteren Anwender damit mal ein wenig experimentieren würde.

BTW: Bei zweispaltigem Text pfuscht LaTeX AFAIK bezüglich \firstmark und \rightmark. AFAIR ist bei fancyhdr ein Paket dabei, das dies behebt.

Bild von Markus Kohm

Nicht extramarks ist die Lösung, sondern fixltx2e dürfte die Lösung des Problem mit den richtigen Marken sein. Wenn ich Deine Erklärung und Dein Code-Beispiel richtig deute, dann suchst Du vermutlich etwas in der Art:

\documentclass[12pt,a4paper,twoside,twocolumn,parskip,3.5headlines,pagesize,
               footsepline,normalheadings]
              {scrartcl}
\usepackage{fixltx2e}% unbedingt notwendig, damit die Marken im zweispaltigen
                     % Satz richtig funktionieren!

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[dvipsnames]{xcolor}
\usepackage[left=0.87in, right=0.87in, 
            top=1.77in, bottom=1.2in, 
            foot=0.5in,headsep=0.80in, 
            headheight=0.59in]{geometry}

\usepackage{lipsum}

\usepackage{scrpage2}
\automark[section]{section}
\clearscrheadfoot

\ifoot{\copyright\ Name, 2007}% Unten innen der Copyright-Hinweis

\renewcommand*{\pagemark}{\usekomafont{pagenumber}Seite~\thepage}
\setkomafont{pagenumber}{}

\lohead{%
  % Hier ergibt sich das Problem, dass eine \colorbox rechts und links
  % zusätzlich einen Abstand von \fboxsep zum Inhalt einfügt. Um uns das
  % Leben einfacher zu machen, packen wir die \colorbox deshalb einfach
  % zentriert in eine \makebox der erlaubten Maximalbreite. Sie ragt dann
  % links und rechts jeweils um \fboxsep über diese Maximalbreite hinaus, ohne
  % dass dadurch eine overfull \hbox gemeldet wird.
  \makebox[\textwidth]{%
    \colorbox{CadetBlue}{% Breite = Breite der \parbox + 2\fboxsep
      \parbox[t][2\baselineskip][t]% --> usrguide
      {\textwidth}% die Breite
      {%
        \color{white}% Schwarz auf CadetBlue ist einfach Murks
        Report Nr.~\ReportNumber
        % Wenn wir schon dabei sind, können wir auch gleich noch die
        % Seitenzahl setzen.
        \hfill\pagemark
      }%
    }%
  }%
}
\rohead{%
  % Den Teil nehmen wir jetzt, um den Kolumnentitel zu setzen. Da er nicht
  % rechtsbündig, sondern linksbündig gesetzt werden soll, nehmen wir dafür
  % wieder eine \parbox über die gesamte Breite. Außerdem soll die genauso
  % hoch sein, wie die \lehead-Kopf. Dieser ist so hoch wie die
  % dortige \parbox zuzüglich \fboxsep, wieder von der \colorbox. Das zweite
  % \fboxsep der \colorbox ist keine Höhe, sondern Tiefe und darf hier deshalb
  % nicht als Höhe für die \parbox angegeben werden.
  \parbox[t][\dimexpr 2\baselineskip+\fboxsep\relax][t]{\textwidth}{%
    % Der Inhalt soll aber in Wirklichkeit gar nicht an dieser Stelle stehen,
    % sondern unterhalb des bunten Kopfes, im headsep-Bereich.
    \raisebox{-3\baselineskip}[\baselineskip][0pt]{\rightmark}%
  }%
}

\lehead{%
  \makebox[\textwidth]{%
    \colorbox{CadetBlue}{%
      \parbox[t][2\baselineskip][t]{\textwidth}{%
        \pagemark\hfill
        Report Nr.~\ReportNumber
      }%
    }%
  }%
}

\rehead{%
  \parbox[t][\dimexpr 2\baselineskip+\fboxsep\relax][t]{\textwidth}{%
    \raisebox{-3\baselineskip}[\baselineskip][0pt]{\rightmark}%
  }%
}

\newcommand*{\ReportNumber}{1}

\pagestyle{scrheadings}

\setcounter{secnumdepth}{0}
\begin{document}
\section{Einleitung}
\lipsum[1]
\section{Die Mechanismen der Druckerhöhung}
\lipsum[1]
\section{Dampfdruck und Dichte von Wasser}
\lipsum[1]
\subsection* {Definition des Sättigungsdruckes}
\lipsum[1-2]
\subsection* {Sättigungsdampfdruck des Wassers}
\lipsum[1]
\section{Thermodynamische Grundlagen}
\lipsum[1]
\subsection*{Thermodynamische Konstanten}
\lipsum[1]
\end{document}

Ich hoffe die Kommentare reichen aus, damit Du damit klar kommst, und weitere Änderungen selbst vornehmen kannst.

Hallo Markus,

vielen Dank für das Beispiel. Die Überschrift funktioniert so wie ich das vorhatte. Bin nicht drauf gekommen, mir das eine Kopffeld über \hfill\pagemark freizuhalten. Ich denke, ich habe Deine Erklärungen verstanden.
Viele Grüße,
Anne

Bild von Markus Kohm

Im konkreten Beispiel kann man die identischen Definitionen \rohead und \rehead zusammenschmeißen, indem man stattdessen einfach \chead verwendet.

Comments for "Automatische Überschrift über zweispaltigen Text" abonnieren