":D"-Spezifizierer in LaTeX3

":D"-Spezifizierer in LaTeX3

In expl3.pdf3.2.5 ist mir aufgefallen, dass der :DSpezifizierer „NICHT VERWENDEN“ bedeutet und „Programmierer außerhalb des Kernel-Teams sollten diese Funktionen nicht verwenden“. Ich habe aber auch festgestellt, dass diese Funktionen in einigen in LaTeX3 geschriebenen Paketen vorkommen.

Kann mir also jemand sagen, ob ich sie überhaupt verwenden kann?

Antwort1

Der :DSpezifizierer wird ausschließlich für Primitive verwendet (alle Primitive sind initial \<engine>_<name>:D) und Ideen sollten nicht außerhalb des Codes des Kernteams auftauchen. (Im Großen und Ganzen bedeutet das außerhalb, l3kernelaber es gibt einige Sonderfälle, in denen wir erwarten, :Ddass Namen an begrenzten Stellen in anderem Code auf Kernel-Ebene verwendet werden.)

Es ist jedoch klar, dass es Bereiche gibt, die das Team noch nicht abgedeckt hat expl3oder bei denen die Interaktion mit LaTeX2e direkten Zugriff auf Primitive erfordert.ZwischenzeitBei der Arbeit an Modulen, für die es derzeit keine offiziellen Schnittstellen gibt, empfiehlt das Team, Code für solche Fälle wie folgt zu formulieren:

\cs_new_eq:NN \__module_name:w \engine_name:D % Probably :w ...

und der letztere Name wird an solchen Stellen verwendet: Dadurch muss nur eine einzige Zeile angepasst werden, da das Team solche Probleme behebt. Es ist wahrscheinlich auch sinnvoll, diese entweder direkt an das Team zu richten oder LaTeX-L. Beispielsweise habe ich kürzlich Unterstützung für \pdffilesizeund Ähnliches als experimentelle Ergänzungen zu hinzugefügt, l3fileals Ergebnis solcher Anfragen.

Bei der Arbeit mit LaTeX2e, wo wir davon ausgehen können, dass der Code nie „weitergeht“, würde man normalerweise beim „klassischen“ Namen bleiben.

verwandte Informationen