LuaTex는 openin_any=p 옵션을 사용하여 설치된 패키지를 열지 않습니다.

LuaTex는 openin_any=p 옵션을 사용하여 설치된 패키지를 열지 않습니다.

온라인 LuaTeX 컴파일 서비스를 출시할 계획입니다.

CentOS 7에서 TexLive 2015를 사용하여 LuaTeX를 설치했습니다. 보안상의 이유로 파일 열기를 제한하고 싶습니다. 따라서 openin_any=p. 그러나 에 설치된 템플릿 파일을 여는 것도 제한됩니다 texmf-dist. 다른 컴파일러는 템플릿 파일을 읽을 수 있습니다.

이 파일을 컴파일하려고 했습니다.

\documentclass{ltjsarticle}
\usepackage{graphicx}



\title{title}


\author{auth}
\date{\today}
\begin{document}
\maketitle
\section{section}

This is sample.

\end{document}

이 파일을 컴파일했는데 lualatex sample.tex다음과 같은 메시지가 나타났습니다.

This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) 
 restricted \write18 enabled.
(./sample.tex
LaTeX2e <2016/02/01>
Babel <3.9o> and hyphenation patterns for 1 language(s) loaded.

lualatex: Not reading from /usr/local/texlive/2015/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls (openin_any = p).

! LaTeX Error: File `ltjsarticle.cls' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: cls)

어떻게 해결할 수 있나요?

답변1

온라인 서비스로서의 TeX 소개: [http://cseweb.ucsd.edu/~hovav/dist/texhack.pdf

Lua 정보: 형식은 원하는 대로 Lua를 재정의할 수 있으므로

local myopen = function(...) print("ERROR: open is not permitted") return false end
local _std = {}
_std.oldopen = io.open
io.open = myopen 
for k,v in pairs(_std) do print(k,v) end
assert(io.open("foo"), 'Error on io.open' )

io.open은 안전합니다(_std가 숨겨질 때까지).

io.open에 관심이 없다면:

local myopen = function(...) print("ERROR: open is not permitted") return false end
io.open = myopen 
assert(io.open("foo"), 'Error on io.open' )

관련 정보