В презентации в бимере я хотел бы создать блоки без рамки, но заполненные градиентом слева (светло-серый) направо (темно-серый) и текст в блоке. Я также хочу, чтобы блок касался края бумаги (сверху, слева, справа), поэтому поместите его на слайд без каких-либо полей. Возможно ли сделать это с помощью tcolorboxes?
решение1
После моего РЕДАКТИРОВАНИЯ явсе ещепонятия не имею, что я делаю, но мне удалось поместить вещи в beamer
. Использование физических размеров, в частности 4,2 дюйма для \makebox
и 4,65 дюйма для \tcbox
ширины, дано в физических размерах, потому что я не знаю, каковы соответствующие имена переменных для beamer
ширины полей и т. д. Поэтому их может потребоваться изменить в зависимости от вашего beamer
шаблона.
\documentclass{beamer}
\usepackage{tcolorbox,lipsum}
\tcbuselibrary{skins}
\begin{document}
\begin{frame}
\raisebox{4cm}{\makebox[4.2in]{
\tcbox[enhanced, boxrule=0pt, arc=0pt, width=4.65in, top=.2in,bottom=.3in,
interior style={left color=gray!05,right color=gray!50}]
{\begin{minipage}{4.65in}
\lipsum[1]
\end{minipage}
}}}
\end{frame}
\end{document}
Я использовал отрывки из этих трех ответов:
Как сделать более двух причудливых градиентных полос в tcolorbox?
и
решение2
Это вариант ответа Стивена Б. Сеглетеса. Я создал новую среду gradientbox
, которая принимает необязательные tcolorbox
параметры. Я попытался использовать настройки размеров из beamer
файлов стилей. Тем не менее, есть фиксированный кернинг 2mm
для верхнего пространства, который я не смог найти за разумное время в реализации бимера.
[t]
Чтобы разместить блок в самом верху слайда, следует использовать рамку с опцией и без заголовка.
\documentclass{beamer}
\usepackage{tcolorbox,lipsum}
\tcbuselibrary{skins}
\makeatletter%
\newtcolorbox{gradientbox}[1][]{%
enhanced,boxrule=0pt,boxsep=0pt,sharp corners,
before=\nointerlineskip\kern-2mm,%
width=\paperwidth,
enlarge left by=-\beamer@leftmargin-\beamer@leftsidebar,
enlarge right by=-\beamer@rightmargin-\beamer@rightsidebar,
frame hidden,interior style={left color=gray!05,right color=gray!50},
#1
}
\makeatother%
\begin{document}
\begin{frame}[t]
\begin{gradientbox}
\lipsum[1]
\end{gradientbox}
\end{frame}
\begin{frame}[t]
\begin{gradientbox}[top=8mm,bottom=8mm,left=10mm,right=10mm]
\lipsum[1]
\end{gradientbox}
\end{frame}
\end{document}