Wenn ich Wie kann ich die korrekte Höhe messen? Öffne in Overleaf
\documentclass[]{book} %\parindent0pt % alt \setparsizes{0pt}{0pt}{0pt plus 1fil} % neu \begin{document} \newlength\myheight \def\mybox{Zeile 1 \\ Zeile 2 \\ Zeile 3} \settoheight\myheight{\mybox} Wert: \the\myheight ~(falsch!) \\ Inhalt: \\ \mybox \bigskip \newlength\Myheight \def\Mybox{Zeile 1} \settoheight\Myheight{\Mybox} Wert: \the\Myheight \\ Inhalt: \\ \Mybox \end{document} gefragt 28 Nov '18, 19:06 cis
Ergebnis 5 von 14
show 9 more comments
|
N.B.: Öffne in Overleaf
\documentclass[]{book} \usepackage{calc} \parindent0pt \begin{document} \newlength\myheight \def\mybox{Zeile 1\par Zeile 2\par Zeile 3} \settototalheight\myheight{\vbox{\mybox}} Wert: \the\myheight ~(falsch!) Inhalt: \mybox \bigskip \newlength\Myheight \def\Mybox{Zeile 1} \settototalheight\Myheight{\vbox{\Mybox}} Wert: \the\Myheight Inhalt: \Mybox \end{document} beantwortet 28 Nov '18, 22:27 Henri Nur als Ergänzung: Eine Implementierung von
(29 Nov '18, 08:12)
gast3
@Ijon Tichy Kannst Du die Methode der Höhenmessung evtl. hier ergänzen https://texwelt.de/wissen/fragen/23658/layout-wie-kann-den-textkorper-auf-den-fuss-und-den-rand-ausdehnen/23678 ?
(29 Nov '18, 14:31)
cis
@cis Das war dort nicht gefragt (schon meinen Hinweis zu einem Kommentar in der Antwort betrachte ich als eher gewagt, da Kommentare jederzeit unwiederbringlich gelöscht werden können und eigentlich nicht Teil der Frage sind) und außerdem hast du ja zu der Frage, zu der ich oben eine Antwort verlinkt habe, ebenfalls eine Antwort beigetragen, so dass ich davon ausgehen darf, dass du auch meine Antwort aufmerksam gelesen hast und deshalb diese Methode bereits kennst. ;-)
(29 Nov '18, 16:01)
gast3
@Ijon Tichy An sich sollte es durch Kombination beider Lösungen nun klar sein. Ich habe damit rumgebastelt, es kommt nicht sauber raus. Was wahrscheinlich an irgendwelchen weiteren Maßen liegt ('marginsep' usw.?). Ich versuche es später am Abend nochmal.
(29 Nov '18, 17:03)
cis
|
Bei deiner Messung wird nur die Höhe, nicht die Tiefe gemessen. Ich glaube (nicht getestet), der Befehl müsste
\settototalheight
lauten.Mmhhh,
\settototalheight\myheight{\mybox}
(\usepackage{calc}
) hatte erstmal keinen Effekt.In dem Fall greife ich auf die händische Methode zurück:
\newsavebox\mysavebox\setbox\mysavebox\vbox{\mybox}
\setlength\myheight{\dimexpr\ht\mysavebox+\dp\mysavebox\relax}
Das Problem mit
\settototalheight
ist, dass es eine\hbox
verwendet. In dieser werden Zeilenumbrüche ignoriert (es sei denn, du verwendest eine\parbox
o.ä.).Du musst intern z.B. eine parbox oder eine tabular verwenden.
Ich gehe mal davon aus, dass du im wahren Leben
\parindent0pt
nicht verwendest. Weil aber Anfänger gerne Dinge nachmachen, die sie irgendwo im Internet gesehen haben, seien diese hiermit vorsorglich davor gewarnt: Was ist eigentlich so schlimm daran, parindent auf Null zu setzen?Diesen parindent ungleich Null braucht man m.E. nur dann, wenn man fortlaufende / schriftstellerische / lange Texte verfasst. Das mache ich in seltensten Fällen. Ich habe z.B. ein Blatt mit einer Graphik und paar Angaben dazu. Die Angaben sollen untereinander stehen. Und dann nervt es mich, das bei diesen Angaben gleich wieder ein Absatzeinzug erzwungen wird. Und dann setze ich
\parindent0pt
. Wenn es dafür einen besseren Befehl mit gleicher Wirkung gibt, kann ich auch diesen verwenden.In dem Fall empfehle ich dir, tatsächlich die von mir verlinkte Seite einmal sehr aufmerksam durchzulesen.
Der Linktext sagt mir, dass
\parindent0mm
bzw. seine analogen Befehle schlecht sind und Beispiele, die das verwenden blöd sind. Wie man den Asatzeinzug abstellt, finde ich da nicht. Andereseits wird auf das KOMA-Handbuch verwiesen. Sofern ich in der Tabelleparskip=<WERT>
nichts übersehen habe, finde da auch nichts Passendes. Weiteres forschen im KOMA-Handbuch liefert schließlich versteckt\setparsizes{0pt}{0pt}{0pt plus 1fil}
, das beseitigt den Absatzeinzug. Ist mir irgendwie noch untergekommen, aber das besser ist: von mir aus.Fortsetzung: Im Fall des nicht-romanartigen Dokuments, z.B. ein Blatt mit Graphiken, sind mir mit
\parindent0mm
noch keine Probleme aufgefallen, außer dass das Ding einen schlechten Ruf hat und Profis dann die Beispiele blöd finden.Auf der anderen Seite finde ich eigentlich immer nur Kritik an diesem Befehl. Bei googeln nach Lösungen finde aber nur diesen Befehl oder den Hinweis, dass man unbedingt einen Absatzeinzug verwenden soll...
Fortsetzung: Ich könnte mir vorstellen, dass
\parindent0mm
Probleme machen könnte, wenn man sowas wie eine Absatznummerierung haben möchte. Weil,\parindent0mm
, wohl die Absätze unerkennbar macht oder sowas.Ansonsten kann ich auch dieses Monstrum
\setparsizes{0pt}{0pt}{0pt plus 1fil}
da verwenden. Wenn das die Herzen der Leute mehr erfreut, warum nicht...Du scheinst irgendwie eine andere Seite gelesen zu haben, denn die verlinkte Seite erklärt auch ausführlich, dass und warum es schlecht ist, einfach nur den Absatzeinzug abzuschalten, ohne dann explizit eine andere Art der Absatzauszeichnung zu aktivieren. Es liefert sogar Beispiele, die das verdeutlichen. Es wird auch erklärt, welche Arten von Absatzauszeichnungen existieren, wie man diese ggf. aktiviert und welche Art aus welchem Grund normalerweise zu bevorzugen ist.
Naja, das habe ich schon so gemeint: Die Seite sagt mir: "mach das nicht, das ist nicht gut". Aber sie sagt mir nicht, wie ich den Absatzeinzug abstelle.
Doch genau das tut sie, denn sie sagt, dass du nicht einfach den Absatzeinzug abschalten, sondern auf eine andere Absatzauszeichnung umschalten sollst. Sie erklärt auch, dass die einzige taugliche andere Absatzauszeichnung der Absatzabstand ist und wie man korrekt auf diesen umschaltet. Zu letztere, gibt es übrigens auch auf TeXwelt bereits eine Seite: Wie erhalte ich eine Leerzeile zwischen Absätzen?