누구도 소스 코드를 볼 수 없는 기밀 패키지가 있다고 가정해 보겠습니다. 사용자는 공개 매크로만 사용할 수 있습니다. 이 질문은 다음과 밀접한 관련이 있습니다.내 다른 질문.
\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
불행하게도 패키지를 사용하는 경우 해당 패키지를 새 파일로 복사해야 하며(그렇지 않으면 사용자가 로드한 패키지를 볼 수 있음) 또한 난독화해야 합니다(그렇지 않으면 사용자가 내부 매크로가 있는 패키지를 검색할 수 있음). .