以下是 beamer 文件示例:
\documentclass[notheorems,serif,11pt]{beamer}
\usepackage{algorithm}
\usepackage{float}
\usepackage{minted}
\renewcommand{\listingscaption}{Python code}
\newminted{python}{
fontsize=\footnotesize,
escapeinside=||,
mathescape=true,
numbersep=5pt,
linenos=true,
gobble=2,
framesep=3mm}
\begin{document}
\begin{frame}[fragile]{Mesh Data Strucrure}
\begin{listing}[H]
\begin{pythoncode}
import numpy as np
point = np.array(
[(0.0, 0.0),
(1.0, 0.0),
(1.0, 1.0),
(0.0, 1.0)], dtype=np.float)
cell = np.array([
(1, 2, 0),
(3, 0, 2)], dtype=np.int)
N = point.shape[0] # the number of triangle points
NC = cell.shape[0] # the number of triangle cells
\end{pythoncode}
\caption{The basic data structure of triangle mesh.}
\end{listing}
\end{frame}
\end{document}
最后,我在幻灯片中得到了以下结果:
我的问题是行号和代码之间的空格太宽,我想减少它。那么该怎么办呢?非常感谢!
答案1
选择autogobble
才是王道。以下是手册摘录:
从代码中删除(吞噬)所有常见的前导空格。本质上,该版本会
gobble
自动确定应删除的内容。适用于最初未缩进但在粘贴到 LaTeX 文档后手动缩进的代码。
通过利用这一点,
\documentclass[notheorems,serif,11pt]{beamer}
\usepackage{algorithm}
\usepackage{float}
\usepackage{minted}
\renewcommand{\listingscaption}{Python code}
\newminted{python}{
fontsize=\footnotesize,
escapeinside=||,
mathescape=true,
numbersep=5pt,
linenos=true,
autogobble,
framesep=3mm}
\begin{document}
\begin{frame}[fragile]{Mesh Data Strucrure}
\begin{listing}[H]
\begin{pythoncode}
import numpy as np
point = np.array(
[(0.0, 0.0),
(1.0, 0.0),
(1.0, 1.0),
(0.0, 1.0)], dtype=np.float)
cell = np.array([
(1, 2, 0),
(3, 0, 2)], dtype=np.int)
N = point.shape[0] # the number of triangle points
NC = cell.shape[0] # the number of triangle cells
\end{pythoncode}
\caption{The basic data structure of triangle mesh.}
\end{listing}
\end{frame}
\end{document}
将产生
答案2
autogobble
也帮不上什么忙。真正改善布局的是,setminted
而不是newminted
,以及gobble=2
而不是autogobble
。
\setminted[python]{
fontsize=\footnotesize,
escapeinside=||,
mathescape=true,
numbersep=5pt,
gobble=2,
linenos=true,
framesep=3mm}
文档,第 16 页