问题

问题

我想在这篇文章的开头说,我已经知道这个问题的答案了。我只是来这里发布我找到的解决方案,希望它能帮助别人,而不必像我一样花一个小时去了解发生了什么,比如在谷歌上搜索并找到这篇文章。

问题

我想记录我编写的自定义命令,因此我想在表格环境中使用 minted 来突出显示语法:

\prodscal x y

然而渲染结果显示:

minted 不起作用

甚至没有开头\,并且显然没有语法高亮。

这是使用的代码:

\noindent\begin{tabularx}{\linewidth}{XXXX}
        \textbf{Command}                     & \textbf{location}                                               & \textbf{short desc.}                            & \textbf{Example}               \\
        \midrule
        % ————————————————————————————————————————————————————————————
        \mintinline{latex}{\indicatrice}     & \detokenize{fonctions_et_}\linebreak\detokenize{operateurs.tex} & indicatrice d'un ensemble                       & $\indicatrice{A}$              \\ \\

        \mintinline{latex}{\norme}           & \detokenize{fonctions_et_}\linebreak\detokenize{operateurs.tex} & norme d'un élément                              & $\norme{p}{x}$                 \\ \\

        \mintinline{latex}{\dist}            & \detokenize{fonctions_et_}\linebreak\detokenize{operateurs.tex} & distance issue d'une norme entre deux vecteurs  & $\dist{x}{y}$                  \\ \\

        \mintinline{latex}{\distnorme}       & \detokenize{fonctions_et_}\linebreak\detokenize{operateurs.tex} & distance issue d'une norme entre deux vecteurs  & $\distnorme{\infty}{x}{y}$     \\ \\

        \mintinline{latex}{\prodscal}        & \detokenize{fonctions_et_}\linebreak\detokenize{operateurs.tex} & produit scalaire entre deux vecteurs            & $\prodscal{x}{y}$              \\ \\

        \mintinline{latex}{\prodscalselon}   & \detokenize{fonctions_et_}\linebreak\detokenize{operateurs.tex} & produit scalaire [spécifié] entre deux vecteurs & $\prodscalselon{x}{y}{\infty}$ \\ \\

\bottomrule
\end{tabularx}
! Package catchfile Error: File `../aux_files/_minted-documentation/one-dark.pygstyle' not found.

! Package minted Error: Cannot find Pygments style one-dark.

Cannot find Pygments style one-dark

! Package minted Error: Missing Pygments output; \inputminted was probably given a file that does not exist--otherwise, you may need the outputdir package option, or may be using an incompatible build tool,or may be using frozencache with a missing file.

我已经寻找了

我使用 latexmk 将我的 aux 文件放在其他地方:

$pdflatex = 'pdflatex -synctex=1 -shell-escape -interaction=nonstopmode';
# PROJECT CODE FILES
$do_cd= 1;
$cd_dir="src";
@default_files = ('src/rapport.tex', 'src/documentation.tex', 'src/tests.tex');

# ~ OUTPUT FILES

$pdf_mode=1; # use pdflatex

$out_dir = "../out";

# ~ AUXILIARY FILES

$emulate_aux = 1;

$aux_dir = "../aux_files";

当我导入包时我已经在处理这个问题了

\usepackage[cache=true, outputdir={\detokenize{../aux_files}} ]{minted}

\usemintedstyle{one-dark}

此外,项目内的另一个文件也使用 minted 风格进行编译。

我注意到one-dark.pygstyle在 aux 文件夹中为该 .tex 文件创建了文件,但我遇到了问题。为什么没有创建?我应该怎么做才能正确创建它?

答案1

这两个文件之间的区别是:

  • 工作版本:已创建环境以及内联
  • 不起作用的:只有铸造的内联

因此,必须调用至少一个已创建的环境来触发样式生成。但是我不想在我的文档中使用环境,我建议的解决方案是:


\begin{document}
    \begin{phantom}
        \begin{minted}{latex}
        \end{minted}
    \end{phantom}

    ...

\end{document}

相关内容