我无法将标题“Listing:1”置于列表的中心。
\documentclass[8pt,blue]{beamer}
\setbeamertemplate{navigation symbols}{}
\usepackage{subfigure}
\usepackage{fontspec}
\usepackage{xunicode}
\setsansfont{DejaVuSans}
\usepackage{polyglossia}
\setmainlanguage{greek}
\setotherlanguage{english}
\usepackage{url}
\usepackage{indentfirst}
\usepackage{float} % for images
\usepackage{color}
\usepackage{listings}
\usepackage{caption,subcaption}
\definecolor{darkgreen}{RGB}{0,163,82}
\definecolor{structure}{rgb}{0.2,0.2,0.7}
\usepackage{wrapfig}
\usepackage{listings}
\usepackage{textcomp}
\definecolor{listinggray}{gray}{0.9}
\definecolor{lbcolor}{rgb}{1,1,1}
\lstset{
backgroundcolor=\color{lbcolor},
tabsize=4,
rulecolor=,
language=c++,
basicstyle=\scriptsize,
upquote=true,
aboveskip={1.5\baselineskip},
columns=flexible,
showstringspaces=false,
extendedchars=true,
breaklines=true,
numbers=none,
prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
%frame=false,
showtabs=false,
showspaces=false,
showstringspaces=false,
identifierstyle=\ttfamily,
keywordstyle=\color[rgb]{0,0,1},
commentstyle=\color[rgb]{0.133,0.545,0.133},
stringstyle=\color[rgb]{0.627,0.126,0.941},
}
\newcommand{\EN}[1]{\foreignlanguage{english}{#1}}
\mode<presentation>
\begin{document}
\begin{frame}[fragile]
\frametitle{intro}
\setbeamercovered{transparent}
\noindent\begin{minipage}{.5\textwidth}
\begin{lstlisting}[caption= code 1]
int main(void) {
printf("Left\n");
return 0;
}
\end{lstlisting}
\end{minipage}\hfill
\begin{minipage}{.5\textwidth}
\begin{lstlisting}[caption= code 2]
int main(void) {
printf("Right\n");
return 0;
}
\end{lstlisting}
\end{minipage}
\end{frame}
\end{document}
以下是我收到的内容的屏幕截图:
我希望标题位于代码上方的中央。
答案1
您使用相当小的默认字体大小 ( 8pt
),最大化小页面的宽度 ( 0.5\textwidth
),并且列表内的代码片段的行长相当短。这些因素结合起来,给人的印象是标题没有居中,而实际上,它们在相应的小页面上完美居中——正如@Werner 已经在评论中指出的那样。
最简单的解决方法是使用稍窄一点的宽度,例如,0.3\textwidth
用于两个 minipage 环境。如果您可以使用正常的默认字体大小,而不是8pt
,那么您可能应该0.35\textwidth
为两个环境的宽度选择类似的东西,以避免产生一些不必要的换行符。
附录:如果没有8pt
文档类选项,并且将小页面的宽度设置为0.35\textwidth
,并且(为了更好的衡量)注释掉所有对于手头的示例不需要的包加载代码,则结果如下:
希望这更接近您想要实现的目标。
\documentclass[blue]{beamer}
\setbeamertemplate{navigation symbols}{}
%\usepackage{subfigure}
\usepackage{fontspec}
\usepackage{xunicode}
\setsansfont{DejaVuSans}
%\usepackage{polyglossia}
%\setmainlanguage{greek}
%\setotherlanguage{english}
%\usepackage{url}
%\usepackage{indentfirst}
%\usepackage{float} % for images
%\usepackage{color}
%\usepackage{listings}
%\usepackage{caption,subcaption}
\definecolor{darkgreen}{RGB}{0,163,82}
\definecolor{structure}{rgb}{0.2,0.2,0.7}
%\usepackage{wrapfig}
\usepackage{listings}
%\usepackage{textcomp}
\definecolor{listinggray}{gray}{0.9}
\definecolor{lbcolor}{rgb}{1,1,1}
\lstset{
backgroundcolor=\color{lbcolor},
tabsize=4,
rulecolor=,
language=c++,
basicstyle=\scriptsize,
upquote=true,
aboveskip={1.5\baselineskip},
columns=flexible,
showstringspaces=false,
extendedchars=true,
breaklines=true,
numbers=none,
prebreak = \raisebox{0ex}[0ex][0ex]
{\ensuremath{\hookleftarrow}},
%frame=false,
showtabs=false,
showspaces=false,
showstringspaces=false,
identifierstyle=\ttfamily,
keywordstyle=\color[rgb]{0,0,1},
commentstyle=\color[rgb]{0.133,0.545,0.133},
stringstyle=\color[rgb]{0.627,0.126,0.941},
}
%\newcommand{\EN}[1]{\foreignlanguage{english}{#1}}
\mode<presentation>
\begin{document}
\begin{frame}[fragile]
\frametitle{intro}
\setbeamercovered{transparent}
\noindent
\begin{minipage}{.35\textwidth}
\begin{lstlisting}[caption= code 1]
int main(void) {
printf("Left\n");
return 0;
}
\end{lstlisting}
\end{minipage}
\hfill
\begin{minipage}{.35\textwidth}
\begin{lstlisting}[caption= code 2]
int main(void) {
printf("Right\n");
return 0;
}
\end{lstlisting}
\end{minipage}
\end{frame}
\end{document}