
Ich erstelle ein Poster mit beamerposter
. Der Text innerhalb eines Blocks scheint immer keinen linken Rand zu haben. Kann mir jemand sagen, wie ich einen linken Rand in einen Block einführen kann?
Hier sehen Sie ein Beispiel, wie ein Block aussieht. Beachten Sie, dass der Text anfangs keinen linken Rand hat.
Es wäre nett, wenn Sie mir sagen könnten, wie ich die linken, rechten, oberen und unteren Ränder innerhalb des Blocks definiere. Bitte beachten Sie, dass ich verschachtelte Blöcke habe, obwohl die verschachtelten einen anderen Umgebungsnamen haben (ich habe sie dann genannt insideBlocks
). Daher möchte ich nicht, dass die Ränder für die Umgebung die Ränder für meine Umgebung block
beeinflussen .insideBlocks
Ich hoffe, ich habe mich klar ausgedrückt.
Antwort1
Ich denke, das kann auf viele Arten erreicht werden. Eine Möglichkeit besteht darin, eine neue Blockumgebung mit benutzerdefinierten Rändern zu definieren, wie folgt:
\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}
In der neuen Umgebung (ich habe sie genannt myblock
) werden und verwendet, um die Ränder einzustellen. Als Beispiel habe ich alles auf 10pt eingestellt. Wenn Sie z. B. keinen rechten Rand möchten, entfernen Sie einfach das \leftskip
aus dem Code. Ich bin davon ausgegangen, dass Sie auch den Rand des Titeltexts anpassen möchten. Wenn Sie das nicht möchten, entfernen Sie einfach das usw. aus . Das Ergebnis ist:
\rightskip
\vspace
rightskip
leftskip
\def\insertblocktitle{}
Eine weitere Möglichkeit wäre das tcolorbox
Paket, mit dem Sie Ränder wie folgt festlegen können:
\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}
Ergebnis ist:
beamerposter
Bearbeiten: Ich habe das Paket in meinem Beispielcode nicht hinzugefügt, da es sowohl mit beamer
als auch beamerposter
ohne Änderungen funktioniert.
Antwort2
Sie können die kommende Version v0.3 des tcolorbox-Innendesigns verwenden (https://www.ctan.org/pkg/beamertheme-tcolorbox). Mit diesem Design sind die verschachtelten Blöcke automatisch etwas kleiner als die umgebenden Blöcke:
\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}