Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Calc
spacejamiri
10-08-2006, 16:50
Hallo zusammen,
bei einer Berechnung, die innerhalb einer newenvironment stattfinden soll, hab ich Probleme, wenn die Berechnung im End-Teil stattfindet, aber alles läuft gut, wenn sie stattdessen im Begin-Teil durchgeführt wird... Kann mir jemand helfen, wie ich das auch im End-Teil zum laufen kriege?
Danke im voraus für alle Tipps!
Spacejamiri
\documentclass[12pt]{scrreprt}
%Package für Berechnungen
\usepackage{calc}
\newenvironment{Nichts}[1]
{
\begin{center}
}
{
\vspace{-#1 * \real{.45}}\\
\end{center}
}
% eigentliches Dokument
\begin{document}
\vspace*{5cm}
Text...
\begin{Nichts}{5cm}
Text in der Umgebung
\end{Nichts}
weiterer Text
\end{document}
countbela666
10-08-2006, 18:22
Moin,
Parameter können nur im Anfangsbereich einer selbstdefinierten Umgebung verwendet werden. Üblicherweise arbeitet man hier mit einer savebox um den Parameter zu speichern und im Endbereich wiederzuverwenden, in diesem Fall würde sich jedoch eine einfache Variable anbieten:
...
\newlength{\mylen}
\newenvironment{Nichts}[1]
{
\setlength{\mylen}{-#1*\real{.45}}
\begin{center}
}
{
\vspace{\mylen}\\
\end{center}
}
...Grüße,
Marcel
RedCloud
10-08-2006, 22:58
[QUOTE=spacejamiri]
bei einer Berechnung, die innerhalb einer newenvironment stattfinden soll, hab ich Probleme, wenn die Berechnung im End-Teil stattfindet, aber alles läuft gut, wenn sie stattdessen im Begin-Teil durchgeführt wird... Kann mir jemand helfen, wie ich das auch im End-Teil zum laufen kriege?
\makeatletter
\newenvironment{Nichts}[1]{\begin{center}\@tempdima=#1}
{\vspace{-.45\@tempdima}\\
\end{center}}
\makeatother
rc
spacejamiri
11-08-2006, 09:40
...
\newlength{\mylen}
\newenvironment{Nichts}[1]
{
\setlength{\mylen}{-#1*\real{.45}}
\begin{center}
}
{
\vspace{\mylen}\\
\end{center}
}
...
Grüße,
Marcel
Klappt bei mir irgendwie nicht. \setlength selbst scheint keinen Fehler zu geben. Aber der Aufruf von \mylen ergibt "Undefined control sequence <argument> \mylen" ... Brauch ich irgendein Paket?
Grüsse
Martin
spacejamiri
11-08-2006, 09:46
[QUOTE=spacejamiri]
bei einer Berechnung, die innerhalb einer newenvironment stattfinden soll, hab ich Probleme, wenn die Berechnung im End-Teil stattfindet, aber alles läuft gut, wenn sie stattdessen im Begin-Teil durchgeführt wird... Kann mir jemand helfen, wie ich das auch im End-Teil zum laufen kriege?
\makeatletter
\newenvironment{Nichts}[1]{\begin{center}\@tempdima=#1}
{\vspace{-.45\@tempdima}\\
\end{center}}
\makeatother
rc
Yepp, das funktioniert! Danke schön! Nur so zum Spass und damit ich weiss, was ich hierbei tue... Gehe ich recht in der Annahme, dass ich mit dem \@tempdima eine temporäre Einheit schaffe und diese dann später mit -0.45 Längen verwende? Bei "Nein" tue ich 5€ ins Schweinderl :D
Grüsse
Martin
RedCloud
11-08-2006, 11:18
Yepp, das funktioniert! Danke schön! Nur so zum Spass und damit ich weiss, was ich hierbei tue... Gehe ich recht in der Annahme, dass ich mit dem \@tempdima eine temporäre Einheit schaffe und diese dann später mit -0.45 Längen verwende? Bei "Nein" tue ich 5€ ins Schweinderl :D
\@tempdima ist LaTeX-intern schon als Länge festgelegt, sonst hätte ich selbst eine Länge definieren müssen. Und man muss hier zwischenspeichern, da die Variable #1 nur im öffnenden Teil eines newenvironment bekannt ist.
rc
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.