我想在这篇文章的开头说,我已经知道这个问题的答案了。我只是来这里发布我找到的解决方案,希望它能帮助别人,而不必像我一样花一个小时去了解发生了什么,比如在谷歌上搜索并找到这篇文章。
问题
我想记录我编写的自定义命令,因此我想在表格环境中使用 minted 来突出显示语法:
\prodscal x y
然而渲染结果显示:
甚至没有开头\
,并且显然没有语法高亮。
这是使用的代码:
\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}