MiKTeX 的 LuaLaTeX 和 minitoc:“我无法在文件 ...mtc 上写入”

MiKTeX 的 LuaLaTeX 和 minitoc:“我无法在文件 ...mtc 上写入”

使用 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}

相关内容