我想让使用包高亮的代码对应的行号minted
显示在环境的输出中preview
。可能是因为行号设置在了页边距中,所以结果并没有显示出来。我使用了包xleftmargin
提供的选项minted
,但无济于事。该怎么做呢?
该文件是在 之上编译的pdfTeX
。
遵循 MWE(其中的 C++ 代码是无意义的,只是为了提供一些内容):
\documentclass{memoir}
\usepackage[active,pdftex,tightpage,psfixbb]{preview}
\usepackage{xcolor}
\usepackage{minted}
\pagestyle{empty}
\begin{document}
\begin{preview}
\begin{minted}[xleftmargin=\parindent,linenos]{cpp}
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
unsigned short i;
int main() {
for (i = 0; i <= 5; i++) {
// whatever
}
return 0;
}
\end{minted}
\end{preview}
\end{document}
答案1
问题是,\parindent
当你评估它时,它为零。
\documentclass{memoir}
\usepackage[active,pdftex,tightpage,psfixbb]{preview}
\usepackage{xcolor}
\usepackage{minted}
\pagestyle{empty}
\begin{document}
\begin{preview}
\begin{minted}[xleftmargin=20pt,linenos]{cpp}
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
unsigned short i;
int main() {
for (i = 0; i <= 5; i++) {
// whatever
}
return 0;
}
\end{minted}
\end{preview}
\end{document}
你可能想看看这个standalone
课程:
\documentclass[
class=memoir,
varwidth,
border={20 0 2 2},
]{standalone}
\usepackage{xcolor}
\usepackage{minted}
\begin{document}
\begin{minted}[linenos]{cpp}
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
unsigned short i;
int main() {
for (i = 0; i <= 5; i++) {
// whatever
}
return 0;
}
\end{minted}
\end{document}
答案2
与此同时,我自己找到了一个简单的解决方法,它在我的帖子的整体背景下是有意义的。严格意义上来说,它不是对我帖子的回答,因为它涉及将环境包装minted
在tikzpicture
环境中,但它对我来说是有效的。我会暂时不检查我的“答案”,看看是否有人能想出另一个不涉及这种包装的答案。
您可以在下面找到我原来的 MWE 中要添加的相关行(我也调整了密钥的值xleftmargin
)。
\begin{preview}
\begin{tikzpicture}
\node {
\begin{minipage}{\textwidth}
\begin{minted}[xleftmargin=1em,linenos]{cpp}
// Whatever C++ code to be displayed
\end{minted}
\end{minipage}
};
\end{tikzpicture}
\end{preview}