誰にもソースコードを見ることが許されていない機密パッケージがあると仮定します。ユーザーは公開マクロのみを使用できます。この質問は、私のもう一つの質問。
\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
残念ながら、パッケージを使用する場合は、新しいファイルとしてコピーする必要があり (そうしないと、どのパッケージをロードしたかをユーザーが確認できてしまいます)、さらにそれらを難読化する必要があります (そうしないと、どのパッケージに内部マクロが含まれているかをユーザーが検索できるようになります)。