Relationship between strut and baselineskipstrut and strutboxHow to modify columns/column environments so...

Who was the lone kid in the line of people at the lake at the end of Avengers: Endgame?

What term is being referred to with "reflected-sound-of-underground-spirits"?

Phrase for the opposite of "foolproof"

What is the smallest unit of eos?

Can I grease a crank spindle/bracket without disassembling the crank set?

What makes accurate emulation of old systems a difficult task?

Function pointer with named arguments?

Was there a Viking Exchange as well as a Columbian one?

Multiple options vs single option UI

How to not starve gigantic beasts

How exactly does Hawking radiation decrease the mass of black holes?

How to pronounce 'c++' in Spanish

Classification of surfaces

Mistake in years of experience in resume?

How did Captain America manage to do this?

Why do games have consumables?

What are the steps to solving this definite integral?

Why does Mind Blank stop the Feeblemind spell?

How to write a column outside the braces in a matrix?

How could Tony Stark make this in Endgame?

Can we say “you can pay when the order gets ready”?

I preordered a game on my Xbox while on the home screen of my friend's account. Which of us owns the game?

Extension of 2-adic valuation to the real numbers

How do I reattach a shelf to the wall when it ripped out of the wall?



Relationship between strut and baselineskip


strut and strutboxHow to modify columns/column environments so they resize automatically to the largest column ?Set strut heightDefinition of strut explainedStrutting around: What's the difference between strut, mathstrut and vphantom?Ensuring a paragraph uses at least a given height?Why is `strut` working in these scenarios?Variable-width horizontal rules with cline intrude cell textFirst word hyphenation in parbox with strutbaselineskip param of fontsize doesn't add space between my lines













3















Here, it is said that a strut is defined as:



rule[-.3baselineskip]{0pt}{baselineskip}


However, if I do:



newlength{strutheight}
settoheight{strutheight}{strut}printlength{strutheight}
printlength{baselineskip}


It prints:



8.39996pt 12.0pt


8.39996 is equal to 0.7*12. However, what I don't understand is that according to its definition the height of the strut should be baselineskip, because -.3baselineskip only refers to a vertical alignment offset. Why does settoheight on a strut produces this behaviour?










share|improve this question



























    3















    Here, it is said that a strut is defined as:



    rule[-.3baselineskip]{0pt}{baselineskip}


    However, if I do:



    newlength{strutheight}
    settoheight{strutheight}{strut}printlength{strutheight}
    printlength{baselineskip}


    It prints:



    8.39996pt 12.0pt


    8.39996 is equal to 0.7*12. However, what I don't understand is that according to its definition the height of the strut should be baselineskip, because -.3baselineskip only refers to a vertical alignment offset. Why does settoheight on a strut produces this behaviour?










    share|improve this question

























      3












      3








      3








      Here, it is said that a strut is defined as:



      rule[-.3baselineskip]{0pt}{baselineskip}


      However, if I do:



      newlength{strutheight}
      settoheight{strutheight}{strut}printlength{strutheight}
      printlength{baselineskip}


      It prints:



      8.39996pt 12.0pt


      8.39996 is equal to 0.7*12. However, what I don't understand is that according to its definition the height of the strut should be baselineskip, because -.3baselineskip only refers to a vertical alignment offset. Why does settoheight on a strut produces this behaviour?










      share|improve this question














      Here, it is said that a strut is defined as:



      rule[-.3baselineskip]{0pt}{baselineskip}


      However, if I do:



      newlength{strutheight}
      settoheight{strutheight}{strut}printlength{strutheight}
      printlength{baselineskip}


      It prints:



      8.39996pt 12.0pt


      8.39996 is equal to 0.7*12. However, what I don't understand is that according to its definition the height of the strut should be baselineskip, because -.3baselineskip only refers to a vertical alignment offset. Why does settoheight on a strut produces this behaviour?







      vertical-alignment baseline calc strut






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 2 hours ago









      VincentVincent

      1,70421939




      1,70421939






















          2 Answers
          2






          active

          oldest

          votes


















          5














          The height of the whole strut is baselineskip, however it is lowered by 0.3baselineskip form the baseline. Its depth plus its height totals baselineskip:



          documentclass{article}
          begin{document}
          newlength{strutheight}
          newlength{strutdepth}
          settoheight{strutheight}{strut}
          settodepth{strutdepth}{strut}
          $thestrutheight+thestrutdepth=thebaselineskip$
          end{document}


          this prints 8.39996pt + 3.60004pt = 12.0pt.



          In TeX, the “height” of a box is not its total height, but the height above the baseline, and the “depth” is the amount that box goes below that baseline. And when you do settoheight you get only the height of the box, not the total height.



          You can draw the strut and its height and depth to see:




          enter image description here




          documentclass{article}
          begin{document}
          fboxsep0pt
          fboxrule0.1pt

          fbox{strut}
          fbox{rule{0pt}{0.7baselineskip}}
          fbox{rule[-0.3baselineskip]{0pt}{0.3baselineskip}}
          end{document}





          share|improve this answer































            1














            Well, the definition of strut is



            % latex.ltx, line 594:
            defstrut{relaxifmmodecopystrutboxelseunhcopystrutboxfi}


            The code rule[-0.3baselineskip]{0pt}{baselineskip} is a less efficient way to say unhcopystrutbox, but amounts to essentially the same. Part of the strut is below the baseline, to cope with characters with descenders like p or y.



            The strutbox is updated whenever a fontsize command is processed:



            % latex.ltx, line 2808:
            defset@fontsize#1#2#3{%
            @defaultunits@tempdimb#2ptrelax@nnil
            edeff@size{strip@pt@tempdimb}%
            @defaultunits@tempskipa#3ptrelax@nnil
            edeff@baselineskip{the@tempskipa}%
            edeff@linespread{#1}%
            letbaselinestretchf@linespread
            defsize@update{%
            baselineskipf@baselineskiprelax
            baselineskipf@linespreadbaselineskip
            normalbaselineskipbaselineskip
            setboxstrutboxhbox{%
            vrule@height.7baselineskip
            @depth.3baselineskip
            @widthz@}%
            letsize@updaterelax}%
            }


            So the strutbox is a box containing a zero width rule, with height 70% of the baseline skip and depth 30% of the baseline skip.



            You can access the current dimensions as htstrutbox and dpstrutbox:



            documentclass{article}
            begin{document}

            thehtstrutbox (height)

            thedpstrutbox (depth)

            thedimexprhtstrutbox+dpstrutbox (total)

            thebaselineskip (baselineskip)

            end{document}


            enter image description here






            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%2f487845%2frelationship-between-strut-and-baselineskip%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









              5














              The height of the whole strut is baselineskip, however it is lowered by 0.3baselineskip form the baseline. Its depth plus its height totals baselineskip:



              documentclass{article}
              begin{document}
              newlength{strutheight}
              newlength{strutdepth}
              settoheight{strutheight}{strut}
              settodepth{strutdepth}{strut}
              $thestrutheight+thestrutdepth=thebaselineskip$
              end{document}


              this prints 8.39996pt + 3.60004pt = 12.0pt.



              In TeX, the “height” of a box is not its total height, but the height above the baseline, and the “depth” is the amount that box goes below that baseline. And when you do settoheight you get only the height of the box, not the total height.



              You can draw the strut and its height and depth to see:




              enter image description here




              documentclass{article}
              begin{document}
              fboxsep0pt
              fboxrule0.1pt

              fbox{strut}
              fbox{rule{0pt}{0.7baselineskip}}
              fbox{rule[-0.3baselineskip]{0pt}{0.3baselineskip}}
              end{document}





              share|improve this answer




























                5














                The height of the whole strut is baselineskip, however it is lowered by 0.3baselineskip form the baseline. Its depth plus its height totals baselineskip:



                documentclass{article}
                begin{document}
                newlength{strutheight}
                newlength{strutdepth}
                settoheight{strutheight}{strut}
                settodepth{strutdepth}{strut}
                $thestrutheight+thestrutdepth=thebaselineskip$
                end{document}


                this prints 8.39996pt + 3.60004pt = 12.0pt.



                In TeX, the “height” of a box is not its total height, but the height above the baseline, and the “depth” is the amount that box goes below that baseline. And when you do settoheight you get only the height of the box, not the total height.



                You can draw the strut and its height and depth to see:




                enter image description here




                documentclass{article}
                begin{document}
                fboxsep0pt
                fboxrule0.1pt

                fbox{strut}
                fbox{rule{0pt}{0.7baselineskip}}
                fbox{rule[-0.3baselineskip]{0pt}{0.3baselineskip}}
                end{document}





                share|improve this answer


























                  5












                  5








                  5







                  The height of the whole strut is baselineskip, however it is lowered by 0.3baselineskip form the baseline. Its depth plus its height totals baselineskip:



                  documentclass{article}
                  begin{document}
                  newlength{strutheight}
                  newlength{strutdepth}
                  settoheight{strutheight}{strut}
                  settodepth{strutdepth}{strut}
                  $thestrutheight+thestrutdepth=thebaselineskip$
                  end{document}


                  this prints 8.39996pt + 3.60004pt = 12.0pt.



                  In TeX, the “height” of a box is not its total height, but the height above the baseline, and the “depth” is the amount that box goes below that baseline. And when you do settoheight you get only the height of the box, not the total height.



                  You can draw the strut and its height and depth to see:




                  enter image description here




                  documentclass{article}
                  begin{document}
                  fboxsep0pt
                  fboxrule0.1pt

                  fbox{strut}
                  fbox{rule{0pt}{0.7baselineskip}}
                  fbox{rule[-0.3baselineskip]{0pt}{0.3baselineskip}}
                  end{document}





                  share|improve this answer













                  The height of the whole strut is baselineskip, however it is lowered by 0.3baselineskip form the baseline. Its depth plus its height totals baselineskip:



                  documentclass{article}
                  begin{document}
                  newlength{strutheight}
                  newlength{strutdepth}
                  settoheight{strutheight}{strut}
                  settodepth{strutdepth}{strut}
                  $thestrutheight+thestrutdepth=thebaselineskip$
                  end{document}


                  this prints 8.39996pt + 3.60004pt = 12.0pt.



                  In TeX, the “height” of a box is not its total height, but the height above the baseline, and the “depth” is the amount that box goes below that baseline. And when you do settoheight you get only the height of the box, not the total height.



                  You can draw the strut and its height and depth to see:




                  enter image description here




                  documentclass{article}
                  begin{document}
                  fboxsep0pt
                  fboxrule0.1pt

                  fbox{strut}
                  fbox{rule{0pt}{0.7baselineskip}}
                  fbox{rule[-0.3baselineskip]{0pt}{0.3baselineskip}}
                  end{document}






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 2 hours ago









                  Phelype OleinikPhelype Oleinik

                  26.2k54791




                  26.2k54791























                      1














                      Well, the definition of strut is



                      % latex.ltx, line 594:
                      defstrut{relaxifmmodecopystrutboxelseunhcopystrutboxfi}


                      The code rule[-0.3baselineskip]{0pt}{baselineskip} is a less efficient way to say unhcopystrutbox, but amounts to essentially the same. Part of the strut is below the baseline, to cope with characters with descenders like p or y.



                      The strutbox is updated whenever a fontsize command is processed:



                      % latex.ltx, line 2808:
                      defset@fontsize#1#2#3{%
                      @defaultunits@tempdimb#2ptrelax@nnil
                      edeff@size{strip@pt@tempdimb}%
                      @defaultunits@tempskipa#3ptrelax@nnil
                      edeff@baselineskip{the@tempskipa}%
                      edeff@linespread{#1}%
                      letbaselinestretchf@linespread
                      defsize@update{%
                      baselineskipf@baselineskiprelax
                      baselineskipf@linespreadbaselineskip
                      normalbaselineskipbaselineskip
                      setboxstrutboxhbox{%
                      vrule@height.7baselineskip
                      @depth.3baselineskip
                      @widthz@}%
                      letsize@updaterelax}%
                      }


                      So the strutbox is a box containing a zero width rule, with height 70% of the baseline skip and depth 30% of the baseline skip.



                      You can access the current dimensions as htstrutbox and dpstrutbox:



                      documentclass{article}
                      begin{document}

                      thehtstrutbox (height)

                      thedpstrutbox (depth)

                      thedimexprhtstrutbox+dpstrutbox (total)

                      thebaselineskip (baselineskip)

                      end{document}


                      enter image description here






                      share|improve this answer




























                        1














                        Well, the definition of strut is



                        % latex.ltx, line 594:
                        defstrut{relaxifmmodecopystrutboxelseunhcopystrutboxfi}


                        The code rule[-0.3baselineskip]{0pt}{baselineskip} is a less efficient way to say unhcopystrutbox, but amounts to essentially the same. Part of the strut is below the baseline, to cope with characters with descenders like p or y.



                        The strutbox is updated whenever a fontsize command is processed:



                        % latex.ltx, line 2808:
                        defset@fontsize#1#2#3{%
                        @defaultunits@tempdimb#2ptrelax@nnil
                        edeff@size{strip@pt@tempdimb}%
                        @defaultunits@tempskipa#3ptrelax@nnil
                        edeff@baselineskip{the@tempskipa}%
                        edeff@linespread{#1}%
                        letbaselinestretchf@linespread
                        defsize@update{%
                        baselineskipf@baselineskiprelax
                        baselineskipf@linespreadbaselineskip
                        normalbaselineskipbaselineskip
                        setboxstrutboxhbox{%
                        vrule@height.7baselineskip
                        @depth.3baselineskip
                        @widthz@}%
                        letsize@updaterelax}%
                        }


                        So the strutbox is a box containing a zero width rule, with height 70% of the baseline skip and depth 30% of the baseline skip.



                        You can access the current dimensions as htstrutbox and dpstrutbox:



                        documentclass{article}
                        begin{document}

                        thehtstrutbox (height)

                        thedpstrutbox (depth)

                        thedimexprhtstrutbox+dpstrutbox (total)

                        thebaselineskip (baselineskip)

                        end{document}


                        enter image description here






                        share|improve this answer


























                          1












                          1








                          1







                          Well, the definition of strut is



                          % latex.ltx, line 594:
                          defstrut{relaxifmmodecopystrutboxelseunhcopystrutboxfi}


                          The code rule[-0.3baselineskip]{0pt}{baselineskip} is a less efficient way to say unhcopystrutbox, but amounts to essentially the same. Part of the strut is below the baseline, to cope with characters with descenders like p or y.



                          The strutbox is updated whenever a fontsize command is processed:



                          % latex.ltx, line 2808:
                          defset@fontsize#1#2#3{%
                          @defaultunits@tempdimb#2ptrelax@nnil
                          edeff@size{strip@pt@tempdimb}%
                          @defaultunits@tempskipa#3ptrelax@nnil
                          edeff@baselineskip{the@tempskipa}%
                          edeff@linespread{#1}%
                          letbaselinestretchf@linespread
                          defsize@update{%
                          baselineskipf@baselineskiprelax
                          baselineskipf@linespreadbaselineskip
                          normalbaselineskipbaselineskip
                          setboxstrutboxhbox{%
                          vrule@height.7baselineskip
                          @depth.3baselineskip
                          @widthz@}%
                          letsize@updaterelax}%
                          }


                          So the strutbox is a box containing a zero width rule, with height 70% of the baseline skip and depth 30% of the baseline skip.



                          You can access the current dimensions as htstrutbox and dpstrutbox:



                          documentclass{article}
                          begin{document}

                          thehtstrutbox (height)

                          thedpstrutbox (depth)

                          thedimexprhtstrutbox+dpstrutbox (total)

                          thebaselineskip (baselineskip)

                          end{document}


                          enter image description here






                          share|improve this answer













                          Well, the definition of strut is



                          % latex.ltx, line 594:
                          defstrut{relaxifmmodecopystrutboxelseunhcopystrutboxfi}


                          The code rule[-0.3baselineskip]{0pt}{baselineskip} is a less efficient way to say unhcopystrutbox, but amounts to essentially the same. Part of the strut is below the baseline, to cope with characters with descenders like p or y.



                          The strutbox is updated whenever a fontsize command is processed:



                          % latex.ltx, line 2808:
                          defset@fontsize#1#2#3{%
                          @defaultunits@tempdimb#2ptrelax@nnil
                          edeff@size{strip@pt@tempdimb}%
                          @defaultunits@tempskipa#3ptrelax@nnil
                          edeff@baselineskip{the@tempskipa}%
                          edeff@linespread{#1}%
                          letbaselinestretchf@linespread
                          defsize@update{%
                          baselineskipf@baselineskiprelax
                          baselineskipf@linespreadbaselineskip
                          normalbaselineskipbaselineskip
                          setboxstrutboxhbox{%
                          vrule@height.7baselineskip
                          @depth.3baselineskip
                          @widthz@}%
                          letsize@updaterelax}%
                          }


                          So the strutbox is a box containing a zero width rule, with height 70% of the baseline skip and depth 30% of the baseline skip.



                          You can access the current dimensions as htstrutbox and dpstrutbox:



                          documentclass{article}
                          begin{document}

                          thehtstrutbox (height)

                          thedpstrutbox (depth)

                          thedimexprhtstrutbox+dpstrutbox (total)

                          thebaselineskip (baselineskip)

                          end{document}


                          enter image description here







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 1 hour ago









                          egregegreg

                          737k8919373265




                          737k8919373265






























                              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%2f487845%2frelationship-between-strut-and-baselineskip%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

                              What is the “three and three hundred thousand syndrome”?Who wrote the book Arena?What five creatures were...

                              Gersau Kjelder | Navigasjonsmeny46°59′0″N 8°31′0″E46°59′0″N...

                              Hestehale Innhaldsliste Hestehale på kvinner | Hestehale på menn | Galleri | Sjå òg |...