Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Name von Umgebung ausgeben

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.02.2005
    Beiträge
    77

    Name von Umgebung ausgeben

    Hallo,

    Oft schreibe ich am Beginn von Kapiteln oder (Unter)abschnitten Sätze wie "In diesem Kapitel ...", um einen kurzen Überblick zu geben. Falls man später die Struktur des Dokumentes ändert und aus einem Kapitel z.B. ein Abschnitt wird, so muss man dies manuell ändern. Es gibt z.B. mit dem Paket cleveref die Möglichkeit, so etwas wie "Kapitel" einer Referenz voranzustellen (mit \cref{my_reference} ). Gibt es auch eine Möglichkeit, nur den Namen der aktuellen Umgebung zu ermitteln, also das, was gedruckt würde, wenn man an der aktuellen Stelle ein \label setzen würde und später mit \cref darauf verweisen würde? Am besten wäre es, wenn es sogar ohne cleveref ginge.

    Vielen Dank für Tips!

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hallo,

    auch wenn du nicht genau weißt, wie dein Ziel aussieht, so wäre dennoch ein Minimalbeispiel angebracht.

    Code:
    \documentclass[ngerman]{scrreprt}
    \usepackage{babel}
    \usepackage{hyperref}
    \makeatletter
    \newcommand{\autorefname}[1]{%
        \expandafter\expandafter\expandafter\HyPsd@autorefname
            \csname r@#1\endcsname\@nil
    }
    \makeatother
    \begin{document}
    \chapter{foo}\label{foo}
    \section{foobar}\label{foobar}
    \subsection{foobarfoo}\label{foobarfoo}
    \autorefname{foo}\\
    \autorefname{foobar}\\
    \autorefname{foobarfoo}\\
    \end{document}
    Gruß
    Marco
    Geändert von mechanicus (09-01-2010 um 19:51 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.02.2005
    Beiträge
    77
    Vielen Dank für deinen Lösungsvorschlag. Leider lässt sich das Beispiel bei mir nicht ohne Fehler kompilieren. Die Fehler sind:

    Code:
    Kapitel 1.
    ! Undefined control sequence.
     \HyPsd@autorefname 
                                       
    l.14 \autorefname{foo}
                          \\
    ? 
    ! Undefined control sequence.
    \autorefname ...name \csname r@#1\endcsname \@nil 
                                                      
    l.14 \autorefname{foo}
                          \\
    ? 
    ! Undefined control sequence.
     \HyPsd@autorefname 
                                       
    l.15 \autorefname{foobar}
                             \\
    ? 
    ! Undefined control sequence.
    \autorefname ...name \csname r@#1\endcsname \@nil 
                                                      
    l.15 \autorefname{foobar}
                             \\
    ? 
    ! Undefined control sequence.
     \HyPsd@autorefname 
                                       
    l.16 \autorefname{foobarfoo}
                                \\
    ? 
    ! Undefined control sequence.
    \autorefname ...name \csname r@#1\endcsname \@nil 
                                                      
    l.16 \autorefname{foobarfoo}
                                \\
    ?
    Im DVI erscheint nach den Überschriften folgendes:

    Code:
    11foochapter.1
    1.11foobarsection.1.1
    1.1.11foobarfoosubsection.1.1.1
    Ich würde auch selbst nach einer Lösung suchen. Kann mir jemand einen hinweis auf geeignete Dokumentation geben?

  4. #4
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    bei mir funktioniert das obige Beispiel. Zum Vergleich die File List.
    Code:
     *File List*
    scrreprt.cls    2009/07/24 v3.04a KOMA-Script document class (report)
    scrkbase.sty    2009/07/24 v3.04a KOMA-Script package (KOMA-Script-dependent ba
    sics and keyval usage)
     scrbase.sty    2009/07/24 v3.04a KOMA-Script package (KOMA-Script-independent 
    basics and keyval usage)
      keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
    scrlfile.sty    2009/03/25 v3.03 KOMA-Script package (loading files)
    tocbasic.sty    2009/06/08 v3.03b KOMA-Script package (handling toc-files)
    scrsize11pt.clo    2009/07/24 v3.04a KOMA-Script font size class option (11pt)
    typearea.sty    2009/07/24 v3.04a KOMA-Script package (type area)
       babel.sty    2008/07/06 v3.8l The Babel package
    ngermanb.ldf    2008/07/06 v2.6n new German support from the babel system
    hyperref.sty    2009/12/28 v6.79z Hypertext links for LaTeX
       ifpdf.sty    2009/04/10 v2.0 Provides the ifpdf switch (HO)
      ifvtex.sty    2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO)
     ifxetex.sty    2009/01/23 v0.5 Provides ifxetex conditional
     hycolor.sty    2009/12/12 v1.6 Color options of hyperref/bookmark (HO)
    xcolor-patch.sty    2009/12/12 xcolor patch
      pd1enc.def    2009/12/28 v6.79z Hyperref: PDFDocEncoding definition (HO)
    pdftexcmds.sty    2009/12/12 v0.7 Utility functions of pdfTeX for LuaTeX (HO)
    infwarerr.sty    2007/09/09 v1.2 Providing info/warning/message (HO)
    ifluatex.sty    2009/04/17 v1.2 Provides the ifluatex switch (HO)
     ltxcmds.sty    2009/12/12 v1.1 LaTeX kernel commands for general use (HO)
    etexcmds.sty    2007/12/12 v1.2 Prefix for e-TeX command names (HO)
     intcalc.sty    2007/09/27 v1.1 Expandable integer calculations (HO)
    hyperref.cfg    2002/06/06 v1.2 hyperref configuration of TeXLive
    kvoptions.sty    2009/12/08 v3.6 Keyval support for LaTeX options (HO)
    kvsetkeys.sty    2009/12/22 v1.7 Key value parser (HO)
         url.sty    2006/04/12  ver 3.3  Verb mode for urls, etc.
      bitset.sty    2007/09/28 v1.0 Data type bit set (HO)
    bigintcalc.sty    2007/11/11 v1.1 Expandable big integer calculations (HO)
    atbegshi.sty    2009/12/02 v1.10 At begin shipout hook (HO)
     hpdftex.def    2009/12/28 v6.79z Hyperref driver for pdfTeX
    atveryend.sty    2009/12/11 v1.3 Hooks at very end of document (HO)
    rerunfilecheck.sty    2009/12/18 v1.2 Rerun checks for auxiliary files (HO)
    uniquecounter.sty    2009/12/18 v1.1 Provides unlimited unique counter (HO)
     nameref.sty    2009/12/18 v2.35 Cross-referencing by name of section
    refcount.sty    2008/08/11 v3.1 Data extraction from references (HO)
    gettitlestring.sty    2009/12/18 v1.3 Cleanup title references (HO)
        test.out
        test.out
     ***********
    Oder funktioniert es bei anderen ebenfalls nicht.

    Gruß
    Marco

  5. #5
    Registrierter Benutzer
    Registriert seit
    09.02.2005
    Beiträge
    77
    Ich nutze Debian squeeze und dort ist nur Texlive 2007 dabei. Daher werden einige Dateien älter sein. Gibt es Ideen, woran es also liegen könnte?

  6. #6
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von infutura Beitrag anzeigen
    Ich nutze Debian squeeze und dort ist nur Texlive 2007 dabei. Daher werden einige Dateien älter sein. Gibt es Ideen, woran es also liegen könnte?
    Daran wird es wohl liegen. Und warum installierst du dir nicht TexLive 2009

    Gruß
    Marco

  7. #7
    Registrierter Benutzer
    Registriert seit
    09.02.2005
    Beiträge
    77
    Ich bevorzuge i.d.R. die Debian Pakete wenn möglich.

  8. #8
    Registrierter Benutzer
    Registriert seit
    19.03.2009
    Beiträge
    180
    Zitat Zitat von mechanicus Beitrag anzeigen
    Code:
    ...
    \makeatletter
    \newcommand{\autorefname}[1]{%
        \expandafter\expandafter\expandafter\HyPsd@autorefname
            \csname r@#1\endcsname\@nil
    }
    \makeatother
    ...
    Die Ausgabe stimmt, aber nach dem Begriff erscheint eine grössere Lücke als zwischen den andern Wörtern. Im Bild ein Beispiel mit autoref gefolgt von Autorefname und vref. Kann die Lücke irgendwie angepasst werden?


    (Klick falls kein Thumbnail erscheint)

    Edit: Die Befehle müssen direkt aneinandergeschrieben werden, dann sieht es schön aus:
    Code:
    text \autorefname{blubb}\vref{blubb} text
    Geändert von ElEsido (11-03-2010 um 16:05 Uhr) Grund: Lösung gefunden

Stichworte

Lesezeichen

Berechtigungen

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