Das ist eine TeX-Frage!
Im folgenden Beispiel werden zwei vertikale Boxen dargestellt, die rechte Box wird nach rechts und nach oben um die Maße Open in writeLaTeX
\newbox\mybox% \newbox\yourbox% \newbox\ourbox% \newdimen\raisefactor% \newdimen\shiftfactor% \setbox\mybox=\vbox{\hsize=4cm a bcd ef g h ij klmab cdefghijklm abc defghij k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a b c d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a b c d e f g h i j k l m k l m k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i kj k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l ma b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l m }% \setbox\yourbox=\vtop{\vbox{\copy\mybox}}% \setbox\ourbox=\vtop{\vbox{\copy\mybox}}% \the\ht\yourbox \the\wd\yourbox% \hskip1cm\the\ht\ourbox \the\wd\ourbox% \raisefactor=\the\ht\yourbox% \shiftfactor=\the\wd\yourbox% \hrule% \vtop{\vtop{\unvbox\yourbox}\vskip-3\lineskip \vskip-1\raisefactor% \hskip1\shiftfactor\vtop{\unvbox\ourbox}}% \hrule% \bye% gefragt 09 Okt '14, 23:48 ctansearch |
Die Open in writeLaTeX
\lineskip=0pt \newbox\mybox% \newbox\yourbox% \newbox\ourbox% \newdimen\raisefactor% \newdimen\shiftfactor% \setbox\mybox=\vbox{\hsize=4cm a bcd ef g h ij klmab cdefghijklm abc defghij k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a b c d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a b c d e f g h i j k l m k l m k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i kj k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l ma b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l m }% \setbox\yourbox=\vtop{\vbox{\copy\mybox}}% \setbox\ourbox=\vtop{\vbox{\copy\mybox}}% \the\ht\yourbox \the\wd\yourbox% \hskip1cm\the\ht\ourbox \the\wd\ourbox% \raisefactor=\the\ht\yourbox% \shiftfactor=\the\wd\yourbox% \hrule% \vtop{\vtop{\unvbox\yourbox}\vskip-3\lineskip \vskip-1\raisefactor% \hskip1\shiftfactor\vtop{\unvbox\ourbox}}% \hrule% \bye% erkennen kann. Tatsächlich hängt das sehr von der tatsächlichen Höhe der ersten bzw. der tatsächlichen Tiefe der letzten Zeile in der Box ab: Open in writeLaTeX
\newbox\mybox% \newbox\yourbox% \newbox\ourbox% \newdimen\raisefactor% \newdimen\shiftfactor% \lineskip0pt \setbox\mybox=\vbox{\hsize=4cm \strut a bcd ef g h ij klmab cdefghijklm abc defghij k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a b c d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a b c d e f g h i j k l m k l m k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i kj k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l ma b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l m\strut }% \setbox\yourbox=\vtop{\vbox{\copy\mybox}}% \setbox\ourbox=\vtop{\vbox{\copy\mybox}}% \the\ht\yourbox\space \the\wd\yourbox% \hskip1cm\the\ht\ourbox\space \the\wd\ourbox% \raisefactor=\the\ht\yourbox% \shiftfactor=\the\wd\yourbox% \hrule% \vbox{\vtop{\unvbox\yourbox}\vskip-\raisefactor\vskip-\dp\strutbox \hskip\shiftfactor \vtop{\unvbox\ourbox}}% \hrule% \bye% Du musst also berücksichtigen, dass Boxen bei TeX nicht nur eine Höhe, sondern auch eine Tiefe haben, und Dir überlegen, wo denn nun eigentlich die Grundlinie verläuft. Ich habe mich hier eines kleinen Tricks bedient, um diese Tiefe (und nebenbei auch die Höhe) eindeutig zu definieren. Ohne den Trick geht es in diesem Fall auch, weil man aufgrund der Verwendung von Open in writeLaTeX
\newbox\mybox% \newbox\yourbox% \newbox\ourbox% \newdimen\raisefactor% \newdimen\shiftfactor% \lineskip0pt \setbox\mybox=\vbox{\hsize=4cm a bcd ef g h ij klmab cdefghijklm abc defghij k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a b c d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a b c d e f g h i j k l m k l m k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i kj k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l ma b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l m}% \setbox\yourbox=\vtop{\vbox{\copy\mybox}}% \setbox\ourbox=\vtop{\vbox{\copy\mybox}}% \the\ht\yourbox\space \the\wd\yourbox% \hskip1cm\the\ht\ourbox\space \the\wd\ourbox% \raisefactor=\the\ht\yourbox% \shiftfactor=\the\wd\yourbox% \hrule% \vbox{\vtop{\unvbox\yourbox}\vskip-\raisefactor\vskip-\dp\mybox \hskip\shiftfactor \vtop{\unvbox\ourbox}}% \hrule% \bye% Was passiert nun, wenn man Open in writeLaTeX
\newbox\mybox% \newbox\yourbox% \newbox\ourbox% \newdimen\raisefactor% \newdimen\shiftfactor% %\lineskip10pt \setbox\mybox=\vbox{\hsize=4cm a bcd ef g h ij klmab cdefghijklm abc defghij k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a b c d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a b c d e f g h i j k l m k l m k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i kj k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l ma b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l m}% \setbox\yourbox=\vtop{\vbox{\copy\mybox}}% \setbox\ourbox=\vtop{\vbox{\copy\mybox}}% \the\ht\yourbox\space \the\wd\yourbox% \hskip1cm\the\ht\ourbox\space \the\wd\ourbox% \raisefactor=\the\ht\yourbox% \shiftfactor=\the\wd\yourbox% \hrule% \vbox{\vtop{\unvbox\yourbox}\vskip-\raisefactor\vskip-\dp\mybox\vskip-\lineskip \hskip\shiftfactor \vtop{\unvbox\ourbox}}% \hrule% \bye% Das funktioniert auch dann noch, wenn Und wieso waren nun Open in writeLaTeX
\newbox\mybox% \newbox\yourbox% \newbox\ourbox% \newdimen\raisefactor% \newdimen\shiftfactor% \setbox\mybox=\vbox{\hsize=4cm a bcd ef g h ij klmab cdefghijklm abc defghij k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a b c d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a b c d e f g h i j k l m k l m k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i kj k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l ma b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l m}% \setbox\yourbox=\vtop{\vbox{\copy\mybox}}% \setbox\ourbox=\vtop{\vbox{\copy\mybox}}% \the\ht\yourbox\space \the\wd\yourbox% \hskip1cm\the\ht\ourbox\space \the\wd\ourbox% \raisefactor=\the\ht\yourbox% \shiftfactor=\the\wd\yourbox% \hrule% \vbox{\vtop{\unvbox\yourbox}\vskip-\raisefactor\vskip-\dp\mybox\vskip-\lineskip \hskip\shiftfactor \vtop{\unvbox\ourbox}}% \hrule% \dimen255=\dp\mybox \advance\dimen255 by \lineskip \the\dp\mybox+\the\lineskip=\the\dimen255 \bye% Die minimale Abweichung von weniger als 0,06 pt ist schlicht in diesem Fall nicht erkennbar (durch Rundungsfehler im Viewer kann sie aber bei schlechter Auflösung tatsächlich zufällig auch erkennbar werden). Übrigens ist das ganze einfacher, wenn man für die horizontale Anordnung eben keine Open in writeLaTeX
\newbox\mybox \newbox\yourbox \newbox\ourbox \setbox\mybox=\vbox{\hsize=4cm \strut a bcd ef g h ij klmab cdefghijklm abc defghij k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a b c d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a b c d e f g h i j k l m k l m k l m a b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i kj k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l ma b c d e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j k l e f g h i j k l m a b c d e f g h i j k l m a bc d e f g h i j j k l m a bc d e f g h i j k l m\strut}% \setbox\yourbox=\vtop{\vbox{\copy\mybox}}% \setbox\ourbox=\vtop{\vbox{\copy\mybox}}% \the\ht\yourbox\space \the\wd\yourbox \hskip1cm\the\ht\ourbox\space \the\wd\ourbox \hrule \hbox{\vtop{\unvbox\yourbox}\hskip 1cm \vtop{\unvbox\ourbox}}% \hrule \bye Ebenso muss man sich dann keine Gedanken darüber machen, was denn eigentlich passiert, wenn man in dem Beispiel LaTeX-Anwendern sei übrigens empfohlen, nicht beantwortet 10 Okt '14, 07:42 gast3 @IjonTichy Vielen Dank erstmal für die ausführliche Antwort. Ich komme mit lineskip=0pt und hbox nicht zu den gleichen Ergebnissen, ausserdem habe ich vbox und vtop deshalb angewendet, weil erstens die Messung der Höhe bei vbox gegeben ist und bei vtop die Ausrichtung nach oben inbegriffen ist. Diese Vorteile will ich später wieder nutzen.
(10 Okt '14, 22:44)
ctansearch
|