Anzeige:
Ergebnis 1 bis 5 von 5

Thema: \ref für eigenen counter

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.01.2013
    Beiträge
    2

    \ref für eigenen counter

    Hallo,
    ich schreibe gerade meine Diplomarbeit.
    Ich habe für meine Definitionen, Sätze und so eine eigene Nummerrierung, auf die ich gerne im Text referieren möchte. Krieg es aber nicht hin.

    Hier ein kleines Beispiel um zu zeigen, was ich gerne möchte:

    Code:
    \documentclass[12pt,a4paper]{article}
    \usepackage[naustrian]{babel}
    \usepackage[latin1]{inputenc}
    
    \newcounter{ctr}
    \setcounter{ctr}{0}
    
    \newcommand{\myDef}[2]{\parbox{\columnwidth}{\refstepcounter{ctr}
    \textbf{Definition\ \Nummer:\ \ \textbf{#1}}\\#2\\[-0.2cm]}}
    \newcommand{\Nummer}{\thesection.\arabic{ctr}}
    
    \begin{document}
    
    \section{1.Kapitel}
    \myDef{} {Das ist die 1. Definition}
    \myDef{Name}{Das ist die 2.Definition}\label{def2}
    \setcounter{ctr}{0}
    \section{2.Kapitel}
    \myDef{}{Das ist die 3.Definition}\label{def3}
    Ich möchte im Text auf die Definitionen verweisen und die Nummerierungen erhalten, 
    also für 2.Definition \ref{def2} (=1.2) und für die 3.Definition \ref{def3} (=2.1)
    
    \end{document}
    Hoffe es kann mir jemand weiterhelfen.

  2. #2
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Umgebungen schaffen

    Solche Sachen werden üblicherweise mit dafür vorgesehenen Umgebungen umgesetzt. Vielleicht etwas erweitert durch ntheorem.
    Code:
    \documentclass[12pt,a4paper,naustrian]{article}
    \usepackage[T1]{fontenc}
    \usepackage{selinput}
    \SelectInputMappings{
      adieresis={ä},
      germandbls={ß},
      Euro={€}
    }
    \usepackage{babel}
    \usepackage{mathtools}   % lädt »amsmath«
    \usepackage[amsmath,amsthm]{ntheorem}
    
    \newtheorem{definition}{Definition}[section]
    
    \begin{document}
      \section{1.\ Abschnitt}
        \begin{definition}\label{def:eins}
          Das ist die 1. Definition
        \end{definition}
    
        \begin{definition}\label{def:zwei}
          Das ist die 2.\ Definition
        \end{definition}
    
      \section{2.\ Abschnitt}
        \begin{definition}\label{def:drei}
          Das ist die 3.\ Definition
        \end{definition}
    
        Ich möchte im Text auf die Definitionen verweisen und die Nummerierungen erhalten, also für 2.\ Definition \ref{def:zwei} (=1.2) und für die 3.\ Definition \ref{def:drei} (=2.1)
    \end{document}
    Das lässt sich natürlich noch nach Wunsch konfigurieren. Die Anleitung des Pakets beschreibt das ausführlich.


    Thorsten
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.327
    Dessen ungeachtet, dass ich localghost zustimme sei lediglich noch darauf hingewiesen, warum das Beispiel des OP nicht funktioniert: Wenn man \refstepcounter innerhalb einer \parbox aufruft, muss natürlich auch \label innerhalb eben dieser \parbox gesetzt werden. Also müsste die \label-Anweisung mit in eines der Argumente beim Aufruf von \myDef verschoben werden.

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    ...oder halt der \refstepcounter vor die \parbox gezogen werden.
    Wenn man dazu noch \thectr so umdefiniert, wie im Eingangspost \Nummer definiert wurde, sollte beim \ref auch entsprechend section.ctr angezeigt werden. Wenn man dann noch im \myDef \Nummer durch \thectr ersetzt, bräuchte man die \Nummer-Definition gar nicht mehr.
    Und wenn man dann noch dem \newcounter-Befehl mitgibt, daß ctr von section zurückgesetzt werden soll (\newcounter{ctr}[section]), kann man sich die ganzen \setcounter{ctr}{0} sparen.

    @не знаю: Die article-Klasse kennt keine Kapitel. Ein Kapitel wäre \chapter, welches in report- und book-Klassen zur Verfügung steht. `\section' ist ein Abschnitt.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.01.2013
    Beiträge
    2
    Danke, Danke, es funktioniert!!
    Und ich brauch nicht all meine Definitionen ändern, wäre verdammt viel Arbeit gewesen.

    @rais: Das mit den Kapiteln ist ein Argument, heißt ja nicht umsonst section

Stichworte

Lesezeichen

Berechtigungen

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