\label nach jeder \section automatisch setzen Thema ist als GELÖST markiert

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


kathykathy

\label nach jeder \section automatisch setzen

Beitrag von kathykathy »

Hallo!

Ich würde in meinem erstellten Dokument gerne nach jedem Kapitel und Unterkapitel einen Verweis auf dieses Kapitel setzen, sodass es beispielsweise so aussieht:

\section{a}
\label{a}
text

\subsection{b}
\label{b}
text

Wie das per Hand geht ist ja hier: http://www.golatex.de/verweise-mit-kapi ... ellen.html beschrieben

Nachdem ich ziemlich viele Kapitel habe, würde ich das ganz aber gerne automatisch machen: die Kapitelbeschriftungen habe ich schon und würde jetzt gerne jeweil \label dahinterfügen.

Ich hätte 3 Ideen wie man das machen könnte:
a) label und section verschachteln: \label{\section{Einleitung}}
---- geht aber nicht
b) am Anfang des Dokumentes einen Befehl schreiben jedes:
\***section{name} durch \***section{name}\space\label{name} ersetzt
--- weiß nicht wie ich das schreiben kann
c)Mit Texmaker suchen-ersetzen das gleiche tun. Allerdings funktioniert der Platzhalter • dort nicht in der suchen-Funktion

Hat jemand eine Lösung?

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Wie soll den der Name des labels sein? \label{blub} bei \section{blub}? Und was machst du dann, wenn du dich entscheidest \section{blub} in \section{blubblub} zu ändern? Dann musst du alle \ref{blub} in \ref{blubblub} ändern.

Ich würde die Idee fallen lassen. Du handelst dir mehr Ärger ein, als du dir an Tipparbeit sparts.

Noch so einer

Beitrag von Noch so einer »

Das ist nicht so einfach, weil im Argument von \label viele Dinge nicht verwendet werden sollten, die im Argument von \section zulässig sind. Besser ist, wenn man einen Editor verwendet, der automatisch ein Label generieren kann. Bei emacs mit reftex geht das beispielsweise.

Ansonsten:
\documentclass{article}
\makeatletter
\newcommand*{\labeledsection}{%
  \@ifstar {\@slabeledsection}{\@dblarg{\@labeledsection}}%
}
\newcommand*{\@slabeledsection}[1]{\section*{#1}\label{\detokenize{#1}}}
\newcommand*{\@labeledsection}[2][]{%
  \section[{#1}]{#2}\label{\protect\detokenize{#1}}%
}
\newcommand*{\refdet}[1]{\ref{\detokenize{#1}}}
\makeatother

\begin{document}
\labeledsection{Ein \textmd{Beispiel}}
Siehe auch Abschnitt~\refdet{Ein \textmd{Beispiel}}.
\end{document}
BTW: Wäre schön, wenn Du künftig selbst ein VM (mit Anleitung zur Erstellung nicht nur für Anfänger) anbieten würdest, damit man sich nicht erst eines aus den Fingern saugen muss …

Antworten