\documentclass{scrartcl} \usepackage{xltxtra} \usepackage{polyglossia} \setdefaultlanguage[spelling=new]{german} \usepackage{ifthen} \newcommand{\machs}[1] {% \newcounter{paperandpencil2machs} \setcounter{paperandpencil2machs}{#1} \whiledo {\value{paperandpencil2machs} > 0} { % X\ignorespaces \addtocounter{paperandpencil2machs}{-1} % } % } % \begin{document} \machs{7} XXXXXXX \end{document}
woher die Leerzeichen?
woher die Leerzeichen?
Das Thema der mysteriösen Leerzeichen hatte ich schon. Scheinbar habe ich es aber nicht verstanden. Den in diesem Beispiel ist zwischen den X in der ersten Zeile, immer noch ein Leerzeichen.
XeLaTeX, TeX Live, vim-latexsuite
Du hast zwar schon richtig die restliche Zeile auskommentiert, aber leider war da immer noch ein Leerzeichen mit enthalten und dieses wird dann natürlich mit gezählt. Fügt dein Editor zufällig vor dem Prozentzeichen ein Leerzeichen mit ein?
\documentclass{scrartcl} \usepackage{xltxtra} \usepackage{polyglossia} \setdefaultlanguage[spelling=new]{german} \usepackage{ifthen} \newcommand{\machs}[1]{% \newcounter{paperandpencil2machs} \setcounter{paperandpencil2machs}{#1} \whiledo{\value{paperandpencil2machs} > 0} {% X% \addtocounter{paperandpencil2machs}{-1}% }% } % \begin{document} \machs{7} XXXXXXX \end{document}
- cgnieder
- Forum-Meister
- Beiträge: 730
- Registriert: Fr 22. Okt 2010, 18:37
- Wohnort: Herrenberg
- Kontaktdaten:
Du hast ein paar Stellen, an denen Du das auskommentieren vergessen hast bzw. falsch gemacht hast:
Grüße
\documentclass{scrartcl} \usepackage{ifthen} \newcommand{\machs}[1]{% \newcounter{paperandpencil2machs}% <= hier nicht nötig aber empfohlen \setcounter{paperandpencil2machs}{#1}% <= hier nötig \whiledo{\value{paperandpencil2machs} > 0} {% <= ganz heran rutschen X% hier auch das Zeilenende verstecken \addtocounter{paperandpencil2machs}{-1}% <= ganz heran rutschen }% <= ganz heran rutschen } % <= hier ist es nutzlos \begin{document} x\machs{7}x \end{document}
Clemens
Paketauthor
Paketauthor
das hat zwar mit dem Problem nichts mehr zu tun, aber ich würde die Zählerdefinition vor die Definition von \machs ziehen: spätestens beim zweiten \machs-Aufruf bekommst Du sonst das Problem, dass Dein Zähler erneut definiert werden will.
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)
Verstehe. Aber dann existiert der Zähler ja global in jedem Code und jedem verwendeten Packet. Das will ich eigentlich vermeiden. Ich möchte (C++-denkend) den Zähler nur in dem Makro gültig haben.rais hat geschrieben:das hat zwar mit dem Problem nichts mehr zu tun, aber ich würde die Zählerdefinition vor die Definition von \machs ziehen: spätestens beim zweiten \machs-Aufruf bekommst Du sonst das Problem, dass Dein Zähler erneut definiert werden will.
Beim Beenden wird er zerstört - dachte ich.
Wie wäre es einfach mit einer Art undef am Ende des Makros?
XeLaTeX, TeX Live, vim-latexsuite
- cgnieder
- Forum-Meister
- Beiträge: 730
- Registriert: Fr 22. Okt 2010, 18:37
- Wohnort: Herrenberg
- Kontaktdaten:
Denk daran, dass Makros lediglich Hüllen sind, die mit ihrem Ersetzungstext ausgetauscht werden. Mit der DefinitionMoonKid hat geschrieben:Verstehe. Aber dann existiert der Zähler ja global in jedem Code und jedem verwendeten Packet. Das will ich eigentlich vermeiden. Ich möchte (C++-denkend) den Zähler nur in dem Makro gültig haben.rais hat geschrieben:das hat zwar mit dem Problem nichts mehr zu tun, aber ich würde die Zählerdefinition vor die Definition von \machs ziehen: spätestens beim zweiten \machs-Aufruf bekommst Du sonst das Problem, dass Dein Zähler erneut definiert werden will.
Beim Beenden wird er zerstört - dachte ich.
Wie wäre es einfach mit einer Art undef am Ende des Makros?
\newcommand{\machs}[1]{% \newcounter{paperandpencil2machs}% \setcounter{paperandpencil2machs}{#1}% \whiledo{\value{paperandpencil2machs} > 0} {% X% \addtocounter{paperandpencil2machs}{-1}% }% }
\newcounter{paperandpencil2machs}% \setcounter{paperandpencil2machs}{7}% \whiledo{\value{paperandpencil2machs} > 0} {% X% \addtocounter{paperandpencil2machs}{-1}% }%
Grüße
Clemens
Paketauthor
Paketauthor