[LuaLaTeX] Berechnungen

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: [LuaLaTeX] Berechnungen

von esdd » Do 2. Jan 2014, 02:52

Hier ist mal noch ein Vorschlag:
\documentclass{article} 

\usepackage{fontspec} 

\newcommand\Kraft{450} 
\newcommand\Laenge{10} 
\newcommand\Moment{\directlua{tex.print(\Kraft*\Laenge)}} 

\begin{document} 

Und jetzt das Ergebnis verwenden: \Moment 

\renewcommand\Laenge{20} 

Und hier das neue Ergebnis für die Länge 20: \Moment 

\end{document}
Falls \Moment nur einmal berechnet werden soll, d.h. \Kraft und \Laenge sich nicht ändern, dann kann man auch
\edef\Moment{\directlua{tex.print(\Kraft*\Laenge)}}
statt \newcommand\Moment{...} verwenden.

Gruß
Elke

von LuaTex » Fr 6. Dez 2013, 15:03

Hallo,

eigentlich ist das fast genau das was ich haben wollte - vielen Dank dafür. Da ich die berechneten Werte aber auch Teilweise im Text verwende, wollte ich diese wie die Variablen zuvor erzeugen, um die Werte nicht umständlich über \directlua{..} aufrufen zu müssen.
\documentclass{article}

\newcommand{\Kraft}{450}
\newcommand{\Laenge}{10}
\newcommand{\Moment}{\directlua{\Kraft*\Laenge}}

\begin{document}

Zu erst mal rechnen.

Und hetzt das Ergebnis verwenden: \Moment

\end{document}
Hierbei erhalte ich jedoch immer eine Fehlermedlung. Ich habe es schon einmal geschafft den Wert ausgeben zu lassen, konnte jedoch dann mit dem Berechneten Wert mittels der Variable \Moment nicht mehr weiter rechnen.
Besteht eigentlich eine Möglichkeit die Berechnungen in eine externe Datei auszulagern und diese in LaTex aufzurufen? Damit würde natürlich das eigentliche Dokument sehr übersichtlich bleiben.
Als beispiel:
Ich berechne alle Werte in einer externen Datei und rufe dann zu Beginn meines LaTeX-Dokument die Werte auf und lege diese in \newcommand{\Kraft}{Berechnete Variable aus externer Datei} ab.

von Noch so einer » So 1. Dez 2013, 11:29

Obwohl das in den wichtigen Hinweisen zu fast jedem Unterforum erwähnt wird, hast Du leider kein vollständiges Minimalbeispiel gemacht, so dass ich auf Spekulationen bezüglich dessen, was Du eigentlich willst, und was Du erfolglos versucht hast, angewiesen bin. Daher sei nur darauf hingewiesen, dass man natürlich in Lua Variablen anlegen und später auch wieder darauf zugreifen kann:
\documentclass{article}

\newcommand{\Kraft}{450}
\newcommand{\Laenge}{10}

\begin{document}

Zu erst mal rechnen.
\directlua{a=\Kraft*\Laenge}

Und hetzt das Ergebnis verwenden: \directlua{tex.print(a)}

\end{document}

[LuaLaTeX] Berechnungen

von Gast » Sa 30. Nov 2013, 12:27

Hallo,

ich arbeite seit ein paar Wochen an einer Arbeit für mein Studium. Da sich einige Berechnungen im Dokument befinden für welche sich die Rahmenbedingungen ändern können, habe ich diese wie folgt in meinem Dokument eingebunden:
\newcommand{\Kraft}	{450} %N
\newcommand{\Laenge}		{10} %mm
.
.
.

$\luaexec{tex.sprint(string.format("\%.3f\\, "Nmm", \Kraft*\Laenge )}$
Da ich einige der Berechneten Werte später wieder benötige, habe ich versucht diese in Variablen abzuspeichern, jedoch keine funktionierende Lösung gefunden. Die einzige funktionierende Lösung die ich finden konnte war es die Rechnung zu kopieren und wieder einzufügen. Da dies jedoch sehr schnell sehr unübersichtlich wird und eine eventuelle spätere Fehlersuche somit nahezu unmöglich ist, hoffe ich das mit jemand weiterhelfen kann.
Gibt es eine Möglichkeit einen Berechneten Wert mittels einer Variable an einen späteren Rechenschritt zu übergeben?

Viele Grüße :)

Nach oben