如果我使用信息线作为外部主题,则 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
选项分别适用于列表右侧的边距。