公開されているマクロをユーザーが利用できる状態で、パッケージ コードをユーザーに表示しないようにすることは可能ですか?

公開されているマクロをユーザーが利用できる状態で、パッケージ コードをユーザーに表示しないようにすることは可能ですか?

誰にもソースコードを見ることが許されていない機密パッケージがあると仮定します。ユーザーは公開マクロのみを使用できます。この質問は、私のもう一つの質問

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

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

公開されているマクロをユーザーが利用できる状態で、パッケージ コードをユーザーに表示しないようにすることは可能ですか?

答え1

簡単に答えると「いいえ」です。TeXはマクロ拡張言語なので、「コンパイルされたコード」は使用できません。最も近い方法は、カスタムフォーマットを作成することです(フォーマットファイルはコードを内部バイナリフォーマットに事前構築します)。また、次のようなテクニックを使用して、コードを読みにくくすることもできます。xii.texたとえそうしても、ユーザーは\showマクロを使用したり、使用したりして、\tracingall何が起こっているかを見ることができます。したがって、好奇心旺盛な人が何が起こっているかを見るのを防ぐよりも、このようなトリックを使用することで、コードのメンテナンスが困難になる可能性の方が高くなります。

答え2

最近、TeXソースから繰り返しパターンを見つけ、マクロに置き換えるこれは、ソース コードの可読性を低下させるステップとして使用できます。また、マクロ名を判読不能な名前に変更して、何が起こっているのかを把握できないようにすることもできます\show\tracingall残念ながら、パッケージを使用する場合は、新しいファイルとしてコピーする必要があり (そうしないと、どのパッケージをロードしたかをユーザーが確認できてしまいます)、さらにそれらを難読化する必要があります (そうしないと、どのパッケージに内部マクロが含まれているかをユーザーが検索できるようになります)。

関連情報