我已经在这样的类文件中声明了一个新的环境(完整的文件存在这里):
\renewcommand{\theFancyVerbLine}{\parbox{10pt}{\centering\footnotesize\arabic{FancyVerbLine}}}
\newtcblisting{codebox}[2]{
listing only,
listing engine=minted,
minted language=#2,
breakable,
enhanced,
colback=white,
coltitle=black,
colbacktitle=white,
top=0pt,
bottom=0pt,
sharp corners,
title=\textbf{#1:},
minted options = {
linenos,
breaklines,
escapeinside=||,
xleftmargin=10pt,
},
overlay={%
\begin{tcbclipinterior}
\draw [line width=1pt] (frame.north west) rectangle ([xshift=18pt]frame.south west);
\end{tcbclipinterior}
}}
\BeforeBeginEnvironment{codebox}{\vspace*{-18pt}}
但是当我在主 tex 文件中使用此环境时,如下所示:
\documentclass{ipu-c}
\begin{document}
\begin{codebox}{Program}{c}
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
\end{codebox}
\begin{codebox}{Output}{text}
Hello, World!
\end{codebox}
\end{document}
我的 IDE(带有 TeXiFy IDEA 的 PyCharm)一直向我尖叫,好像环境中的代码codebox
是乳胶代码并试图将其格式化为乳胶代码,但当我使用 minted 环境时不会发生这种情况。我对此有两个问题:
- 如何修复此问题,以便我的 IDE 将其识别为逐字环境(或任何由 minted 创建的环境类型)?
- 另外,是否可以通过
tcolorbox
或删除添加的尾随换行符minted
,如下图所示(我已经在 minted 中尝试了 stripnl 和 stripall 选项,但它们不起作用):
更新:我尝试了autogobble
minted 中的选项,它确实解决了第 2 点中的问题,但我认为它做的比我想要的要多得多,除了前导和尾随换行符之外,我不希望它触及任何其他东西。
更新 2:第 1 点中的问题似乎与 texify idea 插件本身有关,确保环境名称以“code”结尾似乎可以解决该问题。