PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Objektorientierung in Latex



ionas
03-03-2017, 15:10
Hallo zusammen,

ich habe die Aufgabe, ein recht flexibles Dokument zu erstellen und ohne Objekte würde alles sehr unübersichtlich werden.

Einfaches Anforderungsbeispiel:

Bezeichnung.Nummer.Eigenschaft

Es gibt unterschiedliche Einträge für Nummer und Eigenschaft also z. B.

Gerät.1.Farbe = gelb
Gerät.2.Farbe = grün

Gerät.1.Zustand = neu

etc.

Und im Latex-Code würde ich gerne einfach schreiben: Gerät.1.farbe und er plottet mir die vorher definierte Farbe. also nur gelb.
Auch könnte ich so mit Schleifen arbeiten (Nummer 1 - 10 o. ä.).

Ich finde leider nichts passendes im Netz und hoffe, Ihr könnt mir helfen!

cookie170
03-03-2017, 17:06
Das hört sich nach einer Aufgabe für LuaTeX an. Du kannst den Kram in Lua programmieren und dann darauf zugreifen. Und wenn Du schon dabei bist, schau Dir doch auch noch LaTeX3 an.

ionas
06-03-2017, 10:29
Hallo Cookie!

Vielen Dank für die Hinweise!
Ich habe mir nun LuaTex angesehen und ich denke, mein Vorhaben ist damit realisierbar. Leider schaffe ich es auch nach stundenlangen Recherchen nicht ein einfaches Beispiel zum Laufen zu bringen ...

Mein vorläufiges Ziel:

1. Objekt erstellen
2. Funktionen erstellen
3. Objekt befüllen
4. Ausgabe

Mein Code (nicht lauffähig):

\directlua{
%1. Objekt erstellen
DUT = {SN = 1, HW = 2, SW = "string"}
%2. Funktionen erstellen
function DUT:Neu (o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end

%Diese Funktion habe ich aus dem Tutorial übernommen. Was macht die Funktion genau und worauf muss ich achten?

function DUT:Ausgabe()
tex.print("Seriennummer: ".. self.SN)
tex.print("Softwarestand: ".. self.SW)
tex.print("Hardwarestand: ".. self.HW)
end
%3. Objekt befüllen
DUT1 = DUT:Neu(SN = 5, HW = 6, SW = "test")
%4. Ausgabe
DUT.Ausgabe()
}

Ich hoffe, ihr könnt mir helfen.

Vielen Dank schon mal!

u_fischer
06-03-2017, 16:49
Du solltest dich mehr anstrengen. Einfach ein Codeschnipsel hinzuwerfen und auf ein unbekanntes Tutorial zu verweisen, ist keine vernünftige Problembeschreibung.

Abgesehen davon: Packe keinen langen luacode in \directlua. Benutze das luacode-Paket.