¿Por qué el unhboxing parece ignorar el modo vertical y por qué el unvboxing parece ignorar el modo horizontal?

¿Por qué el unhboxing parece ignorar el modo vertical y por qué el unvboxing parece ignorar el modo horizontal?

Primera pregunta

¿Por qué el unhboxing parece ignorar el modo vertical y por qué el unvboxing parece ignorar el modo horizontal?

El MWE después de las dos siguientes imágenes.

  • Ambos entregan el texto de la primera pregunta.
  • e ilustra los efectos de \unhbox/ \unhcopyen modo vertical y de \unvbox/ \unvcopyen modo horizontal.

El texto de la primera pregunta también se encuentra en las dos imágenes siguientes. Son el resultado de la elaboración del MWE.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

\newbox\MyBox

\setbox\MyBox=\hbox{%
                      \vbox{\hbox{box1a}\hbox{box1b}}%
                      \vbox{\hbox{box2a}\hbox{box2b}}%
                      \vbox{\hbox{box3a}\hbox{box3b}}%
                    }

\noindent{%
\bf The {\tt\string\hbox} in box-register {\tt\string\MyBox} is:\hfill\break
\tt\string\hbox\string{\char37 \hfill\break
\null\ \ \ \ \ \ \ %
\string\vbox\string{\string\hbox\string{box1a\string}\string\hbox\string{box1b\string}\string}\char37 \hfill\break
\null\ \ \ \ \ \ \ %
\string\vbox\string{\string\hbox\string{box2a\string}\string\hbox\string{box2b\string}\string}\char37 \hfill\break
\null\ \ \ \ \ \ \ %
\string\vbox\string{\string\hbox\string{box3a\string}\string\hbox\string{box3b\string}\string}\char37 \hfill\break
\null\ \ \ \ \ %
\string}\char37 \hfill
}%

\noindent{\bf In vertical mode I expect boxes to be placed atop/below each 
other no matter if the boxes to be placed themselves are horizontal or vertical 
boxes.\hfill\break
Thus in vertical mode I expect from {\tt\string\unhcopy}ing the {\tt\string\hbox} held in
box-register {\tt\string\MyBbox} that the three {\tt\string\vbox}es it contains are 
placed atop/below each other:}\bigskip

\par\vbox{\hbox{box1a}\hbox{box1b}}%
    \vbox{\hbox{box2a}\hbox{box2b}}%
    \vbox{\hbox{box3a}\hbox{box3b}}%

\bigskip\noindent{\bf But in vertical mode from {\tt\string\unhcopy}ing  I
get the three vertical boxes placed to the left/right of each other, with {\tt\string\parindent}-glue
at the left of the leftmost box:}\bigskip

\par\unhcopy\MyBox

\bigskip\noindent{\bf Just as if I did {\tt\string\box} the {\tt\string\hbox}
in horizontal mode:}\bigskip

\par\leavevmode\box\MyBox

\bigskip\noindent{\bf Why? Where am I wrong in my understanding of the workings of {\tt\string\unhbox}/{\tt\string\unhcopy}?}

\vfill\eject

\setbox\MyBox=\vbox{%
                \hbox{\vbox{\hbox{box1a}\hbox{box1b}}}%
                \hbox{\vbox{\hbox{box2a}\hbox{box2b}}}%
                \hbox{\vbox{\hbox{box3a}\hbox{box3b}}}%
              }

\bigskip\noindent{\bf
\bf The {\tt\string\vbox} in box-register {\tt\string\MyBox} is:\hfill\break
\tt
\string\vbox\string{\char37 \hfill\break
\null\ \ \ \ \ \ \ \string\hbox\string{\string\vbox\string{\string\hbox\string{box1a\string}%
\string\hbox\string{box1b\string}\string}\string}\char37 \hfill\break
\null\ \ \ \ \ \ \ \string\hbox\string{\string\vbox\string{\string\hbox\string{box2a\string}%
\string\hbox\string{box2b\string}\string}\string}\char37 \hfill\break
\null\ \ \ \ \ \ \ \string\hbox\string{\string\vbox\string{\string\hbox\string{box3a\string}%
\string\hbox\string{box3b\string}\string}\string}\char37 \hfill\break
\null\ \ \ \ \ \string}\char37 \hfill
}%

\noindent{\bf In horizontal mode I expect boxes to be placed left/right to each other no 
matter if the boxes to be placed themselves are horizontal or vertical boxes.\hfill\break
Thus in horizontal mode I expect from {\tt\string\unvcopy}ing the {\tt\string\vbox} held in
box-register {\tt\string\MyBbox} that the three {\tt\string\hbox}es it contains are placed
left/right to each other, with {\tt\string\parindent}-glue at the left of the leftmost
{\tt\string\hbox}:}\bigskip

\leavevmode\hbox{\vbox{\hbox{box1a}\hbox{box1b}}}%
           \hbox{\vbox{\hbox{box2a}\hbox{box2b}}}%
           \hbox{\vbox{\hbox{box3a}\hbox{box3b}}}%

\bigskip\noindent{\bf But in horizontal mode from {\tt\string\unvcopy}ing 
I get the three horizontal boxes placed atop/below each other:}\bigskip

\leavevmode\unvcopy\MyBox

\bigskip\noindent{\bf Just as if I did {\tt\string\box} the {\tt\string\vbox} in vertical mode:}\bigskip

\par\box\MyBox

\bigskip\noindent{\bf Why? Where am I wrong in my understanding of the workings of {\tt\string\unvbox}/{\tt\string\unvcopy}?}

\bye


Segunda pregunta:

Supongamos un registro de caja \MyBoxque contiene un \vboxque a su vez contiene muchas líneas/muchas \hboxesde igual longitud.

\boxAl realizar ese registro de cuadro se obtiene un cuadro vertical cuyas líneas individuales no se dividirán en páginas:

\newcount\tmpcnt
\newbox\MyBox
\setbox\MyBox=\vbox{%
  \tmpcnt=0 %
  \loop\advance\tmpcnt by 1 \hbox to 3cm{Line:\hfill\number\tmpcnt.}\ifnum\tmpcnt<100 \repeat
}%
\noindent
\box\MyBox
\bye

ingrese la descripción de la imagen aquí

Al \unvboxingresar ese registro de cuadro, las líneas individuales se dividirán en páginas:

\newcount\tmpcnt
\newbox\MyBox
\setbox\MyBox=\vbox{%
  \tmpcnt=0 %
  \loop\advance\tmpcnt by 1 \hbox to 3cm{Line:\hfill\number\tmpcnt.}\ifnum\tmpcnt<100 \repeat
}%
\noindent
\nobreak\unvbox\MyBox
\bye

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

¿Cómo puede lograr en combinación con \unvboxeso que estas líneas no solo se divida entre páginas sino que también se desplacen hacia la derecha? Como si lo hicieras:

\newcount\tmpcnt
\tmpcnt=0 %
\noindent
\loop
\advance\tmpcnt by 1 %
\null\hfill\hbox to 3cm{Line:\hfill\number\tmpcnt.}\break
\ifnum\tmpcnt<100 \repeat
\par
\bye

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Respuesta1

\unhboxexpone una lista horizontal, por lo que comienza un nuevo párrafo y una nueva lista horizontal tal como lo haría una letra, lo común \leavevmode es simplemente\def\leavevmode{\unhbox\voidb@x}

información relacionada