Know in which column am I in [closed]
it there a way to have a variable that returns in which column of my multicols environment am I in?
Thanks!
multicol programming
closed as unclear what you're asking by Kurt, Stefan Pinnow, TeXnician, Werner, Phelype Oleinik Jan 22 at 17:38
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
it there a way to have a variable that returns in which column of my multicols environment am I in?
Thanks!
multicol programming
closed as unclear what you're asking by Kurt, Stefan Pinnow, TeXnician, Werner, Phelype Oleinik Jan 22 at 17:38
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
4
Can you add a bit of context for what you need to know the column number?
– samcarter
Jan 22 at 14:51
See tex.stackexchange.com/a/414638/117050 there I wrote some code to get the current column inside of a ToC.
– Skillmon
Jan 22 at 14:52
Possible duplicate of Detecting current column in multicol
– Werner
Jan 22 at 16:35
add a comment |
it there a way to have a variable that returns in which column of my multicols environment am I in?
Thanks!
multicol programming
it there a way to have a variable that returns in which column of my multicols environment am I in?
Thanks!
multicol programming
multicol programming
asked Jan 22 at 14:47
Lord NexprexLord Nexprex
1145
1145
closed as unclear what you're asking by Kurt, Stefan Pinnow, TeXnician, Werner, Phelype Oleinik Jan 22 at 17:38
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
closed as unclear what you're asking by Kurt, Stefan Pinnow, TeXnician, Werner, Phelype Oleinik Jan 22 at 17:38
Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
4
Can you add a bit of context for what you need to know the column number?
– samcarter
Jan 22 at 14:51
See tex.stackexchange.com/a/414638/117050 there I wrote some code to get the current column inside of a ToC.
– Skillmon
Jan 22 at 14:52
Possible duplicate of Detecting current column in multicol
– Werner
Jan 22 at 16:35
add a comment |
4
Can you add a bit of context for what you need to know the column number?
– samcarter
Jan 22 at 14:51
See tex.stackexchange.com/a/414638/117050 there I wrote some code to get the current column inside of a ToC.
– Skillmon
Jan 22 at 14:52
Possible duplicate of Detecting current column in multicol
– Werner
Jan 22 at 16:35
4
4
Can you add a bit of context for what you need to know the column number?
– samcarter
Jan 22 at 14:51
Can you add a bit of context for what you need to know the column number?
– samcarter
Jan 22 at 14:51
See tex.stackexchange.com/a/414638/117050 there I wrote some code to get the current column inside of a ToC.
– Skillmon
Jan 22 at 14:52
See tex.stackexchange.com/a/414638/117050 there I wrote some code to get the current column inside of a ToC.
– Skillmon
Jan 22 at 14:52
Possible duplicate of Detecting current column in multicol
– Werner
Jan 22 at 16:35
Possible duplicate of Detecting current column in multicol
– Werner
Jan 22 at 16:35
add a comment |
2 Answers
2
active
oldest
votes
Out of the box multicol
supports finding out if you are at a certain point in the first, the last or one of the middle columns (assuming you have more than 2 columns). That is done using docolaction
which is described in the documentation (and needs to be explicitly enabled via an option). If you need more detail then perhaps the link suggested above provides that, but by default multicol
distinguishes ones the 3 cases.
add a comment |
The following yields the current column unexpandably. It needs at least 2 runs of LaTeX.
documentclass{article}
usepackage[left=2mm,right=2mm]{geometry}
usepackage[colaction]{multicol}
usepackage{etoolbox}
makeatletter
newcounter{nexprex@col@count}
newcounter{nexprex@current@column@call}
defnexprex@patch@last
{%
stepcounter{nexprex@col@count}%
protected@write@auxout{}
{%
stringdefstringnexprex@cur@col{arabic{nexprex@col@count}}%
}%
}
defnexprex@patch@else
{%
ifmc@firstcol
setcounter{nexprex@col@count}{0}%
fi
nexprex@patch@last
}
defnexprex@patch@error
{%
GenericError{}
{Patching of stringmc@col@status@writespace failed}
{%
Make sure `colaction` was set as an option for `multicol`.%
MessageBreak
Else you're screwed, don't use the code provided here.MessageBreak%
}
{No further help available.}%
}
pretocmdmc@lastcol@status@write{nexprex@patch@last}{}{nexprex@patch@error}
pretocmdmc@col@status@write{nexprex@patch@else}{}{nexprex@patch@error}
newcommandcurrentcolumn
{%
stepcounter{nexprex@current@column@call}%
protected@write@auxout{}
{%
stringexpandafter
stringglobal
stringexpandafter
stringlet
stringcsnamespace
nexprex@current@column@arabic{nexprex@current@column@call}%
stringendcsname
stringnexprex@cur@col
}%
ifcsname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
csname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
fi
}
makeatother
begin{document}
begin{multicols}{5}
noindent
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
end{multicols}
end{document}
Well done! Why we need at least 2 runs of LaTeX? Why should this happen?
– manooooh
Jan 22 at 16:13
1
@manooooh because the code I inject intomc@lastcol@status@write
andmc@col@status@write
is executed at ship out time and the counter isn't yet increased. Therefore we move the definitions of the current columns into the aux file.
– Skillmon
Jan 22 at 17:05
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Out of the box multicol
supports finding out if you are at a certain point in the first, the last or one of the middle columns (assuming you have more than 2 columns). That is done using docolaction
which is described in the documentation (and needs to be explicitly enabled via an option). If you need more detail then perhaps the link suggested above provides that, but by default multicol
distinguishes ones the 3 cases.
add a comment |
Out of the box multicol
supports finding out if you are at a certain point in the first, the last or one of the middle columns (assuming you have more than 2 columns). That is done using docolaction
which is described in the documentation (and needs to be explicitly enabled via an option). If you need more detail then perhaps the link suggested above provides that, but by default multicol
distinguishes ones the 3 cases.
add a comment |
Out of the box multicol
supports finding out if you are at a certain point in the first, the last or one of the middle columns (assuming you have more than 2 columns). That is done using docolaction
which is described in the documentation (and needs to be explicitly enabled via an option). If you need more detail then perhaps the link suggested above provides that, but by default multicol
distinguishes ones the 3 cases.
Out of the box multicol
supports finding out if you are at a certain point in the first, the last or one of the middle columns (assuming you have more than 2 columns). That is done using docolaction
which is described in the documentation (and needs to be explicitly enabled via an option). If you need more detail then perhaps the link suggested above provides that, but by default multicol
distinguishes ones the 3 cases.
answered Jan 22 at 15:53
Frank MittelbachFrank Mittelbach
60.9k6178248
60.9k6178248
add a comment |
add a comment |
The following yields the current column unexpandably. It needs at least 2 runs of LaTeX.
documentclass{article}
usepackage[left=2mm,right=2mm]{geometry}
usepackage[colaction]{multicol}
usepackage{etoolbox}
makeatletter
newcounter{nexprex@col@count}
newcounter{nexprex@current@column@call}
defnexprex@patch@last
{%
stepcounter{nexprex@col@count}%
protected@write@auxout{}
{%
stringdefstringnexprex@cur@col{arabic{nexprex@col@count}}%
}%
}
defnexprex@patch@else
{%
ifmc@firstcol
setcounter{nexprex@col@count}{0}%
fi
nexprex@patch@last
}
defnexprex@patch@error
{%
GenericError{}
{Patching of stringmc@col@status@writespace failed}
{%
Make sure `colaction` was set as an option for `multicol`.%
MessageBreak
Else you're screwed, don't use the code provided here.MessageBreak%
}
{No further help available.}%
}
pretocmdmc@lastcol@status@write{nexprex@patch@last}{}{nexprex@patch@error}
pretocmdmc@col@status@write{nexprex@patch@else}{}{nexprex@patch@error}
newcommandcurrentcolumn
{%
stepcounter{nexprex@current@column@call}%
protected@write@auxout{}
{%
stringexpandafter
stringglobal
stringexpandafter
stringlet
stringcsnamespace
nexprex@current@column@arabic{nexprex@current@column@call}%
stringendcsname
stringnexprex@cur@col
}%
ifcsname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
csname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
fi
}
makeatother
begin{document}
begin{multicols}{5}
noindent
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
end{multicols}
end{document}
Well done! Why we need at least 2 runs of LaTeX? Why should this happen?
– manooooh
Jan 22 at 16:13
1
@manooooh because the code I inject intomc@lastcol@status@write
andmc@col@status@write
is executed at ship out time and the counter isn't yet increased. Therefore we move the definitions of the current columns into the aux file.
– Skillmon
Jan 22 at 17:05
add a comment |
The following yields the current column unexpandably. It needs at least 2 runs of LaTeX.
documentclass{article}
usepackage[left=2mm,right=2mm]{geometry}
usepackage[colaction]{multicol}
usepackage{etoolbox}
makeatletter
newcounter{nexprex@col@count}
newcounter{nexprex@current@column@call}
defnexprex@patch@last
{%
stepcounter{nexprex@col@count}%
protected@write@auxout{}
{%
stringdefstringnexprex@cur@col{arabic{nexprex@col@count}}%
}%
}
defnexprex@patch@else
{%
ifmc@firstcol
setcounter{nexprex@col@count}{0}%
fi
nexprex@patch@last
}
defnexprex@patch@error
{%
GenericError{}
{Patching of stringmc@col@status@writespace failed}
{%
Make sure `colaction` was set as an option for `multicol`.%
MessageBreak
Else you're screwed, don't use the code provided here.MessageBreak%
}
{No further help available.}%
}
pretocmdmc@lastcol@status@write{nexprex@patch@last}{}{nexprex@patch@error}
pretocmdmc@col@status@write{nexprex@patch@else}{}{nexprex@patch@error}
newcommandcurrentcolumn
{%
stepcounter{nexprex@current@column@call}%
protected@write@auxout{}
{%
stringexpandafter
stringglobal
stringexpandafter
stringlet
stringcsnamespace
nexprex@current@column@arabic{nexprex@current@column@call}%
stringendcsname
stringnexprex@cur@col
}%
ifcsname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
csname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
fi
}
makeatother
begin{document}
begin{multicols}{5}
noindent
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
end{multicols}
end{document}
Well done! Why we need at least 2 runs of LaTeX? Why should this happen?
– manooooh
Jan 22 at 16:13
1
@manooooh because the code I inject intomc@lastcol@status@write
andmc@col@status@write
is executed at ship out time and the counter isn't yet increased. Therefore we move the definitions of the current columns into the aux file.
– Skillmon
Jan 22 at 17:05
add a comment |
The following yields the current column unexpandably. It needs at least 2 runs of LaTeX.
documentclass{article}
usepackage[left=2mm,right=2mm]{geometry}
usepackage[colaction]{multicol}
usepackage{etoolbox}
makeatletter
newcounter{nexprex@col@count}
newcounter{nexprex@current@column@call}
defnexprex@patch@last
{%
stepcounter{nexprex@col@count}%
protected@write@auxout{}
{%
stringdefstringnexprex@cur@col{arabic{nexprex@col@count}}%
}%
}
defnexprex@patch@else
{%
ifmc@firstcol
setcounter{nexprex@col@count}{0}%
fi
nexprex@patch@last
}
defnexprex@patch@error
{%
GenericError{}
{Patching of stringmc@col@status@writespace failed}
{%
Make sure `colaction` was set as an option for `multicol`.%
MessageBreak
Else you're screwed, don't use the code provided here.MessageBreak%
}
{No further help available.}%
}
pretocmdmc@lastcol@status@write{nexprex@patch@last}{}{nexprex@patch@error}
pretocmdmc@col@status@write{nexprex@patch@else}{}{nexprex@patch@error}
newcommandcurrentcolumn
{%
stepcounter{nexprex@current@column@call}%
protected@write@auxout{}
{%
stringexpandafter
stringglobal
stringexpandafter
stringlet
stringcsnamespace
nexprex@current@column@arabic{nexprex@current@column@call}%
stringendcsname
stringnexprex@cur@col
}%
ifcsname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
csname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
fi
}
makeatother
begin{document}
begin{multicols}{5}
noindent
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
end{multicols}
end{document}
The following yields the current column unexpandably. It needs at least 2 runs of LaTeX.
documentclass{article}
usepackage[left=2mm,right=2mm]{geometry}
usepackage[colaction]{multicol}
usepackage{etoolbox}
makeatletter
newcounter{nexprex@col@count}
newcounter{nexprex@current@column@call}
defnexprex@patch@last
{%
stepcounter{nexprex@col@count}%
protected@write@auxout{}
{%
stringdefstringnexprex@cur@col{arabic{nexprex@col@count}}%
}%
}
defnexprex@patch@else
{%
ifmc@firstcol
setcounter{nexprex@col@count}{0}%
fi
nexprex@patch@last
}
defnexprex@patch@error
{%
GenericError{}
{Patching of stringmc@col@status@writespace failed}
{%
Make sure `colaction` was set as an option for `multicol`.%
MessageBreak
Else you're screwed, don't use the code provided here.MessageBreak%
}
{No further help available.}%
}
pretocmdmc@lastcol@status@write{nexprex@patch@last}{}{nexprex@patch@error}
pretocmdmc@col@status@write{nexprex@patch@else}{}{nexprex@patch@error}
newcommandcurrentcolumn
{%
stepcounter{nexprex@current@column@call}%
protected@write@auxout{}
{%
stringexpandafter
stringglobal
stringexpandafter
stringlet
stringcsnamespace
nexprex@current@column@arabic{nexprex@current@column@call}%
stringendcsname
stringnexprex@cur@col
}%
ifcsname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
csname
nexprex@current@column@arabic{nexprex@current@column@call}endcsname
fi
}
makeatother
begin{document}
begin{multicols}{5}
noindent
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
columnbreak\
This is: currentcolumn
end{multicols}
end{document}
answered Jan 22 at 16:01
SkillmonSkillmon
22.1k11942
22.1k11942
Well done! Why we need at least 2 runs of LaTeX? Why should this happen?
– manooooh
Jan 22 at 16:13
1
@manooooh because the code I inject intomc@lastcol@status@write
andmc@col@status@write
is executed at ship out time and the counter isn't yet increased. Therefore we move the definitions of the current columns into the aux file.
– Skillmon
Jan 22 at 17:05
add a comment |
Well done! Why we need at least 2 runs of LaTeX? Why should this happen?
– manooooh
Jan 22 at 16:13
1
@manooooh because the code I inject intomc@lastcol@status@write
andmc@col@status@write
is executed at ship out time and the counter isn't yet increased. Therefore we move the definitions of the current columns into the aux file.
– Skillmon
Jan 22 at 17:05
Well done! Why we need at least 2 runs of LaTeX? Why should this happen?
– manooooh
Jan 22 at 16:13
Well done! Why we need at least 2 runs of LaTeX? Why should this happen?
– manooooh
Jan 22 at 16:13
1
1
@manooooh because the code I inject into
mc@lastcol@status@write
and mc@col@status@write
is executed at ship out time and the counter isn't yet increased. Therefore we move the definitions of the current columns into the aux file.– Skillmon
Jan 22 at 17:05
@manooooh because the code I inject into
mc@lastcol@status@write
and mc@col@status@write
is executed at ship out time and the counter isn't yet increased. Therefore we move the definitions of the current columns into the aux file.– Skillmon
Jan 22 at 17:05
add a comment |
4
Can you add a bit of context for what you need to know the column number?
– samcarter
Jan 22 at 14:51
See tex.stackexchange.com/a/414638/117050 there I wrote some code to get the current column inside of a ToC.
– Skillmon
Jan 22 at 14:52
Possible duplicate of Detecting current column in multicol
– Werner
Jan 22 at 16:35