PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \ref für eigenen counter



не знаю
19-01-2013, 10:43
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:



\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.

localghost
19-01-2013, 11:10
Solche Sachen werden üblicherweise mit dafür vorgesehenen Umgebungen umgesetzt. Vielleicht etwas erweitert durch ntheorem (http://ctan.org/pkg/ntheorem).

\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

klops
21-01-2013, 08:37
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.

rais
21-01-2013, 12:56
...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

не знаю
23-01-2013, 13:13
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 ;)