使用 minted 插入代码片段时,可能会插入错误的代码片段

使用 minted 插入代码片段时,可能会插入错误的代码片段

我正在编写一个项目,需要包含来自旧 git 提交的代码片段。我正在使用 Python 脚本预处理我的 LaTeX 源代码并转换

%: 37e7c208a33d7cbbc8e0bb6c94cd889e2918c605
%: src/lintrans/gui/main_window.py:229-235

进入一个minted包含从该提交的文件中获取的代码的环境中,在这些行号之间,如下所示:

{
\renewcommand\theFancyVerbLine{
    \ttfamily
    \textcolor[rgb]{0.5,0.5,1}{
        \footnotesize
        \oldstylenums{
            \ifnum\value{FancyVerbLine}=-3\else
            \ifnum\value{FancyVerbLine}=-2\else
            \ifnum\value{FancyVerbLine}=-1
                \setcounter{FancyVerbLine}{228}
            \else
            \arabic{FancyVerbLine}
            \fi\fi\fi
        }
    }
}
\begin{minted}[firstnumber=-3]{python}
# 37e7c208a33d7cbbc8e0bb6c94cd889e2918c605
# src/lintrans/gui/main_window.py

    def render_expression(self) -> None:
        """Render the expression in the input box, and then clear the box."""
        self.plot.transform_by_matrix(
            self.matrix_wrapper.evaluate_expression(
                self.lineedit_expression_box.text()
            )
        )
\end{minted}
}

渲染后看起来像这样: 输出示例

我正在重新定义\theFancyVerbLine自定义行号。前三行不重要,所以它们没有行号,然后我们从实际需要的行号开始。

预处理器将其转换development.texprocess_development.tex,然后将其包含在main.tex使用中\subfile{sections/processed_development.tex}

这一切都运行正常。但是,我最终得到了很多minted环境,出于某种奇怪的原因,第 27 个环境是第 1 个环境的副本,第 28 个环境是第 2 个环境的副本。第 29 个环境及以后的环境都运行正常。

预处理工作正常,源代码中包含了正确的代码片段,但出于某种原因,当我像平常一样编译时latexmk -lualatex,这些代码片段无法正常工作。只有第 27 和第 28 个。在 32 个minted环境中,所有环境都像这样在自己的范围内定义\theFancyVerbLine,只有这两个环境有问题。

我不知道为什么会发生这种情况,任何帮助都将不胜感激。

答案1

原来是_minted-main目录的问题,删除这个目录重新编译后,编译结果如预期一样。

我不知道为什么会发生这种情况。我只能假设这是一个缓存问题,但删除文件夹可以解决这个问题。

相关内容