%3F.png)
Я собирал новый шаблон бимера и не могу решить несколько последних проблем. Минимальный рабочий пример, который подчеркивает эти проблемы, следующий (он не выглядит минимальным, но я чувствую, что это так):
\documentclass{beamer}
\makeatletter
\def\th@mystyle{
\normalfont
\setbeamercolor{block title example}{bg=orange,fg=white}
\setbeamercolor{block body example}{bg=orange!20,fg=black}
\def\inserttheoremblockenv{exampleblock}
}
\makeatother
\theoremstyle{mystyle}
\newtheorem{que}{Question}
\usepackage{fontspec}
\setmainfont{Verdana}
\begin{document}
\section{Boxes}
\frame{
\frametitle{Boxes}
\fontspec{Cambria}
\setbeamercolor{postit}{fg=black,bg=orange!20} \begin{beamercolorbox}[rounded=false,shadow=true]{postit} How to inflate these two boxes such that their size... \end{beamercolorbox}
\setbeamercolor{postit}{fg=black,bg=green}
\begin{beamercolorbox}[rounded=false,shadow=true]{postit}...is precisely consistent with that of the third box?\end{beamercolorbox}
~\\
\begin{que}[About this box]
How to get such a box with arbitrary content, i.e. basically without it being a kind of theorem/definition? (Right now, the title is at least ``Question ()'')
\end{que}
~\\
\begin{que}[About the font]
How to apply the font change visible in the first two boxes to the whole presentation or at least the whole frame?
\end{que}
}
\end{document}
Теперь у меня три вопроса:
Ящики теорем включают некоторые поля вокруг текста, что мне нравится. Как мне адаптировать поля так, чтобы все ящики были идеально согласованы?
Поскольку поля "Вопрос" соответствуют окружениям теорем, я не могу свободно заполнить верхнюю часть ("заголовок блока"), как мне бы хотелось. Конечно, это в каком-то смысле было бы эквивалентно склеиванию первых двух полей или изменению настроек цвета в пределах одного поля. Как это сделать?
Я ожидал, что это будет легко исправить, но пока ничего из того, что я нашел, не помогло: я хотел бы, чтобы изменение шрифта применялось ко всей презентации (т. е. ко всему тексту, кроме заголовков). Как это сделать?
решение1
Ответ на основную проблему
Я подозреваю, что на самом деле вы хотите знать: вы можете использовать такие блоки-прожекторы.
\begin{block}{<block title>}
<block content>
\end{block}
( beamercolorbox
это что-то для "закулисья" - если вам это не нужно напрямую, используйте конструкции бимера, которые позаботятся обо всей конфигурации - это намного проще)
\documentclass{beamer}
\setbeamercolor{block title}{bg=orange,fg=white}
\setbeamercolor{block body}{bg=orange!20,fg=black}
\begin{document}
\begin{frame}
\frametitle{Boxes}
\begin{block}{How to inflate these two boxes such that their size...}
...is precisely consistent with that of the third box?
\end{block}
\end{frame}
\end{document}
Ответьте на отдельные подвопросы
Ящики теорем включают некоторые поля вокруг текста, что мне нравится. Как мне адаптировать поля так, чтобы все ящики были идеально согласованы?
просто используйте block
s. Поскольку block
s имеют обязательный заголовок, а ваши первые два поля не имели заголовка, \setbeamertemplate{block begin}{...}
необходимо переопределить.
Поскольку поля "Вопрос" соответствуют окружениям теорем, я не могу свободно заполнить верхнюю часть ("заголовок блока"), как мне бы хотелось. Конечно, это в каком-то смысле было бы эквивалентно склеиванию первых двух полей или изменению настроек цвета в пределах одного поля. Как это сделать?
И снова ответ: «используйте block
s».
Я ожидал, что это будет легко исправить, но пока ничего из того, что я нашел, не помогло: я хотел бы, чтобы изменение шрифта применялось ко всей презентации (т. е. ко всему тексту, кроме заголовков). Как это сделать?
Если вы установите \fontspec{Cambria}
в начале презентации, что весь обычный текст будет в Cambria, заголовки фреймов, блоков и т. д. останутся Verdana. Чтобы изменить их, вы можете настроить \setbeamerfont{block title}{...}
.
% !TEX TS-program = xelatex
\documentclass{beamer}
\makeatletter
\def\th@mystyle{
\normalfont
\setbeamercolor{block title example}{bg=orange,fg=white}
\setbeamercolor{block body example}{bg=orange!20,fg=black}
\def\inserttheoremblockenv{exampleblock}
}
\makeatother
\theoremstyle{mystyle}
\newtheorem{que}{Question}
\setbeamercolor{block body}{fg=black,bg=orange!20}
\setbeamercolor{block title}{bg=orange,fg=white}
\usepackage{xstring}
\setbeamertemplate{block begin}
{
\par\vskip\medskipamount%
\IfStrEq{\insertblocktitle}{}{}{
\begin{beamercolorbox}[colsep*=.75ex]{block title}
\usebeamerfont*{block title}\insertblocktitle%
\end{beamercolorbox}%
}
{\parskip0pt\par}%
\ifbeamercolorempty[bg]{block title}
{}
{\ifbeamercolorempty[bg]{block body}{}{\nointerlineskip\vskip-0.5pt}}%
\usebeamerfont{block body}%
\begin{beamercolorbox}[colsep*=.75ex,vmode]{block body}%
\ifbeamercolorempty[bg]{block body}{\vskip-.25ex}{\vskip-.75ex}\vbox{}%
}
\usepackage{fontspec}
\setmainfont{Verdana}
\begin{document}
\fontspec{Cambria}
\section{Boxes}
\begin{frame}
\frametitle{Boxes}
\begin{block}{}
How to inflate these two boxes such that their size...
\end{block}
{
\setbeamercolor{block body}{fg=black,bg=green}
\begin{block}{}
precisely consistent with that of the third box?
\end{block}
}
\begin{block}{About this box}
How to get such a box with arbitrary content, i.e. basically without it being a kind of theorem/definition? (Right now, the title is at least ``Question ()'')
\end{block}
\end{frame}
\end{document}