Verwendung eines einzelnen Arguments von zwei Argumenten

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Verwendung eines einzelnen Arguments von zwei Argumenten

Re: Verwendung eines einzelnen Arguments von zwei Argumenten

von gast » Mi 23. Sep 2020, 14:48

Das gezeigte Beispiel funktioniert so auch nicht auf Overleaf. Also nochmal: Beachte bitte die Minimalbeispiel-Anleitung. Und ich weiß noch immer nicht, was das soll. Warum kannst du in deiner testtable nicht entweder einfach \rabatt{Rabatt für Keksliebhaber}{10} durch Rabatt für Keksliebhaber ersetzen oder meinetwegen \rabatt wie für \Rabatt gezeigt definieren?

Re: Verwendung eines einzelnen Arguments von zwei Argumenten

von lunen » Mi 23. Sep 2020, 12:50

Hallo,

Verzeihung, dass der Code doch nicht lauffähig ist, ich habe es nur in Overleaf getestet gehabt.

Das Ziel ist es, mittels \rabatt eine einfacherer Handhabung zu gestalten. Sprich: ich will den Namen Rabatt für Keksliebhaber nicht feststehend haben, sondern freiwählen könne. Klar, kann ich das fest einpflegen und als festen Wert in der Tabelle zu stehen haben. Aber wenn ich z.B. eine Rechnung über Bonbons erstelle, kann ich schlecht Rabatt für Keksliebhaber schreiben...

Zu den nicht definierten Anweisungen:
Da habe ich leider nicht ganz verstanden, wo TeX das Problem sieht. Wenn du dazu einen Hinweis hast, wie ich das besser gestalten kann, bin ich dir sehr dankbar.

Liebe Grüße
lunen

Re: Verwendung eines einzelnen Arguments von zwei Argumenten

von gast » Mi 23. Sep 2020, 11:25

Dein Code ist nicht lauffähig, weil er jede Menge nicht definierter Anweisungen enthält. Bitte halte dich an die Minimalbeispiel-Anleitung.

Desweiteren verstehe ich nicht, warum du \rabatt verwendest, wenn du gar keine komplette Tabellenzeile mit einer Berechnung aus dem zweiten Argument ausgeben willst, sondern nur das erste. Dann kannst du doch gleich Rabatt für Keksliebhaber schreiben. Du kannst natürlich auch etwas wie:

\newcommand*{\Rabatt}[2]{#1}

definieren. Sinn kann ich darin aber keinen erkennen.

Verwendung eines einzelnen Arguments von zwei Argumenten

von lunen » Mi 23. Sep 2020, 10:49

Hallo,

ich habe folgenden Code geschrieben (in Anlehnung an der Vorlage von http://www.latextemplates.com/template/wile-e-invoice)

\documentclass{scrreprt}
\usepackage{fp}
\usepackage{xpatch}
\usepackage{booktabs}

% Running variables
\gdef\variableA{0}
\gdef\variableG{0}

\gdef\TotalA{0} 
\gdef\TotalB{0} 
\gdef\TotalC{0} 
\gdef\TotalG{0}

\newenvironment{testtable}
{
	\begin{tabular}{p{0.45\textwidth} p{0.15\textwidth} p{0.15\textwidth} p{0.15\textwidth}}
		\textbf{Dienstleistung} & \textbf{Anzahl} & \textbf{Einzelpreis} & \textbf{Betrag} \\
		\toprule[0.5pt]\endhead
}{Summe Netto &&& \num{\TotalA}\,\euro \\%
	    \bottomrule[1.5pt]
	    \FPiflt\variableG{0} % <- hier soll eigentlich der rabatt-name rein, aber wie?
	    &&&%
		\FPiflt\variableG{0} \num{\variableG}\,\euro\\% <- das ist die Zahl aus dem Rabatt
		\FPiflt\variableG{0} Gesamtsumme (rabattiert)&&&%
		\FPiflt\variableG{0} \num{\TotalG}\,\euro\\%
		\else %
	    \fi % 
	\end{tabular}
}

\newcommand{\testitem}[3]{%the invoice item
	\FPmul\gross{#2}{#3}\FPround\gross{\gross}{2} % 
	\global\let\variableA\gross % 
	\FPeval{\sumage}{round(\TotalA + \variableA, 2)} %
	\global\let\TotalA\sumage % 
	% Output the table row
	#1 & % Item name
	\num{#2} & % Quantity
	\num{#3}\,\euro & % Rate
	\num{\variableA}\,\euro \\  % Subtotal
}

\newcommand{\rabatt}[2]{%
	\FPneg\gross{#2}\FPround\gross{\gross}{2} % 
	\global\let\variableG\gross% 
	\FPeval{\discount}{round(\TotalA + \variableG, 2)}%
	\global\let\TotalG\discount% 
	%Das funktioniert zwar, sitzt aber an der falschen Stelle, es soll unter die \bottomrule stehen
	#1 %rabatt name
	&&&
	\num{\variableG}\\
	}

\begin{document}

\begin{testtable}
    \testitem{Keks}{5}{2}\\
    \testitem{Dose}{1}{10}\\
\midrule
    \rabatt{Rabatt für Keksliebhaber}{10}
\end{testtable}

\end{document}

Ich suche nach einer Möglichkeit, nur das erste Argument, welches ein String von Buchstaben ist, von \rabatt zu verwenden, um es in der Tabelle an der richtigen Position auszugeben, analog, wie ich die Zahl bzw. die entsprechende Variable ausgegeben habe. Wenn ich versuche, die Argumente analog wie die \testitem auszugeben, positioniert TeX die logischerweise da, wo ich den Befehl verwende.

Vielen Dank.
Gruß
lunen


Nach oben