PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Referenz auf eigenen Counter



ai.casselfornia
28-09-2015, 15:22
Hallo Leute,

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:
(mit Online-Editor öffnen (https://www.overleaf.com/3339831tyghtd))


%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}

u_fischer
28-09-2015, 16:13
Crosspost http://golatex.de/referenz-auf-eigenen-counter-t16077.html

ai.casselfornia
28-09-2015, 18:51
Crosspost http://golatex.de/referenz-auf-eigenen-counter-t16077.html

Ja ist ein Crosspost. 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.

Johannes_B
28-09-2015, 19:20
Auch hier gibt es dazu etwas in den Boardregeln (http://mrunix.de/forums/showthread.php?38129-Boardregeln-Bitte-lesen!).


Crosspostings: Wer die gleiche Frage noch in einem anderen Forum stellt, gibt den direkten Link zu der Frage in seinem Post an (damit die Frage nicht doppelt beantwortet werden muss).

klops
28-09-2015, 20:13
Ja, wenn die Zeit drückt, endlich mal etwas zu essen, bestelle ich auch schon mal bei zwei Pizza-Service. Man weiß ja nie, wie lange die brauchen und welche Pizza besser ist.

ai.casselfornia
28-09-2015, 23:21
Ja, wenn die Zeit drückt, endlich mal etwas zu essen, bestelle ich auch schon mal bei zwei Pizza-Service. Man weiß ja nie, wie lange die brauchen und welche Pizza besser ist.

Welch' komischer Vergleich o.O Hier geht es doch nicht um besser oder schlechter. Vielleicht gibt es in den einem Forum jemand, der die Antwort kennt und ich poste die Antwort anschießend hier. Also eine win-win-Situation.
Okay, das mit dem Verlinken hätte ich wohl wissen müssen. Sorry dafür. Für's nächste mal weiß ich es besser.

In dem besagten anderen Forum (http://golatex.de/referenz-auf-eigenen-counter-t16077.html) hat der Nutzer "cgnieder" die passende Lösung für mich gehabt:



%Befehl für führende Nullen
\providecommand\threedigits[1]{\ifnum#1<10 0\fi\ifnum#1<100 0\fi\number#1}
\newcounter{reqCounter}
%Counter-Ausgabebefehl überschreiben (das war das, was ich gebraucht hatte)
\renewcommand\thereqCounter{REQ\threedigits{\value {reqCounter}}}

\newcommand{\req}[2][]{
\refstepcounter{reqCounter}
\begin{quote}
\begin{tabular}{lp{11cm}}
\begin{footnotesize}
\thereqCounter
\end{footnotesize}
& #2 \\
\end{tabular}
\end{quote}
\ifthenelse{\isempty{#1}}{}{\label{#1}}
}