Expand `ifthenelse` immediately Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)Duplicate and modify section hierarchyProblem with ifthenelseifthenelse in Latexifthenelse no else with string comparison`enumdepth` and `ifthenelse`Using @currenvir in ifthenelseifthenelse + equal behaves weirdlyUsing ifthenelse inside an optionifthenelse as an argument to equalhelp with nomenclature groups and ifthenelse

How to produce a PS1 prompt in bash or ksh93 similar to tcsh

What is the difference between 准时 and 按时?

What's the difference between using dependency injection with a container and using a service locator?

enable https on private network

Is "ein Herz wie das meine" an antiquated or colloquial use of the possesive pronoun?

false 'Security alert' from Google - every login generates mails from 'no-reply@accounts.google.com'

When does Bran Stark remember Jamie pushing him?

If gravity precedes the formation of a solar system, where did the mass come from that caused the gravity?

Will the Antimagic Field spell cause elementals not summoned by magic to dissipate?

Kepler's 3rd law: ratios don't fit data

Fourier Transform of Airy Equation

Can I ask an author to send me his ebook?

Like totally amazing interchangeable sister outfit accessory swapping or whatever

Converting a text document with special format to Pandas DataFrame

Does using the Inspiration rules for character defects encourage My Guy Syndrome?

What is the ongoing value of the Kanban board to the developers as opposed to management

What could prevent concentrated local exploration?

How to make an animal which can only breed for a certain number of generations?

Is Bran literally the world's memory?

Suing a Police Officer Instead of the Police Department

Has a Nobel Peace laureate ever been accused of war crimes?

Providing direct feedback to a product salesperson

Lights are flickering on and off after accidentally bumping into light switch

Putting Ant-Man on house arrest



Expand `ifthenelse` immediately



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)Duplicate and modify section hierarchyProblem with ifthenelseifthenelse in Latexifthenelse no else with string comparison`enumdepth` and `ifthenelse`Using @currenvir in ifthenelseifthenelse + equal behaves weirdlyUsing ifthenelse inside an optionifthenelse as an argument to equalhelp with nomenclature groups and ifthenelse










6















Consider this script:



documentclassreport
usepackageifthen
newcommandthesissizeSHORT
begindocument
setcounterpage
%3
ifthenelse
equalthesissizeSHORT
32

hey
enddocument


Compiling this script gives the error:



! Missing number, treated as zero.


I suspect that this is due to ifthenelse not being evaluated at the time of executing setcounter. How do I solve this?










share|improve this question




























    6















    Consider this script:



    documentclassreport
    usepackageifthen
    newcommandthesissizeSHORT
    begindocument
    setcounterpage
    %3
    ifthenelse
    equalthesissizeSHORT
    32

    hey
    enddocument


    Compiling this script gives the error:



    ! Missing number, treated as zero.


    I suspect that this is due to ifthenelse not being evaluated at the time of executing setcounter. How do I solve this?










    share|improve this question


























      6












      6








      6








      Consider this script:



      documentclassreport
      usepackageifthen
      newcommandthesissizeSHORT
      begindocument
      setcounterpage
      %3
      ifthenelse
      equalthesissizeSHORT
      32

      hey
      enddocument


      Compiling this script gives the error:



      ! Missing number, treated as zero.


      I suspect that this is due to ifthenelse not being evaluated at the time of executing setcounter. How do I solve this?










      share|improve this question
















      Consider this script:



      documentclassreport
      usepackageifthen
      newcommandthesissizeSHORT
      begindocument
      setcounterpage
      %3
      ifthenelse
      equalthesissizeSHORT
      32

      hey
      enddocument


      Compiling this script gives the error:



      ! Missing number, treated as zero.


      I suspect that this is due to ifthenelse not being evaluated at the time of executing setcounter. How do I solve this?







      macros ifthenelse






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Apr 6 at 0:15









      Peter Mortensen

      55437




      55437










      asked Apr 5 at 13:10









      ViestursViesturs

      2,07341327




      2,07341327




















          3 Answers
          3






          active

          oldest

          votes


















          7














          you can't use ifthenelse inside setcounter. Change the order:



          documentclassreport
          usepackageifthen
          newcommandthesissizeSHORT
          begindocument
          ifthenelseequalthesissizeSHORT
          setcounterpage3setcounterpage2


          hey
          enddocument


          Expandable tests are possible with expl3 and etoolbox. For both you should store the reference text in a command:



          documentclassreport
          usepackageexpl3,etoolbox
          newcommandthesissizeSHORT
          newcommandshortsizeSHORT

          begindocument
          ExplSyntaxOn
          setcounterpagetl_if_eq:NNTFthesissizeshortsize32
          ExplSyntaxOff

          setcounterpageifdefequalthesissizeshortsize32

          hey
          enddocument





          share|improve this answer

























          • What is the reason?

            – Viesturs
            Apr 5 at 13:23






          • 6





            ifthenelse is not expandable.

            – Ulrike Fischer
            Apr 5 at 13:26






          • 1





            I added two more versions.

            – Ulrike Fischer
            Apr 5 at 13:52


















          2














          Another version of a string comparison using the pdfTeX macro pdfstrcmp. The following uses the pdftexcmds package to make it available to all engines under the same name:



          documentclass[]article

          usepackagepdftexcmds
          makeatletter
          newcommandifstreq[2]
          %
          ifnumpdf@strcmp#1#2=0

          makeatother

          newcommandthesissizeSHORT

          begindocument
          setcounterpageifstreqthesissizeSHORT3else2fi
          hey
          enddocument


          If a LaTeX syntax is preferred one can use



          documentclass[]article

          usepackagepdftexcmds
          makeatletter
          newcommandifstreq[2]
          %
          ifnumpdf@strcmp#1#2=0
          expandafter@secondofthree
          fi
          @secondoftwo

          providecommand@secondofthree[3]#2
          makeatother

          newcommandthesissizeSHORT

          begindocument
          setcounterpageifstreqthesissizeSHORT32
          hey
          enddocument





          share|improve this answer
































            1














            No packages.



            documentclassreport
            newcommandthesissizeSHORT
            begindocument

            newcommandtmpSHORT
            ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

            thepage

            renewcommandtmpNOT SHORT
            ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

            thepage
            enddocument


            enter image description here



            The expandable version:



            documentclassreport
            newcommandthesissizeSHORT
            begindocument

            newcommandtmpSHORT
            setcounterpageifxtmpthesissize3else2fi

            thepage

            renewcommandtmpNOT SHORT
            setcounterpageifxtmpthesissize3else2fi

            thepage
            enddocument





            share|improve this answer

























              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%2f483347%2fexpand-ifthenelse-immediately%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              7














              you can't use ifthenelse inside setcounter. Change the order:



              documentclassreport
              usepackageifthen
              newcommandthesissizeSHORT
              begindocument
              ifthenelseequalthesissizeSHORT
              setcounterpage3setcounterpage2


              hey
              enddocument


              Expandable tests are possible with expl3 and etoolbox. For both you should store the reference text in a command:



              documentclassreport
              usepackageexpl3,etoolbox
              newcommandthesissizeSHORT
              newcommandshortsizeSHORT

              begindocument
              ExplSyntaxOn
              setcounterpagetl_if_eq:NNTFthesissizeshortsize32
              ExplSyntaxOff

              setcounterpageifdefequalthesissizeshortsize32

              hey
              enddocument





              share|improve this answer

























              • What is the reason?

                – Viesturs
                Apr 5 at 13:23






              • 6





                ifthenelse is not expandable.

                – Ulrike Fischer
                Apr 5 at 13:26






              • 1





                I added two more versions.

                – Ulrike Fischer
                Apr 5 at 13:52















              7














              you can't use ifthenelse inside setcounter. Change the order:



              documentclassreport
              usepackageifthen
              newcommandthesissizeSHORT
              begindocument
              ifthenelseequalthesissizeSHORT
              setcounterpage3setcounterpage2


              hey
              enddocument


              Expandable tests are possible with expl3 and etoolbox. For both you should store the reference text in a command:



              documentclassreport
              usepackageexpl3,etoolbox
              newcommandthesissizeSHORT
              newcommandshortsizeSHORT

              begindocument
              ExplSyntaxOn
              setcounterpagetl_if_eq:NNTFthesissizeshortsize32
              ExplSyntaxOff

              setcounterpageifdefequalthesissizeshortsize32

              hey
              enddocument





              share|improve this answer

























              • What is the reason?

                – Viesturs
                Apr 5 at 13:23






              • 6





                ifthenelse is not expandable.

                – Ulrike Fischer
                Apr 5 at 13:26






              • 1





                I added two more versions.

                – Ulrike Fischer
                Apr 5 at 13:52













              7












              7








              7







              you can't use ifthenelse inside setcounter. Change the order:



              documentclassreport
              usepackageifthen
              newcommandthesissizeSHORT
              begindocument
              ifthenelseequalthesissizeSHORT
              setcounterpage3setcounterpage2


              hey
              enddocument


              Expandable tests are possible with expl3 and etoolbox. For both you should store the reference text in a command:



              documentclassreport
              usepackageexpl3,etoolbox
              newcommandthesissizeSHORT
              newcommandshortsizeSHORT

              begindocument
              ExplSyntaxOn
              setcounterpagetl_if_eq:NNTFthesissizeshortsize32
              ExplSyntaxOff

              setcounterpageifdefequalthesissizeshortsize32

              hey
              enddocument





              share|improve this answer















              you can't use ifthenelse inside setcounter. Change the order:



              documentclassreport
              usepackageifthen
              newcommandthesissizeSHORT
              begindocument
              ifthenelseequalthesissizeSHORT
              setcounterpage3setcounterpage2


              hey
              enddocument


              Expandable tests are possible with expl3 and etoolbox. For both you should store the reference text in a command:



              documentclassreport
              usepackageexpl3,etoolbox
              newcommandthesissizeSHORT
              newcommandshortsizeSHORT

              begindocument
              ExplSyntaxOn
              setcounterpagetl_if_eq:NNTFthesissizeshortsize32
              ExplSyntaxOff

              setcounterpageifdefequalthesissizeshortsize32

              hey
              enddocument






              share|improve this answer














              share|improve this answer



              share|improve this answer








              edited Apr 5 at 14:09









              Andrew Swann

              78.3k9137334




              78.3k9137334










              answered Apr 5 at 13:22









              Ulrike FischerUlrike Fischer

              200k9307693




              200k9307693












              • What is the reason?

                – Viesturs
                Apr 5 at 13:23






              • 6





                ifthenelse is not expandable.

                – Ulrike Fischer
                Apr 5 at 13:26






              • 1





                I added two more versions.

                – Ulrike Fischer
                Apr 5 at 13:52

















              • What is the reason?

                – Viesturs
                Apr 5 at 13:23






              • 6





                ifthenelse is not expandable.

                – Ulrike Fischer
                Apr 5 at 13:26






              • 1





                I added two more versions.

                – Ulrike Fischer
                Apr 5 at 13:52
















              What is the reason?

              – Viesturs
              Apr 5 at 13:23





              What is the reason?

              – Viesturs
              Apr 5 at 13:23




              6




              6





              ifthenelse is not expandable.

              – Ulrike Fischer
              Apr 5 at 13:26





              ifthenelse is not expandable.

              – Ulrike Fischer
              Apr 5 at 13:26




              1




              1





              I added two more versions.

              – Ulrike Fischer
              Apr 5 at 13:52





              I added two more versions.

              – Ulrike Fischer
              Apr 5 at 13:52











              2














              Another version of a string comparison using the pdfTeX macro pdfstrcmp. The following uses the pdftexcmds package to make it available to all engines under the same name:



              documentclass[]article

              usepackagepdftexcmds
              makeatletter
              newcommandifstreq[2]
              %
              ifnumpdf@strcmp#1#2=0

              makeatother

              newcommandthesissizeSHORT

              begindocument
              setcounterpageifstreqthesissizeSHORT3else2fi
              hey
              enddocument


              If a LaTeX syntax is preferred one can use



              documentclass[]article

              usepackagepdftexcmds
              makeatletter
              newcommandifstreq[2]
              %
              ifnumpdf@strcmp#1#2=0
              expandafter@secondofthree
              fi
              @secondoftwo

              providecommand@secondofthree[3]#2
              makeatother

              newcommandthesissizeSHORT

              begindocument
              setcounterpageifstreqthesissizeSHORT32
              hey
              enddocument





              share|improve this answer





























                2














                Another version of a string comparison using the pdfTeX macro pdfstrcmp. The following uses the pdftexcmds package to make it available to all engines under the same name:



                documentclass[]article

                usepackagepdftexcmds
                makeatletter
                newcommandifstreq[2]
                %
                ifnumpdf@strcmp#1#2=0

                makeatother

                newcommandthesissizeSHORT

                begindocument
                setcounterpageifstreqthesissizeSHORT3else2fi
                hey
                enddocument


                If a LaTeX syntax is preferred one can use



                documentclass[]article

                usepackagepdftexcmds
                makeatletter
                newcommandifstreq[2]
                %
                ifnumpdf@strcmp#1#2=0
                expandafter@secondofthree
                fi
                @secondoftwo

                providecommand@secondofthree[3]#2
                makeatother

                newcommandthesissizeSHORT

                begindocument
                setcounterpageifstreqthesissizeSHORT32
                hey
                enddocument





                share|improve this answer



























                  2












                  2








                  2







                  Another version of a string comparison using the pdfTeX macro pdfstrcmp. The following uses the pdftexcmds package to make it available to all engines under the same name:



                  documentclass[]article

                  usepackagepdftexcmds
                  makeatletter
                  newcommandifstreq[2]
                  %
                  ifnumpdf@strcmp#1#2=0

                  makeatother

                  newcommandthesissizeSHORT

                  begindocument
                  setcounterpageifstreqthesissizeSHORT3else2fi
                  hey
                  enddocument


                  If a LaTeX syntax is preferred one can use



                  documentclass[]article

                  usepackagepdftexcmds
                  makeatletter
                  newcommandifstreq[2]
                  %
                  ifnumpdf@strcmp#1#2=0
                  expandafter@secondofthree
                  fi
                  @secondoftwo

                  providecommand@secondofthree[3]#2
                  makeatother

                  newcommandthesissizeSHORT

                  begindocument
                  setcounterpageifstreqthesissizeSHORT32
                  hey
                  enddocument





                  share|improve this answer















                  Another version of a string comparison using the pdfTeX macro pdfstrcmp. The following uses the pdftexcmds package to make it available to all engines under the same name:



                  documentclass[]article

                  usepackagepdftexcmds
                  makeatletter
                  newcommandifstreq[2]
                  %
                  ifnumpdf@strcmp#1#2=0

                  makeatother

                  newcommandthesissizeSHORT

                  begindocument
                  setcounterpageifstreqthesissizeSHORT3else2fi
                  hey
                  enddocument


                  If a LaTeX syntax is preferred one can use



                  documentclass[]article

                  usepackagepdftexcmds
                  makeatletter
                  newcommandifstreq[2]
                  %
                  ifnumpdf@strcmp#1#2=0
                  expandafter@secondofthree
                  fi
                  @secondoftwo

                  providecommand@secondofthree[3]#2
                  makeatother

                  newcommandthesissizeSHORT

                  begindocument
                  setcounterpageifstreqthesissizeSHORT32
                  hey
                  enddocument






                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Apr 6 at 15:25

























                  answered Apr 5 at 18:12









                  SkillmonSkillmon

                  24.4k12250




                  24.4k12250





















                      1














                      No packages.



                      documentclassreport
                      newcommandthesissizeSHORT
                      begindocument

                      newcommandtmpSHORT
                      ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

                      thepage

                      renewcommandtmpNOT SHORT
                      ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

                      thepage
                      enddocument


                      enter image description here



                      The expandable version:



                      documentclassreport
                      newcommandthesissizeSHORT
                      begindocument

                      newcommandtmpSHORT
                      setcounterpageifxtmpthesissize3else2fi

                      thepage

                      renewcommandtmpNOT SHORT
                      setcounterpageifxtmpthesissize3else2fi

                      thepage
                      enddocument





                      share|improve this answer





























                        1














                        No packages.



                        documentclassreport
                        newcommandthesissizeSHORT
                        begindocument

                        newcommandtmpSHORT
                        ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

                        thepage

                        renewcommandtmpNOT SHORT
                        ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

                        thepage
                        enddocument


                        enter image description here



                        The expandable version:



                        documentclassreport
                        newcommandthesissizeSHORT
                        begindocument

                        newcommandtmpSHORT
                        setcounterpageifxtmpthesissize3else2fi

                        thepage

                        renewcommandtmpNOT SHORT
                        setcounterpageifxtmpthesissize3else2fi

                        thepage
                        enddocument





                        share|improve this answer



























                          1












                          1








                          1







                          No packages.



                          documentclassreport
                          newcommandthesissizeSHORT
                          begindocument

                          newcommandtmpSHORT
                          ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

                          thepage

                          renewcommandtmpNOT SHORT
                          ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

                          thepage
                          enddocument


                          enter image description here



                          The expandable version:



                          documentclassreport
                          newcommandthesissizeSHORT
                          begindocument

                          newcommandtmpSHORT
                          setcounterpageifxtmpthesissize3else2fi

                          thepage

                          renewcommandtmpNOT SHORT
                          setcounterpageifxtmpthesissize3else2fi

                          thepage
                          enddocument





                          share|improve this answer















                          No packages.



                          documentclassreport
                          newcommandthesissizeSHORT
                          begindocument

                          newcommandtmpSHORT
                          ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

                          thepage

                          renewcommandtmpNOT SHORT
                          ifxtmpthesissizerelaxsetcounterpage3elsesetcounterpage2fi

                          thepage
                          enddocument


                          enter image description here



                          The expandable version:



                          documentclassreport
                          newcommandthesissizeSHORT
                          begindocument

                          newcommandtmpSHORT
                          setcounterpageifxtmpthesissize3else2fi

                          thepage

                          renewcommandtmpNOT SHORT
                          setcounterpageifxtmpthesissize3else2fi

                          thepage
                          enddocument






                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Apr 6 at 0:55

























                          answered Apr 6 at 0:47









                          Steven B. SegletesSteven B. Segletes

                          163k9207419




                          163k9207419



























                              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%2f483347%2fexpand-ifthenelse-immediately%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

                              Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

                              Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

                              Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High