PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : neues 'environment' für Rechenbeispiele



CPPeter
31-10-2004, 13:55
Hallo,

ich möchte ein einfaches environment für Rechenbeispiele definieren. Weiß jemand, wie ich die Beschriftung unter das Beispiel bekomme? Der Code unten funktioniert so, wie er ist (Beschriftung hier allerdings oberhalb). Doch sobald ich die Referenz #1 auf den übergebenen Beschriftungstext in den unteren Teil der Definition verlagere, bekomme ich eine Fehlermeldung.
Darüber hinaus würde ich gerne eine verbatim Umgebung statt der ttfamily verwenden.

Viele Grüße & noch ein schönes (und langes) Wochenende,
Peter



\documentclass{book}
\usepackage[ngerman]{babel}

\newenvironment{RechenBsp}[1]
{
\vspace{5pt}\noindent \begin{center}Rechenbeispiel: #1 \par\noindent \begin{ttfamily}
}
{
\end{ttfamily}\end{center} \par\noindent\vspace{5pt}
}

\begin{document}
Es folgt ein Rechenbeispiel. Zwei Formatierungsaspekte sind noch nicht wie gew"unscht.
Erstens sollte die Beschriftung \emph{unterhalb} des Beispiels angeordnet sein und
zweitens statt der \emph{ttfamily} Umgebung eine \emph{verbatim} Umgebung verwendet
werden.\\

\begin{RechenBsp}{Addition zweier Zahlen}
A = 1\\
+ B = 1\\
= S = 2
\end{RechenBsp}
\end{document}

edico
01-11-2004, 07:39
... vielleicht ja so:

\documentclass{book}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{fancyvrb}

\makeatletter
\renewcommand\verbatim@font{\large\normalfont\ttfa mily}
\makeatother

\makeatletter
\newenvironment{myRe}{%
\begin{minipage}{\textwidth}%
\centering\noindent
% \begin{ttfamily}
}{%
% \end{ttfamily}
\end{minipage}%
}
\makeatother

\begin{document}

Zwei Formatierungsaspekte sind noch nicht wie gewnscht.
Erstens sollte die Beschriftung {\em unterhalb} des Beispiels
angeordnet sein und
zweitens statt der {\em ttfamily} Umgebung eine {\em verbatim}
Umgebung verwendet werden.\\

%\subsection*{Common Macro}
%Der ursächliche Ansatz, wobei allerdings das Macro renewcommand/verbatim
%auskommentiert und ttfamily wieder aktiviert werden muss, damit Zentrierung
zur Anwendung kommt. \\
%\begin{myRe}
% A = 1 \\
%+ B = 1 \\
%= S = 2 \\
%Rechenbeispiel: Addition zweier Zahlen
%\end{myRe}

\vspace{5mm}
\subsection*{Common Macro und verbatim}

Händisches Centering nötig.

\begin{myRe}
\begin{verbatim}
A = 1
+ B = 1
= S = 2
Rechenbeispiel: Addition zweier Zahlen
\end{verbatim}
\end{myRe}

\vspace{5mm}
\subsection*{Macro mit fancyvrb}

Händisches Centering nötig.

\begin{myRe}
\begin{Verbatim}
A = 1
+ B = 1
= S = 2
Rechenbeispiel: Addition zweier Zahlen
\end{Verbatim}
\end{myRe}

\end{document}

edico

blubb
02-11-2004, 08:53
Dein Problem ist, das der parameter der Umgebung (#1) nur zum Begin der Definition vorliegt.
Um es auch am Ende zu haben, muss es in einer "Variablen" gespeichert werden. (Für Pedanten: Nein, es ist keine Variable, ein Makro tut es hier auch ;) )

\documentclass{book}
\usepackage[ngerman]{babel}

\newcommand\RechenBspTitel{}
\newenvironment{RechenBsp}[1]
{
\renewcommand\RechenBspTitel{#1}%Zwischenspeichern
\vspace{5pt}\noindent \begin{center}\begin{ttfamily}
} {
\end{ttfamily}\end{center} \par\noindent\vspace{5pt}
Rechenbeispiel: \RechenBspTitel \par\noindent }



\begin{document}
Es folgt ein Rechenbeispiel. Zwei Formatierungsaspekte sind noch
nicht wie gew"unscht. Erstens sollte die Beschriftung
\emph{unterhalb} des Beispiels angeordnet sein und zweitens statt
der \emph{ttfamily} Umgebung eine \emph{verbatim} Umgebung
verwendet
werden.\\

\begin{RechenBsp}{Addition zweier Zahlen}
A = 1\\
+ B = 1\\
= S = 2
\end{RechenBsp}
\end{document}


Zur Frage 2 (verbatim):
http://texcatalogue.sarovar.org/entries/verbatim.html
http://texcatalogue.sarovar.org/entries/alltt.html

blubb
02-11-2004, 08:56
Nachtrag:
Mal doof gefragt, du kennst die matheumgebung eqnarray*?

\begin{eqnarray*}
A &=& 1\\
+ B &=& 1\\
= S &=& 2
\end{eqnarray*} (Bei deinem Beispiel läge das näher als verbatim)

CPPeter
03-11-2004, 15:58
Hallo edico, hallo blubb,

mal besten Dank für eure Hilfe.
edico: das mit den verbatims hatte ich so schon ausprobiert, hat bei mir aber zu einem Emergency Stop geführt. Das Gleiche übrigens, wenn ich deinen Code übersetze. Dennoch vielen Dank!
blubb: ich habe jetzt meine RechenBsp Umgebung auf die eqnarray* Umgebung basiert. Ist zwar alles etwas groß, aber ich lasse es jetzt so. Tausend Dank!

Anbei die aktuelle Version der Definition der RechenBsp Umgebung inklusive Zähler.

Machtet jut,
Peter



\documentclass{book}
\usepackage[ngerman]{babel}

\newcounter{CntrRechenBsp}
\renewcommand{\theCntrRechenBsp}{\arabic{CntrReche nBsp}}

\newcommand\RechenBspTitel{}
\newenvironment{RechenBsp}[1]
{
\renewcommand\RechenBspTitel{#1}%Zwischenspeichern
\refstepcounter{CntrRechenBsp}\noindent \begin{center}\begin{eqnarray*}
} {
\end{eqnarray*}\par\noindent\vspace{5pt}
Rechenbeispiel \theCntrRechenBsp: \RechenBspTitel \end{center}\par\noindent }

\begin{document}
Es folgen zwei Rechenbeispiele. Jetzt ist die Formatierung wie gew"unscht.
Die Beschriftung findet sich unterhalb des jeweiligen Beispiels und wird durchnummeriert.
Sehr sch"on so. Vielen Dank blubb.
\begin{RechenBsp}{Addition vier Bit breiter Ganzer Zahlen \emph{ohne} Bereichsüberschreitung ($C=OV$)}
A &=& 1110b \qquad (= -2)\\
+ B &=& 1011b \qquad (= -5)\\
= S &=& 1001b \qquad (= -7)\\
&& \mbox{mit} \quad C=1 \quad \wedge \quad OV=1
\end{RechenBsp}

\begin{RechenBsp}{Addition vier Bit breiter Ganzer Zahlen \emph{mit} Bereichsüberschreitung ($C \neq OV$)}
A &=& 0101b \qquad (= 5)\\
+ B &=& 0110b \qquad (= 6)\\
= S &=& 1011b \qquad (= 11)\\
&& \mbox{mit} \quad C=0 \quad \wedge \quad OV=1
\end{RechenBsp}
\end{document}