Referenz auf eigenen Counter

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


ai.ks
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mo 28. Sep 2015, 14:49

Referenz auf eigenen Counter

Beitrag von ai.ks »

Moin Moin,
da ich neu hier im Forum bin, erst mal ein freundliches Hallo in die Runde. :)

Ich habe folgendes Problem: Ich habe mir einen Befehl geschrieben, mit dem ich Anforderungen schön formatiert mit counter in den Fließtext einbauen kann.
Also der Befehl \req{Text} fügt mir jetzt die Anforderung "REQ001 Text" ein. Ich habe ein optionales Argument eingebaut, so dass mittels \req[referenz]{Text} ein Label gesetzt wird.

Soweit so gut. Ich möchte diese Anforderung später im Text mit \ref{referenz} ansprechen können. Klappt auch soweit. Allerdings möchte ich als Ausgabe bei von \ref{referenz} nicht nur den counter (in dem Fall 1), sondern eine Ausgabe mit meinem Prefix (also REQ001).

Wie bekomme ich das denn hin?

Vielen Dank schon mal.

Hier ist der Code für mein Minimalbeispiel:
%minimalbeispiel
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

\usepackage{fmtcount}% http://ctan.org/pkg/fmtcount
\usepackage{xifthen}


% Definition des Befehles 
\newcounter{reqCounter}
\newcommand{\req}[2][]{
\refstepcounter{reqCounter}
\begin{quote} 
\begin{tabular}{lp{11cm}}
\begin{footnotesize}
\mbox{REQ\hfill\padzeroes[3]{\decimal{reqCounter}}}
\end{footnotesize}
& #2 \\ 
\end{tabular} 
\end{quote}
\ifthenelse{\isempty{#1}}{}{\label{#1}}
}
\newcommand{\refReq}[1]{\mbox{REQ
\hfill{\ref{#1}}
}}

\begin{document}

Hier steht eine menge Fließtext ...

\req[Testanforderung]{Das Auto ist grün}

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 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 elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. 

Jetzt möchte ich an dieser Stelle die Anforderung referenzieren \ldots
Also in Anforderung \ref{Testanforderung} wird beschrieben, dass das Auto grün sein soll.
%Hier soll ... Anforderung REQ001 stehen 
\end{document}
[/i]
Viele Grüße
André

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »


ai.ks
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mo 28. Sep 2015, 14:49

Beitrag von ai.ks »

u_fischer hat geschrieben:Crosspost http://www.mrunix.de/forums/showthread. ... en-Counter
Ja ist ein Crosspost. :oops: Ist das hier verboten oder nicht gerne gesehen? Ich würde die gefundene Antwort auch in beiden Foren posten.
Normalerweise mache ich so etwas nicht, aber ich schreibe momentan an meiner Bachelorarbeit und langsam drückt die Zeit.
Viele Grüße
André

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Du hast bei der Anmeldung bestätigt das Regelwerk gelesen zu haben.
Regelwerk hat geschrieben:Crossposts (identische oder ähnliche Beiträge in verschiedenen Foren) müssen gegenseitig mit Links aufeinander verweisen. Dann ist Rat einholen an verschiedenen Stellen in Ordnung, denn man kann auf allen Seiten die Diskussion verfolgen.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Das sollte funktionieren:
\providecommand\threedigits[1]{\ifnum#1<10 0\fi\ifnum#1<100 0\fi\number#1}

% Definition des Befehles
\newcounter{reqCounter}
\renewcommand\thereqCounter{REQ\threedigits{\value{reqCounter}}}
\newcommand{\req}[2][]{%
  \refstepcounter{reqCounter}%
  \begin{quote}
    \begin{tabular}{lp{11cm}}
      \footnotesize
      \thereqCounter
      & #2 \\
    \end{tabular}
  \end{quote}
  \ifthenelse{\isempty{#1}}{}{\label{#1}}%
}
Grüße
Clemens
Paketauthor

ai.ks
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mo 28. Sep 2015, 14:49

Beitrag von ai.ks »

cgnieder hat geschrieben:Das sollte funktionieren:
Vielen Dank Clemens, das hat funktioniert 8)
\providecommand\threedigits[1]{\ifnum#1<10 0\fi\ifnum#1<100 0\fi\number#1}
\newcounter{reqCounter}
\renewcommand\thereqCounter{REQ\threedigits{\value{reqCounter}}}
%...
Viele Grüße
André

Antworten