Seite 1 von 1

Namen einer Referenz dynamisch in Code einfügen

Verfasst: Fr 10. Okt 2014, 16:39
von Seban
Hallo,

Im Dokument, das ich gerade bearbeite, existieren mehrere Anhänge mit Pagestyles, die sich jetzt nur noch durch die Angabe der Seitenzahl (in der Form 'Seite X von Y') unterscheiden. Alle anderen Angaben konnte ich durch dynamische* Befehle wie \thepage, \thepart etc. automatisieren.

Wenn ich jetzt noch die Ausgabe des Y automatisieren könnte, würde ich nicht mehr für jeden Anhang den Pagestyle vorgeben müssen, sondern dieser wäre für alle Anhänge gleich (im Code; im Dokument unterscheiden sie sich ja aufgrund der dynamischen Befehle).

Die Ausgabe der "von-Seite" Y realisiere ich momentan mit \label am Ende der Anhänge und entsprechend einem \pageref im Pagestyle, hier ein Bsp.:
\fancypagestyle{Anhang_A}{
	\fancyhf{}
	
	% Kopfzeile
	\fancyhead[L]{
		\fontsize{12pt}{15pt}
		\selectfont
			\begin{tabular}[b]{l}
				% ...
				Anhang {\thepart}, Seite {\thepage} von {\pageref*{Anhang_A_Ende}}
			\end{tabular}
	}

	% ...
}
Ideal wäre aus meiner Sicht, wenn man den Begriff Anhang_A_Ende durch etwas der Art Anhang_\thepart_Ende ersetzen könnte oder wenn man irgendwie abfragen könnte, welcher Begriff ( Anhang_A_Ende, Anhang_B_Ende, ...) abh. vom aktuellen Part (\thepart) eingesetzt werden soll.

Ist so etwas in Latex möglich oder gibt es andere Möglichkeiten so etwas zu implementieren?

Beste Grüße & Dank,
Seban


* Ich hoffe dynamisch ist der richtige Begriff oder zumindest eine verständliche Umschreibung. [/code]

Verfasst: Sa 11. Okt 2014, 15:05
von Johannes_B
Du kannst part umdefinieren, sodass der Aufruf ein label vor sich selbst einfügt. Allerdings, warum?

Verfasst: Sa 11. Okt 2014, 17:32
von Seban
Danke für deine Hilfe, Johannes.

So müsste man nicht mehr für jeden Teil des Anhangs den Pagestyle angeben, sondern nur noch ein mal vor den Anhängen. Je Pagestyle sind es ~30 Zeilen Code, das vier mal. Würde also auch ein wenig zur Übersichtlichkeit (oder zumindest Größe) der Layout-Datei beitragen.
Sind das aus Sicht eines Latex-Profis Gründe Befehle umzudefinieren oder schieße ich hier mit Kanonen auf Spatzen?

Zu guter Letzt hatte es mich auch einfach interessiert, ob und wie es möglich sein könnte.

Verfasst: Sa 11. Okt 2014, 21:25
von Johannes_B
LaTeX ist eine makro Sprache, du kannst die Befehle so oft umdefinieren, wie du möchtest. Allerdings noch mal die Frage. Wie erkennt der Leser, wo er nachlesen muss, wenn irgendwo steht: »Wie auf Seite 12 zu sehen ist ...«

Verfasst: Di 21. Okt 2014, 14:41
von Seban
Danke Johannes.
Johannes_B hat geschrieben:Allerdings noch mal die Frage. Wie erkennt der Leser, wo er nachlesen muss, wenn irgendwo steht: »Wie auf Seite 12 zu sehen ist ...«
Indem er auf Seite 12 wechselt.

Die Seitennummerierung sieht so aus:
Haupteil: S.1 bis X
Haupt-Deckblatt zum Anhang: ohne Seitenangabe
TOC zum Anhang: ohne Seitenangabe
Deckblatt zu Anhang A: ohne Seitenangabe
Anhang A: S. A1 bis An
Deckblatt zu Anhang B: ohne Seitenangabe
Anhang B: S. B1 bis Bn
Deckblatt zu Anhang C: ohne Seitenangabe
Anhang C: S. C1 bis Cn
Deckblatt zu Anhang D: ohne Seitenangabe
Anhang D: S. D1 bis Dn

Verfasst: Di 21. Okt 2014, 18:33
von Johannes_B
kleines Bastelprojekt!
Meine Expertise auf diesem Gebiet reicht bei weitem nicht aus. Momentan bin ich mir nicht sicher, ob der addtocounter nach dem finalen clearpage in \end{document} obligatorisch ist, oder nur ein Relikt ungenügenden Testens.
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage{scrlayer-scrpage}
\usepackage{blindtext}
\usepackage{showframe}
\usepackage{xpatch,scrlfile}
\makeatletter
\apptocmd{\appendix}{
	\setcounter{part}{0}
\newcommand{\pagecountline}{Anhang~\Alph{part},
\thepage~von~\pageref{\thepart PartPages}}
\apptocmd{\partheadstartvskip}{%
\cfoot[\pagecountline]{\pagecountline}
	\setcounter{page}{1}
}{}{}
\xpretocmd{\part}{
	\immediate\write\@auxout{\string\newlabel{\thepart PartPages}{{}{\thepage}}}
}{}{}
\BeforeClosingMainAux{
	\addtocounter{page}{-1}
	\immediate\write\@auxout{\string\newlabel{\thepart PartPages}{{}{\thepage}}}}
}{}{}
\makeatother
\begin{document}
\part{Hauptdokument}
\blindtext[12]
\appendix
\part{Erster Teil}
\blindtext[16]

\part{Zeiter Teil}      
\blindtext[11]

\part{Dritter Teil}
\blindtext[12]
\end{document}