Hallo,
ich habe folgendes Problem. Ich habe ein Dokument mit Appendix dessen einzelne Einträge aus dem Haupttext referenziert werden. Ich möchte in der Marginale eines solchen einzelnen Eintrages im Appendix eine Liste der Seiten ausgeben, von denen der Eintrag im Haupttext referenziert wurde (so wie \backref es für eine Bibliographie tut).
Ich habe dafür im Internet eine Lösung mit dem float-package gefunden welche 'addtocontents', 'newfloat' und 'listof' benutzt.
Das funktioniert auch wunderbar, nur reserviert 'listof' immer eine Zeile für den Titel der Liste. Ich möchte die Liste aber ganz ohne Titel ausgegeben. Der Effekt ist leider so, daß es in der Marginalie im Appendix so aussieht als würde die ausgegebene Liste zum nachfolgenden Punkt gehören. Ich habe da leider keine Lösung finden können.
Um das zu verdeutlichen habe ich mein Experimentierdokument mit angehängt.
Wäre klasse, wenn jemand von euch die Lösung kennt.
Gruß,
Lutz
eine selbsterstellte Liste ohne Titel ausgeben ...
eine selbsterstellte Liste ohne Titel ausgeben ...
- Dateianhänge
-
- Haupttext.tex
- (1.34 KiB) 432-mal heruntergeladen
-
- Appendix.tex
- (1 KiB) 443-mal heruntergeladen
Ich sage das jetzt mal ganz brutal (bitte nicht böse sein): Die Lösung taugt überhaupt nicht! Ich will das auch begründen: Zum einen wird das float-Paket hier gemein missbraucht. Zum anderen führt dieser Missbrauch dazu, dass für jeden dieser Rückverweise eine der kostbaren Ausgabedateien von TeX verbraucht wird. Nach spätestens 13 Rückverweisen dürfte schon dann Schluss sein. Wenn es Inhaltsverzeichnis, Tabellenverzeichnis, Abbildungsverzeichnis, Index etc. gibt, ist wesentlich früher Schluss. Da der Missbrauch außerdem eher umständlich und überflüssig ist, ist die beste Lösung, das nicht so zu machen, sondern direkt in die aux-Datei zu schreiben:
Ich habe bei der Gelegenheit auch gleich die falsche Verwendung von \appendix als Umgebung behoben. Außerdem verwende ich das Paket marginnote, weil \marginpar nun einmal gleiten darf, während \marginnote das nicht darf.
Hinweis: Es werden mehrere LaTeX-Läufe benötigt!
% Aus Gründen der Bequemlichkeit packe ich für das Minimalbeispiel alles in eine Datei; % die Datei Appendix.tex entsteht aber beim LaTeX-Lauf aus der filecontente-Umgebung. \RequirePackage{filecontents} \begin{filecontents}{Appendix.tex} \appendix \section{Anforderungsliste} \begin{Requirementslist} \subsection{Systemanforderungen} \req{Hallo}{Dies ist ein Requirement (Hallo)} \req{Hallo1}{Dies ist ein Requirement (Hallo1)} \req{Hallo2}{Dies ist ein Requirement (Hallo2)} \req{Hallo3}{Dies ist ein Requirement (Hallo3)} \req{Hallo4}{Dies ist ein Requirement (Hallo4)} \req{Hallo12}{Dies ist ein Requirement (Hallo12)} \subsection{Funktionale Anforderungen} \req{Hallo5}{Dies ist ein Requirement (Hallo5)} \req{Hallo6}{Dies ist ein Requirement (Hallo6)} \req{Hallop}{Dies ist ein Requirement (Hallop)} \subsection{Designanforderungen} \req{Hallo8}{Dies ist ein Requirement (Hallo8)} \req{Hallo9}{Dies ist ein Requirement (Hallo9)} \req{Hallo13}{Dies ist ein Requirement (Hallo13)} \req{Hallo14}{Dies ist ein Requirement (Hallo14)} \end{Requirementslist} \end{filecontents} \documentclass[12pt]{article} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{marginnote} \makeatletter \AtBeginDocument{% \protected@write{\@auxout}{}{% \string\providecommand\string\addpageref[2]{}% }% } \newcommand*{\reqref}[1]{% \mpar{Req-\ref{#1}}% \protected@write{\@auxout}{}{\protect\addpageref{#1}{\thepage}}% } \newcommand*{\addpageref}[2]{% \@ifundefined{pageref@#1}{% \expandafter\gdef\csname pageref@#1\endcsname{#2}% }{% \expandafter\g@addto@macro\csname pageref@#1\endcsname{, #2}% }% } \newcommand*{\showpageref}[1]{% \@ifundefined{pageref@#1}{}{\mpar{\@nameuse{pageref@#1}}}% } \newenvironment{Requirementslist}{% \renewcommand{\labelenumi}{Req-\theenumi}% \newcommand{\req}[2]{\item ##2\label{##1}% \expandafter\show\csname pageref@##1\endcsname \showpageref{##1}% }% \enumerate }{% \endenumerate } \makeatother \newcommand\mpar[1]{\marginnote{\sffamily\small #1}} \setlength{\marginparwidth}{3cm} \begin{document} \tableofcontents \newpage \section{Hier ist eine Section} Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et \reqref{Hallo5} accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing \reqref{Hallop} elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua \reqref{Hallop}. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \newpage jhgdsaj gkj \reqref{Hallo5} \newpage reqref nummer 7 \reqref{Hallop} \input{Appendix} \end{document}
Hinweis: Es werden mehrere LaTeX-Läufe benötigt!
goLaTeX-Knigge (mit Minimalbeispiel und »So stellst Du Deine Frage richtig«)
Wie kann ich Code in meinem Beitrag hervorheben?
Wie hänge ich ein Bild an meine Frage?
KOMA-Script
Wie kann ich Code in meinem Beitrag hervorheben?
Wie hänge ich ein Bild an meine Frage?
KOMA-Script
Dass ich das float-Paket vergewaltige war mir schon irgendwie klar, was ich aber nicht wusste war das Limit. Es war halt eine 'sehr ergebnisorientierte Lösung'.
Ich kucke dann noch mal ein bisschen mit großen Augen auf Deinen Code und versuche verstehen, was genau da eigentlich passiert.
Bis dahin, ein gaaaaaaanz dickes Dankeschön, Deine Lösung tut genau das was ich wollte
Gruß,
Lutz
Ich kucke dann noch mal ein bisschen mit großen Augen auf Deinen Code und versuche verstehen, was genau da eigentlich passiert.
Bis dahin, ein gaaaaaaanz dickes Dankeschön, Deine Lösung tut genau das was ich wollte

Gruß,
Lutz