section Name ohne Nummerierung

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: section Name ohne Nummerierung

von Schweinebacke » Fr 9. Okt 2009, 18:51

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
 ***********

von astf » Fr 9. Okt 2009, 11:22

Es funktioniert!

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

Re: Redefinition \sectionmark

von Schweinebacke » Do 8. Okt 2009, 18:37

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.

Redefinition \sectionmark

von Stefan Kottwitz » Do 8. Okt 2009, 14:47

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

Stefan

von Schweinebacke » Do 8. Okt 2009, 08:04

astf hat geschrieben: \lhead{\begin{tabular}{>{\columncolor{darkblue}\color{white}}c|||%
>{\columncolor{white}}c}\large\bfseries~~\thesection&~\end% {tabular}\color{darkblue}\bfseries\leftmark}
\thesection direkt in die Kopfzeile zu schreiben, kann aber schief gehen. Das funktioniert AFAIK nur zuverlässig, wenn jeder Abschnitt mit einer neuen Seite beginnt, sonst kann es passieren, dass da die falsche Nummer ausgegeben wird. Genau um das zu verhindern gibt es ja die mark-Geschichte. Du wirst deshalb bereits \sectionmark so umdefinieren müssen, dass die Nummer in der gewünschten Weise dargestellt wird. Bei KOMA-Script geht das einfach durch Umdefinieren von \sectionmarkformat. Bei anderen Klassen muss man \sectionmark selbst passend umdefinieren. Statt einer Tabelle kannst Du eigentlich auch enfach eine \colorbox verwenden. Um die in der Höhe und Tiefe zu ändern genügt ggf. eine unsichtbare Stütze mit Hilfe einer \rule-Anweisung der Art
\rule[-\baselineskip]{0pt}{2.5\baselineskip}

von Schweinebacke » Do 8. Okt 2009, 07:47

Bei mir funktioniert:
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\renewcommand*{\sectionmarkformat}{}% Abschnittnummer aus der Kopfzeile raus
\pagestyle{headings}
\begin{document}
\blinddocument
\end{document}

von astf » Do 8. Okt 2009, 07:36

Ok, also hier mal ein bisschen Header:

\documentclass[12pt]{paper}
\usepackage{mathptmx}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=0.13\paperheight,bmargin=0.12\% paperheight,lmargin=0.2\linewidth,rmargin=0.2\linewidth}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{float}
\usepackage{units}
\usepackage{textcomp}
\usepackage{relsize}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{amssymb}
\setstretch{1.3}
...
\usepackage{colortbl}
\arrayrulecolor{black}
\doublerulesepcolor{black}
\usepackage{color}
\definecolor{darkblue}{rgb}{0,0,0.5}
\rhead{\color{black}Seite \thepage}
...

Hier der zu korrigierende Abschnitt:

\lhead{\begin{tabular}{>{\columncolor{darkblue}\color{white}}c|||%
>{\columncolor{white}}c}\large\bfseries~~\thesection&~\end% {tabular}\color{darkblue}\bfseries\leftmark}

Über Geschmack lässt sich streiten :) Ich weiß selber noch nicht so genau, ob mir die Kopfzeile vom Stil so gefällt. Auf jeden Fall möchte ich mal ausprobieren, wie es aussieht, wenn nun \leftmark so modifiziert wird, dass die Nummerierung nur im linken Kästchen steht und nicht auch noch außerhalb.

Gruß,
astf

Minimalbeispiel

von Stefan Kottwitz » Do 8. Okt 2009, 00:21

Ohne zu wissen, was Du versucht hast, lässt sich das kaum korrigieren. Die Angabe eines Minimalbeispiels, das deinem Code entspricht, nur um Unwesentliches reduziert ist, wäre sinnvoll.
\leftmark und auch \sectionmark werden von Klassen und Paketen redefiniert, Du hast weder Deine Klasse genannt (scrartcl? book? article? ...) noch ob Du die Kopfzeilen per Standard-LaTeX erstellst oder durch fancyhdr oder durch scrpage2 ... ins Blaue hinein schlage ich jetzt nicht irgendeine Redefinition vor.

Stefan

von astf » Mi 7. Okt 2009, 22:39

Hmm, hab ein bisschen mit sectionmark und renewcommand herumprobiert, aber es wird nichts angezeigt.

Unnummerierte Kopfzeilen

von Stefan Kottwitz » Mi 7. Okt 2009, 14:28

astf hat geschrieben:Gibt es vielleicht auch einen einfacheren \renewcommand-Befehl?
Ja, Du könntest \sectionmark durch \renewcommand redefinieren.

Stefan

Nach oben