Введение левого поля внутри блочной среды в Beamer

Введение левого поля внутри блочной среды в Beamer

Я делаю постер с помощью beamerposter. Текст внутри блока всегда кажется без левого поля. Может кто-нибудь подсказать, как ввести левое поле в блоке ?

Вот пример того, как выглядит блок. Обратите внимание, что текст начинается без левого поля.

введите описание изображения здесь

Было бы неплохо, если бы вы могли рассказать мне, как определить левое, правое, верхнее и нижнее поля внутри блока. Обратите внимание, что у меня есть вложенные блоки, хотя вложенные имеют другое имя окружения (я назвал then insideBlocks). Поэтому я не хочу, чтобы поля для blockокружения влияли на поля для моего insideBlocksокружения.

Надеюсь, я ясно выразился.

решение1

Я думаю, что этого можно достичь многими способами. Одна из возможностей — определить новую блочную среду с пользовательскими полями, например:

 \documentclass{beamer}
 \usetheme{Frankfurt}

\newenvironment<>{myblock}[1]{%
 \begin{actionenv}#2%
 \def\insertblocktitle{\leftskip=10pt\rightskip=10pt\vspace{10pt} #1\vspace{10pt}}%
 \par%
 \usebeamertemplate{block begin}\leftskip=10pt\rightskip=10pt\vspace{10pt}}
 {\par\vspace{10pt}\usebeamertemplate{block end}
 \end{actionenv}}


\begin{document}
\begin{frame}

\begin{myblock}{example title to show 10pt up, down, left and right margins}
 example text to show 10pt up, down, left and right margins
\end{myblock}

\begin{block}{example title to show standard margins}
 example text to show standard margins
\end{block}

\end{frame}
\end{document}

В новой среде (я назвал ее myblock) \leftskipи используются для установки полей. В качестве примера я установил все на 10pt. Если вам не нужно, например, правое поле, просто удалите \rightskipиз кода. Я предполагал, что вы также хотите настроить поле текста заголовка, если вы не хотите, просто удалите и т. д. из . Результат: \vspacerightskipleftskip\def\insertblocktitle{}введите описание изображения здесь

Другой возможностью может стать пакет tcolorbox, который позволяет устанавливать поля следующим образом:

\documentclass{beamer} 
\usepackage{tcolorbox}                                 
\tcbuselibrary{skins}                                  


\tcbset{                                               % custom tcolorbox  
        skin=enhanced,                                 
        frame style={fill=blue},                       % sets the frame color
        bottom=10pt,                                    % distance between the body text and the bottom frame
        top=10pt,                                      % distance between the body text and the top frame
        left=10pt,
        right=10pt,
        boxrule=0pt,                                   % frame width
        bottomtitle=10pt,                               % distance between the title text and the bottom title frame               
        toptitle=10pt,                                  % distance between the title text and the top title frame
        lefttitle=10pt,                                  % title text left margin
        righttitle=10pt
}  
\begin{document}
\begin{frame}  
\begin{tcolorbox}[title=test]
 test
\end{tcolorbox}
\end{frame}
\end{document}

результат: введите описание изображения здесь

правка: Я не добавил beamerposterпакет в свой пример кода, потому что он работает как с модификациями, так beamerи beamerposterбез них.

решение2

Вы можете использовать предстоящую версию v0.3 внутренней темы tcolorbox (https://www.ctan.org/pkg/beamertheme-tcolorbox). При использовании этой темы вложенные блоки автоматически будут немного меньше окружающего блока:

\documentclass{beamer}
\usetheme{Warsaw}
\usepackage[size=a4,orientation=portrait]{beamerposter}

\useinnertheme{tcolorbox}

\begin{document}

\begin{frame}
\begin{block}{title}
content...
\begin{block}{title}
content...
\end{block}
\end{block}
\end{frame}

\end{document}

введите описание изображения здесь

Связанный контент