\newcommand\fbox[1]{%
\leavevmode
\setbox\@tempboxa\hbox{%
\color@begingroup
\kern\fboxsep{#1}%
\kern\fboxsep
\color@endgroup
}%
\@frameb@x\relax
}%
\newcommand*\@frameb@x[1]{%
\@tempdima\fboxrule
\advance\@tempdima\fboxsep
\advance\@tempdima\dp\@tempboxa
\hbox{%
\lower\@tempdima
\hbox{%
\vbox{%
\hrule\@height\fboxrule
\hbox{%
\vrule\@width\fboxrule
#1%
\vbox{%
\vskip\fboxsep
\box\@tempboxa
\vskip\fboxsep
}%
#1%
\vrule\@width\fboxrule
}%
\hrule\@height\fboxrule
}%
}%
}%
}%
Ich mᅵchte nun zwei Versionen eines Dokuments erstellen, die
sich ausser in einer Sache in gar nichts unterscheiden und diese
eine Sache ist, dass manchmal der Rahmen um eine \fbox nicht da
sein, der Text aber exakt so positioniert sein soll, als ob er
da wᅵre.
Reicht es aus, dazu die \hrule und \vrule in \@frameb@x durch
entsprechende \kern zu ersetzen, oder stellt das Untenstehende
einen Denkfehler dar?
\newcommand\framelessfbox[1]{%
\leavevmode
\setbox\@tempboxa\hbox{%
\color@begingroup
\kern\fboxsep{#1}%
\kern\fboxsep
\color@endgroup
}%
\frameless@frameb@x\relax
}%
\newcommand*\frameless@frameb@x[1]{%
\@tempdima\fboxrule
\advance\@tempdima\fboxsep
\advance\@tempdima\dp\@tempboxa
\hbox{%
\lower\@tempdima
\hbox{%
\vbox{%
\kern\fboxrule
\hbox{%
\kern\fboxrule
#1%
\vbox{%
\vskip\fboxsep
\box\@tempboxa
\vskip\fboxsep
}%
#1%
\kern\fboxrule
}%
\kern\fboxrule
}%
}%
}%
}%
Ulrich
sich ausser in einer Sache in gar nichts unterscheiden. Diese
eine Sache ist, dass manchmal der Rahmen, der mittels \fbox
erzeugt wird, wird nicht da sein, der Text aber exakt so
Ich w�rde den Rahmen wei� malen.
> In LaTeX ist die \fbox wie folgt definiert:
> Ich m�chte nun zwei Versionen eines Dokuments erstellen, die
> sich ausser in einer Sache in gar nichts unterscheiden. Diese
> eine Sache ist, dass manchmal der Rahmen, der mittels \fbox
> erzeugt wird, wird nicht da sein, der Text aber exakt so
> positioniert sein soll, als ob er da w�re.
>
> Reicht es aus, dazu die \hrule und \vrule in \@frameb@x durch
> entsprechende \kern zu ersetzen, oder stellt das Untenstehende
> einen Denkfehler dar?
Geht nicht einfach
\advance\fboxsep by \fboxrule\relax
\fboxrule=0pt\relax
?
--
Ulrike Fischer
Dachte ich zun�chst auch, doch ich bin sogleich an dem
Szenarium gescheitert, dass innerhalb einer \fbox nur eine
der beiden L�ngen \fboxrule bzw \fboxsep benutzt wurde,
um Ma�e und Positionierung anderer sich in der \fbox
befindlichen Boxen zu berechnen.
Ma�e und Positionierung dieser anderen Boxen �nderten
sich also, da in deren Berechnung die �nderung der
einen L�nge nicht durch die ebenfalls erfolgte �nderung
der anderen L�nge kompensiert worden war.
Ich m�sste f�r 120 verschiedene Boxen die Formeln f�r
die Berechnung der L�ngen etc nachbessern und ich dachte,
vielleicht ist es einfacher, statt dessen eine Box zu konstruieren,
die genau gleich funktioniert, wie \fbox, bloss, dass keine Linien
gezogen, sondern statt dessen Zwischenr�ume eingef�gt werden.
An diesem Ansatz m�chte ich festhalten. Mir geht es darum,
ob ich ihn auf die richtige Art und Weise realisiert habe, oder
ob es bei \kern irgendwelche Dinge zu beachten gilt, die
f�r \hrule bzw \vrule nicht gelten -- zB irgendwelche Sonderregeln
f�r das Einf�gen bzw Belassen von dem, was im TeXbook so
nett "...glue" und "...skip" genannt wird.
Ulrich
Ein Rahmen in der Farbe "weiss" ist etwas anderes als
kein Rahmen. Das merkst Du sp�testens dann, wenn
Du Farbdrucke auf rotem Papier mit einer Maschine
ausgeben l�sst, die auch die Farbe "wei�" produzieren
kann.
Ich m�chte eine Box konstruieren, die genau gleich
funktioniert wie \fbox, bloss, dass keine Linien gezogen,
sondern statt dessen Zwischenr�ume eingef�gt werden.
An diesem Ansatz m�chte ich festhalten. Mir geht es
darum, ob ich ihn auf die richtige Art und Weise realisiert
habe oder ob es bei \kern irgendwelche Dinge zu beachten