Eigene Struktur zum steuern, wie oft etwas wiederholt wird Thema ist als GELÖST markiert
Eigene Struktur zum steuern, wie oft etwas wiederholt wird
Hallo,
ich würde gerne eine eigentilch simple eigendefinition erstellen. Ich hätte gerne ein eigene Struktur, über die ich steuern kann, wie häufig ein zeichen wiederholt ausgegeben werden soll.
Bsp:
\mycommand[14]{testzeichen }
In diesem Beispiel hätte ich dann gerne die ausgabe von testzeichen testzeichen testzeichen testzeichen ... testzeichen 14 mal.
Leider habe ich bisher noch nicht den richtigen Ansatz gefunden. Habt ihr mit dafür eine Lösung oder einen Tip?
Danke
ich würde gerne eine eigentilch simple eigendefinition erstellen. Ich hätte gerne ein eigene Struktur, über die ich steuern kann, wie häufig ein zeichen wiederholt ausgegeben werden soll.
Bsp:
\mycommand[14]{testzeichen }
In diesem Beispiel hätte ich dann gerne die ausgabe von testzeichen testzeichen testzeichen testzeichen ... testzeichen 14 mal.
Leider habe ich bisher noch nicht den richtigen Ansatz gefunden. Habt ihr mit dafür eine Lösung oder einen Tip?
Danke
- bloodworks
- Moderator
- Beiträge: 1425
- Registriert: Mo 19. Jan 2009, 10:52
- Wohnort: /dev/null
Das ist relativ simpel:
Ich empfehle dazu texbytopic
\documentclass{report} \newcommand\mycom[2][\mydefault]{% \def\mydefault{1}% \newcount\n \n=0 \loop #2 \advance\n by 1 \ifnum \n < #1\repeat } \begin{document} \mycom[10]{y} \end{document}
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.
Weder \newcount (das ist ein plainTeX-Befehl) noch \newcounter (die LaTeX-Anweisung zum Anfordern eines neuen LaTeX-Zählers) sollten innerhalb der Anweisung stehen. Dabei wird nämlich dann bei jedem Aufruf der Anweisung ein neues Zählerregister belegt aber nie wieder frei gegeben. \newcount und \newcounter gehören deshalb (wie \newlength, \newskip etc.) global, außerhalb der Definition der Anweisung \mycom verwendet.
BTW: Das ifthen-Paket bietet ebenfalls Schleifenkonstrukte wie \while. Es gibt auch ein Paket, das für Zähler verwendet werden kann, die lediglich lokal benötigt werden. Ich habe nur vergessen wie das heißt, weil ich in diesen Fällen einfach einen der temporär nutzbaren Zähler des LaTeX-Kern verwende, beispielsweise \@tempcnta.
BTW: Das ifthen-Paket bietet ebenfalls Schleifenkonstrukte wie \while. Es gibt auch ein Paket, das für Zähler verwendet werden kann, die lediglich lokal benötigt werden. Ich habe nur vergessen wie das heißt, weil ich in diesen Fällen einfach einen der temporär nutzbaren Zähler des LaTeX-Kern verwende, beispielsweise \@tempcnta.
Workaround mit Schleife:
Dazu http://www.matthiaspospiech.de/blog/200 ... if-abfrage
Gruß, Sepp.-
EDIT: etwas zu spät
\documentclass{scrartcl} \usepackage[ngerman]{babel} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{ifthen} \newcounter{ctra} \newcommand*{\schleife}[2]{% \setcounter{ctra}{0} \whiledo {\value{ctra} < #2}% {% \large #1% \stepcounter {ctra}% }} \begin{document} \schleife{A}{5} \schleife{G}{15} \end{document}
Gruß, Sepp.-
EDIT: etwas zu spät
[1] Wichtige Dokumente [2] Knigge und Regelwerk
[3] TeXnicCenter und MiKTeX
[4] Minimalbeispiel und Fehlersuche [5] Status und Statusänderung
[3] TeXnicCenter und MiKTeX
[4] Minimalbeispiel und Fehlersuche [5] Status und Statusänderung
- bloodworks
- Moderator
- Beiträge: 1425
- Registriert: Mo 19. Jan 2009, 10:52
- Wohnort: /dev/null
Zu 1. ja -> schlamperreiBesserwisser hat geschrieben:Weder \newcount (das ist ein plainTeX-Befehl) noch \newcounter (die LaTeX-Anweisung zum Anfordern eines neuen LaTeX-Zählers) sollten innerhalb der Anweisung stehen. Dabei wird nämlich dann bei jedem Aufruf der Anweisung ein neues Zählerregister belegt aber nie wieder frei gegeben. \newcount und \newcounter gehören deshalb (wie \newlength, \newskip etc.) global, außerhalb der Definition der Anweisung \mycom verwendet.
BTW: Das ifthen-Paket bietet ebenfalls Schleifenkonstrukte wie \while. Es gibt auch ein Paket, das für Zähler verwendet werden kann, die lediglich lokal benötigt werden. Ich habe nur vergessen wie das heißt, weil ich in diesen Fällen einfach einen der temporär nutzbaren Zähler des LaTeX-Kern verwende, beispielsweise \@tempcnta.
Zu BTW: Ja das sollte aber in diesem Fall egal sein und um etwas zu zeigen ist es sicher besser auch zu zeigen wo der Befehl (oder Zähler) herkommt.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.
- cgnieder
- Forum-Meister
- Beiträge: 730
- Registriert: Fr 22. Okt 2010, 18:37
- Wohnort: Herrenberg
- Kontaktdaten:
Nur der Vollständigkeit halber hier die expl3-Lösung:

Grüße
\documentclass{article} \usepackage{xparse} \ExplSyntaxOn \NewDocumentCommand \myrepeat { O{1}m } { \int_zero:N \l_tmpa_int % Schleife nur bis zum vorletzten Mal, damit wir ein Leerzeichen nur zwischen % nicht aber nach der letzten Ausgabe haben \int_while_do:nNnn { \l_tmpa_int } < { #1 - 1 } { \int_incr:N \l_tmpa_int #2 \tl_use:N \c_space_tl } #2 } \ExplSyntaxOff \begin{document} \myrepeat[4]{test}! \myrepeat{nur einmal}? \myrepeat[100]{oft}! \end{document}

Grüße
- Dateianhänge
-
- repeat.png (13.18 KiB) 3367 mal betrachtet
Clemens
Paketauthor
Paketauthor
- bloodworks
- Moderator
- Beiträge: 1425
- Registriert: Mo 19. Jan 2009, 10:52
- Wohnort: /dev/null
...hehehe jetzt fehlt nur noch die Context Lösung...cgnieder hat geschrieben:Nur der Vollständigkeit halber hier die expl3-Lösung:
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.
- cgnieder
- Forum-Meister
- Beiträge: 730
- Registriert: Fr 22. Okt 2010, 18:37
- Wohnort: Herrenberg
- Kontaktdaten:
Damit kann ja vielleicht einer von denen dienen?bloodworks hat geschrieben:...hehehe jetzt fehlt nur noch die Context Lösung...

Clemens
Paketauthor
Paketauthor