Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   [LATEX] newcommand und Zahlen (https://www.delphipraxis.net/190155-%5Blatex%5D-newcommand-und-zahlen.html)

Luckie 5. Sep 2016 14:50

[LATEX] newcommand und Zahlen
 
Ich nutze das Package rechnung.sty zum schreiben von Rechnungen. Jetzt wollte ich mit \newcommand einen Betrag definieren:
Delphi-Quellcode:
\newcommand{\BETRAG}{123,45}
Das funktioniert. Nur hier:
Delphi-Quellcode:
\begin{Rechnung}
  \Artikel{1}{Netzwerkadministration und Beseitigung von Störungen}{\BETRAG}
\end{Rechnung}
benötigt Artikel eine Zahl als letzten Parameter. Allerdings scheint newcommand \BETRAG als Zeichenkette auszugeben. Und damit kann das Package natürlich nicht rechnen, so dass der Gesamtbetrag 0,00 bleibt. Wie kann ich newcommand sagen, dass es sich bei dem Wert um eine Zahl und nicht um eine Zeichenkette handelt?

BUG 5. Sep 2016 23:48

AW: [LATEX] newcommand und Zahlen
 
Puh, ich hab das mal zum Anlass genommen etwas mehr über Latex zu lernen ... Zahlen parsen ist gruselig/mühselig :pale:
Zum Glück macht rechnung.sty das nicht wirklich verkehrt, es wurde nur ein \expandafter vergessen(?), sodass das Makro nicht-expandiert geparst wurde. Das sollte das reparieren:
Code:
\makeatletter
\renewcommand*\@readNum[1]{\@RCHtmp=0\expandafter\@readA#1\relax}
\makeatother

Hier mal ein Beispiel, dass bei mir funktioniert ... das Package hab ich von hier (Version 3.10).
Code:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{rechnung}
\usepackage{textcomp}

\makeatletter
\renewcommand*\@readNum[1]{\@RCHtmp=0\expandafter\@readA#1\relax}
\makeatother

\newcommand{\betrag}{20,00}

\begin{document}
\begin{Rechnung}[B]
\Euro
\Versandkosten{5,95}
\Steuersatz{16}{7}
\PositionEin
\TrennerEin
\Artikel{10}{Hundefutter}{\betrag}
\end{Rechnung}
\end{document}

Luckie 6. Sep 2016 11:16

AW: [LATEX] newcommand und Zahlen
 
Super. Vielen Dank. Ist irgendwie doof, wenn man das vergisst und eine Rechnung über 0 Euro rausschickt. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz