
Estou fazendo um pôster usando beamerposter
. O texto dentro de um bloco sempre parece não ter margem esquerda. Alguém pode me dizer uma maneira de introduzir uma margem esquerda em um bloco?
Aqui está um exemplo da aparência de um bloco. Observe que o texto começa sem margem esquerda.
Seria bom se você pudesse me dizer como definir as margens esquerda, direita, superior e inferior dentro do bloco. Observe que tenho blocos aninhados, embora os aninhados tenham um nome de ambiente diferente (chamei então insideBlocks
). Portanto, eu não gostaria que as margens do block
meio ambiente afetassem as margens do meu insideBlocks
ambiente.
Espero estar claro.
Responder1
Acho que isso pode ser alcançado de várias maneiras. Uma possibilidade é definir um novo ambiente de bloco com margens customizadas, como este:
\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}
No novo ambiente (eu chamei de myblock
) \leftskip
, \rightskip
e \vspace
são usados para definir as margens. Por exemplo, configurei tudo para 10pt. Se você não quiser, por exemplo, uma margem direita, basta remover o rightskip
do código. Presumi que você também desejasse personalizar a margem do texto do título, se não quiser apenas remover o leftskip
etc. \def\insertblocktitle{}
o resultado é:
Outra possibilidade seria com o tcolorbox
pacote, que permite definir margens assim:
\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}
o resultado é:
editar: não adicionei o beamerposter
pacote no meu código de exemplo porque ele funciona com beamer
e beamerposter
sem modificações.
Responder2
Você pode usar a próxima versão v0.3 do tema interno tcolorbox (https://www.ctan.org/pkg/beamertheme-tcolorbox). Usando este tema, os blocos aninhados serão automaticamente um pouco menores que o bloco circundante:
\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}