einheitlix
13-11-2009, 01:36
Hallo Leute,
ich versuche gerade, mir ein example environment zu basteln, a la \begin{example}...\end{example}
Im LaTex Companion sind Beispiele immer ziemlich schoen formatiert, ein bisschen weiter rechts als der Text, und dazu gibt es eine kleine "Example" Box, die die Beispiele schoen durchnummeriert. Auch im LaTex Graphics Companion sieht dies genauso aus.
Ich habe erstmal versucht, etwas aehnliches hinzubekommen, damit ihr wisst was ich meine. Das sieht in etwa so aus:
\documentclass[12pt,a4paper]{article}
\usepackage{pstricks}
\begin{document}
\section{A section}
Some text some text some text some text some text some text
some text some text some text some text some text some text
\vspace{0.5cm}
\psframebox[linestyle=none]{
\begin{minipage}[b]{0.8\linewidth}
\textit{Example:}
%% Anfang Beispiel
Consider this.
A circle.
\begin{pspicture}(4,2)
\pscircle(2,1){1}
\end{pspicture}
%% Ende Beispiel
\end{minipage}
}\hfill
\psframebox[linecolor=lightgray]{
\begin{minipage}[t]{14pt}
\footnotesize
Ex.\\
1.1
\end{minipage}
}
\end{document}
Nun sind hier aber noch drei Problemchen. Also in absteigender Reihenfolge der Wichtigkeit:
Erstens, und am wichtigsten: Das "1.1", das die Beispielnummer sein soll, ist hier ja hardgecodet. Ich moechte natuerlich im Endeffekt so etwas haben, dass ich nur noch \begin{example} und \end{example} schreiben muss. Generiert wird das, was ihr oben seht; den Text, den ich in zwischen begin und end schreibe, soll dann zwischen das %% Anfang Beispiel und das %% Ende Beispiel.
Geht das vielleicht irgendwie mit etwas wie \newtheorem{example}{Example}[section] ? Aber wie bekomme ich LaTeX dazu, das dann so wie ich will zu formatieren, und nicht so wie es LaTeX standardmaessig tut, wenn ich dieses newtheorem definiere?
Zweitens: als besonderes i-Tuepfelchen ist es im LaTeX Companion so gemacht, dass, wenn das Beispiel sich auf einer "linken" Seite befindet, die kleine "Example" Box rechts vom Beispiel erscheint, und wenn es auf einer rechte Seite ist, erscheint sie links vom Beispiel. Nice... sowas will ich auch koennen ;) Leider hab ich aber echt keine Ahnung, wie man sowas hinbekommt...
Drittens: (aber das ist eher kosmetisch). Bei der zweiten minipage gebe ich ja wiederrum hardgecodet "14pt" als width fuer die minipage an. Wie bekomme ich LaTeX dazu, automatisch zu erkennen, wieviel Platz es braucht? Das Problem ist, wenn ich so etwas wie \mbox statt \parbox mache, muss ich die width zwar nicht mehr angeben, dafuer kann ich aber auch keine newlines mehr haben und kann das "Ex." nicht mehr ueber dem Counter darstellen.
Bin schonmal gespannt, ob sowas irgendwie geht. Aber da die es im LaTex (Graphics) Companion ja auch so in etwa gemacht haben, wird es wohl irgendwie moeglich sein... ;)
ich versuche gerade, mir ein example environment zu basteln, a la \begin{example}...\end{example}
Im LaTex Companion sind Beispiele immer ziemlich schoen formatiert, ein bisschen weiter rechts als der Text, und dazu gibt es eine kleine "Example" Box, die die Beispiele schoen durchnummeriert. Auch im LaTex Graphics Companion sieht dies genauso aus.
Ich habe erstmal versucht, etwas aehnliches hinzubekommen, damit ihr wisst was ich meine. Das sieht in etwa so aus:
\documentclass[12pt,a4paper]{article}
\usepackage{pstricks}
\begin{document}
\section{A section}
Some text some text some text some text some text some text
some text some text some text some text some text some text
\vspace{0.5cm}
\psframebox[linestyle=none]{
\begin{minipage}[b]{0.8\linewidth}
\textit{Example:}
%% Anfang Beispiel
Consider this.
A circle.
\begin{pspicture}(4,2)
\pscircle(2,1){1}
\end{pspicture}
%% Ende Beispiel
\end{minipage}
}\hfill
\psframebox[linecolor=lightgray]{
\begin{minipage}[t]{14pt}
\footnotesize
Ex.\\
1.1
\end{minipage}
}
\end{document}
Nun sind hier aber noch drei Problemchen. Also in absteigender Reihenfolge der Wichtigkeit:
Erstens, und am wichtigsten: Das "1.1", das die Beispielnummer sein soll, ist hier ja hardgecodet. Ich moechte natuerlich im Endeffekt so etwas haben, dass ich nur noch \begin{example} und \end{example} schreiben muss. Generiert wird das, was ihr oben seht; den Text, den ich in zwischen begin und end schreibe, soll dann zwischen das %% Anfang Beispiel und das %% Ende Beispiel.
Geht das vielleicht irgendwie mit etwas wie \newtheorem{example}{Example}[section] ? Aber wie bekomme ich LaTeX dazu, das dann so wie ich will zu formatieren, und nicht so wie es LaTeX standardmaessig tut, wenn ich dieses newtheorem definiere?
Zweitens: als besonderes i-Tuepfelchen ist es im LaTeX Companion so gemacht, dass, wenn das Beispiel sich auf einer "linken" Seite befindet, die kleine "Example" Box rechts vom Beispiel erscheint, und wenn es auf einer rechte Seite ist, erscheint sie links vom Beispiel. Nice... sowas will ich auch koennen ;) Leider hab ich aber echt keine Ahnung, wie man sowas hinbekommt...
Drittens: (aber das ist eher kosmetisch). Bei der zweiten minipage gebe ich ja wiederrum hardgecodet "14pt" als width fuer die minipage an. Wie bekomme ich LaTeX dazu, automatisch zu erkennen, wieviel Platz es braucht? Das Problem ist, wenn ich so etwas wie \mbox statt \parbox mache, muss ich die width zwar nicht mehr angeben, dafuer kann ich aber auch keine newlines mehr haben und kann das "Ex." nicht mehr ueber dem Counter darstellen.
Bin schonmal gespannt, ob sowas irgendwie geht. Aber da die es im LaTex (Graphics) Companion ja auch so in etwa gemacht haben, wird es wohl irgendwie moeglich sein... ;)