Ist es möglich, Benutzer daran zu hindern, die Paketcodes zu sehen, während sie weiterhin die öffentlich zugänglichen Makros verwenden können?

Ist es möglich, Benutzer daran zu hindern, die Paketcodes zu sehen, während sie weiterhin die öffentlich zugänglichen Makros verwenden können?

Angenommen, ich habe ein vertrauliches Paket, dessen Quellcode niemand sehen darf. Die Benutzer dürfen nur die öffentlichen Makros verwenden. Diese Frage hängt eng mitmeine andere Frage.

\documentclass{article}
\usepackage{mypackage}% it is allowed.
\usepackage{listings}

\begin{document}
\publicmacro% it is allowed.
\lstinputlisting{mypackage.sty}% it is not allowed.
\end{document}

Ist es möglich, Benutzer daran zu hindern, die Paketcodes zu sehen, während sie weiterhin die öffentlich zugänglichen Makros verwenden können?

Antwort1

Die kurze Antwort lautet: Nein. TeX ist eine Makroerweiterungssprache, was bedeutet, dass es keinen „kompilierten Code“ gibt, den Sie verwenden können. Das Beste, was Sie erreichen können, ist ein benutzerdefiniertes Format (eine Formatdatei erstellt den Code vorab in ein internes Binärformat). Sie können den Code auch schwer lesbar machen, indem Sie Techniken wie die inxii.tex. Selbst wenn Sie das tun, können Ihre Benutzer \showIhre Makros verwenden oder \tracingallsehen, was passiert. Daher erschweren Sie sich mit solchen Tricks eher das Leben bei der Wartung Ihres Codes, als dass Sie Neugierige daran hindern, zu sehen, was passiert.

Antwort2

Ich habe kürzlich Code geschrieben, um eine TeX-Quelle zu verwenden, wiederholte Muster zu finden undErsetzen Sie sie durch Makros. Dies könnte als Schritt verwendet werden, um den Quellcode weniger lesbar zu machen. Es könnte auch geändert werden, um Makronamen in ein unlesbares Durcheinander zu verwandeln, sodass es \showkeinen \tracingallEinblick in das Geschehen gibt. Wenn Sie Pakete verwenden, müssen Sie diese leider als neue Datei kopieren (sonst würden Ihre Benutzer sehen, welche Pakete Sie laden) und diese auch verschleiern (sonst könnten Ihre Benutzer nach Paketen suchen, die diese internen Makros enthalten).

verwandte Informationen