我想在 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}