Добавить строку заголовка к отображению отчеканенного кода

Добавить строку заголовка к отображению отчеканенного кода

Я хотел бы узнать, как добавить заголовок в mintedблок кода Python? Вот пример заголовка, который я хотел бы использовать:

введите описание изображения здесь

Я попробовал использовать код изэто решениено я не смог получить код, размещенный в этом решении, для компиляции с помощью WinEdt с pdftex -shell-escape. Когда я запускаю код из размещенногорешение, я получаю эту ошибку:

Ошибка: невозможно прочитать infile: [Errno 2] Такого файла или каталога нет: 'codeboxes_1.pyg'

! Ошибка пакета minted: отсутствует вывод Pygments; \inputminted, вероятно, был передан файл, который не существует — в противном случае вам может потребоваться опция пакета outputdir, или вы используете несовместимый инструмент сборки, или вы используете frozencache с отсутствующим файлом.

Вот мой код на данный момент:

КОД

\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}

питон с перекладиной на голове

Связанный контент