Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Wie die \ref-Ausgabe beeinflussen?

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.09.2005
    Beiträge
    1.712

    Wie die \ref-Ausgabe beeinflussen?

    Hallo,

    Ich habe in meiner Arbeit folgende Struktur (A, B: chapter: 1, 2: sections):

    A Allgemeines
    1 Auswertung Versuch 1
    2 Auswertung Versuch 2
    B Experimente
    1 Durchführung Versuch 1
    2 Durchführung Versuch 2

    Die Überschriften sind jeweils mit \label{} versehen.
    Wenn ich jetzt mit \ref (und \pageref) zitiere, sieht es so aus:
    blabla wie in 1 auf Seite xx zu sehen blabla

    Ich hätte aber gerne, dass es so aussieht:
    blabla wie in A-1 auf Seite xx zu sehen blabla

    Damit wäre die Zuordnung, in welchen Teil es gehört, wesentlich einfacher. Das gesamte Dokument mit
    A Allgemeines
    A-1 Auswertung Versuch 1
    A-2 Auswertung Versuch 2
    zu nummerieren möchte ich nicht, es soll nur einfach beim Referenzieren als A-1 ausgegeben werden. Für die Kopfzeilen war es einfach zu lösen.
    Aber hierfür komme ich einfach nicht weiter

    Wäre super, wenn mir jemand auf die Sprünge helfen könnte.
    Vielen Dank,
    Xenara

  2. #2
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Code:
    \makeatletter
    \renewcommand\p@section{\thechapter-}
    \makeatother
    sollte klappen. (Ungetestet!)

    Gruß,
    Axel

  3. #3
    Registrierter Benutzer
    Registriert seit
    11.09.2005
    Beiträge
    1.712
    Super, im kleinen Testdokument funktioniert es!
    Werd morgen mal schauen, wie es sich in meinem "grossen Werk" macht und dann berichten.

    Was hat das mit dem Code auf sich? Ausser renewcommand und thechapter hatte ich noch nie was mit so Code zu tun, für was steht das jeweils?

  4. #4
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    \makeatletter ... \makeatother sorgt dafür, daß man auch sog. geschützte Befehle, das sind Befehle, die einen @ im Namen beinhalten, definieren, umdefinieren oder verwenden kann. Dieser Schutz ist dafür da, damit man an LaTeX-Anwender nicht so einfach und insbesondere ungewollt LaTeX-Internata umdefinieren kann. Ein \def\@empty{A} oder ähnliches ist nämlich ziemlich tödlich.

    Zu dem \p@(Zähler): Zu jedem Zähler (wie "chapter", "section", "figure", "enumerate", ...) werden eine ganze Reihe Befehle vordefiniert, die man nach Bedarf umdefinieren kann. Da ist z.B. \the(Zähler) (z.B. \thesection), welches den Zähler bei Benutzung des dazugehörigen Befehls ausgibt. \(Zähler)name steht häufig (aber nicht bei allen Zählern) für den Zählernamen im Klartext, so ist z.B. \thefigure als "Figure" bzw. "Abbildung" vordefiniert. Und dann gibt es eben noch \p@(Zähler), welches immer automatisch vor \ref gepackt wird und normalerweise leer vordefiniert ist. Durch
    Code:
    \renewcommand\p@section{\thechapter-}
    wird also intern bei jedem \ref, welches sich auf eine \section bezieht, automatisch \thechapter- vorangestellt.

    Liebe Grüße,
    Axel
    Geändert von sommerfee (17-09-2007 um 21:39 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    11.09.2005
    Beiträge
    1.712
    Ah, kapiert. Soweit bin ich noch nicht in die unendlichen Weiten des LaTeX vorgedrungen, aber das eröffnet einige neue Möglichkeiten (und Ausreden, sich mehr um Layout als um Inhalt zu kümmern )

    Ich habe deinen Code jetzt so in meinem Dokument drin und es funktioniert auch mir den ganzen includes etc.:
    Code:
    \makeatletter
    \renewcommand\p@section{\thechapter-}
    \renewcommand\p@subsection{\thechapter-}
    \renewcommand\p@subsubsection{\thechapter-}
    \makeatother
    Vor meinem Anhang habe ich es wieder zurückgestellt, da ich kein "echtes" Chapter dort mehr habe:

    Code:
     \makeatletter
    \renewcommand\p@section{}
    \renewcommand\p@subsection{}
    \renewcommand\p@subsubsection{}
    \makeatother
    
    \appendix
    \chapter*{Appendix}
    \phantomsection\addcontentsline{toc}{chapter}{\appendixname}  
    \renewcommand{\thesection}{\Alph{section}}
    \setcounter{section}{0}
    
    \section{Erster Anhang}
    \label{anhang-1}
    \section{Zweiter Anhang}
    \label{anhang-2}
    Hab vielen vielen Dank für deine Hilfe
    Viele Grüsse,
    Xenara

  6. #6
    Registrierter Benutzer
    Registriert seit
    13.01.2007
    Beiträge
    4

    Wie wende ich das auf \pageref an ?

    Hallo Axel,

    Danke für deinen tollen und super erklärten Beitrag. Was ich jetzt noch gerne wissen würde - kann man mit der Methode auch die Ausgabe von \pageref beinflussen und wenn ja, wie ?

  7. #7
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Nein, die \p@xxx-Sachen werden nur bei \ref verwendet.

    \pageref könnte man allerdings auch beeinflussen, indem man z.B. \thepage geeignet umdefiniert. \thepage ist normalerweise auf ungefähr:
    Code:
    \newcommand\thepage{\arabic{page}}
    vordefiniert. (Die Vordefinition wird durch \pagenumbering geändert.)

    Gruß,
    Axel

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •