von Benji » Di 19. Mai 2015, 04:23
Hallo
Ich setzte in einem Dokument Markierungen und zähle diese (es geht nicht darum, Text zu parsen oder Wörter zu zählen). Hier ein Minimalbeispiel:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\makeatletter
\newcommand\markierung[1]{% Kommando um Markierung zu setzten
\@ifundefined{c@mark_#1}{% Schauen, ob der jeweilge Counter schon existiert
\newcounter{mark_#1}% Wenn nicht, einen Counter anlegen
}{}%
\stepcounter{mark_#1}% Hochzaehlen
}
\newcommand\zaehle[1]{%
\@ifundefined{c@mark_#1}{% Wenn der Counter existiert
}{%
\arabic{mark_#1}% Wert ausgeben
}%
}
\makeatother
\begin{document}
Blau\markierung{blau}, Gruen\markierung{gruen}, Hellblau\markierung{blau}, Gruen\markierung{gruen},
Im Text kam \zaehle{blau} mal Blau vor und \zaehle{gruen} mal Gruen vor.
% Ausgabe: Im Text kam 2 mal Blau vor und 2 mal Gruen vor.
% Bereits hier sollte das Endergebnis stehen, das heißt 3 mal Blau
Blau\markierung{blau}
Im Text kam \zaehle{blau} mal Blau vor und \zaehle{gruen} mal Gruen vor.
% Ausgabe: Im Text kam 3 mal Blau vor und 2 mal Gruen vor.
\end{document}
--> Grundsätzlich funktioniert es, jedoch, gibt er nur die Anzahl an Markierungen bis zu der Stelle aus, wo ich \zaehle anwende.
Die einzige Lösung, die mir jetzt einfällt, die Zahl am Ende in ein File zu schreiben, dann nochmal bauen lassen und die Zahl auslesen. Aber es müsste doch eine "elegantere" Möglichkeit geben?
Vielen lieben Dank... Ich zerbreche mir da schon ewig den Kopf, weiß aber auch nicht, wie man nach so was googlen soll.
Benji[/code]
Hallo
Ich setzte in einem Dokument Markierungen und zähle diese (es geht nicht darum, Text zu parsen oder Wörter zu zählen). Hier ein Minimalbeispiel:
[code]
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\makeatletter
\newcommand\markierung[1]{% Kommando um Markierung zu setzten
\@ifundefined{c@mark_#1}{% Schauen, ob der jeweilge Counter schon existiert
\newcounter{mark_#1}% Wenn nicht, einen Counter anlegen
}{}%
\stepcounter{mark_#1}% Hochzaehlen
}
\newcommand\zaehle[1]{%
\@ifundefined{c@mark_#1}{% Wenn der Counter existiert
}{%
\arabic{mark_#1}% Wert ausgeben
}%
}
\makeatother
\begin{document}
Blau\markierung{blau}, Gruen\markierung{gruen}, Hellblau\markierung{blau}, Gruen\markierung{gruen},
Im Text kam \zaehle{blau} mal Blau vor und \zaehle{gruen} mal Gruen vor.
% Ausgabe: Im Text kam 2 mal Blau vor und 2 mal Gruen vor.
% Bereits hier sollte das Endergebnis stehen, das heißt 3 mal Blau
Blau\markierung{blau}
Im Text kam \zaehle{blau} mal Blau vor und \zaehle{gruen} mal Gruen vor.
% Ausgabe: Im Text kam 3 mal Blau vor und 2 mal Gruen vor.
\end{document}
[/code]
--> Grundsätzlich funktioniert es, jedoch, gibt er nur die Anzahl an Markierungen bis zu der Stelle aus, wo ich \zaehle anwende.
Die einzige Lösung, die mir jetzt einfällt, die Zahl am Ende in ein File zu schreiben, dann nochmal bauen lassen und die Zahl auslesen. Aber es müsste doch eine "elegantere" Möglichkeit geben?
Vielen lieben Dank... Ich zerbreche mir da schon ewig den Kopf, weiß aber auch nicht, wie man nach so was googlen soll. :-(
Benji[/code]