Computer Modern hat keine fette, kursive Serifenlose. Wenn Du die brauchst, musst Du eine passende Schrift verwenden. Füge beispielsweise
Code:
\usepackage[T1]{fontenc}
\usepackage{lmodern}
in die Präambel ein, dann geht auch:
Code:
\DeclareRobustCommand{\bihead}[3]{%
\zsavepos{\zsp#1}%
\ifthispageodd{}{}%
\begin{tabular}[t]{@{}p{\dimexpr\linewidth-\zposx{\zsp#1}sp+1in+\ifthispagewasodd\oddsidemargin\else\evensidemargin\fi-\correction\relax}@{}}
#2\tabularnewline
\midrule
\itshape\foreignlanguage{english}{#3}\tabularnewline
\end{tabular}
}
Das löst aber nicht das hyperref-Problem. hyperref schreibt zusätzliche Infos in die aux-Datei und verwendet den Text der Überschrift auch sonst noch ganz unterschiedlich beispielsweise für die Lesezeichen (aka Bookmarks aka Outlines). Bei letzterem zerbricht offenbar etwas, weil da versucht wird, ganze Befehle und Umgebungen als Lesezeichentext zu verwenden. Die einfachste Lösung ist, hyperref zu sagen, dass es bei \bihead die Texte nahezu unformatiert verwenden soll. Das geht mit \texorpdfstring recht einfach:
Code:
\documentclass[headlines=2.5]{scrbook}
\usepackage[english,ngerman]{babel}
\usepackage{blindtext}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{booktabs}
\usepackage{scrpage2}
\usepackage{zref-savepos}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\pagestyle{scrheadings}% Das scheint robuster zu sein, als die headings!
\makeatletter
\newcommand*{\correction}{0pt}
\newcommand*{\zsp}{}
\AtBeginDocument{%
\addtocontents{toc}{%
\protect\renewcommand*{\protect\correction}{\@tocrmarg}
\protect\renewcommand*{\protect\zsp}{toc.}
% \protect\let\protect\midrule\relax% Linie im Inhaltsverzeichnis weg
}%
}
\DeclareRobustCommand{\bihead}[3]{%
\texorpdfstring{%
\zsavepos{\zsp#1}%
\ifthispageodd{}{}%
\begin{tabular}[t]{@{}p{\dimexpr\linewidth-\zposx{\zsp#1}sp+1in+\ifthispagewasodd\oddsidemargin\else\evensidemargin\fi-\correction\relax}@{}}
#2\tabularnewline
\midrule
\itshape\foreignlanguage{english}{#3}\tabularnewline
\end{tabular}}{#2 (#3)}%
}
\renewcommand*{\chaptermark}[1]{%
\markboth{\mbox{%
\noexpand\renewcommand*{\noexpand\zsp}{head.}%
% \noexpand\let\noexpand\midrule\relax% Linie im Kopf weg
\chaptermarkformat #1}}{}%
}
\renewcommand*{\sectionmark}[1]{%
\markright{\mbox{%
\noexpand\renewcommand*{\noexpand\zsp}{head.}%
% \noexpand\let\noexpand\midrule\relax% Linie im Kopf weg
\sectionmarkformat #1}}%
}
\makeatother
\usepackage{hyperref}
\begin{document}
\tableofcontents
\chapter{%
\bihead{chapter.\thechapter}
{Überschrift Kapitel~\Roman{chapter}}
{Headline Chapter~\Roman{chapter}}
}
\blindtext
\section{%
\bihead{section.\thesection}
{Überschrift Abschnitt~\Roman{section}}
{Headline Section~\Roman{section}}
}
\blindtext
\section{%
\bihead{section.\thesection}
{Überschrift Abschnitt~\Roman{section}}
{Headline Section~\Roman{section}}
}
\blindtext
\section{%
\bihead{section.\thesection}
{Überschrift Abschnitt~\Roman{section}}
{Headline Section~\Roman{section}}
}
\blindtext[6]
\chapter{%
\bihead{chapter.\thechapter}
{Überschrift Kapitel~\Roman{chapter}}
{Headline Chapter~\Roman{chapter}}
}
\blindtext
\section{%
\bihead{section.\thesection}
{Überschrift Abschnitt~\Roman{section}}
{Headline Section~\Roman{section}}
}
\blindtext
\section{%
\bihead{section.\thesection}
{Überschrift Abschnitt~\Roman{section}}
{Headline Section~\Roman{section}}
}
\blindtext
\section{%
\bihead{section.\thesection}
{Überschrift Abschnitt~\Roman{section}}
{Headline Section~\Roman{section}}
}
\blindtext[6]
\end{document}
Ich habe alle Änderungen rot markiert.
Näheres zu \texorpdfstring ist der hyperref-Anleitung zu entnehmen.
Es sei darauf hingewiesen, dass das im Beispiel verwendete Paket scrpage2 inzwischen durch scrlayer-scrpage ersetzt wurde. Für neue Dokumente sollte man daher besser scrlayer-scrpage verwenden.
Lesezeichen