Latex3: [xtemplate] Verwendung von Instanztypschlüsseln nicht eindeutig dokumentiert

Erstellt am 6. Jan. 2020  ·  8Kommentare  ·  Quelle: latex3/latex3

Vorlagenparameter können Instanzen anderer Vorlagen enthalten, jedoch sagt die Dokumentation nicht, welchem ​​Variablentyp die Instanzen zugewiesen werden sollen, noch sagt sie, wie ein Instanztypparameter im Vorlagencode verwendet wird.

Das heißt gegeben

\DeclareTemplateInterface { myobject } { mytemplate } { 0 }
  { foo : instance { otherobject } }

es ist unklar, wie im nächsten Schritt vorzugehen ist:

\DeclareTemplateCode { myobject } { mytemplate } { 0 }
  { foo = ??? }
  { how to use foo? }
documentation xtemplate

Hilfreichster Kommentar

In diesem Fall werde ich die Klasse mit xtemplate weiter entwickeln. Wenn eine bessere Lösung fertig ist, ersetze ich den alten Code.

Alle 8 Kommentare

Beim Durchlesen des Codes von xgalley und seiner Beispieldatei habe ich festgestellt, dass der Name der Instanz das ist, was an den Parameterschlüssel übergeben werden sollte, dass die entsprechende Variable ein Funktionsname mit der richtigen Signatur ist und dass die zugewiesene Instanz ist dann wie jede andere Funktion verwendet.

Das heißt, der nächste Schritt wäre

\DeclareTemplateCode { myobject } { mytemplate } { 0 }
  { foo = \__my_foo: }
  { \__my_foo: }

und

\DeclareInstance { myobject } { myinstance } { mytemplate }
  { foo = myotherinstance }

Es ist ziemlich klar, dass xtemplate eine Reihe von guten Ideen ist, aber nicht weitergeführt wird: Ich bin mir nicht sicher, was hier das Beste ist.

aber komme nicht weiter

Bedeutung?

aber komme nicht weiter

Bedeutung?

Das bedeutet, dass die meisten von uns (alle? ich?) denken, dass xtemplate ein guter Prototyp mit guten Ideen war, aber am Ende nicht unbedingt die besten oder passendsten und dass die endgültige Oberfläche am Ende der Tage anders aussehen wird, obwohl es wird wahrscheinlich einige der Ideen in xtemplate auf die eine oder andere Weise integrieren. Und darauf bezog sich Joseph.

Ok, also nur die Schnittstellen werden nicht "vorwärts gehen". Viel Erleichterung.

Angesichts dieser Informationen und der Tatsache, wie stark meine experimentelle Klasse auf xtemplate basiert, scheint es das Beste zu sein, die Klasse vorerst auf Eis zu legen und meine Zeit mit anderen LaTeX-bezogenen Entwicklungen zu verbringen.

@tail-reversion xtemplate wird nicht entfernt oder ähnliches: irgendwann wird es einen verbesserten Ansatz geben. Ich möchte Sie nicht abschrecken: Wenn niemand etwas ausprobiert, wissen wir nicht, wohin es als nächstes gehen soll!

In diesem Fall werde ich die Klasse mit xtemplate weiter entwickeln. Wenn eine bessere Lösung fertig ist, ersetze ich den alten Code.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen