PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sectionname im normalen Text ausgeben



markusbischof
17-07-2008, 14:03
Hallo,

ich denke die Lösung zu meinem Problem ist sehr einfach, aber im Netz hab ich trotz längerer Suche nichts passendes gefunden.

Ich will in meinem Dokument an einer Stelle den Namen der aktuellen Section/Subsection/... im Text hinschreiben. Also nicht in der Kopfzeile sondern einfach im Dokument selbst. Ich dachte es gibt sowas wie \thesectionname o.Ä. aber leider Fehlanzeige.

Wie gibt man den Sectionnamen aus?

Grüße,
Markus

cookie170
17-07-2008, 14:36
\usepackage{hyperref}
...
\nameref{"label"}

Gruß,
Alexander

Stefan_K
17-07-2008, 14:37
Hallo Markus,

dafür eiget sich das titleref-Paket (http://texcatalogue.sarovar.org/entries/titleref.html), für hyperref-Unterstützung alternativ nameref (http://texcatalogue.sarovar.org/entries/nameref.html).

Viele Grüße,

Stefan

cookie170
17-07-2008, 14:38
hihi <unsichtbarer Text>

markusbischof
17-07-2008, 15:08
Hallo,

zuerst mal Danke für die Antworten.

Also prinzipiell funktioniert das nameref Kommand bei mir. Leider nicht in der Anwendung, die ich benötige.

Ich brauche nämlich wirklich nur den String des Titels, da ich diesen in eine Datei rausschreibe.

Daher würde ich mir sowas wie \thesectionname wünschen, in dem jeweils der Name der aktuellen Section hinterlegt ist, ähnlich wie z.B. \thesection und \thepage funktionieren.

Geht das?

Grüße,
Markus

P.S.: Ich habe mir so eine Umgebung (http://www.mrunix.de/forums/showthread.php?t=59777&highlight=inhalt+umgebung) definiert, die bei ihrem Aufruf den Inhalt rausschreibt. Da soll dann noch der Sectionname mit rausgeschrieben werden.

Stefan_K
17-07-2008, 15:18
Hi Markus,

hast Du schon titleref mit \titleref{sectionlabel} versucht?

Stefan

markusbischof
17-07-2008, 15:29
Gerade probiert! :)

Das würde "prinzipiell" sogar gehen. Dabei kommen bei mir aber noch zwei Probleme auf:

1. Nutze ich es mit hyperref, dann entsteht trotzdem ein Querverweis und ich bekomme die Kapitelnummer anstatt dem Titel (ohne hyperref geht es, aber eigentlich hätte ich hyperref schon gerne drin).

2. (schlimmer als 1) Bei titleref muss ich immer das label für die section angeben. Da ich den Titel aber in der Umgebungsdefinition brauche, und ich da nicht "fest" das Label angeben kann, funktioniert dieser Ansatz doch nicht bei mir...

Ich vermute so langsam, dass ich das section Kommando umdefinieren könnte, und jeweils in eine eigene Variable den Namen rausschreibe. Wäre vielleicht mal einen Versuch wert!

Aber vielleicht geht es ja auch einfacher?! :o

markusbischof
17-07-2008, 15:46
Hm,

also mit der Redefinition sieht es zwar etwas besser aus, aber ganz ist es noch nicht fertig.

Ich habe mal so


\newcommand{\thesectionname}{}
\makeatletter
\renewcommand\section{\renewcommand{\thesectionnam e}{test}\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\Large\bfseries}}
\makeatother

das Kommando redefiniert. In thesectionname steht jetzt immer "test" drin. Das scheint also zu funktionieren. Problem ist jetzt: Leider geht "#1" nicht (gibts da wohl nicht).

Aber so müsste ich doch ganz nah dran sein, oder?

Grüße,
Markus

Stefan_K
17-07-2008, 16:33
Hallo Markus,

statt \section würde ich \sectionmark redefinieren:

\newcommand\thesectionname{}
\newcommand\stdsectionmark{}
\let\stdsectionmark\sectionmark
\renewcommand\sectionmark[1]{%
\renewcommand\thesectionname{#1}\stdsectionmark{#1 }}


Viele Grüße,

Stefan

markusbischof
18-07-2008, 09:45
Hallo,

bei der Redefinition von \sectionmark tut sich bei mir nichts. Sprich \thesectionname bleibt immer leer.

Als Workaround habe ich jetzt meinem Kommando einen zweiten Parameter spendiert, in dem ich einfach selbst eintrage, was noch mit in die Datei rausgeschrieben werden soll.

:( LaTeX sieht es wohl nicht "direkt" vor, dass man weiß, wie der aktuelle Kapitelname ist!

Vielen Dank für die Antworten!

Grüße,
Markus