我已经使用命令创建了一个包含多个代码块的列表\inputminted
,并想减少块之间的空间。
这里给出了一个最小的工作示例:
\documentclass[11pt,oneside]{scrreprt}
\usepackage{caption}
\usepackage{xcolor}
\usepackage{makeidx}
\usepackage[chapter]{minted}
\usemintedstyle{friendly}
\setminted{%
bgcolor=lightgray,
linenos
}
\makeindex
\begin{document}
\begin{listing}
\inputminted{cpp}{helloworld.cpp}
\inputminted{cpp}{helloworld.cpp}
\caption{Example}
\label{code}
\end{listing}
\end{document}
和helloworld.cpp
:
#include <iostream>
int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}
生成的输出是:
我可以重置环境中的行号minted
。这样我就可以实现.h
和.cpp
文件。但是我不知道如何使用来做到这一点inputminted
。块之间的小距离是我想要的解决方案。
答案1
在两个连续之间\inputminted
,添加几个胶水项目
.....\glue 6.0 plus 2.0 minus 2.0
.....\glue(\baselineskip) 13.6
.....\glue 6.0 plus 2.0 minus 2.0
.....\glue(\baselineskip) 7.6
.....\vbox(6.0+0.0)x0.0
事实上,如果我尝试
\inputminted{cpp}{\jobname.cpp}
\vspace{-\medskipamount}
\vspace{-2\baselineskip}
\vspace{0.4pt}% just to show a very small white space
\inputminted{cpp}{\jobname.cpp}
我明白了
我建议使用一个宏\betweenminted
来决定垂直空间的大小。
\begin{filecontents*}{\jobname.cpp}
#include <iostream>
int main() {
std::cout << "Hello world!" << std::endl;
return 0;
}
\end{filecontents*}
\documentclass[11pt,oneside]{scrreprt}
\usepackage{caption}
\usepackage{xcolor}
\usepackage[chapter]{minted}
\usemintedstyle{friendly}
\setminted{
bgcolor=lightgray,
linenos
}
\newcommand{\betweenminted}[1]{%
\par\vspace{-\medskipamount}\vspace{-2\baselineskip}%
\vspace{#1}%
}
\begin{document}
\begin{listing}
\inputminted{cpp}{\jobname.cpp}
\betweenminted{\medskipamount}
\inputminted{cpp}{\jobname.cpp}
\caption{Example}
\label{code}
\end{listing}
\end{document}
生产说明:我更改了输入文件的名称只是为了不破坏我的文件。