将标题栏添加到铸造代码显示

将标题栏添加到铸造代码显示

我想知道如何在mintedPython 代码块中添加标题栏?这是我想使用的标题栏示例:

在此处输入图片描述

我尝试使用来自的代码此解决方案但我无法使用 WinEdt 编译该解决方案中发布的代码pdftex -shell-escape。当我运行发布的代码时解决方案,我收到此错误:

错误:无法读取文件:[Errno 2] 没有这样的文件或目录:“codeboxes_1.pyg”

! 软件包 minted 错误:缺少 Pygments 输出;\inputminted 可能被赋予了一个不存在的文件 - 否则,您可能需要 outputdir 软件包选项,或者可能使用了不兼容的构建工具,或者可能使用了缺少文件的 frostcache。

这是我迄今为止的代码:

代码

\documentclass[letter, 12pt]{report}   

%###########################         FOR PYTHON         ####################################
% https://www.overleaf.com/learn/latex/Code_Highlighting_with_minted
\usepackage{minted}
\usepackage{xcolor} % to access the named colour LightGray
\definecolor{LightGray}{gray}{0.9}

\begin{document}

\begin{minted}
[
frame=lines,
framesep=2mm,
baselinestretch=1.2,
bgcolor=LightGray,
fontsize=\footnotesize,
firstnumber = 41,
linenos
]
{python}
fig = plt.subplots(figsize=(12,2))
ax = plt.subplot(1,1,1)
ax.plot(times, x)
ax.grid(True)
plt.ylabel('amplitude [in A.U.]', fontsize=14)
plt.xlabel('time [in sec]', fontsize=14)
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
plt.show()
\end{minted}

\end{document}

答案1

很难看出您发布的代码如何生成错误消息 — 或者您在尝试链接解决方案中的代码时是否收到了该消息?看起来您尝试从文件中输入代码,但该文件不存在。

您发布的实际代码可以为我编译,但没有标题栏;为此您需要 tcolorbox 包。

以下是尝试修改您链接到的解决方案中的代码以用于您的 Python 代码。我没有考虑该解决方案中定义的其他环境:只考虑生成看起来像您所需输出的代码块的环境。

我为那里给出的代码添加了第四个参数,表示起始行号。

但是,它与您发布的代码风格仍然存在很大差异:您是否想要进行一些调整?

\documentclass[letter, 12pt]{report}

\newcounter{commentCount}
\newcounter{filePrg}
\newcounter{inputPrg}

\usepackage[dvipsnames]{xcolor}
\usepackage{minted}

\usepackage[many]{tcolorbox}
\tcbuselibrary{listings}
\tcbuselibrary{minted}

\usepackage{ifthen}
\usepackage{fontawesome}

\usepackage{tabularx}
\newcolumntype{\CeX}{>{\centering\let\newline\\\arraybackslash}X}%
\newcommand{\TwoSymbolsAndText}[3]{%
  \begin{tabularx}{\textwidth}{c\CeX c}%
    #1 & #2 & #3
  \end{tabularx}%
}

\newtcblisting[use counter=inputPrg, number format=\arabic]{codeInput}[4]{
  listing engine=minted,
  minted language=#1,
  minted options={autogobble,linenos,breaklines,  firstnumber={#4}},
  listing only,
  size=title,
  arc=1.5mm,
  breakable,
  enhanced jigsaw,
  colframe=brown,
  coltitle=White,
  boxrule=0.5mm,
  colback=white,
  coltext=Black,
  title=\TwoSymbolsAndText{\faCode}{%
    \textbf{Input program \thetcbcounter}\ifthenelse{\equal{#2}{}}{}{\textbf{:} \textit{#2}}%
  }{\faCode},
  label=inputPrg:#3
}

\begin{document}

\begin{codeInput}{python}{A sample program.}{code01}{41}
fig = plt.subplots(figsize=(12,2))
ax = plt.subplot(1,1,1)
ax.plot(times, x)
ax.grid(True)
plt.ylabel('amplitude [in A.U.]', fontsize=14)
plt.xlabel('time [in sec]', fontsize=14)
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
plt.show()
\end{codeInput}

\end{document}

带头条的 python

相关内容