Minted 代码上的标题和标签

Minted 代码上的标题和标签

我想在 Minted 源代码上添加标题和标签,以便我可以引用它,类似于您对图形所做的操作。

Minted 手册中说我可以使用 listing 环境,它允许同时使用标题和标签,问题是 listings 会产生浮动,并且只允许使用一页。我的源代码很长,跨越两页。

我怎样才能添加标题和标签但仍能使用两页?

答案1

您可以定义一个非浮动环境,该环境可以跨页面放置,并将minted环境放入其中。这是有记录的功能:

8 常见问题和故障排除

  • 我需要一个支持分页符的列表环境。内置列表环境是标准浮点数;它不支持分页符。您可能希望为长浮点数定义一个新环境。[...]
    使用 caption 包时,最好使用 minted 的 newfloat 包选项。请参阅
    https://tex.stackexchange.com/a/53540/10742

minted.sty使用选项加载newfloat可让您自定义listing环境,caption.sty提供\captionof浮动环境之外的字幕。查看其文档以了解更多(大量)选项。

把它放在一起:

\documentclass{article}
\usepackage[newfloat]{minted}
\usepackage{caption}

\newenvironment{code}{\captionsetup{type=listing}}{}
\SetupFloatingEnvironment{listing}{name=Source Code}

\begin{document}
\begin{code}
\captionof{listing}{My C-Code}
\label{code:c-code}
\begin{minted}{c}
int main() {
printf("hello, world");
return 0;
}
\end{minted}
\end{code}

Reference to \ref{code:c-code}.  

\end{document}

在此处输入图片描述

答案2

使用图形或表格块来添加源。我认为这是一个简单的解决方案。

\begin{figure}[!ht]
\centering
\begin{minted}[mathescape, breaklines,frame=single, fontsize=\footnotesize]{python}
import tensorflow as tf

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(100, input_shape=(12,), activation='relu'))
model.add(tf.keras.layers.Dense(100, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
\end{minted}
\caption{Classification model and layers}\label{code:CML}
\end{figure}

相关内容