thispagestyle has no effect if no page broken(clearpage, newpage) is given












2















At a certain position in the article, the page that it belongs, need a special fancy style which I do by thispagestyle from the package fancyhdr.



In my example as shown in the MWE below, the page, and only the page where the text "bbb" is in(it's at the second page in this example, but may also at the other page, determined by the length of article), need a chead. However, the content of chead is in fact at the first page, not in the second page as I expect.



I think this is because no page-break is given. But the position of text "bbb" is up to the length of article, so how to deal with this problem?



My MWE is:



documentclass{article}
usepackage{fancyhdr}

begin{document}
fancypagestyle{common}{chead{I want my header only on the page at which ``bbb'' is located}}
aaaparvspace{80em}
bbbthispagestyle{common}parvspace{80em}
ccc
end{document}









share|improve this question





























    2















    At a certain position in the article, the page that it belongs, need a special fancy style which I do by thispagestyle from the package fancyhdr.



    In my example as shown in the MWE below, the page, and only the page where the text "bbb" is in(it's at the second page in this example, but may also at the other page, determined by the length of article), need a chead. However, the content of chead is in fact at the first page, not in the second page as I expect.



    I think this is because no page-break is given. But the position of text "bbb" is up to the length of article, so how to deal with this problem?



    My MWE is:



    documentclass{article}
    usepackage{fancyhdr}

    begin{document}
    fancypagestyle{common}{chead{I want my header only on the page at which ``bbb'' is located}}
    aaaparvspace{80em}
    bbbthispagestyle{common}parvspace{80em}
    ccc
    end{document}









    share|improve this question



























      2












      2








      2








      At a certain position in the article, the page that it belongs, need a special fancy style which I do by thispagestyle from the package fancyhdr.



      In my example as shown in the MWE below, the page, and only the page where the text "bbb" is in(it's at the second page in this example, but may also at the other page, determined by the length of article), need a chead. However, the content of chead is in fact at the first page, not in the second page as I expect.



      I think this is because no page-break is given. But the position of text "bbb" is up to the length of article, so how to deal with this problem?



      My MWE is:



      documentclass{article}
      usepackage{fancyhdr}

      begin{document}
      fancypagestyle{common}{chead{I want my header only on the page at which ``bbb'' is located}}
      aaaparvspace{80em}
      bbbthispagestyle{common}parvspace{80em}
      ccc
      end{document}









      share|improve this question
















      At a certain position in the article, the page that it belongs, need a special fancy style which I do by thispagestyle from the package fancyhdr.



      In my example as shown in the MWE below, the page, and only the page where the text "bbb" is in(it's at the second page in this example, but may also at the other page, determined by the length of article), need a chead. However, the content of chead is in fact at the first page, not in the second page as I expect.



      I think this is because no page-break is given. But the position of text "bbb" is up to the length of article, so how to deal with this problem?



      My MWE is:



      documentclass{article}
      usepackage{fancyhdr}

      begin{document}
      fancypagestyle{common}{chead{I want my header only on the page at which ``bbb'' is located}}
      aaaparvspace{80em}
      bbbthispagestyle{common}parvspace{80em}
      ccc
      end{document}






      fancyhdr






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 5 hours ago









      Sebastiano

      10.1k41858




      10.1k41858










      asked 6 hours ago









      lyllyl

      60628




      60628






















          2 Answers
          2






          active

          oldest

          votes


















          3














          You can use a mark command:



          documentclass{article}
          usepackage{fancyhdr}
          fancypagestyle{common}{fancyhf{}chead{rightmark}}
          pagestyle{common}
          begin{document}

          aaaparvspace{80em}
          bbbmarkright{I want my header only on the page at which ``bbb'' is located}markright{}parvspace{80em}
          ccc
          end{document}





          share|improve this answer
























          • Besides chead, there are also rhead, lhead, cfoot...etc. in my article. Then how to handle these at the same time using mark?

            – lyl
            16 mins ago



















          2














          I guess you're using headers, but that's not really relevant.



          The problem is that page breaking is asynchronous: typically TeX reads more that fits in a page before deciding it has to ship out a page. In your case, thispagestyle is seen and processed while TeX has not yet decided to eject page 1.



          The command thispagestyle is only reliable if given shortly after a page break, for instance when a new chapter is started, a feature which standard classes use for issuing thispagestyle{plain}.



          The only reliable method is to use the label-pageref mechanism. Here I implement the job with the help of refcount that provides an expandable version of pageref, namely getpagerefnumber.



          documentclass{article}
          usepackage{fancyhdr}
          usepackage{refcount,pdftexcmds}

          pagestyle{fancy}

          makeatletter
          chead{%
          ifnumpdf@strcmp{thepage}{getpagerefnumber{bbb}}=z@
          I want my header only on the page at which ``bbb'' is located%
          else
          Normal header%
          fi
          }
          makeatother

          begin{document}

          aaaparvspace{80em}
          bbblabel{bbb}parvspace{80em}
          ccc

          end{document}


          enter image description here



          I use pdf@strcmp in order to ensure that any kind of page numbering is supported.






          share|improve this answer
























          • Is z@ equal to zero?

            – Sigur
            3 hours ago






          • 1





            @Sigur Yes. This usage also terminates the number to be looked for.

            – egreg
            3 hours ago











          • But is it testing if some number is zero? I confess that I didn't follow the idea. Without it I got error Missing = inserted for ifnum. but since you used z@, the error after removing it was expected. No surprise.

            – Sigur
            3 hours ago











          • @Sigur pdf@strcmp returns 0 if the two strings given as argument are, after full expansion, equal and a nonzero number otherwise.

            – egreg
            2 hours ago











          • Oh, now it makes sense to me. Now I understand. Thanks for attention.

            – Sigur
            2 hours ago











          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%2f475877%2fthispagestyle-has-no-effect-if-no-page-broken-clearpage-newpage-is-given%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          You can use a mark command:



          documentclass{article}
          usepackage{fancyhdr}
          fancypagestyle{common}{fancyhf{}chead{rightmark}}
          pagestyle{common}
          begin{document}

          aaaparvspace{80em}
          bbbmarkright{I want my header only on the page at which ``bbb'' is located}markright{}parvspace{80em}
          ccc
          end{document}





          share|improve this answer
























          • Besides chead, there are also rhead, lhead, cfoot...etc. in my article. Then how to handle these at the same time using mark?

            – lyl
            16 mins ago
















          3














          You can use a mark command:



          documentclass{article}
          usepackage{fancyhdr}
          fancypagestyle{common}{fancyhf{}chead{rightmark}}
          pagestyle{common}
          begin{document}

          aaaparvspace{80em}
          bbbmarkright{I want my header only on the page at which ``bbb'' is located}markright{}parvspace{80em}
          ccc
          end{document}





          share|improve this answer
























          • Besides chead, there are also rhead, lhead, cfoot...etc. in my article. Then how to handle these at the same time using mark?

            – lyl
            16 mins ago














          3












          3








          3







          You can use a mark command:



          documentclass{article}
          usepackage{fancyhdr}
          fancypagestyle{common}{fancyhf{}chead{rightmark}}
          pagestyle{common}
          begin{document}

          aaaparvspace{80em}
          bbbmarkright{I want my header only on the page at which ``bbb'' is located}markright{}parvspace{80em}
          ccc
          end{document}





          share|improve this answer













          You can use a mark command:



          documentclass{article}
          usepackage{fancyhdr}
          fancypagestyle{common}{fancyhf{}chead{rightmark}}
          pagestyle{common}
          begin{document}

          aaaparvspace{80em}
          bbbmarkright{I want my header only on the page at which ``bbb'' is located}markright{}parvspace{80em}
          ccc
          end{document}






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 5 hours ago









          Ulrike FischerUlrike Fischer

          193k8302683




          193k8302683













          • Besides chead, there are also rhead, lhead, cfoot...etc. in my article. Then how to handle these at the same time using mark?

            – lyl
            16 mins ago



















          • Besides chead, there are also rhead, lhead, cfoot...etc. in my article. Then how to handle these at the same time using mark?

            – lyl
            16 mins ago

















          Besides chead, there are also rhead, lhead, cfoot...etc. in my article. Then how to handle these at the same time using mark?

          – lyl
          16 mins ago





          Besides chead, there are also rhead, lhead, cfoot...etc. in my article. Then how to handle these at the same time using mark?

          – lyl
          16 mins ago











          2














          I guess you're using headers, but that's not really relevant.



          The problem is that page breaking is asynchronous: typically TeX reads more that fits in a page before deciding it has to ship out a page. In your case, thispagestyle is seen and processed while TeX has not yet decided to eject page 1.



          The command thispagestyle is only reliable if given shortly after a page break, for instance when a new chapter is started, a feature which standard classes use for issuing thispagestyle{plain}.



          The only reliable method is to use the label-pageref mechanism. Here I implement the job with the help of refcount that provides an expandable version of pageref, namely getpagerefnumber.



          documentclass{article}
          usepackage{fancyhdr}
          usepackage{refcount,pdftexcmds}

          pagestyle{fancy}

          makeatletter
          chead{%
          ifnumpdf@strcmp{thepage}{getpagerefnumber{bbb}}=z@
          I want my header only on the page at which ``bbb'' is located%
          else
          Normal header%
          fi
          }
          makeatother

          begin{document}

          aaaparvspace{80em}
          bbblabel{bbb}parvspace{80em}
          ccc

          end{document}


          enter image description here



          I use pdf@strcmp in order to ensure that any kind of page numbering is supported.






          share|improve this answer
























          • Is z@ equal to zero?

            – Sigur
            3 hours ago






          • 1





            @Sigur Yes. This usage also terminates the number to be looked for.

            – egreg
            3 hours ago











          • But is it testing if some number is zero? I confess that I didn't follow the idea. Without it I got error Missing = inserted for ifnum. but since you used z@, the error after removing it was expected. No surprise.

            – Sigur
            3 hours ago











          • @Sigur pdf@strcmp returns 0 if the two strings given as argument are, after full expansion, equal and a nonzero number otherwise.

            – egreg
            2 hours ago











          • Oh, now it makes sense to me. Now I understand. Thanks for attention.

            – Sigur
            2 hours ago
















          2














          I guess you're using headers, but that's not really relevant.



          The problem is that page breaking is asynchronous: typically TeX reads more that fits in a page before deciding it has to ship out a page. In your case, thispagestyle is seen and processed while TeX has not yet decided to eject page 1.



          The command thispagestyle is only reliable if given shortly after a page break, for instance when a new chapter is started, a feature which standard classes use for issuing thispagestyle{plain}.



          The only reliable method is to use the label-pageref mechanism. Here I implement the job with the help of refcount that provides an expandable version of pageref, namely getpagerefnumber.



          documentclass{article}
          usepackage{fancyhdr}
          usepackage{refcount,pdftexcmds}

          pagestyle{fancy}

          makeatletter
          chead{%
          ifnumpdf@strcmp{thepage}{getpagerefnumber{bbb}}=z@
          I want my header only on the page at which ``bbb'' is located%
          else
          Normal header%
          fi
          }
          makeatother

          begin{document}

          aaaparvspace{80em}
          bbblabel{bbb}parvspace{80em}
          ccc

          end{document}


          enter image description here



          I use pdf@strcmp in order to ensure that any kind of page numbering is supported.






          share|improve this answer
























          • Is z@ equal to zero?

            – Sigur
            3 hours ago






          • 1





            @Sigur Yes. This usage also terminates the number to be looked for.

            – egreg
            3 hours ago











          • But is it testing if some number is zero? I confess that I didn't follow the idea. Without it I got error Missing = inserted for ifnum. but since you used z@, the error after removing it was expected. No surprise.

            – Sigur
            3 hours ago











          • @Sigur pdf@strcmp returns 0 if the two strings given as argument are, after full expansion, equal and a nonzero number otherwise.

            – egreg
            2 hours ago











          • Oh, now it makes sense to me. Now I understand. Thanks for attention.

            – Sigur
            2 hours ago














          2












          2








          2







          I guess you're using headers, but that's not really relevant.



          The problem is that page breaking is asynchronous: typically TeX reads more that fits in a page before deciding it has to ship out a page. In your case, thispagestyle is seen and processed while TeX has not yet decided to eject page 1.



          The command thispagestyle is only reliable if given shortly after a page break, for instance when a new chapter is started, a feature which standard classes use for issuing thispagestyle{plain}.



          The only reliable method is to use the label-pageref mechanism. Here I implement the job with the help of refcount that provides an expandable version of pageref, namely getpagerefnumber.



          documentclass{article}
          usepackage{fancyhdr}
          usepackage{refcount,pdftexcmds}

          pagestyle{fancy}

          makeatletter
          chead{%
          ifnumpdf@strcmp{thepage}{getpagerefnumber{bbb}}=z@
          I want my header only on the page at which ``bbb'' is located%
          else
          Normal header%
          fi
          }
          makeatother

          begin{document}

          aaaparvspace{80em}
          bbblabel{bbb}parvspace{80em}
          ccc

          end{document}


          enter image description here



          I use pdf@strcmp in order to ensure that any kind of page numbering is supported.






          share|improve this answer













          I guess you're using headers, but that's not really relevant.



          The problem is that page breaking is asynchronous: typically TeX reads more that fits in a page before deciding it has to ship out a page. In your case, thispagestyle is seen and processed while TeX has not yet decided to eject page 1.



          The command thispagestyle is only reliable if given shortly after a page break, for instance when a new chapter is started, a feature which standard classes use for issuing thispagestyle{plain}.



          The only reliable method is to use the label-pageref mechanism. Here I implement the job with the help of refcount that provides an expandable version of pageref, namely getpagerefnumber.



          documentclass{article}
          usepackage{fancyhdr}
          usepackage{refcount,pdftexcmds}

          pagestyle{fancy}

          makeatletter
          chead{%
          ifnumpdf@strcmp{thepage}{getpagerefnumber{bbb}}=z@
          I want my header only on the page at which ``bbb'' is located%
          else
          Normal header%
          fi
          }
          makeatother

          begin{document}

          aaaparvspace{80em}
          bbblabel{bbb}parvspace{80em}
          ccc

          end{document}


          enter image description here



          I use pdf@strcmp in order to ensure that any kind of page numbering is supported.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 3 hours ago









          egregegreg

          721k8719113210




          721k8719113210













          • Is z@ equal to zero?

            – Sigur
            3 hours ago






          • 1





            @Sigur Yes. This usage also terminates the number to be looked for.

            – egreg
            3 hours ago











          • But is it testing if some number is zero? I confess that I didn't follow the idea. Without it I got error Missing = inserted for ifnum. but since you used z@, the error after removing it was expected. No surprise.

            – Sigur
            3 hours ago











          • @Sigur pdf@strcmp returns 0 if the two strings given as argument are, after full expansion, equal and a nonzero number otherwise.

            – egreg
            2 hours ago











          • Oh, now it makes sense to me. Now I understand. Thanks for attention.

            – Sigur
            2 hours ago



















          • Is z@ equal to zero?

            – Sigur
            3 hours ago






          • 1





            @Sigur Yes. This usage also terminates the number to be looked for.

            – egreg
            3 hours ago











          • But is it testing if some number is zero? I confess that I didn't follow the idea. Without it I got error Missing = inserted for ifnum. but since you used z@, the error after removing it was expected. No surprise.

            – Sigur
            3 hours ago











          • @Sigur pdf@strcmp returns 0 if the two strings given as argument are, after full expansion, equal and a nonzero number otherwise.

            – egreg
            2 hours ago











          • Oh, now it makes sense to me. Now I understand. Thanks for attention.

            – Sigur
            2 hours ago

















          Is z@ equal to zero?

          – Sigur
          3 hours ago





          Is z@ equal to zero?

          – Sigur
          3 hours ago




          1




          1





          @Sigur Yes. This usage also terminates the number to be looked for.

          – egreg
          3 hours ago





          @Sigur Yes. This usage also terminates the number to be looked for.

          – egreg
          3 hours ago













          But is it testing if some number is zero? I confess that I didn't follow the idea. Without it I got error Missing = inserted for ifnum. but since you used z@, the error after removing it was expected. No surprise.

          – Sigur
          3 hours ago





          But is it testing if some number is zero? I confess that I didn't follow the idea. Without it I got error Missing = inserted for ifnum. but since you used z@, the error after removing it was expected. No surprise.

          – Sigur
          3 hours ago













          @Sigur pdf@strcmp returns 0 if the two strings given as argument are, after full expansion, equal and a nonzero number otherwise.

          – egreg
          2 hours ago





          @Sigur pdf@strcmp returns 0 if the two strings given as argument are, after full expansion, equal and a nonzero number otherwise.

          – egreg
          2 hours ago













          Oh, now it makes sense to me. Now I understand. Thanks for attention.

          – Sigur
          2 hours ago





          Oh, now it makes sense to me. Now I understand. Thanks for attention.

          – Sigur
          2 hours ago


















          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%2f475877%2fthispagestyle-has-no-effect-if-no-page-broken-clearpage-newpage-is-given%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

          香粉寮

          GameSpot