我怎样才能为投影仪定义一个新的纵横比?

我怎样才能为投影仪定义一个新的纵横比?

我正在尝试创建一个模板,用于在 Latex 中制作与智能手机兼容的(垂直)投影仪幻灯片。虽然可以通过以下方式实现(以横向模式阅读)

\documentclass[aspectratio=169]{beamer}

我希望制作一个用于制作可以在纵向模式下阅读的 Beamer 幻灯片的模板。虽然我还不是 Latex 的专业人士,但我尝试编辑文件中的几beamer.cls

\DeclareOptionBeamer{aspectratio}[43]{%
\ifnum#1=1610 %
\setlength\beamer@paperwidth{16.00cm}%
\setlength\beamer@paperheight{10.00cm}%
\else\ifnum#1=169 %
\setlength\beamer@paperwidth{16.00cm}%
\setlength\beamer@paperheight{9.00cm}%

在这些行中我添加了

\else\ifnum#1=916 %
\setlength\beamer@paperwidth{9cm}%
\setlength\beamer@paperheight{16cm}%

然而,在使用

\documentclass[aspectratio=916]{beamer}

布局提供默认的 4:3 输出。我做错了什么?有没有更简单的方法来实现这一点?

答案1

根据要求;要向 添加新的几何设置beamer,首先确保您正在更改 的本地副本beamer.cls。您可以通过查看日志的开头来查看文件在计算机中的位置:

(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamer.cls
Document Class: beamer 2019/09/29 v3.57 A class for typesetting presentations

然后将该文件复制到当前目录。如​​果愿意,可以重命名。然后打开该文件并查找类似以下内容:

\DeclareOptionBeamer{aspectratio}[43]{%
  \ifnum#1=1610 %
    \setlength\beamer@paperwidth{16.00cm}%
    \setlength\beamer@paperheight{10.00cm}%
  \else\ifnum#1=169 %
    \setlength\beamer@paperwidth{16.00cm}%
    \setlength\beamer@paperheight{9.00cm}%
  <...>
  \fi\fi<...>

此处aspectratio是选项名称,[43]是默认值。要添加新选项,请将一个块从一个复制到\else\ifnum下一个,然后根据需要进行更改:

  \else\ifnum#1=916 %
    \setlength\beamer@paperwidth{9.00cm}%
    \setlength\beamer@paperheight{16.00cm}%

然后确保\fi在末尾添加一个额外的内容。整个内容应如下所示:

\DeclareOptionBeamer{aspectratio}[43]{%
  \ifnum#1=1610 %
    \setlength\beamer@paperwidth{16.00cm}%
    \setlength\beamer@paperheight{10.00cm}%
  \else\ifnum#1=169 %
    \setlength\beamer@paperwidth{16.00cm}%
    \setlength\beamer@paperheight{9.00cm}%
  \else\ifnum#1=149 %
    \setlength\beamer@paperwidth{14.00cm}%
    \setlength\beamer@paperheight{9.00cm}%
  \else\ifnum#1=54 %
    \setlength\beamer@paperwidth{12.50cm}%
    \setlength\beamer@paperheight{10.00cm}%
  \else\ifnum#1=43 %
    \setlength\beamer@paperwidth{12.80cm}%
    \setlength\beamer@paperheight{9.60cm}%
  \else\ifnum#1=32 %
    \setlength\beamer@paperwidth{13.50cm}%
    \setlength\beamer@paperheight{9.00cm}%
  \else\ifnum#1=141 %
    \setlength\beamer@paperwidth{14.85cm}%
    \setlength\beamer@paperheight{10.50cm}%
  \else\ifnum#1=916 %                        <
    \setlength\beamer@paperwidth{9.00cm}%     | One more option
    \setlength\beamer@paperheight{16.00cm}%  <
  \fi\fi\fi\fi\fi\fi\fi
  \fi % One more \fi
}

然后使用它:

\documentclass[aspectratio=916]{beamer}
\usepackage{lipsum}
\begin{document}
\begin{frame}{Lorem Ipsum}
\lipsum[1]
\end{frame}
\end{document}

生成:

在此处输入图片描述

答案2

在内部,beamer使用geometry包来设置页面尺寸。因此,您可以geometry使用选项来告诉翻页landscape——此选项不力量横向,它的作用是交换页面的高度和宽度。

因为beamer加载了geometry包,所以必须使用获取包选项\PassOptionsToPackage的方法。landscapegeometry

(这只适用于您想要的页面大小只是现有页面大小的旋转。如果您想要一个全新的页面大小,您需要来自的解决方案Phelype Oleinik 的回答

\PassOptionsToPackage{landscape}{geometry}
\documentclass{beamer}

\usetheme{Warsaw}

\begin{document}

\begin{frame}{A Portrait Presentation}
\begin{theorem}
Theorems are easier to prove in portrait orientation.
\end{theorem}
\begin{proof}
This frame is its own proof.
\end{proof}
\end{frame}
\end{document}

纵向 Beamer 演示

相关内容