Ich möchte nur den Textrahmen innerhalb einer normalen Seite komplett
drehen, die rotierte Minipage soll also exakt denselben Platz ausfüllen,
wie normalerweise der Text bekommt.
1. Wenn ich innerhalb der Minipage auf \textwidth und \textheight zugreife,
scheint es so, als wenn beide denselben Wert haben. Zumindest sehe ich in
unten angehängtem Minimalbeispiel keinen Unterschied zwischen der ersten
und der zweiten Seite.
2. Außerdem möchte ich, dass die Minipage den gesamten verfügbaren Textraum
aufspannt und von oben nach unten befüllt und nicht von unten nach oben
(wie in dem Beispiel). Mit anderen Worten, das "Hello World" sollte
natürlich rechts und nicht links auf der Seite stehen.
Das ganze ist tatsächlich nur ein Minimalbeispiel und somit ist die
Sinnhaftigkeit meiner Anfrage nicht sofort zu erkennen! :) Es geht um die
Ausrichtung bestimmter ganzseitiger Abbildungen, die im Anhang
hintereinander korrekt rotiert werden sollen.
\documentclass{report}
\usepackage{graphicx}
\begin{document}
\rotatebox{-90}{
\begin{minipage}{\textheight}
\centering
\rule{1cm}{0.5\textheight}
\end{minipage}
}
\newpage
\rotatebox{-90}{
\begin{minipage}{\textheight}
\centering
\rule{1cm}{0.5\textwidth}
\end{minipage}
}
\newpage
\rotatebox{-90}{
\begin{minipage}{\textheight}
\centering
Hello World!
\end{minipage}
}
\end{document}
--
Grüße - Regards
Oliver Pfeiffer
ICQ-ID 84320006
> Meine Minipage zickt hier irgendwie rum, vielleicht kann mir ja
> diesbezüglich jemand weiterhelfen:
>
> Ich möchte nur den Textrahmen innerhalb einer normalen Seite komplett
> drehen, die rotierte Minipage soll also exakt denselben Platz ausfüllen,
> wie normalerweise der Text bekommt.
Klingt nach sowas (die fbox und die xxx sind nur fürs Sehen da):
\documentclass{report}
\usepackage{graphicx}
\begin{document}
\hbox{}\hfill xxx\rotatebox[origin=lt]{-90}{%
\fboxsep0pt
\fbox{\begin{minipage}{\dimexpr\textheight-2\fboxrule}
\centering
hello word
\end{minipage}}%
}
\end{document}
>
> 1. Wenn ich innerhalb der Minipage auf \textwidth und \textheight zugreife,
> scheint es so, als wenn beide denselben Wert haben. Zumindest sehe ich in
> unten angehängtem Minimalbeispiel keinen Unterschied zwischen der ersten
> und der zweiten Seite.
Minipage setzt innerhalb der \textwidth auf die eigene Breite. Daher ist
bei deinem Beispiel in der minipage 0.5\textwidth=0.5\textheight. Wenn
du \begin{minipage}{6cm} benutzen würdest, wäre dem nicht mehr so.
--
Ulrike Fischer
Ok, das mit dem \hbox\hfill funktioniert ja schonmal prächtig! :))
> Minipage setzt innerhalb der \textwidth auf die eigene Breite. Daher ist
> bei deinem Beispiel in der minipage 0.5\textwidth=0.5\textheight. Wenn
> du \begin{minipage}{6cm} benutzen würdest, wäre dem nicht mehr so.
Wie komme ich denn dann innerhalb der Minipage an die \textwidth der
umliegenden Seite?
> Ulrike Fischer <ne...@nililand.de> wrote in
> news:13zxl403...@nililand.de:
>
> Ok, das mit dem \hbox\hfill funktioniert ja schonmal prächtig! :))
>
>> Minipage setzt innerhalb der \textwidth auf die eigene Breite. Daher ist
>> bei deinem Beispiel in der minipage 0.5\textwidth=0.5\textheight. Wenn
>> du \begin{minipage}{6cm} benutzen würdest, wäre dem nicht mehr so.
>
> Wie komme ich denn dann innerhalb der Minipage an die \textwidth der
> umliegenden Seite?
Du musst den Wert halt vorher abspeichern.
Wenn du nur die Minipage aufblähen willst, kannst du sowas machen:
\documentclass{report}
\usepackage{graphicx}
\begin{document}
\noindent\hbox{}\hfill\rotatebox[origin=lt]{-90}{%
\fboxsep0pt
\fbox{\begin{minipage}[t][\dimexpr\textwidth-2\fboxrule]{\dimexpr\textheight-2\fboxrule}
\centering
hello word
\end{minipage}}%
}
\end{document}
--
Ulrike Fischer
> Du musst den Wert halt vorher abspeichern.
Ok, habe ich gemacht. Aber scheinbar sind die Werte vorher auch schon
identisch gewesen!? Die beiden Rechtecke sind immer noch identisch! :(
\documentclass{report}
\usepackage{graphicx}
\begin{document}
\newcommand{\oldtextwidth}{\textwidth}
\newcommand{\oldtextheight}{\textheight}
\rotatebox{-90}{
\begin{minipage}{\textheight}
\centering
\rule{1cm}{0.5\oldtextheight}
\end{minipage}
}
\newpage
\rotatebox{-90}{
\begin{minipage}{\textheight}
\centering
\rule{1cm}{0.5\oldtextwidth}
\end{minipage}
}
\end{document}
>> Du musst den Wert halt vorher abspeichern.
>
> Ok, habe ich gemacht. Aber scheinbar sind die Werte vorher auch schon
> identisch gewesen!? Die beiden Rechtecke sind immer noch identisch! :(
>
> \documentclass{report}
> \usepackage{graphicx}
> \begin{document}
> \newcommand{\oldtextwidth}{\textwidth}
> \newcommand{\oldtextheight}{\textheight}
So geht das nicht. Speichere den Wert in einem neuen Längenregister.
Ich habe übrigens gerade bemerkt, dass \rotatebox keine Leerzeilen im
Argument akzeptiert. Du solltest also die minipage besser vorher in
einem Boxregister abspeichern.
--
Ulrike Fischer
>> \documentclass{report}
>> \usepackage{graphicx}
>> \begin{document}
>> \newcommand{\oldtextwidth}{\textwidth}
>> \newcommand{\oldtextheight}{\textheight}
>
> So geht das nicht. Speichere den Wert in einem neuen Längenregister.
Supi, jetzt klappt es und wieder ne Menge dazu gelernt!
\newlength{\oldtextwidth}
\setlength{\oldtextwidth}{\textwidth}
\newlength{\oldtextheight}
\setlength{\oldtextheight}{\textheight}
> Ich habe übrigens gerade bemerkt, dass \rotatebox keine Leerzeilen im
> Argument akzeptiert. Du solltest also die minipage besser vorher in
> einem Boxregister abspeichern.
Das ist zum Glück in meinem Echtszenario kein Problem!
Vielen Lieben Dank!
> So geht das nicht. Speichere den Wert in einem neuen Längenregister.
Meine Minipage ist übrigends immer einen ganz kleinen Tick zu breit. Nur
aus reiner Neugierde, kannst Du mir sagen, was man von der Breite abziehen
muss, damit keine Warnings beim Compilieren erscheinen?
Es reicht aus, die Minipage 2% kleiner in der Breite zu definieren, damit
TeX nicht mehr meckert!
\documentclass{report}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\setlength{\oldtextwidth}{\textwidth}
\setlength{\oldtextheight}{\textheight}
\centering
\rotatebox[origin=lt]{-90}{
\begin{minipage}{0.98\oldtextheight}
\centering
\includegraphics[width=1\oldtextheight]{figures/test.pdf}
\end{minipage}
}
\end{figure}
> Ulrike Fischer <ne...@nililand.de> wrote in
> news:8rx25oqzspmb$.d...@nililand.de:
>
>> So geht das nicht. Speichere den Wert in einem neuen Längenregister.
>
> Meine Minipage ist übrigends immer einen ganz kleinen Tick zu breit. Nur
> aus reiner Neugierde, kannst Du mir sagen, was man von der Breite abziehen
> muss, damit keine Warnings beim Compilieren erscheinen?
Du solltest auf Leerzeichen achten.
> \documentclass{report}
> \usepackage{graphicx}
> \begin{document}
> \begin{figure}
> \setlength{\oldtextwidth}{\textwidth}
> \setlength{\oldtextheight}{\textheight}
> \centering
> \rotatebox[origin=lt]{-90}{%
^
> \begin{minipage}{0.98\oldtextheight}
> \centering
> \includegraphics[width=1\oldtextheight]{figures/test.pdf}
> \end{minipage}%
^
--
Ulrike Fischer
> Die sind nur noch das Zusammenschneiden zum Minimalbeispiel
noch = durch
> Du solltest auf Leerzeichen achten.
Die sind nur noch das Zusammenschneiden zum Minimalbeispiel entstanden, im
Original sind keine abschließenden Leerzeichen am Ende einer Zeile
vorhanden. Lediglich die Tabulatoren zum Einrücken!
> Meine Minipage ist übrigends immer einen ganz kleinen Tick zu breit.
Ich vermute mal, LaTeX interpretiert das Zeilenende vor und nach der
Minipage als Leerzeichen. Daher einfach mit % abschließen.
> \documentclass{report}
> \usepackage{graphicx}
> \begin{document}
> \begin{figure}
> \setlength{\oldtextwidth}{\textwidth}
> \setlength{\oldtextheight}{\textheight}
> \centering
> \rotatebox[origin=lt]{-90}{% <--hier einmal
> \begin{minipage}{0.98\oldtextheight}
> \centering
> \includegraphics[width=1\oldtextheight]{figures/test.pdf}
> \end{minipage}% <-- und hier einmal
> }
> \end{figure}
> \end{document}
>
>> Du solltest auf Leerzeichen achten.
>
> Die sind nur noch das Zusammenschneiden zum Minimalbeispiel entstanden, im
> Original sind keine abschließenden Leerzeichen am Ende einer Zeile
> vorhanden. Lediglich die Tabulatoren zum Einrücken!
Nun, ich kann nicht wissen, wo bei dir vielleicht noch weitere
überflüssige Leerzeichen sind oder woran es sonst hakt. Dein
Minimalbeispiel ist ja nicht lauffähig. Sende nie ein Minimalbeispiel
ohne es wenigstens einmal zu testen! Und ersetze die Bilder durch
\rule-Befehle.
--
Ulrike Fischer
> Ich vermute mal, LaTeX interpretiert das Zeilenende vor und nach der
> Minipage als Leerzeichen. Daher einfach mit % abschließen.
Nachdem ich alle Zeilen mit % abgeschlossen habe, funktioniert es
tatsächlich. Das gibt mir jetzt zu denken, da dort eigentlich keine
Leerzeichen an Ende waren.
Welche Zeilen sollte man denn mit % abschließen, wenn sogar Newlines zu
solchen Effekten führen können? Gibt es da eine Empfehlung?
> Nun, ich kann nicht wissen, wo bei dir vielleicht noch weitere
> überflüssige Leerzeichen sind oder woran es sonst hakt.
Ok, der Tipp mit den Leerzeichen hat definitiv geholfen. Wenn ich alle
Einrückungen entferne und alle Zeilen mit % abschließe und die Kommentare
rausnehme, dann klappt es! Jetzt taste ich mich mal weiter ran. Darauf wäre
ich übrigends nie gekommen.
> Dein Minimalbeispiel ist ja nicht lauffähig. Sende nie ein
> Minimalbeispiel ohne es wenigstens einmal zu testen! Und ersetze
> die Bilder durch \rule-Befehle.
Urks, da hatte ich den erst später geänderten \newlength Befehl vergessen.
Die Bilder durch \rule zu ersetzen, ist ein guter Hinweis!
> Und ersetze die Bilder durch \rule-Befehle.
Ok, ich habe zwischenzeitlich noch rausgefunden, dass die verbleibenden 21
Warnings ausschließlich nur noch bei den PDF Abbildungen kommen, die exakt
die Größe des Textrahmen ausfüllen. Das ganze lässt sich mit einer \rule
leider nicht reproduzieren.
\documentclass{report}%
\usepackage{graphicx}%
\begin{document}%
\begin{figure}[htbp]%
\includegraphics[width=1\textwidth,height=1\textheight]%
{figures/uni-logo.pdf}%
\end{figure}%
\end{document}%
> Nachdem ich alle Zeilen mit % abgeschlossen habe, funktioniert es
> tatsächlich. Das gibt mir jetzt zu denken, da dort eigentlich keine
> Leerzeichen an Ende waren.
Am Ende der Zeile ist aber ein Zeilenwechsel-Zeichen, dass durch den
Druck auf Enter eingegeben wird. Das ist gleichbedeutend wie ein
Leerzeichen für LaTeX. Zwei davon aufeinander sind gleichbedeutend einem
Absatz bzw. einem \par.
> Welche Zeilen sollte man denn mit % abschließen, wenn sogar Newlines zu
> solchen Effekten führen können? Gibt es da eine Empfehlung?
Immer die Zeilen mit % abschließen, bei denen das Leerzeichen nicht
gewünscht wird, sprich wenn zwei Elemente direkt aufeinander folgen
sollen. Bei dir ist der Fall gegeben durch die gewünschte Gleichheit der
minipage-Breite mit der Zeilenbreite.
Ob es allgemeine Empfehlungen gibt weiss ich nicht. Entfernen tue ich es
immer dann, wenn es einen Hinweis gibt, dann ist es halt wichtig zu
wissen, dass übervolle Boxen an solch einem unbeabsichtigten Abstand
liegen können.
Karsten
>> Und ersetze die Bilder durch \rule-Befehle.
>
> Ok, ich habe zwischenzeitlich noch rausgefunden, dass die verbleibenden 21
> Warnings ausschließlich nur noch bei den PDF Abbildungen kommen, die exakt
> die Größe des Textrahmen ausfüllen. Das ganze lässt sich mit einer \rule
> leider nicht reproduzieren.
Dann ist es wahrscheinlich ein Rundungsfehler. Nimm 0.999\textwidth.
--
Ulrike Fischer
> Dann ist es wahrscheinlich ein Rundungsfehler. Nimm 0.999\textwidth.
Ok, ich hatte gedacht, ich müsste vielleicht noch irgendeine Einrückung
oder Rahmenbreite abziehen, von der ich nichts weiß. Dann kann ich ja guten
Gewissens 0.999 nehmen! :)
> Nachdem ich alle Zeilen mit % abgeschlossen habe, funktioniert es
> tatsächlich. Das gibt mir jetzt zu denken, da dort eigentlich keine
> Leerzeichen an Ende waren.
>
> Welche Zeilen sollte man denn mit % abschließen, wenn sogar Newlines zu
> solchen Effekten führen können? Gibt es da eine Empfehlung?
Nun
ein%
fach
alle
bei
denen
du
bei
normalem
Text e%
in Leer%
zeichen
erwarten
würdest%
, aber keins willst.
--
Ulrike Fischer
> Nun
> ein%
> fach
> alle
> bei
> denen
> du
> bei
> normalem
> Text e%
> in Leer%
> zeichen
> erwarten
> würdest%
> , aber keins willst.
;))
Bei Kommandosequenzen ist es allerdings nicht mehr ganz so offensichtlich!
>> \rotatebox[origin=lt]{-90}{%
>> \begin{minipage}{0.98\oldtextheight}
Hilf mir bitte:
Ich sehe sehr oft in vielen Beispielen das Prozent am Zeilenende und
die Folgezeile ist eingerückt. Irgendwie habe ich das Gefühl, das muß
Unsinn sein. Das Prozent hat sicher einen gewissen Sinn, um optisch auf
die Fortsetzung hinzuweisen, aber einen echten Wert kann es eigentlich
nicht haben, oder?
> Ich sehe sehr oft in vielen Beispielen das Prozent am Zeilenende und
> die Folgezeile ist eingerückt. Irgendwie habe ich das Gefühl, das muß
> Unsinn sein. Das Prozent hat sicher einen gewissen Sinn, um optisch auf
> die Fortsetzung hinzuweisen, aber einen echten Wert kann es eigentlich
> nicht haben, oder?
Wenn Du ein paar Postings rauf und runter in diesem Thread liest, dann
erschließt sich die Antwort sofort ...
Doch.
\documentclass[]{scrreprt}
\usepackage{graphicx}
\begin{document}
\fbox{\rotatebox{180}{
a}}
\fbox{\rotatebox{180}{
a
}}
\fbox{\rotatebox{180}{%
a%
Danke, das ist eindeutig. Ist dieses abweichende Verhalten von
Leerzeichen am Zeilenanfang irgendwo dokumentiert? Ich kann mich nicht
erinnern, je irgendwo einen Hinweis gesehen zu haben.
> Danke, das ist eindeutig. Ist dieses abweichende Verhalten von
> Leerzeichen am Zeilenanfang irgendwo dokumentiert? Ich kann mich nicht
> erinnern, je irgendwo einen Hinweis gesehen zu haben.
TeX-Book Kapitel 8.
--
Ulrike Fischer
> Klingt nach sowas (die fbox und die xxx sind nur fürs Sehen da):
>
> \documentclass{report}
> \usepackage{graphicx}
> \begin{document}
> \hbox{}\hfill xxx\rotatebox[origin=lt]{-90}{%
> \fboxsep0pt
> \fbox{\begin{minipage}{\dimexpr\textheight-2\fboxrule}
> \centering
> hello word
> \end{minipage}}%
> }
>
>
> \end{document}
In Anlehnung an dieses Beispiel würde mich interessieren, wie man eine
Textbox mit exakter Angabe von Breite *und* Höhe spezifizieren kann, in der
dann der Text horizontal/vertikal zentriert erscheint und sich nach
links/rechts (langer Text) und oben/unten (mehrzeiliger Text) ausbreitet?
Zweiteres wäre schön, aber nicht ganz so wichtig.
Ich habe hier schon diverse Varianten ausprobiert (vspaces in parbox etc.),
aber nichts funktioniert so wie ich es brauche ... :(
\parbox und minipage haben mehr Argumente, als man denkt:
\documentclass{article}
\begin{document}
Das folgende ist
\fbox{%
\begin{minipage}[t][8cm][c]{5cm}\centering
Mittenmang
Wirklich
\end{minipage}%
}%
\end{document}
HTH
Ulrich
--
'Nerd' is a word just like 'legacy' - not usually meant as a compliment
by those who use it but aren't _in_ it, but to people in the know it
means you've got all your priorities straight and can have a blast
without having to worry about being fashionable. (M. Wiltink)
> \parbox und minipage haben mehr Argumente, als man denkt:
Hey klasse, das wußte ich nicht und hilft mir definitiv an verschiedenen
Stellen weiter -- danke!
Lediglich die Einfärbung einer Bytefield Zelle funktioniert damit nicht so
wirklich gut, ich hatte gehofft, das könnte damit auch gleich erschlagen:
\documentclass{article}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel} % \usepackage{ngerman}
\usepackage{colortbl}
\usepackage{bytefield}
\begin{document}
\ttfamily\noindent\begin{bytefield}{16}
\bitheader{0,8,16} \\
\bitbox{8}{%
\colorbox{red}{\parbox[t][\height][c]{\width}{\centering Type}}%
}&
\bitbox{8}{\# of nodes}\\
\end{bytefield}\normalfont\\
\end{document}
Du musste zum einen noch \fboxsep auf 0pt setzen und zum anderen
\height zwischenspeichern.
\bitbox{8}{%
\setlength\fboxsep{0pt}%
\setlength\myheight{\height}%
\colorbox{red}{\parbox[t][\myheight][c]{\width}{\centering Type}}%
}&
Ciao
Andreas
> Du musste zum einen noch \fboxsep auf 0pt setzen und zum anderen
> \height zwischenspeichern.
>
> \bitbox{8}{%
> \setlength\fboxsep{0pt}%
> \setlength\myheight{\height}%
> \colorbox{red}{\parbox[t][\myheight][c]{\width}{\centering Type}}%
> }&
Warum geht denn \height verloren? Ich dachte das wäre eine Variable von
Bitbox, oder wird die von Color-/Parbox überschrieben?
Problem ist jetzt nur noch die vertikale Ausrichtung, wenn ich die Parbox
auf [b] setze, dann klebt das e unten, wenn vertikal zentriert, dann stimmt
die Grundlinie nicht mehr.
\documentclass{article}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel} % \usepackage{ngerman}
\usepackage{colortbl}
\usepackage{bytefield}
\begin{document}
\newlength{\bitboxheight}
\noindent\begin{bytefield}{5}
\bitheader{0-4}\\
\ttfamily
\bitbox{1}{l}&
\bitbox{1}{e}&
\bitbox{1}{l}&
\bitbox{1}{%
\setlength{\fboxsep}{0pt}%
\setlength{\bitboxheight}{\height}%
\colorbox{red}{\parbox[b][\bitboxheight][c]%
{\width}{\centering e}}%
}&
\bitbox{1}{%
\setlength{\fboxsep}{0pt}%
\setlength{\bitboxheight}{\height}%
\colorbox{red}{\parbox[b][\bitboxheight][c]%
{\width}{\centering l}}%
}\\
\end{bytefield}\normalfont\\
\end{document}
--
> Problem ist jetzt nur noch die vertikale Ausrichtung, wenn ich die Parbox
> auf [b] setze, dann klebt das e unten, wenn vertikal zentriert, dann stimmt
> die Grundlinie nicht mehr.
Das ist ein Designfehler von bytefield.
\documentclass[a4paper]{article}
\usepackage{bytefield}
\begin{document}
\begin{bytefield}{3}
\bitbox{1}{l} &
\bitbox{1}{e} &
\bitbox{1}{g}
\end{bytefield}
\end{document}
Ciao
Andreas
> Das ist ein Designfehler von bytefield.
Ja, sieht echt schrecklich aus. Kann man das denn irgendwie mit der parbox
lösen, wo das Beispiel schon so weit gereift ist?! :)
Wenn man der Colorbox schon die Höhe mitgeben könnte, dann könnte die
Parbox immer fest auf 1,5ex stehen und dann würde die Höhe des Textes keine
Rolle mehr für die Positionierung spielen? Oder fällt Dir eine saubere
Lösung für das Problem ein?
> Wenn man der Colorbox schon die Höhe mitgeben könnte, dann könnte die
> Parbox immer fest auf 1,5ex stehen und dann würde die Höhe des Textes
> keine Rolle mehr für die Positionierung spielen? Oder fällt Dir eine
> saubere Lösung für das Problem ein?
Mir ist bei der vollständigen Parametrisierung der Parbox leider nicht
klar, wofür das erste [t] steht (eigentlich für Ausrichtung der oberen
Textzeile mit Umgebung) aber im letzten Parameter [c] gebe ich ja die
vertikale Ausrichtung an, was für eine Bedeutung hat denn das [t] dann
noch?
> Ja, sieht echt schrecklich aus. Kann man das denn irgendwie mit der
> parbox lösen, wo das Beispiel schon so weit gereift ist?! :)
Nach einem Experimentieren, bin ich darauf gekommen, dass man bloß vor und
hinter dem Zeichen eine unsichtbare Rule mit voller Höhe erstellen braucht!
\rule{0pt}{1.5ex}
Dabei würde mich noch interessieren, wie ich die volle Höhe eines 'W'
Buchstaben der aktuellen Schrift errechnen kann? 1ex ist bei mir nur die
Höhe eines 'e' ...
> Oliver Pfeiffer <oliver....@gmx.net> wrote in
> news:Xns9A9CC2317FBA4ol...@pfeiffer.myfqdn.de:
>
>> Ja, sieht echt schrecklich aus. Kann man das denn irgendwie mit der
>> parbox lösen, wo das Beispiel schon so weit gereift ist?! :)
>
> Nach einem Experimentieren, bin ich darauf gekommen, dass man bloß vor und
> hinter dem Zeichen eine unsichtbare Rule mit voller Höhe erstellen braucht!
>
> \rule{0pt}{1.5ex}
Gute Idee. Aber die Unterlänge solltest du auch noch angeben.
\documentclass[a4paper]{article}
\usepackage{colortbl}
\usepackage{bytefield}
\makeatletter
\newdimen\myheight
\let\orig@bitbox\bitbox
\renewcommand\bitbox[3][]{%
\orig@bitbox{#2}{%
\setlength\fboxsep{0pt}%
\setlength\myheight{\height}%
\ifx\\#1\\\expandafter\@thirdofthree\fi
\colorbox{#1}{\parbox[b][\myheight][c]{\width}{%
\rule[-.3\myheight]{\z@}{\myheight}\centering #3}}}}
\makeatother
\begin{document}
\begin{bytefield}{16}
\bitheader{0,8,16} \\
\bitbox[red]{1}{l}&
\bitbox[blue]{1}{e}&
\bitbox[red]{1}{g} &
\bitbox[red]{5}{Type} &
\bitbox{8}{\# of nodes}\\
\end{bytefield}
\end{document}
> Dabei würde mich noch interessieren, wie ich die volle Höhe eines 'W'
> Buchstaben der aktuellen Schrift errechnen kann?
Gar nicht. Zumindest nicht exakt. TeX kennt nur die Metriken (`Bounding
Box') eines Zeichens. Sehr oft ragen Zeichen jedoch über diese Box
hinaus. Meist nur geringfügig, aber es gibt auch Schriften, bei denen
zum Beispiel der Unterstrich eines Q das gesamte Wort unterstreicht.
Die Abmessungen einer Box erhält man so:
\newsavebox{\mybox}
\savebox{\mybox}{W}
\showthe\wd\mybox
\showthe\ht\mybox
\showthe\dp\mybox
\savebox{\mybox}{p}
\showthe\wd\mybox
\showthe\ht\mybox
\showthe\dp\mybox
> 1ex ist bei mir nur die Höhe eines 'e' ...
Auch nur ungefähr. 1ex ist nur eine Designgröße, es muss nicht exakt
der Höhe eines Kleinbuchstaben entsprechen.
Ciao
Andreas
> Gute Idee. Aber die Unterlänge solltest du auch noch angeben.
Das war in meiner Idee inbegriffen, in meinen Fähigkeiten nicht! :) Ich
teXe erst seit ein paar Tagen.
> \makeatletter
> \newdimen\myheight
> \let\orig@bitbox\bitbox
> \renewcommand\bitbox[3][]{%
> \orig@bitbox{#2}{%
> \setlength\fboxsep{0pt}%
> \setlength\myheight{\height}%
> \ifx\\#1\\\expandafter\@thirdofthree\fi
> \colorbox{#1}{\parbox[b][\myheight][c]{\width}{%
> \rule[-.3\myheight]{\z@}{\myheight}\centering #3}}}}
> \makeatother
Den Auszug habe ich mir gerade ausgedruckt und an die Wand gehängt! Respekt
und DANKE!
> Gute Idee. Aber die Unterlänge solltest du auch noch angeben.
Hier noch ein überarbeitetes Beispiel. So kann man pro Zelle noch die
horizontale Ausrichtung angeben und mehrzeilig geht jetzt auch.
\documentclass[a4paper]{article}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel} % \usepackage{ngerman}
\usepackage{colortbl}
\usepackage{bytefield}
\makeatletter
\newdimen\myheight
\let\orig@bitbox\bitbox
\renewcommand\bitbox[3][]{%
\orig@bitbox{#2}{%
\setlength\fboxsep{0pt}%
\setlength\myheight{\height}%
\ifx\\#1\\\expandafter\@thirdofthree\fi
\colorbox{#1}{\parbox[b][\myheight][c]{\width}{%
\rule{\z@}{3ex}\\#3\\\rule{\z@}{3ex}}}}}
\makeatother
\begin{document}
\setlength{\byteheight}{10ex}
\begin{bytefield}{16}
\bitheader{0,8,16}\\
\bitbox[red]{1}{\centering l}&
\bitbox[blue]{1}{}&
\bitbox[red]{1}{\centering g} &
\bitbox[red]{5}{Type} &
\bitbox{8}{\centering \# of nodes\\\# of nodes}\\
\end{bytefield}
\end{document}