如果我使用信息线,则 Minted 的行号不会显示在 Beamer 中

如果我使用信息线,则 Minted 的行号不会显示在 Beamer 中

如果我使用信息线作为外部主题,则 Minted 的行号不会显示在 Beamer 中

例子:

\documentclass{beamer}
\usepackage{minted}

\usetheme{Warsaw}
\useoutertheme{infolines}
\addtobeamertemplate{headline}{}{\vskip2pt}

\begin{document}
\begin{frame}[fragile]{Hello}
\begin{minted}[linenos]{c}
#include <stdio.h>

int main() {
    printf("hello\n");
}
\end{minted}
\end{frame}
\end{document}

有什么建议么?

答案1

这是因为数字设置在边距中,但infolines主题的边距太小。它确实

\setbeamersize{text margin left=1em,text margin right=1em}

将边距恢复为默认值1cm是解决此问题的一种方法,但它可能会或可能不会令您满意:

\documentclass{beamer}
\usepackage{minted}

\usetheme{Warsaw}
\useoutertheme{infolines}
\setbeamersize{text margin left=1cm,text margin right=1cm}
\addtobeamertemplate{headline}{}{\vskip2pt}

\begin{document}
\begin{frame}[fragile]{Hello}
\begin{minted}[linenos]{c}
#include <stdio.h>

int main() {
    printf("hello\n");
}
\end{minted}
\end{frame}
\end{document}

答案2

实现相同目的的另一种方式(不改变和恢复投影仪边距)是使用包xleftmargin的选项minted

\setminted{xleftmargin=1cm}

这具有相同的效果,但仅根据边距设置移动列表。

\documentclass{beamer}
\usepackage{minted}

% set the left margin of C listings to 1cm
\setminted[c]{xleftmargin=1cm}

\usetheme{Warsaw}
\useoutertheme{infolines}
\addtobeamertemplate{headline}{}{\vskip2pt}

\begin{document}
\begin{frame}[fragile]{Hello}
\begin{minted}[linenos]{c}
#include <stdio.h>

int main() {
    printf("hello\n");
}
\end{minted}
\end{frame}
\end{document}

xrightmargin选项分别适用于列表右侧的边距。

相关内容