Eigene Umgebung - Rahmen

Neue Frage »

Airblader Auf diesen Beitrag antworten »
Eigene Umgebung - Rahmen
Hi,

ich würde gerne eine Umgebung anlegen, bei der ich den Rahmen selbst zeichnen kann. Internet-Recherche brachte mir nur Pakete wie thmbox, die aber nur vordefinierte Boxen bereitstellen.
Eine Möglichkeit wäre z.B. diese hier, aber ich würde gerne flexibel sein und verschiedene Dinge ausprobieren.

Die einzige Möglichkeit, die mir einfällt, ist eine rahmenlose Tabelle mit kleinen Spalten an den Seiten, in die ich mittels tikZ die Grafiken zeichne, so dass sich das korrekte Gesamtbild ergibt. Ich befürchte aber, dass diese Vorgehensweise eher als "bescheuert" einzustufen ist.

Was gibt es da für sinnvolle(re) Möglichkeiten?

Edit: Funktionsfähig mit obiger Idee ist z.B. der folgende Quelltext, der halt doch ein wenig umständlich(?) und "beschränkt" ist.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
\documentclass{scrbook}

\usepackage{tikz}
\newenvironment{testenv}
	{\vspace{0.3cm}\begin{center}
\begin{tabular}{c@{}l@{}c}
\begin{tikzpicture}[scale=0.2]\draw (0,1) -- (1,1); \draw (0,1) -- (0,0);\end{tikzpicture} & &\\
 & \begin{minipage}{0.9\textwidth}\small}
	{\end{minipage} &\\
	& & \begin{tikzpicture}[scale=0.2]\draw (0,0) -- (1,0); \draw (1,0) -- (1,1);\end{tikzpicture}
\end{tabular}
\end{center}\vspace{0.3cm}}

\begin{document}

\begin{testenv}
Dies ist ein Beispieltext.
\end{testenv}

\end{document}


Danke schonmal,
air
Schweinebacke Auf diesen Beitrag antworten »

Schau Dir mal die lrbox-Umgebung im usrguide (gehört zu jeder LaTeX-Distribution) an. Damit kann man zunächst das Material einer Umgebung in eine Box aufsammeln und diese Box dann im \end-Teil der Umgebung beispielsweise mit einem beliebigen Rahmen versehen ausgeben. Im Beispiel im usrguide wird ein einfacher Rahmen verwendet. Natürlich kann man auch einen aufwendigeren Rahmen nehmen. Die Größe der Box kann man leicht mit \ht\MEINEBOX (Höhe), \dp\MEINEBOX (Tiefe), \wd\MEINEBOX (Breite) oder \settoheight{LÄNGE}{\usebox\MEINEBOX}, \settodepth… und \settowidth… bestimmen, so dass man diese Informationen zur Darstellung des Rahmens ggf. auch nutzen kann.
Airblader Auf diesen Beitrag antworten »

Hi,

Danke - das ist schonmal eine Riesenhilfe. Allerdings störe ich mich gerade am leicht seltsamen Verhalten der Positionierung. Erstmal ein Minimalbeispiel:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{positioning}

\newsavebox{\fmbox}
\newenvironment{fmpage}
{\begin{lrbox}{\fmbox}\begin{minipage}{0.8\textwidth}}
{\end{minipage}\end{lrbox}
\begin{tikzpicture}
	\draw (-0.5*\wd\fmbox, \ht\fmbox) circle (2pt);
	\draw (-0.5*\wd\fmbox, -\ht\fmbox) circle (2pt);
	\draw (0.5*\wd\fmbox, \ht\fmbox) circle (2pt);
	\draw (0.5*\wd\fmbox, -\ht\fmbox) circle (2pt);
	\draw (0,0) node {\usebox{\fmbox}};
\end{tikzpicture}
}

\begin{document}

\begin{fmpage}
Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext Beispieltext.
\end{fmpage}

\end{document}


Ich frage mich, warum \wd\fmbox zwar wirklich die gesamte Breite angibt, \ht\fmbox aber nur die halbe Höhe. Woher kommt das?

Zudem scheint die Box ein wenig nach oben verschoben zu sein. Kann man das irgendwie 'sauber' eliminieren oder muss ich die Box per Augenmaß eben um 1-2pt verschieben?
Edit: Vergesst diesen Punkt. Die Box ist vollkommen korrekt ausgerichtet.

air
Schweinebacke Auf diesen Beitrag antworten »

Eine Box hat nicht nur Höhe, sondern auch Tiefe. Die Höhe ist der Teil, der über der Grundlinie liegt, die Tiefe ist der Teil, der unter der Grundlinie liegt. Eine minipage-Umgebung ist ebenso wie eine \parbox oder eine tabular in der Voreinstellung vertikal zentriert. Das bedeutet, dass die Hälfte der Box über und die andere Hälfte unter der Grundlinie liegt. Im usrguide sind die optionalen Positionierungsmöglichkeiten erklärt, mit denen man die vertikale Ausrichtung ändern kann. In Fällen wie Deinem führt aber kaum ein Weg daran vorbei, Höhe und Tiefe zu addieren.
Airblader Auf diesen Beitrag antworten »

Hi,

alles klar. Dann werde ich das später noch entsprechend anpassen. Vielen Dank!

air
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »