Kapitelnamen (nicht die Kapitelnummer) referenzieren

Schriftbild, Absätze und Auflistungen einstellen


Chriko
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 23. Jul 2009, 15:46

Kapitelnamen (nicht die Kapitelnummer) referenzieren

Beitrag von Chriko »

Hallo,

ich schreibe gerade an meiner Dissertation und würde gern den Namen meines Kapitels referenzieren. Der unten folgende Teil meines Quellcodes steht vor meinem gesamten Dokument und liefert mir "Kapitel 1" und nicht wie gewünscht "Kapitel Einleitung". Dass der Befehl \thechapter mir die '1' liefert, weiß ich, aber leider nicht, wie ich aus der '1' meinen Kapitelnamen mache.

Da ich das ganze nicht in jedem Kapitel neu einbinde, scheidet die Lösung mit \nameref des hyperref-Pakts leider aus.

Ich nutze die Dokumentklasse scrbook.
      
\put(60,25){\makebox(\dimexpr
\textwidth-20\unitlength\relax\@gobble,\ht\strutbox\@gobble)[l]{%
\ \Huge\color{black}\chapapp~\thechapter\autodot
}}%
Wenn mir da jemand helfen könnte, wäre ich sehr dankbar.

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Namen referenzieren. Titel

Beitrag von DonCube »

Ich habe hier gerade irgendwo Namref gelesen? Hast du das shconmal ausprobiert?? Da du mir keinen kompilierbaren Code angegeben hast konnte ich es nicht probieren. Daher muss ich raten.

Gruß
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Chriko
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 23. Jul 2009, 15:46

Beitrag von Chriko »

Hallo,

ja, den Befehl \nameref habe ich ausprobiert. Der funktioniert auch. Da ich das Layout meines Kapitelanfangs aber vor dem Dokument deklariere, ist \nameref an der Stelle nicht möglich, weil ich dann ja nur einen bestimmten Kapitelnamen auswähle, der in jedem Kapitel identisch ist.

Ich habe hier einmal ein lauffähiges Minimalbeispiel (so hoffe ich) beigefügt.
\documentclass[12pt, a4paper, twoside, openany, headsepline, parskip, normalheadings, pointlessnumbers, liststotoc, bibtotoc, chapterprefix, final]{scrbook}

\usepackage[ngerman]{babel}

\makeatletter
\renewcommand*{\chapterformat}
{
  \begingroup
    \setlength{\unitlength}{1mm}
    \begin{picture}(20,30)(0,5)
      \setlength{\fboxsep}{0pt}
      \put(0,14){\framebox(20,20){}}
      \put(20,24){\line(1,0){\dimexpr \textwidth-20\unitlength\relax\@gobble}}
      \put(0,14){\makebox(17,20)[r]{\fontsize{28\unitlength}{28\unitlength}\selectfont\thechapter\kern+.38em}}
      \put(60,25){\makebox(\dimexpr\textwidth-20\unitlength\relax\@gobble,\ht\strutbox\@gobble)[l]{\Huge\chapapp~\thechapter\autodot}}
      \put(60,15){\makebox(\dimexpr\textwidth-20\unitlength\relax\@gobble,\ht\strutbox\@gobble)[l]{\thechapter\autodot}}
    \end{picture}
  \endgroup
}

\begin{document}
    \chapter{Einleitung}
    Dies die Einleitung.
\end{document}
Gruß,

Chriko

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Ich würde sagen, dass KOMA-Script dafür nicht flexibel genug ist. Du wirst wohl nicht darum herumkommen, die Definition von \@@makechapterhead zu kopieren und entsprechend abzuändern.

Chriko
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 23. Jul 2009, 15:46

Beitrag von Chriko »

Und wie kann ich das machen? Ich bin bestenfalls Anfänger und die Anleitung zum Koma-Skript ist meiner Meinung nach nicht wirklich ergiebig für ganz spezielle Probleme.

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Beitrag von DonCube »

Also irgendwie muss das doch gehen. Ich werde mal schauen das ich mir mal ein wenig Zeit nehme um dem Problem näher auf den Grund zu gehen, und mir gegebenfalls einen kleinen Denkanstoß holen.

Gruß
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Gast170

RTFM!

Beitrag von Gast170 »

Wie direkt in den nameref-FAQ steht, schlägt der Autor vor, in Zukunft mit Hilfe des Pakets zref Namen zu referenzieren:
\usepackage[user,titleref]{zref}
...
\section{hello}\zlabel{sec:one}
The section name is: \ztitleref{sec:one}.

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Ja, aber das hilft ja in dem Fall nichts. Wenn man mit nameref oder zref arbeiten will, müssen die Labels eine vorhersehbare Form haben, beispielsweise ein festes Präfix plus die Kapitelnummer, damit man in der gemeinsamen \chapterformat-Deklaration (die nur die Kapitelnummer, aber nicht den Namen kennt) darauf verweisen kann.

Ich

Meine Lösung

Beitrag von Ich »

Ich nutze KOMA-Skript und habe zur Verwendung des Kapitelnamens in der Fußzeile den \chapter-Befehl wie folgt umdefiniert.
\let\Chapter\chapter
\newcommand{\Kapitelname}[1]{#1}
\renewcommand{\chapter}[1]{\Chapter{#1}\renewcommand{\Kapitelname}{#1}}
Dann wird der Befehl \Kapitelname für die Fußzeile verwendet.
\cfoot*{\Kapitelname}
Ich hoffe diese Anleitung spart euch Zeit, um Probleme zu lösen die bei mir bisher noch nicht aufgetreten sind.

Vielen Dank!

Mit freundlichem Gruß,
Ich

Besserwisser

Beitrag von Besserwisser »

Lieber Gast, du hast leider das Prinzip von \chaptermark, \chaptermarkformat, \leftmark und \rightmark und allgemein das Prinzip der Marken in LaTeX und TeX nicht verstanden. Sonst würdest du korrekterweise dieses für deine Fußzeile verwenden. Will man nur die Nummer loswerden, definiert man schlicht \chaptermarkformat entsprechend um. Will man Nummer und Text trennen, dann verwendet man eine zusätzliche TeX-Marke:
\NeedsTeXFormat{LaTeX2e}[2015/01/01]
\documentclass{scrbook}
%\usepackage{etex}% Falls ein altes LaTeX verwendet wird.
\usepackage[ngerman]{babel}

\usepackage[automark]{scrlayer-scrpage}
\newmarks\currentchapternumber
\clearpairofpagestyles
\let\origchaptermark\chaptermark
\renewcommand*{\chaptermark}[1]{\marks\currentchapternumber{\thechapter}\origchaptermark{#1}}
\renewcommand*{\chaptermarkformat}{}
\ihead{Kapitelnummner: \botmarks\currentchapternumber}
\ohead{Kapiteltext: \leftmark}

\usepackage{blindtext}

\begin{document}
\Blinddocument
\end{document}
Mit der ursprünglichen Frage hat das allerdings genau wie deine Antwort wenig zu tun. Dort geht es nämlich nicht um Kopf oder Fuß, sondern über die unmittelbare Formatierung der Überschrift. Die kann man nicht durch Umdefinierung von \chapterformat so weitreichend ändern, wie der OP das gerne hätte. Dazu muss man in der Tat sehr viel tiefer eingreifen. \chapterformat ist in der Tat nur für die Nummer, nicht aber für Nummer und Text gedacht.

Fazit: Man lasse solche uralten Themen besser ruhen.

Antworten