Keep a key locally passed from multicols to enumitem using xparseUsing before as a Global setting in enumitemxparse and key value argumentsMix value and key/value with xparseRemove key from styleWhy isn't the resume key working for enumitem packageEnumitem SetEnumitemKey and conflict between multiple key before and afterUsing key value in enumerate to another key valueenumitem — remove sublist indentation, but keep item body flush leftPrevent xparse from stripping braces?Use value from xparse key-value store in regular expressions

Did arcade monitors have same pixel aspect ratio as TV sets?

What was the exact wording from Ivanhoe of this advice on how to free yourself from slavery?

Is there a single word describing earning money through any means?

Loading commands from file

Create all possible words using a set or letters

How do you respond to a colleague from another team when they're wrongly expecting that you'll help them?

How should I respond when I lied about my education and the company finds out through background check?

Lowest total scrabble score

I am looking for the correct translation of love for the phrase "in this sign love"

Why does the Sun have different day lengths, but not the gas giants?

How to explain what's wrong with this application of the chain rule?

How much character growth crosses the line into breaking the character

What prevents the use of a multi-segment ILS for non-straight approaches?

Is it improper etiquette to ask your opponent what his/her rating is before the game?

Should I outline or discovery write my stories?

Open a doc from terminal, but not by its name

250 Floor Tower

On a tidally locked planet, would time be quantized?

Does the expansion of the universe explain why the universe doesn't collapse?

The Staircase of Paint

Creepy dinosaur pc game identification

Has any country ever had 2 former presidents in jail simultaneously?

Are the IPv6 address space and IPv4 address space completely disjoint?

What is this called? Old film camera viewer?



Keep a key locally passed from multicols to enumitem using xparse


Using before as a Global setting in enumitemxparse and key value argumentsMix value and key/value with xparseRemove key from styleWhy isn't the resume key working for enumitem packageEnumitem SetEnumitemKey and conflict between multiple key before and afterUsing key value in enumerate to another key valueenumitem — remove sublist indentation, but keep item body flush leftPrevent xparse from stripping braces?Use value from xparse key-value store in regular expressions













0















I have a small problem when trying to keep a key locally using enumerate from the enumitem package. I have redefined the environment enumerate to accept the key columns and I have created commands that are of my interest keyans[...], answer... and showanskey[...]......[...] which I use to save the multiple choice keys and worksheet exercise , all well except that when activate the columns in the first level of enumerate, it affects all the levels nested in it.



If I put in all sublevels columns=1 I can skip the problem, but, I can not do this within the showanskey.



When using columns=1 in the first level it looks like this:



current result



and when using columns=2 in the first level it looks like this:



current result2



What I hope is that the output is something like this:



expected result



I tried to put group_begin: and group_end: in different places but I only get errors. The MWE:



% arara: pdflatex
% arara: clean: extensions: [ aux, log]
documentclassarticle
usepackageletltxmacro,enumitem,multicol,xparse
usepackage[most]tcolorbox
usepackage[margin=0.6in,noheadfoot,papersize=8.5in,13in]geometry % for mwe
setlengthparindent0pt
pagestyleempty

% Set keys for save-ans, save-key and columns for enumitem
SetEnumitemKeysave-ansbefore=storecurrentid#1beginsaveanswer#1,after=endsaveanswer%
SetEnumitemKeysave-keybefore=storecurrentid#1beginsavekeyans#1,after=endsavekeyans%

% Save a copy enumerate
LetLtxMacrooldenumenumerate
LetLtxMacrooldendenumendenumerate

% Redefine enumerate for multicols
ExplSyntaxOn
RenewDocumentEnvironmentenumerate O

tl_clear:N l_keyanswer_enumitem_tl
keys_set:nn keyanswer #1
int_compare:nT l_keyanswer_columns_tl > 1

setlengthmulticolsep5.0pt plus 2.0pt minus 1.5pt
beginmulticols l_keyanswer_columns_tl

keyanswer_beginenum:V l_keyanswer_enumitem_tl


oldendenum
int_compare:nT l_keyanswer_columns_tl > 1
endmulticols

cs_new_protected:Npn keyanswer_beginenum:n #1
oldenum[#1]

cs_generate_variant:Nn keyanswer_beginenum:n V

tl_new:N l_keyanswer_columns_tl
tl_new:N l_keyanswer_enumitem_tl

keys_define:nn keyanswer

columns .tl_set:N = l_keyanswer_columns_tl,
columns .initial:n = 1,
unknown .code:n = tl_put_right:Nx l_keyanswer_enumitem_tl
l_keys_key_tl tl_if_empty:nF #1 = exp_not:n #1 , ,


% Implementation to save answer... and keyans[...] in lists
prop_new:N g_keyanswer_admin_prop

cs_new:Npn storecurrentid #1%
prop_gput:Nnn g_keyanswer_admin_prop current-id #1

cs_new:Npn retrievecurrentid %
prop_item:Nn g_keyanswer_admin_prop current-id


% environments for save answer... and keyans[...]
NewDocumentEnvironmentsaveanswer m %
setlist[enumerate,2]leftmargin=16pt,nosep,itemsep=0pt,label=(alph*),before=stepdownlevel,after=stepuplevel%
setlist[enumerate,3]leftmargin=20pt,nosep,itemsep=0pt,label=Roman*.,before=stepdownlevel,after=stepuplevel%
seq_if_exist:cF l_keyanswer_data_#1_seq seq_new:c l_keyanswer_data_#1_seq
leavevmode

NewDocumentEnvironmentsavekeyans m %
setlist[enumerate,1]left=0pt,labelsep=5pt,itemsep=1pt,label=arabic*.%
setlist[enumerate,2]leftmargin=16pt,nosep,label=Alph*)%
seq_if_exist:cF l_keyanswer_data_#1_seq %
seq_new:c l_keyanswer_data_#1_seq leavevmode

% commands answer... and keyans[...]
NewDocumentCommandanswer +m %
seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item #1
par%


NewDocumentCommandkeyans !o %
IfNoValueTF#1%
tl_set:Nn l_tmpa_tl protectitem%
tl_put_right:Nx l_tmpa_tl protectspace Alphenumii%
seq_gput_right:cV l_keyanswer_data_ retrievecurrentid _seq l_tmpa_tl%
par%
%
seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item #1%
par%
%
%

% stepdownlevel and stepuplevel for save in nested enumerate
newcommandstepdownlevel%
seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item beginenumerate

newcommandstepuplevel%
seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq endenumerate


% Display answer... and keyans[...] in list by id
cs_new:Npn displayseqcontent #1#2 %
seq_if_empty:cF l_keyanswer_data_#1_seq %
seq_log:c l_keyanswer_data_#1_seq
setlist[enumerate,1]labelsep=5pt,label=arabic*.,leftmargin=15pt,labelsep=3pt,font=footnotesize,nosep,widest=80%
setlist[enumerate,2]font=footnotesize,labelsep=5pt,leftmargin=0.6cm,nosep,label=(alph*)%
setlist[enumerate,3]font=footnotesize,labelsep=5pt,leftmargin=0.3cm,nosep,label=Roman*.%
beginenumerate[#2] smallsetlengthcolumnsep0pt
seq_map_inline:cn l_keyanswer_data_#1_seq ##1
endenumerate


ExplSyntaxOff

% showanskey[tcolorbox]titlelist ref[columns]
DeclareTotalTColorBoxshowanskeyO m m O4
colback=white,size=small,top=0mm,bottom=1.5mm, left=0mm,width=columnwidth,title filled,%
fontupper=small,fonttitle=smallsffamily, adjusted title=#2,center title,#1
displayseqcontent#3columns=#4 %

begindocument

sectionMultiple Choice

beginenumerate[save-key=mchoice,left=0pt]
item First type of questions
beginenumerate
item value
item value
item value
item correct keyans
item value
endenumerate
item Second type of questions
beginenumerate[leftmargin=2pc,label=Roman*.]
item $2alpha+2delta=90^circ$
item $alpha=delta$
item $angle EDF=45^circ$
endenumerate
beginenumerate[columns=2]%
item I only
item II only keyans
item I and II only
item I and III only
item I, II, and III
endenumerate
%columnbreak %
item Third type of questions
beginenumerate[leftmargin=2pc,label=(arabic*)]
item $2alpha+2delta=90^circ$
item $angle EDF=45^circ$
endenumerate
beginenumerate
item Altenativa A
item Altenativa B
item Altenativa C keyans
item Altenativa D
item Altenativa E
endenumerate
item Fourth type of question, a problem with numerical response keyans[$sqrt2$]

endenumerate

sectionWorksheet

beginenumerate[save-ans=Worksheet,left=0pt,labelsep=5pt,nosep,label=arabic*.]
item Factor $x^2-2x+1$ answer$left(x-1right)^2$
item Factor $3x+3y+3z$ answer$3(x+y+z)$
item True False
beginenumerate
item $alpha > delta$ answerFalse
item LaTeX2e is cool? answerVery True!
endenumerate
item Related to Linux
beginenumerate
item You use linux? answerYes
item Usually uses the package manager? answerYes
item Rate the following package managers
beginenumerate
item dnf answergood
item apt answervery good
item yum answerobsolete
endenumerate
endenumerate
endenumerate

sectionAnswers
showanskey[colback=yellow!30!white]Multiple Choice Keysmchoice[5]
showanskey[colback=yellow!30!white]Solution WorksheetWorksheet[2]

sectionNormal enumerate
beginenumerate
item First level
beginenumerate
item Second level
item value
item beginenumerate
item Third level
item value
endenumerate
endenumerate
endenumerate

enddocument


How can i fix this?



Grateful









share


























    0















    I have a small problem when trying to keep a key locally using enumerate from the enumitem package. I have redefined the environment enumerate to accept the key columns and I have created commands that are of my interest keyans[...], answer... and showanskey[...]......[...] which I use to save the multiple choice keys and worksheet exercise , all well except that when activate the columns in the first level of enumerate, it affects all the levels nested in it.



    If I put in all sublevels columns=1 I can skip the problem, but, I can not do this within the showanskey.



    When using columns=1 in the first level it looks like this:



    current result



    and when using columns=2 in the first level it looks like this:



    current result2



    What I hope is that the output is something like this:



    expected result



    I tried to put group_begin: and group_end: in different places but I only get errors. The MWE:



    % arara: pdflatex
    % arara: clean: extensions: [ aux, log]
    documentclassarticle
    usepackageletltxmacro,enumitem,multicol,xparse
    usepackage[most]tcolorbox
    usepackage[margin=0.6in,noheadfoot,papersize=8.5in,13in]geometry % for mwe
    setlengthparindent0pt
    pagestyleempty

    % Set keys for save-ans, save-key and columns for enumitem
    SetEnumitemKeysave-ansbefore=storecurrentid#1beginsaveanswer#1,after=endsaveanswer%
    SetEnumitemKeysave-keybefore=storecurrentid#1beginsavekeyans#1,after=endsavekeyans%

    % Save a copy enumerate
    LetLtxMacrooldenumenumerate
    LetLtxMacrooldendenumendenumerate

    % Redefine enumerate for multicols
    ExplSyntaxOn
    RenewDocumentEnvironmentenumerate O

    tl_clear:N l_keyanswer_enumitem_tl
    keys_set:nn keyanswer #1
    int_compare:nT l_keyanswer_columns_tl > 1

    setlengthmulticolsep5.0pt plus 2.0pt minus 1.5pt
    beginmulticols l_keyanswer_columns_tl

    keyanswer_beginenum:V l_keyanswer_enumitem_tl


    oldendenum
    int_compare:nT l_keyanswer_columns_tl > 1
    endmulticols

    cs_new_protected:Npn keyanswer_beginenum:n #1
    oldenum[#1]

    cs_generate_variant:Nn keyanswer_beginenum:n V

    tl_new:N l_keyanswer_columns_tl
    tl_new:N l_keyanswer_enumitem_tl

    keys_define:nn keyanswer

    columns .tl_set:N = l_keyanswer_columns_tl,
    columns .initial:n = 1,
    unknown .code:n = tl_put_right:Nx l_keyanswer_enumitem_tl
    l_keys_key_tl tl_if_empty:nF #1 = exp_not:n #1 , ,


    % Implementation to save answer... and keyans[...] in lists
    prop_new:N g_keyanswer_admin_prop

    cs_new:Npn storecurrentid #1%
    prop_gput:Nnn g_keyanswer_admin_prop current-id #1

    cs_new:Npn retrievecurrentid %
    prop_item:Nn g_keyanswer_admin_prop current-id


    % environments for save answer... and keyans[...]
    NewDocumentEnvironmentsaveanswer m %
    setlist[enumerate,2]leftmargin=16pt,nosep,itemsep=0pt,label=(alph*),before=stepdownlevel,after=stepuplevel%
    setlist[enumerate,3]leftmargin=20pt,nosep,itemsep=0pt,label=Roman*.,before=stepdownlevel,after=stepuplevel%
    seq_if_exist:cF l_keyanswer_data_#1_seq seq_new:c l_keyanswer_data_#1_seq
    leavevmode

    NewDocumentEnvironmentsavekeyans m %
    setlist[enumerate,1]left=0pt,labelsep=5pt,itemsep=1pt,label=arabic*.%
    setlist[enumerate,2]leftmargin=16pt,nosep,label=Alph*)%
    seq_if_exist:cF l_keyanswer_data_#1_seq %
    seq_new:c l_keyanswer_data_#1_seq leavevmode

    % commands answer... and keyans[...]
    NewDocumentCommandanswer +m %
    seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item #1
    par%


    NewDocumentCommandkeyans !o %
    IfNoValueTF#1%
    tl_set:Nn l_tmpa_tl protectitem%
    tl_put_right:Nx l_tmpa_tl protectspace Alphenumii%
    seq_gput_right:cV l_keyanswer_data_ retrievecurrentid _seq l_tmpa_tl%
    par%
    %
    seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item #1%
    par%
    %
    %

    % stepdownlevel and stepuplevel for save in nested enumerate
    newcommandstepdownlevel%
    seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item beginenumerate

    newcommandstepuplevel%
    seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq endenumerate


    % Display answer... and keyans[...] in list by id
    cs_new:Npn displayseqcontent #1#2 %
    seq_if_empty:cF l_keyanswer_data_#1_seq %
    seq_log:c l_keyanswer_data_#1_seq
    setlist[enumerate,1]labelsep=5pt,label=arabic*.,leftmargin=15pt,labelsep=3pt,font=footnotesize,nosep,widest=80%
    setlist[enumerate,2]font=footnotesize,labelsep=5pt,leftmargin=0.6cm,nosep,label=(alph*)%
    setlist[enumerate,3]font=footnotesize,labelsep=5pt,leftmargin=0.3cm,nosep,label=Roman*.%
    beginenumerate[#2] smallsetlengthcolumnsep0pt
    seq_map_inline:cn l_keyanswer_data_#1_seq ##1
    endenumerate


    ExplSyntaxOff

    % showanskey[tcolorbox]titlelist ref[columns]
    DeclareTotalTColorBoxshowanskeyO m m O4
    colback=white,size=small,top=0mm,bottom=1.5mm, left=0mm,width=columnwidth,title filled,%
    fontupper=small,fonttitle=smallsffamily, adjusted title=#2,center title,#1
    displayseqcontent#3columns=#4 %

    begindocument

    sectionMultiple Choice

    beginenumerate[save-key=mchoice,left=0pt]
    item First type of questions
    beginenumerate
    item value
    item value
    item value
    item correct keyans
    item value
    endenumerate
    item Second type of questions
    beginenumerate[leftmargin=2pc,label=Roman*.]
    item $2alpha+2delta=90^circ$
    item $alpha=delta$
    item $angle EDF=45^circ$
    endenumerate
    beginenumerate[columns=2]%
    item I only
    item II only keyans
    item I and II only
    item I and III only
    item I, II, and III
    endenumerate
    %columnbreak %
    item Third type of questions
    beginenumerate[leftmargin=2pc,label=(arabic*)]
    item $2alpha+2delta=90^circ$
    item $angle EDF=45^circ$
    endenumerate
    beginenumerate
    item Altenativa A
    item Altenativa B
    item Altenativa C keyans
    item Altenativa D
    item Altenativa E
    endenumerate
    item Fourth type of question, a problem with numerical response keyans[$sqrt2$]

    endenumerate

    sectionWorksheet

    beginenumerate[save-ans=Worksheet,left=0pt,labelsep=5pt,nosep,label=arabic*.]
    item Factor $x^2-2x+1$ answer$left(x-1right)^2$
    item Factor $3x+3y+3z$ answer$3(x+y+z)$
    item True False
    beginenumerate
    item $alpha > delta$ answerFalse
    item LaTeX2e is cool? answerVery True!
    endenumerate
    item Related to Linux
    beginenumerate
    item You use linux? answerYes
    item Usually uses the package manager? answerYes
    item Rate the following package managers
    beginenumerate
    item dnf answergood
    item apt answervery good
    item yum answerobsolete
    endenumerate
    endenumerate
    endenumerate

    sectionAnswers
    showanskey[colback=yellow!30!white]Multiple Choice Keysmchoice[5]
    showanskey[colback=yellow!30!white]Solution WorksheetWorksheet[2]

    sectionNormal enumerate
    beginenumerate
    item First level
    beginenumerate
    item Second level
    item value
    item beginenumerate
    item Third level
    item value
    endenumerate
    endenumerate
    endenumerate

    enddocument


    How can i fix this?



    Grateful









    share
























      0












      0








      0








      I have a small problem when trying to keep a key locally using enumerate from the enumitem package. I have redefined the environment enumerate to accept the key columns and I have created commands that are of my interest keyans[...], answer... and showanskey[...]......[...] which I use to save the multiple choice keys and worksheet exercise , all well except that when activate the columns in the first level of enumerate, it affects all the levels nested in it.



      If I put in all sublevels columns=1 I can skip the problem, but, I can not do this within the showanskey.



      When using columns=1 in the first level it looks like this:



      current result



      and when using columns=2 in the first level it looks like this:



      current result2



      What I hope is that the output is something like this:



      expected result



      I tried to put group_begin: and group_end: in different places but I only get errors. The MWE:



      % arara: pdflatex
      % arara: clean: extensions: [ aux, log]
      documentclassarticle
      usepackageletltxmacro,enumitem,multicol,xparse
      usepackage[most]tcolorbox
      usepackage[margin=0.6in,noheadfoot,papersize=8.5in,13in]geometry % for mwe
      setlengthparindent0pt
      pagestyleempty

      % Set keys for save-ans, save-key and columns for enumitem
      SetEnumitemKeysave-ansbefore=storecurrentid#1beginsaveanswer#1,after=endsaveanswer%
      SetEnumitemKeysave-keybefore=storecurrentid#1beginsavekeyans#1,after=endsavekeyans%

      % Save a copy enumerate
      LetLtxMacrooldenumenumerate
      LetLtxMacrooldendenumendenumerate

      % Redefine enumerate for multicols
      ExplSyntaxOn
      RenewDocumentEnvironmentenumerate O

      tl_clear:N l_keyanswer_enumitem_tl
      keys_set:nn keyanswer #1
      int_compare:nT l_keyanswer_columns_tl > 1

      setlengthmulticolsep5.0pt plus 2.0pt minus 1.5pt
      beginmulticols l_keyanswer_columns_tl

      keyanswer_beginenum:V l_keyanswer_enumitem_tl


      oldendenum
      int_compare:nT l_keyanswer_columns_tl > 1
      endmulticols

      cs_new_protected:Npn keyanswer_beginenum:n #1
      oldenum[#1]

      cs_generate_variant:Nn keyanswer_beginenum:n V

      tl_new:N l_keyanswer_columns_tl
      tl_new:N l_keyanswer_enumitem_tl

      keys_define:nn keyanswer

      columns .tl_set:N = l_keyanswer_columns_tl,
      columns .initial:n = 1,
      unknown .code:n = tl_put_right:Nx l_keyanswer_enumitem_tl
      l_keys_key_tl tl_if_empty:nF #1 = exp_not:n #1 , ,


      % Implementation to save answer... and keyans[...] in lists
      prop_new:N g_keyanswer_admin_prop

      cs_new:Npn storecurrentid #1%
      prop_gput:Nnn g_keyanswer_admin_prop current-id #1

      cs_new:Npn retrievecurrentid %
      prop_item:Nn g_keyanswer_admin_prop current-id


      % environments for save answer... and keyans[...]
      NewDocumentEnvironmentsaveanswer m %
      setlist[enumerate,2]leftmargin=16pt,nosep,itemsep=0pt,label=(alph*),before=stepdownlevel,after=stepuplevel%
      setlist[enumerate,3]leftmargin=20pt,nosep,itemsep=0pt,label=Roman*.,before=stepdownlevel,after=stepuplevel%
      seq_if_exist:cF l_keyanswer_data_#1_seq seq_new:c l_keyanswer_data_#1_seq
      leavevmode

      NewDocumentEnvironmentsavekeyans m %
      setlist[enumerate,1]left=0pt,labelsep=5pt,itemsep=1pt,label=arabic*.%
      setlist[enumerate,2]leftmargin=16pt,nosep,label=Alph*)%
      seq_if_exist:cF l_keyanswer_data_#1_seq %
      seq_new:c l_keyanswer_data_#1_seq leavevmode

      % commands answer... and keyans[...]
      NewDocumentCommandanswer +m %
      seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item #1
      par%


      NewDocumentCommandkeyans !o %
      IfNoValueTF#1%
      tl_set:Nn l_tmpa_tl protectitem%
      tl_put_right:Nx l_tmpa_tl protectspace Alphenumii%
      seq_gput_right:cV l_keyanswer_data_ retrievecurrentid _seq l_tmpa_tl%
      par%
      %
      seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item #1%
      par%
      %
      %

      % stepdownlevel and stepuplevel for save in nested enumerate
      newcommandstepdownlevel%
      seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item beginenumerate

      newcommandstepuplevel%
      seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq endenumerate


      % Display answer... and keyans[...] in list by id
      cs_new:Npn displayseqcontent #1#2 %
      seq_if_empty:cF l_keyanswer_data_#1_seq %
      seq_log:c l_keyanswer_data_#1_seq
      setlist[enumerate,1]labelsep=5pt,label=arabic*.,leftmargin=15pt,labelsep=3pt,font=footnotesize,nosep,widest=80%
      setlist[enumerate,2]font=footnotesize,labelsep=5pt,leftmargin=0.6cm,nosep,label=(alph*)%
      setlist[enumerate,3]font=footnotesize,labelsep=5pt,leftmargin=0.3cm,nosep,label=Roman*.%
      beginenumerate[#2] smallsetlengthcolumnsep0pt
      seq_map_inline:cn l_keyanswer_data_#1_seq ##1
      endenumerate


      ExplSyntaxOff

      % showanskey[tcolorbox]titlelist ref[columns]
      DeclareTotalTColorBoxshowanskeyO m m O4
      colback=white,size=small,top=0mm,bottom=1.5mm, left=0mm,width=columnwidth,title filled,%
      fontupper=small,fonttitle=smallsffamily, adjusted title=#2,center title,#1
      displayseqcontent#3columns=#4 %

      begindocument

      sectionMultiple Choice

      beginenumerate[save-key=mchoice,left=0pt]
      item First type of questions
      beginenumerate
      item value
      item value
      item value
      item correct keyans
      item value
      endenumerate
      item Second type of questions
      beginenumerate[leftmargin=2pc,label=Roman*.]
      item $2alpha+2delta=90^circ$
      item $alpha=delta$
      item $angle EDF=45^circ$
      endenumerate
      beginenumerate[columns=2]%
      item I only
      item II only keyans
      item I and II only
      item I and III only
      item I, II, and III
      endenumerate
      %columnbreak %
      item Third type of questions
      beginenumerate[leftmargin=2pc,label=(arabic*)]
      item $2alpha+2delta=90^circ$
      item $angle EDF=45^circ$
      endenumerate
      beginenumerate
      item Altenativa A
      item Altenativa B
      item Altenativa C keyans
      item Altenativa D
      item Altenativa E
      endenumerate
      item Fourth type of question, a problem with numerical response keyans[$sqrt2$]

      endenumerate

      sectionWorksheet

      beginenumerate[save-ans=Worksheet,left=0pt,labelsep=5pt,nosep,label=arabic*.]
      item Factor $x^2-2x+1$ answer$left(x-1right)^2$
      item Factor $3x+3y+3z$ answer$3(x+y+z)$
      item True False
      beginenumerate
      item $alpha > delta$ answerFalse
      item LaTeX2e is cool? answerVery True!
      endenumerate
      item Related to Linux
      beginenumerate
      item You use linux? answerYes
      item Usually uses the package manager? answerYes
      item Rate the following package managers
      beginenumerate
      item dnf answergood
      item apt answervery good
      item yum answerobsolete
      endenumerate
      endenumerate
      endenumerate

      sectionAnswers
      showanskey[colback=yellow!30!white]Multiple Choice Keysmchoice[5]
      showanskey[colback=yellow!30!white]Solution WorksheetWorksheet[2]

      sectionNormal enumerate
      beginenumerate
      item First level
      beginenumerate
      item Second level
      item value
      item beginenumerate
      item Third level
      item value
      endenumerate
      endenumerate
      endenumerate

      enddocument


      How can i fix this?



      Grateful









      share














      I have a small problem when trying to keep a key locally using enumerate from the enumitem package. I have redefined the environment enumerate to accept the key columns and I have created commands that are of my interest keyans[...], answer... and showanskey[...]......[...] which I use to save the multiple choice keys and worksheet exercise , all well except that when activate the columns in the first level of enumerate, it affects all the levels nested in it.



      If I put in all sublevels columns=1 I can skip the problem, but, I can not do this within the showanskey.



      When using columns=1 in the first level it looks like this:



      current result



      and when using columns=2 in the first level it looks like this:



      current result2



      What I hope is that the output is something like this:



      expected result



      I tried to put group_begin: and group_end: in different places but I only get errors. The MWE:



      % arara: pdflatex
      % arara: clean: extensions: [ aux, log]
      documentclassarticle
      usepackageletltxmacro,enumitem,multicol,xparse
      usepackage[most]tcolorbox
      usepackage[margin=0.6in,noheadfoot,papersize=8.5in,13in]geometry % for mwe
      setlengthparindent0pt
      pagestyleempty

      % Set keys for save-ans, save-key and columns for enumitem
      SetEnumitemKeysave-ansbefore=storecurrentid#1beginsaveanswer#1,after=endsaveanswer%
      SetEnumitemKeysave-keybefore=storecurrentid#1beginsavekeyans#1,after=endsavekeyans%

      % Save a copy enumerate
      LetLtxMacrooldenumenumerate
      LetLtxMacrooldendenumendenumerate

      % Redefine enumerate for multicols
      ExplSyntaxOn
      RenewDocumentEnvironmentenumerate O

      tl_clear:N l_keyanswer_enumitem_tl
      keys_set:nn keyanswer #1
      int_compare:nT l_keyanswer_columns_tl > 1

      setlengthmulticolsep5.0pt plus 2.0pt minus 1.5pt
      beginmulticols l_keyanswer_columns_tl

      keyanswer_beginenum:V l_keyanswer_enumitem_tl


      oldendenum
      int_compare:nT l_keyanswer_columns_tl > 1
      endmulticols

      cs_new_protected:Npn keyanswer_beginenum:n #1
      oldenum[#1]

      cs_generate_variant:Nn keyanswer_beginenum:n V

      tl_new:N l_keyanswer_columns_tl
      tl_new:N l_keyanswer_enumitem_tl

      keys_define:nn keyanswer

      columns .tl_set:N = l_keyanswer_columns_tl,
      columns .initial:n = 1,
      unknown .code:n = tl_put_right:Nx l_keyanswer_enumitem_tl
      l_keys_key_tl tl_if_empty:nF #1 = exp_not:n #1 , ,


      % Implementation to save answer... and keyans[...] in lists
      prop_new:N g_keyanswer_admin_prop

      cs_new:Npn storecurrentid #1%
      prop_gput:Nnn g_keyanswer_admin_prop current-id #1

      cs_new:Npn retrievecurrentid %
      prop_item:Nn g_keyanswer_admin_prop current-id


      % environments for save answer... and keyans[...]
      NewDocumentEnvironmentsaveanswer m %
      setlist[enumerate,2]leftmargin=16pt,nosep,itemsep=0pt,label=(alph*),before=stepdownlevel,after=stepuplevel%
      setlist[enumerate,3]leftmargin=20pt,nosep,itemsep=0pt,label=Roman*.,before=stepdownlevel,after=stepuplevel%
      seq_if_exist:cF l_keyanswer_data_#1_seq seq_new:c l_keyanswer_data_#1_seq
      leavevmode

      NewDocumentEnvironmentsavekeyans m %
      setlist[enumerate,1]left=0pt,labelsep=5pt,itemsep=1pt,label=arabic*.%
      setlist[enumerate,2]leftmargin=16pt,nosep,label=Alph*)%
      seq_if_exist:cF l_keyanswer_data_#1_seq %
      seq_new:c l_keyanswer_data_#1_seq leavevmode

      % commands answer... and keyans[...]
      NewDocumentCommandanswer +m %
      seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item #1
      par%


      NewDocumentCommandkeyans !o %
      IfNoValueTF#1%
      tl_set:Nn l_tmpa_tl protectitem%
      tl_put_right:Nx l_tmpa_tl protectspace Alphenumii%
      seq_gput_right:cV l_keyanswer_data_ retrievecurrentid _seq l_tmpa_tl%
      par%
      %
      seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item #1%
      par%
      %
      %

      % stepdownlevel and stepuplevel for save in nested enumerate
      newcommandstepdownlevel%
      seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq item beginenumerate

      newcommandstepuplevel%
      seq_gput_right:cn l_keyanswer_data_ retrievecurrentid _seq endenumerate


      % Display answer... and keyans[...] in list by id
      cs_new:Npn displayseqcontent #1#2 %
      seq_if_empty:cF l_keyanswer_data_#1_seq %
      seq_log:c l_keyanswer_data_#1_seq
      setlist[enumerate,1]labelsep=5pt,label=arabic*.,leftmargin=15pt,labelsep=3pt,font=footnotesize,nosep,widest=80%
      setlist[enumerate,2]font=footnotesize,labelsep=5pt,leftmargin=0.6cm,nosep,label=(alph*)%
      setlist[enumerate,3]font=footnotesize,labelsep=5pt,leftmargin=0.3cm,nosep,label=Roman*.%
      beginenumerate[#2] smallsetlengthcolumnsep0pt
      seq_map_inline:cn l_keyanswer_data_#1_seq ##1
      endenumerate


      ExplSyntaxOff

      % showanskey[tcolorbox]titlelist ref[columns]
      DeclareTotalTColorBoxshowanskeyO m m O4
      colback=white,size=small,top=0mm,bottom=1.5mm, left=0mm,width=columnwidth,title filled,%
      fontupper=small,fonttitle=smallsffamily, adjusted title=#2,center title,#1
      displayseqcontent#3columns=#4 %

      begindocument

      sectionMultiple Choice

      beginenumerate[save-key=mchoice,left=0pt]
      item First type of questions
      beginenumerate
      item value
      item value
      item value
      item correct keyans
      item value
      endenumerate
      item Second type of questions
      beginenumerate[leftmargin=2pc,label=Roman*.]
      item $2alpha+2delta=90^circ$
      item $alpha=delta$
      item $angle EDF=45^circ$
      endenumerate
      beginenumerate[columns=2]%
      item I only
      item II only keyans
      item I and II only
      item I and III only
      item I, II, and III
      endenumerate
      %columnbreak %
      item Third type of questions
      beginenumerate[leftmargin=2pc,label=(arabic*)]
      item $2alpha+2delta=90^circ$
      item $angle EDF=45^circ$
      endenumerate
      beginenumerate
      item Altenativa A
      item Altenativa B
      item Altenativa C keyans
      item Altenativa D
      item Altenativa E
      endenumerate
      item Fourth type of question, a problem with numerical response keyans[$sqrt2$]

      endenumerate

      sectionWorksheet

      beginenumerate[save-ans=Worksheet,left=0pt,labelsep=5pt,nosep,label=arabic*.]
      item Factor $x^2-2x+1$ answer$left(x-1right)^2$
      item Factor $3x+3y+3z$ answer$3(x+y+z)$
      item True False
      beginenumerate
      item $alpha > delta$ answerFalse
      item LaTeX2e is cool? answerVery True!
      endenumerate
      item Related to Linux
      beginenumerate
      item You use linux? answerYes
      item Usually uses the package manager? answerYes
      item Rate the following package managers
      beginenumerate
      item dnf answergood
      item apt answervery good
      item yum answerobsolete
      endenumerate
      endenumerate
      endenumerate

      sectionAnswers
      showanskey[colback=yellow!30!white]Multiple Choice Keysmchoice[5]
      showanskey[colback=yellow!30!white]Solution WorksheetWorksheet[2]

      sectionNormal enumerate
      beginenumerate
      item First level
      beginenumerate
      item Second level
      item value
      item beginenumerate
      item Third level
      item value
      endenumerate
      endenumerate
      endenumerate

      enddocument


      How can i fix this?



      Grateful







      enumitem xparse grouping key-value





      share












      share










      share



      share










      asked 4 mins ago









      Pablo González LPablo González L

      9991720




      9991720




















          0






          active

          oldest

          votes











          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
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f481155%2fkeep-a-key-locally-passed-from-multicols-to-enumitem-using-xparse%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          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.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f481155%2fkeep-a-key-locally-passed-from-multicols-to-enumitem-using-xparse%23new-answer', 'question_page');

          );

          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







          Popular posts from this blog

          How should I use the fbox command correctly to avoid producing a Bad Box message?How to put a long piece of text in a box?How to specify height and width of fboxIs there an arrayrulecolor-like command to change the rule color of fbox?What is the command to highlight bad boxes in pdf?Why does fbox sometimes place the box *over* the graphic image?how to put the text in the boxHow to create command for a box where text inside the box can automatically adjust?how can I make an fbox like command with certain color, shape and width of border?how to use fbox in align modeFbox increase the spacing between the box and it content (inner margin)how to change the box height of an equationWhat is the use of the hbox in a newcommand command?

          152 Atala Notae | Nexus externi | Tabula navigationis"Discovery Circumstances: Numbered Minor Planets"2000152Small-Body Database

          Doxepinum Nexus interni Notae | Tabula navigationis3158DB01142WHOa682390"Structural Analysis of the Histamine H1 Receptor""Transdermal and Topical Drug Administration in the Treatment of Pain""Antidepressants as antipruritic agents: A review"