PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dynamisches Label aus zwei Counter Variablen



DasPferd
04-02-2012, 22:08
Ich hab ein Transkript (Abschrieb eines Interviews) von z.B. 15 Probanden das Ganze schaut ungefähr so aus:

Kapitel Proband 1:
(1)Interviewer: Bla Bla Bla
(2)Proband: Bla Bla Bla
(3)Interviewer: Bla Bla Bla
....

Kapitel Proband 2:
(1)Interviewer: Bla Bla Bla
(2)Proband: Bla Bla Bla
(3)Interviewer: Bla Bla Bla
....

Dabei werden die einzelnen Sätze dynamisch hochgezählt:


\newcounter{counter}

%%% -----------------------------------------------------------------------
%%% Interviewer
%%% -----------------------------------------------------------------------
\newcommand{\Int}[1]{
\addtocounter{counter}{1}
\label{counter}
\textcolor{socialspread}{(\arabic{counter}) Interviewer:} \textcolor{interviewer}{#1} \newline
}

%%% -----------------------------------------------------------------------
%%% Probandin
%%% -----------------------------------------------------------------------
\newcommand{\ProW}[1]{
\addtocounter{counter}{1}
\textcolor{socialspread}{\emph{(\arabic{counter}) Probandin:}} \textcolor{proband}{\emph{#1}} \newline
}


%%% -----------------------------------------------------------------------
%%% Proband
%%% -----------------------------------------------------------------------
\newcommand{\Pro}[1]{
\addtocounter{counter}{1}
\textcolor{socialspread}{\emph{(\arabic{counter}) Proband:}} \textcolor{proband}{\emph{#1}} \newline
}


Jetzt würde ich gerne ein Label erstellen der Form counter+Proband
also sprich z.B. label v1-1 = erster Proband 1 Satz und v2-7 = Proband 2 7ter Satz.

Sprich sowas in der Art:


\newcounter{counter}
\newcounter{proband}

%%% Interviewer
%%% -----------------------------------------------------------------------
\newcommand{\Int}[1]{
\addtocounter{counter}{1}
\label{counter+proband}
\label{counter}
\textcolor{socialspread}{(\arabic{counter}) Interviewer:} \textcolor{interviewer}{#1} \newline

.....
%%%Erster Proband
\setcounter{proband}{1}
\Int{BlaBlabla}
....

%%%Zweiter Proband
\setcounter{proband}{2}

}


Leider hab ich keinen Plan wie das geht und mir fällt auch nicht der geeignete Google Suchausdruck ein. Ich wäre dafür für eine Lösung sehr dankbar. Er soll natürlich nicht die Zahlen addieren sondern sowas in Richtung Int->String und dann String concat machen...

ctansearch
04-02-2012, 23:36
Hallo,
mit etwas Mühe geht sowas, aber ich frage erstmal nach, was Du damit anfangen willst.

DasPferd
05-02-2012, 09:08
Also bei jedem Probanden gibt es so ca. 300 Sätze zwischen Interviewer und Proband ich würde gerne eine Zusammenfassung erstellen der Form:

Funktion 1 wird von Proband nicht erkannt. | (V1-7 bis V1-9, V1-21, V1-41) wobei ich die blauen Stellen dann eben gerne auf die entsprechende Nummer verlinken würde.

Es gäbe da natürlich ein Workaround indem ich nen zweiten globalen Counter laufen lasse, mit diesem das Label erstelle und dann über diesen verweise. Aber ich würde das Ganze gerne einzelnd für jeden Probanden in einer PDF erstellen und dann zusätzlich in eine Gesamtdatei zusammenfügen daher wäre eine Lösung die so ner Art Stringconcat aus aktueller Counternummer und Probandenbezeichnung/Probandennnummer entpricht am schönsten.

Mir fällt sogar spontan noch ein anderes Workaround ein ich könnte jedem Probanden ne Nummer geben, die weit über dem anderen Counter liegt (Counter max 350 oder so), also z.B. P1 =1000 P2=2000 und diese dann zusammenzählen für das Label. Sozusagen: Erste Stelle Proband, dann folgende 3 Stellen Satznummer. Ist eigentlich gar nicht so mies wenn ichs mir recht überlege:



.....
%%%Erster Proband
\setcounter{counter}{1000}
\Int{BlaBlabla}
....

%%%Zweiter Proband
\setcounter{counter}{2000}



Aber rein aus Interesse, wie würde man das den so machen wie ursprünglich die Frage gestellt war oder ist das sehr kompliziert.

sommerfee
05-02-2012, 09:27
\addtocounter{counter}{1}
\label{counter+proband}
\label{counter}

So geht das nicht, \label bezieht sich immer auf die zuletzt gesetzte Hundemarke. Hundemarken werden u.a. durch \refstepcounter gesetzt, wenn du also \addtocounter{counter}{1} durch \refstepcounter{counter} ersetzt, und außerdem irgendwo vorher \renewcommand\thecounter{\theproband.\arabic{count er}} stehen hast, würde die Kombination aus \label und \ref etwas wie "1.2" als Ergebnis haben, wobei "1" der Zähler "proband" ist und "2" der "counter".

Möchtest du nun auch die Möglichkeit haben, mittels \ref nur den "counter" zu erhalten, dann muß man tricksen. (Das subcaption-Paket definiert hierfür \label um, so daß intern zwei Label gesetzt werden. Das zweite erreicht man mit \subref statt \ref. Das fällt aber ein bischen unter die Kategorie "Don't try this at home!".)

DasPferd
05-02-2012, 10:18
Hmm. Also ich habe inzwischen eine Lösung ausgetüfftelt die funktioniert:

So werden die Textfunktionen aufgerufen in denen die Labels des hyperref packages gesetzt werden.



\newcounter{counter}
\newcounter{proband}
\newcounter{temp}

%%% -----------------------------------------------------------------------
%%% Probandin
%%% -----------------------------------------------------------------------
\newcommand{\ProW}[1]{
\addtocounter{counter}{1}
\setcounter{temp}{0}
\addtocounter{temp}{\arabic{proband}}
\addtocounter{temp}{\arabic{counter}}
\hypertarget{\arabic{temp}}{}
\textcolor{socialspread}{\emph{(\arabic{counter}) Probandin:}} \textcolor{proband}{\emph{#1}} \newline
}



In der Zusammenfassung wird dann wie folgt drauf verwiesen:


Bla bla ist unverständlich \hyperlink{1031}{V1-31}&\\

Für jeden neuen Probanden wird counter = 0 gesetzt und proband = Probandennummer*1000 . Das Gute ist so ist's halt auch einfach zum referenzieren, weil ich weiß, wenn ich auf Aussage 31 des 1ten Probanden zurückgreifen will dann referenziere ich einfach auf 1031.

u_fischer
05-02-2012, 13:08
Deine Beschreibung ist ja was wirr. Aber mal zwei Anmerkungen:

1. Wenn du einen Zähler referenzieren willst, solltest du in mit \refstepcounter hochsetzen.

2. Das Argument von \label kann problemlos on-the-fly aus Zählerständen oder Macros erzeugt werden:


\documentclass{article}

\usepackage{hyperref}
\newcounter{proband}
\newcounter{counter}[proband]
\renewcommand\thecounter{Proband \arabic{proband}, Satz \arabic{counter}}

\newcommand{\Int}[1]{%
\par
\refstepcounter{counter}%
\label{P\number\value{proband}-S\number\value{counter}}%
Interview \arabic{counter}: #1}


\begin{document}
\refstepcounter{proband}
\Int{BlaBlabla}

\Int{blub}

\refstepcounter{proband}
\Int{Bla}


\ref{P1-S1}, \ref{P1-S2}, \ref{P2-S1}

\end{document}

ctansearch
05-02-2012, 19:01
Ich würde es so lösen:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\newcounter{questionnum}
\newcounter{answernum}
\newcommand{\question}[1]{\stepcounter{questionnum} \setcounter{answernum}{0} \item \textbf{(\thequestionnum ) #1}\label{\thequestionnum}}
\newcommand{\answer}[1]{ \stepcounter{answernum}\item (\theanswernum) #1 \label{\thequestionnum.\theanswernum}}
\newcommand {\myref}[1]{ {#1} \ref{#1} }
\renewcommand{\labelitemi}{}
\usepackage[colorlinks=true]{hyperref}
\begin{document}
\section{Kapitel Proband 1:}
\begin{itemize}
\question{Interviewer: Bla Bla Bla}
\answer{Proband: Ich kann das Bla Bla nicht einordnen}
\answer{Proband: Bla Bla Bla}
\answer{Proband: Bla Bla Bla}
\answer{Proband: Ich verstehe die Aufgabe nicht.}
\question{Interviewer: Man kann die Fragen auch mehrmals vorlesen.}
\answer{Proband: Ach so, na dann \dots}
\answer{Proband: Dann würde ich sagen, daß man es so machen sollte}
\question{Interviewer: Bla Bla Bla}
\answer{Proband: Bla Bla Bla}
\answer{Proband: Bla Bla Bla}
\question{Interviewer: Bla Bla Bla}
\answer{Proband: Bla Bla Bla}
\end{itemize}
\section{Analyse}
Zunächst wird deutlich daß Proband A in \myref{1.1} das ``Bla Bla''nicht einordnen kann.
Zweitens ist Proband B überfordert, die Aufgabenstellung \myref{1.4} zu verstehen.
Dies mag an der Art der Fragestellung liegen \myref{1}. Allerdings klärt der
Fragesteller in \myref{2} darüber auf, daß die Fragen nochmals vorgelesen werden.
Mit diesem Vorgehen erklärt sich der Proband einverstanden \myref{2.2}.
\end{document}

rais
06-02-2012, 11:12
Ich würde es so lösen:

zeigen damit nicht alle Deine \myref auf Abschnitt 1?
Schau Dir mal Ulrikes und Axels Hinweise zu \refstepcounter an.

MfG

ctansearch
06-02-2012, 11:24
@rais

Hast recht.