使用 LuaLaTeX 编译以下代码时,我收到错误:“我无法在文件‘test.mtc’上写入”。有什么方法可以解决这个问题吗?(顺便说一句,文件 test.mtc 在那里,并且包含单词“Contents”)
\documentclass{report}
\usepackage{lipsum}
\usepackage[tight]{minitoc}
\dominitoc[n]
\begin{document}
\tableofcontents
\chapter{Test}
\minitoc
\lipsum
\section{Test}
\lipsum
\subsection{Test}
\lipsum
\subsubsection{Test}
\lipsum
\end{document}
答案1
minitoc.sty 中有一个 lonely \closein\@inputcheck\relax
,我认为它属于其上方的定义:
\documentclass{report}
\usepackage{lipsum}
\usepackage[tight]{minitoc}
\makeatletter
\def\mtc@CkFile#1{%
\@mtc@LItrue\@mtc@FEtrue
\if@mtc@checkfiles
\IfFileExists{#1}{%
\immediate\openin\@inputcheck #1\relax
\mtc@While{}{\if@mtc@LI\relax}{\mtc@Body}\mtc@EndWhile
%
}%
{\@mtc@FEtrue}%
\else
\@mtc@FEfalse%
\fi
\closein\@inputcheck\relax}%moved in the definition
\makeatother
\dominitoc[n]
\begin{document}
\tableofcontents
\chapter{Test}
\minitoc
\lipsum
\section{Test}
\lipsum
\subsection{Test}
\lipsum
\subsubsection{Test}
\lipsum
\end{document}