section Name ohne Nummerierung

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2529
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Redefinition \sectionmark

Beitrag von Stefan Kottwitz »

Bei obigem Codebeispiel ginge etwa
\renewcommand*\sectionmark[1]{\markboth{\MakeUppercase{#1}}{}}
Das muss nach \pagestyle{fancy}[/i] stehen.

Stefan

Schweinebacke

Re: Redefinition \sectionmark

Beitrag von Schweinebacke »

Stefan hat geschrieben:Bei obigem Codebeispiel ginge etwa
\renewcommand*\sectionmark[1]{\markboth{\MakeUppercase{#1}}{}}
Das muss nach \pagestyle{fancy}[/i] stehen.
Wie gesagt: Es ist keine gute Idee das so zu machen. Wenn man \thesection direkt in den Kopf packt, statt das über den Mark-Mechanismus zu machen, dann kann die falsche Angabe im Kopf landen. Das ist gar nicht schwer zu erreichen:
\documentclass[12pt]{paper}
\usepackage{fancyhdr} 
\pagestyle{fancy} 
\usepackage{colortbl}
\usepackage{color}
\definecolor{darkblue}{rgb}{0,0,0.5} 
\rhead{\color{black}Seite \thepage} 
\lhead{\begin{tabular}{>{\columncolor{darkblue}\color{white}}c|||% 
      >{\columncolor{white}}c}
    \large\bfseries~~\thesection&~
  \end{tabular}\color{darkblue}\bfseries\leftmark} 
\renewcommand*\sectionmark[1]{\markboth{\MakeUppercase{#1}}{}}

\usepackage{lipsum}

\begin{document}
\section{First Section}
\lipsum[2-4]\lipsum[4]
\section{Second Section}
\lipsum
\end{document}
Wenn man hingegen meiner Empfehlung folgt, dann passiert das nicht:
\documentclass[12pt]{paper}
\usepackage{fancyhdr} 
\pagestyle{fancy} 
\usepackage{colortbl}
\usepackage{color}
\definecolor{darkblue}{rgb}{0,0,0.5} 
\rhead{\color{black}Seite \thepage}
\DeclareRobustCommand*{\sectionmarkbox}[1]{%
  \begin{tabular}{>{\columncolor{darkblue}\color{white}}c|||% 
      >{\columncolor{white}}c}
    \large\bfseries~~#1&~
  \end{tabular}
}
\newcommand{\sectionmarkformat}{%
  \sectionmarkbox{\thesection}%
}
\lhead{\color{darkblue}\bfseries\leftmark} 
\renewcommand*\sectionmark[1]{\markboth{\sectionmarkformat\MakeUppercase{#1}}{}}

\usepackage{lipsum}

\begin{document}
\section{First Section}
\lipsum[2-4]\lipsum[4]
\section{Second Section}
\lipsum
\end{document}
Ich habe das selbst auch schon falsch gemacht und daraus gelernt. Vor allem der Trick mit dem zusätzlichen, robust deklarierten \sectionmarkbox ist dabei wichtig, damit man keine Fehlermeldungen im Kopf bekommt (was gerne der Fall ist, wenn man Farbe in \markboth oder \markright hat). Dieser Trick stammt vom KOMA-Script-Autor.

astf
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: So 27. Sep 2009, 01:43

Beitrag von astf »

Es funktioniert!

Aber ich bekomme auch bei der \DeclareRobustCommand* - Variante auf der ersten Seite schon Second Section in der Kopfzeiel angezeigt.

Schweinebacke

Beitrag von Schweinebacke »

astf hat geschrieben:Aber ich bekomme auch bei der \DeclareRobustCommand* - Variante auf der ersten Seite schon Second Section in der Kopfzeiel angezeigt.
Ich nicht:
 *File List*
   paper.cls    2008/05/30 1.0l LaTeX document class (wm).
  size12.clo    2005/09/16 v1.4f Standard LaTeX file (size option)
fancyhdr.sty    
colortbl.sty    2001/02/13 v0.1j Color table columns (DPC)
   array.sty    2005/08/23 v2.4b Tabular extension package (FMi)
   color.sty    2005/11/14 v1.0j Standard LaTeX Color (DPC)
   color.cfg    2007/01/18 v1.5 color configuration of teTeX/TeXLive
  pdftex.def    2008/09/08 v0.04l Graphics/color for pdfTeX
  lipsum.sty    2005/01/26 v1.0 150 paragraphs of Lorem Ipsum dummy text
supp-pdf.tex
 ***********

Antworten