사용자가 공개적으로 노출된 매크로를 계속 사용할 수 있으면서 패키지 코드를 보지 못하게 할 수 있습니까?

사용자가 공개적으로 노출된 매크로를 계속 사용할 수 있으면서 패키지 코드를 보지 못하게 할 수 있습니까?

누구도 소스 코드를 볼 수 없는 기밀 패키지가 있다고 가정해 보겠습니다. 사용자는 공개 매크로만 사용할 수 있습니다. 이 질문은 다음과 밀접한 관련이 있습니다.내 다른 질문.

\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불행하게도 패키지를 사용하는 경우 해당 패키지를 새 파일로 복사해야 하며(그렇지 않으면 사용자가 로드한 패키지를 볼 수 있음) 또한 난독화해야 합니다(그렇지 않으면 사용자가 내부 매크로가 있는 패키지를 검색할 수 있음). .

관련 정보