Loop over an optional argument

Clash Royale CLAN TAG#URR8PPP
I'd like to use the command foo with an optional argument to step and print the counter value iterated according to the number passed.
So, for example, foo[5] should step the counter 5 times, one by one.
(!) Note that it is not the same as stepcounter5.
MWE
documentclassreport
newcountermycount
setcountermycount0
newcommandfoostepcountermycountcounter is textbfthemycount
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter is textbf3,4
enddocument

macros counters loops
add a comment |
I'd like to use the command foo with an optional argument to step and print the counter value iterated according to the number passed.
So, for example, foo[5] should step the counter 5 times, one by one.
(!) Note that it is not the same as stepcounter5.
MWE
documentclassreport
newcountermycount
setcountermycount0
newcommandfoostepcountermycountcounter is textbfthemycount
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter is textbf3,4
enddocument

macros counters loops
add a comment |
I'd like to use the command foo with an optional argument to step and print the counter value iterated according to the number passed.
So, for example, foo[5] should step the counter 5 times, one by one.
(!) Note that it is not the same as stepcounter5.
MWE
documentclassreport
newcountermycount
setcountermycount0
newcommandfoostepcountermycountcounter is textbfthemycount
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter is textbf3,4
enddocument

macros counters loops
I'd like to use the command foo with an optional argument to step and print the counter value iterated according to the number passed.
So, for example, foo[5] should step the counter 5 times, one by one.
(!) Note that it is not the same as stepcounter5.
MWE
documentclassreport
newcountermycount
setcountermycount0
newcommandfoostepcountermycountcounter is textbfthemycount
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter is textbf3,4
enddocument

macros counters loops
macros counters loops
asked Jan 18 at 23:45
SigurSigur
24.7k356139
24.7k356139
add a comment |
add a comment |
5 Answers
5
active
oldest
votes
With expl3 it's just a few lines.
documentclassreport
usepackagexparse
newcountermycount
setcountermycount0
ExplSyntaxOn
NewDocumentCommandfooO1
int_compare:nT #1 > 0
int_compare:nTF #1 = 1 counter~is counters~are~
stepcountermycount
textbfthemycount
prg_replicate:nn #1 - 1 ,stepcountermycounttextbfthemycount
ExplSyntaxOff
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
now using with option to iterate: counters are textbf3,4
foo[5]
enddocument
The trick is to do the first iteration and then proceed again adding first a comma.
If the number passed is zero or less nothing happens.

Exactly what I need.
– Sigur
Jan 18 at 23:56
Do you think is it possible to change the text also if there is argument? I mean, to printcounters are 5,6,7,8for example.
– Sigur
Jan 18 at 23:57
2
@Sigur Your wish is my command. Updated.
– egreg
Jan 19 at 0:03
Oh, I think I should learn aboutNewDocumentCommandas soon as possible. Amazing and powerful.
– Sigur
Jan 19 at 0:08
add a comment |
Here is short code with multido, xparse and etoolbox:
documentclassreport
usepackagemultido
usepackagexparse, etoolbox
newcountermycount
setcountermycount0
NewDocumentCommandfooO1counter is multidoi=1+1#1stepcountermycounttextbfthemycountifnumlessmultidocount#1,,.
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[5]
enddocument

add a comment |
Here is an approach using multido for looping and a delayed delimiter definition:

documentclassarticle
usepackagemultido
newcountermycount
newcommandfoo[1][1]%
counter%
ifnum#1>1relax s areelse space isfi
space
% https://tex.stackexchange.com/a/89187/5764
defitemdelimunskipspacedefitemdelim,space% Item delimiter delayed by one cycle
bfseriesmultidoi=1+1#1itemdelim stepcountermycountthemycount%
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counters are textbf3, 4
enddocument
This solution is more understandable to me... but I had never done it by myself. Very nice.
– Sigur
Jan 19 at 0:11
add a comment |
With pgffor it is even less lines.
documentclassreport
usepackagepgffor
newcountermycount
setcountermycount0
newcommandfoo[1][1]counter is foreach X [count=Y] in
1,...,#1stepcountermycount%
textbfthemycountifnumY=#1%
else%
,fi
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
enddocument

add a comment |
A bit more code but without additional packages:
documentclassreport
newcountermycount
setcountermycount0
newcommandExchange[2]#2#1%
newcommandfoo[1][1]fooloop#1counter value is
makeatletter
newcommandfooloop[3]%
ifnum#1>0 stepcountermycountfi
ifnum#1>1 expandafter@firstoftwoelseexpandafter@secondoftwofi
%
begingroup
protected@edef@tempathemycount%
c@mycount=#1relax
advancec@mycount by -1relax
expandafterendgroup
expandafterfooloopexpandafter
numberexpandafterc@mycountexpandafterexpandafter
romannumeral0expandafterExchangeexpandafter@tempa #2, %
counter values are%
%
#3 textbf#2themycount%
%
%
makeatother
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[4]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter values are textbf3, 4, 5, 6
medskip
now using with option to iterate 0 times---counter is unchanged and displayed: foo[0]
medskip
now using with option to iterate -1 times---counter is unchanged and displayed: foo[-1]
enddocument

add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "85"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f470788%2floop-over-an-optional-argument%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
With expl3 it's just a few lines.
documentclassreport
usepackagexparse
newcountermycount
setcountermycount0
ExplSyntaxOn
NewDocumentCommandfooO1
int_compare:nT #1 > 0
int_compare:nTF #1 = 1 counter~is counters~are~
stepcountermycount
textbfthemycount
prg_replicate:nn #1 - 1 ,stepcountermycounttextbfthemycount
ExplSyntaxOff
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
now using with option to iterate: counters are textbf3,4
foo[5]
enddocument
The trick is to do the first iteration and then proceed again adding first a comma.
If the number passed is zero or less nothing happens.

Exactly what I need.
– Sigur
Jan 18 at 23:56
Do you think is it possible to change the text also if there is argument? I mean, to printcounters are 5,6,7,8for example.
– Sigur
Jan 18 at 23:57
2
@Sigur Your wish is my command. Updated.
– egreg
Jan 19 at 0:03
Oh, I think I should learn aboutNewDocumentCommandas soon as possible. Amazing and powerful.
– Sigur
Jan 19 at 0:08
add a comment |
With expl3 it's just a few lines.
documentclassreport
usepackagexparse
newcountermycount
setcountermycount0
ExplSyntaxOn
NewDocumentCommandfooO1
int_compare:nT #1 > 0
int_compare:nTF #1 = 1 counter~is counters~are~
stepcountermycount
textbfthemycount
prg_replicate:nn #1 - 1 ,stepcountermycounttextbfthemycount
ExplSyntaxOff
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
now using with option to iterate: counters are textbf3,4
foo[5]
enddocument
The trick is to do the first iteration and then proceed again adding first a comma.
If the number passed is zero or less nothing happens.

Exactly what I need.
– Sigur
Jan 18 at 23:56
Do you think is it possible to change the text also if there is argument? I mean, to printcounters are 5,6,7,8for example.
– Sigur
Jan 18 at 23:57
2
@Sigur Your wish is my command. Updated.
– egreg
Jan 19 at 0:03
Oh, I think I should learn aboutNewDocumentCommandas soon as possible. Amazing and powerful.
– Sigur
Jan 19 at 0:08
add a comment |
With expl3 it's just a few lines.
documentclassreport
usepackagexparse
newcountermycount
setcountermycount0
ExplSyntaxOn
NewDocumentCommandfooO1
int_compare:nT #1 > 0
int_compare:nTF #1 = 1 counter~is counters~are~
stepcountermycount
textbfthemycount
prg_replicate:nn #1 - 1 ,stepcountermycounttextbfthemycount
ExplSyntaxOff
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
now using with option to iterate: counters are textbf3,4
foo[5]
enddocument
The trick is to do the first iteration and then proceed again adding first a comma.
If the number passed is zero or less nothing happens.

With expl3 it's just a few lines.
documentclassreport
usepackagexparse
newcountermycount
setcountermycount0
ExplSyntaxOn
NewDocumentCommandfooO1
int_compare:nT #1 > 0
int_compare:nTF #1 = 1 counter~is counters~are~
stepcountermycount
textbfthemycount
prg_replicate:nn #1 - 1 ,stepcountermycounttextbfthemycount
ExplSyntaxOff
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
now using with option to iterate: counters are textbf3,4
foo[5]
enddocument
The trick is to do the first iteration and then proceed again adding first a comma.
If the number passed is zero or less nothing happens.

edited Jan 19 at 0:03
answered Jan 18 at 23:54
egregegreg
717k8719023197
717k8719023197
Exactly what I need.
– Sigur
Jan 18 at 23:56
Do you think is it possible to change the text also if there is argument? I mean, to printcounters are 5,6,7,8for example.
– Sigur
Jan 18 at 23:57
2
@Sigur Your wish is my command. Updated.
– egreg
Jan 19 at 0:03
Oh, I think I should learn aboutNewDocumentCommandas soon as possible. Amazing and powerful.
– Sigur
Jan 19 at 0:08
add a comment |
Exactly what I need.
– Sigur
Jan 18 at 23:56
Do you think is it possible to change the text also if there is argument? I mean, to printcounters are 5,6,7,8for example.
– Sigur
Jan 18 at 23:57
2
@Sigur Your wish is my command. Updated.
– egreg
Jan 19 at 0:03
Oh, I think I should learn aboutNewDocumentCommandas soon as possible. Amazing and powerful.
– Sigur
Jan 19 at 0:08
Exactly what I need.
– Sigur
Jan 18 at 23:56
Exactly what I need.
– Sigur
Jan 18 at 23:56
Do you think is it possible to change the text also if there is argument? I mean, to print
counters are 5,6,7,8 for example.– Sigur
Jan 18 at 23:57
Do you think is it possible to change the text also if there is argument? I mean, to print
counters are 5,6,7,8 for example.– Sigur
Jan 18 at 23:57
2
2
@Sigur Your wish is my command. Updated.
– egreg
Jan 19 at 0:03
@Sigur Your wish is my command. Updated.
– egreg
Jan 19 at 0:03
Oh, I think I should learn about
NewDocumentCommand as soon as possible. Amazing and powerful.– Sigur
Jan 19 at 0:08
Oh, I think I should learn about
NewDocumentCommand as soon as possible. Amazing and powerful.– Sigur
Jan 19 at 0:08
add a comment |
Here is short code with multido, xparse and etoolbox:
documentclassreport
usepackagemultido
usepackagexparse, etoolbox
newcountermycount
setcountermycount0
NewDocumentCommandfooO1counter is multidoi=1+1#1stepcountermycounttextbfthemycountifnumlessmultidocount#1,,.
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[5]
enddocument

add a comment |
Here is short code with multido, xparse and etoolbox:
documentclassreport
usepackagemultido
usepackagexparse, etoolbox
newcountermycount
setcountermycount0
NewDocumentCommandfooO1counter is multidoi=1+1#1stepcountermycounttextbfthemycountifnumlessmultidocount#1,,.
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[5]
enddocument

add a comment |
Here is short code with multido, xparse and etoolbox:
documentclassreport
usepackagemultido
usepackagexparse, etoolbox
newcountermycount
setcountermycount0
NewDocumentCommandfooO1counter is multidoi=1+1#1stepcountermycounttextbfthemycountifnumlessmultidocount#1,,.
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[5]
enddocument

Here is short code with multido, xparse and etoolbox:
documentclassreport
usepackagemultido
usepackagexparse, etoolbox
newcountermycount
setcountermycount0
NewDocumentCommandfooO1counter is multidoi=1+1#1stepcountermycounttextbfthemycountifnumlessmultidocount#1,,.
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[5]
enddocument

answered Jan 19 at 0:32
BernardBernard
169k773198
169k773198
add a comment |
add a comment |
Here is an approach using multido for looping and a delayed delimiter definition:

documentclassarticle
usepackagemultido
newcountermycount
newcommandfoo[1][1]%
counter%
ifnum#1>1relax s areelse space isfi
space
% https://tex.stackexchange.com/a/89187/5764
defitemdelimunskipspacedefitemdelim,space% Item delimiter delayed by one cycle
bfseriesmultidoi=1+1#1itemdelim stepcountermycountthemycount%
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counters are textbf3, 4
enddocument
This solution is more understandable to me... but I had never done it by myself. Very nice.
– Sigur
Jan 19 at 0:11
add a comment |
Here is an approach using multido for looping and a delayed delimiter definition:

documentclassarticle
usepackagemultido
newcountermycount
newcommandfoo[1][1]%
counter%
ifnum#1>1relax s areelse space isfi
space
% https://tex.stackexchange.com/a/89187/5764
defitemdelimunskipspacedefitemdelim,space% Item delimiter delayed by one cycle
bfseriesmultidoi=1+1#1itemdelim stepcountermycountthemycount%
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counters are textbf3, 4
enddocument
This solution is more understandable to me... but I had never done it by myself. Very nice.
– Sigur
Jan 19 at 0:11
add a comment |
Here is an approach using multido for looping and a delayed delimiter definition:

documentclassarticle
usepackagemultido
newcountermycount
newcommandfoo[1][1]%
counter%
ifnum#1>1relax s areelse space isfi
space
% https://tex.stackexchange.com/a/89187/5764
defitemdelimunskipspacedefitemdelim,space% Item delimiter delayed by one cycle
bfseriesmultidoi=1+1#1itemdelim stepcountermycountthemycount%
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counters are textbf3, 4
enddocument
Here is an approach using multido for looping and a delayed delimiter definition:

documentclassarticle
usepackagemultido
newcountermycount
newcommandfoo[1][1]%
counter%
ifnum#1>1relax s areelse space isfi
space
% https://tex.stackexchange.com/a/89187/5764
defitemdelimunskipspacedefitemdelim,space% Item delimiter delayed by one cycle
bfseriesmultidoi=1+1#1itemdelim stepcountermycountthemycount%
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counters are textbf3, 4
enddocument
answered Jan 19 at 0:04
WernerWerner
443k679761673
443k679761673
This solution is more understandable to me... but I had never done it by myself. Very nice.
– Sigur
Jan 19 at 0:11
add a comment |
This solution is more understandable to me... but I had never done it by myself. Very nice.
– Sigur
Jan 19 at 0:11
This solution is more understandable to me... but I had never done it by myself. Very nice.
– Sigur
Jan 19 at 0:11
This solution is more understandable to me... but I had never done it by myself. Very nice.
– Sigur
Jan 19 at 0:11
add a comment |
With pgffor it is even less lines.
documentclassreport
usepackagepgffor
newcountermycount
setcountermycount0
newcommandfoo[1][1]counter is foreach X [count=Y] in
1,...,#1stepcountermycount%
textbfthemycountifnumY=#1%
else%
,fi
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
enddocument

add a comment |
With pgffor it is even less lines.
documentclassreport
usepackagepgffor
newcountermycount
setcountermycount0
newcommandfoo[1][1]counter is foreach X [count=Y] in
1,...,#1stepcountermycount%
textbfthemycountifnumY=#1%
else%
,fi
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
enddocument

add a comment |
With pgffor it is even less lines.
documentclassreport
usepackagepgffor
newcountermycount
setcountermycount0
newcommandfoo[1][1]counter is foreach X [count=Y] in
1,...,#1stepcountermycount%
textbfthemycountifnumY=#1%
else%
,fi
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
enddocument

With pgffor it is even less lines.
documentclassreport
usepackagepgffor
newcountermycount
setcountermycount0
newcommandfoo[1][1]counter is foreach X [count=Y] in
1,...,#1stepcountermycount%
textbfthemycountifnumY=#1%
else%
,fi
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[2]
enddocument

edited Jan 19 at 0:31
answered Jan 19 at 0:26
marmotmarmot
97.6k4112215
97.6k4112215
add a comment |
add a comment |
A bit more code but without additional packages:
documentclassreport
newcountermycount
setcountermycount0
newcommandExchange[2]#2#1%
newcommandfoo[1][1]fooloop#1counter value is
makeatletter
newcommandfooloop[3]%
ifnum#1>0 stepcountermycountfi
ifnum#1>1 expandafter@firstoftwoelseexpandafter@secondoftwofi
%
begingroup
protected@edef@tempathemycount%
c@mycount=#1relax
advancec@mycount by -1relax
expandafterendgroup
expandafterfooloopexpandafter
numberexpandafterc@mycountexpandafterexpandafter
romannumeral0expandafterExchangeexpandafter@tempa #2, %
counter values are%
%
#3 textbf#2themycount%
%
%
makeatother
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[4]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter values are textbf3, 4, 5, 6
medskip
now using with option to iterate 0 times---counter is unchanged and displayed: foo[0]
medskip
now using with option to iterate -1 times---counter is unchanged and displayed: foo[-1]
enddocument

add a comment |
A bit more code but without additional packages:
documentclassreport
newcountermycount
setcountermycount0
newcommandExchange[2]#2#1%
newcommandfoo[1][1]fooloop#1counter value is
makeatletter
newcommandfooloop[3]%
ifnum#1>0 stepcountermycountfi
ifnum#1>1 expandafter@firstoftwoelseexpandafter@secondoftwofi
%
begingroup
protected@edef@tempathemycount%
c@mycount=#1relax
advancec@mycount by -1relax
expandafterendgroup
expandafterfooloopexpandafter
numberexpandafterc@mycountexpandafterexpandafter
romannumeral0expandafterExchangeexpandafter@tempa #2, %
counter values are%
%
#3 textbf#2themycount%
%
%
makeatother
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[4]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter values are textbf3, 4, 5, 6
medskip
now using with option to iterate 0 times---counter is unchanged and displayed: foo[0]
medskip
now using with option to iterate -1 times---counter is unchanged and displayed: foo[-1]
enddocument

add a comment |
A bit more code but without additional packages:
documentclassreport
newcountermycount
setcountermycount0
newcommandExchange[2]#2#1%
newcommandfoo[1][1]fooloop#1counter value is
makeatletter
newcommandfooloop[3]%
ifnum#1>0 stepcountermycountfi
ifnum#1>1 expandafter@firstoftwoelseexpandafter@secondoftwofi
%
begingroup
protected@edef@tempathemycount%
c@mycount=#1relax
advancec@mycount by -1relax
expandafterendgroup
expandafterfooloopexpandafter
numberexpandafterc@mycountexpandafterexpandafter
romannumeral0expandafterExchangeexpandafter@tempa #2, %
counter values are%
%
#3 textbf#2themycount%
%
%
makeatother
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[4]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter values are textbf3, 4, 5, 6
medskip
now using with option to iterate 0 times---counter is unchanged and displayed: foo[0]
medskip
now using with option to iterate -1 times---counter is unchanged and displayed: foo[-1]
enddocument

A bit more code but without additional packages:
documentclassreport
newcountermycount
setcountermycount0
newcommandExchange[2]#2#1%
newcommandfoo[1][1]fooloop#1counter value is
makeatletter
newcommandfooloop[3]%
ifnum#1>0 stepcountermycountfi
ifnum#1>1 expandafter@firstoftwoelseexpandafter@secondoftwofi
%
begingroup
protected@edef@tempathemycount%
c@mycount=#1relax
advancec@mycount by -1relax
expandafterendgroup
expandafterfooloopexpandafter
numberexpandafterc@mycountexpandafterexpandafter
romannumeral0expandafterExchangeexpandafter@tempa #2, %
counter values are%
%
#3 textbf#2themycount%
%
%
makeatother
begindocument
first use: foo
second use: foo
now using with option to iterate: foo[4]
medskip
textitdesired output from line above should be:
medskip
now using with option to iterate: counter values are textbf3, 4, 5, 6
medskip
now using with option to iterate 0 times---counter is unchanged and displayed: foo[0]
medskip
now using with option to iterate -1 times---counter is unchanged and displayed: foo[-1]
enddocument

edited Jan 27 at 5:21
answered Jan 27 at 5:10
Ulrich DiezUlrich Diez
4,500616
4,500616
add a comment |
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f470788%2floop-over-an-optional-argument%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown