
La opción de lado a lado da mal resultado...
Sin lado a lado, el código funciona bien.
\documentclass[10pt,xcolor={usenames,dvipsnames,svgnames}]{beamer}
\usepackage[most]{tcolorbox}
\definecolor{linen}{HTML}{FAF0E6}
\definecolor{sandybrown}{rgb}{0.96, 0.64, 0.38}
\begin{document}
\begin{frame}
\begin{tcolorbox}[title=Formulas,
%sidebyside,
enhanced,
colback=linen,
colframe=sandybrown,
coltext=DarkRed,
coltitle=white,
fonttitle=\small\bfseries,
fontupper=\noindent,
segmentation style={dashed, red},
segmentation code={
\path[color=red,draw]
(segmentation.west) -- (segmentation.east);}
]
Some Text \bfseries{Some text}
\begin{equation*}
a = b + c
\end{equation*}
\tcbline
\begin{equation*}
a = b + c
\end{equation*}
\tcbline
\begin{equation*}
a = b + c
\end{equation*}
%
\tcblower
Some Text \bfseries{Some text}
\begin{equation*}
a = b + c
\end{equation*}
\tcbline
\begin{equation*}
a = b + c
\end{equation*}
\tcbline
\begin{equation*}
a = b + c
\end{equation*}
\end{tcolorbox}
\end{frame}
\end{document}
Respuesta1
En este caso, ¿por qué no utilizar solo un tabularx
interior tcolorbox
?
\documentclass[10pt,xcolor={table, usenames, dvipsnames, svgnames}]{beamer}
\usepackage[T1]{fontenc}
\usepackage{array,tabularx}
\usepackage[most]{tcolorbox}
\definecolor{sandybrown}{rgb}{0.96,0.64,0.38}
\definecolor{linen}{HTML}{FAF0E6}
\begin{document}
\begin{frame}
\rowcolors{1}{linen}{linen!70!DarkRed}
\begin{tcolorbox}[enhanced, colback=linen, colframe=sandybrown,
title=Formulas, coltitle=white, fonttitle=\small\bfseries,
clip upper, fontupper=\sffamily,%
coltext=DarkRed,
tabularx*={\arrayrulecolor{DarkRed}}{>{\centering\arraybackslash}X|%
>{\centering\arraybackslash}X}]
Some Text \bfseries{Some text} &
Some Text \bfseries{Some text} \\\hline
$a= b+c$ & $a= b+c$\\\hline
$a= b+c$ & $a= b+c$\\\hline
$a= b+c$ & $a= b+c$
\end{tcolorbox}
\end{frame}
\end{document}
Actualizar:
Las imágenes OP muestran un texto alineado a la izquierda en la primera línea. En mi respuesta original no pude reproducir este comportamiento debido a un problema cuando un\multicolumn
se introduce un comando en la primera celda de un tcolorbox tabularx. Este problema se muestra entcolorbox, tabularx: la primera línea con varias columnas no funciona en el entorno tcolorbox. Ahora, gracias a Thomas F. Sturm ( tcolorbox
autor), existe una solución provisional para este problema.
\documentclass[10pt,xcolor={table, usenames, dvipsnames, svgnames}]{beamer}
\usepackage[T1]{fontenc}
\usepackage{array,tabularx}
\usepackage[most]{tcolorbox}
\definecolor{sandybrown}{rgb}{0.96,0.64,0.38}
\definecolor{linen}{HTML}{FAF0E6}
\makeatletter
\tcbset{%
hackfortabularx/.code={%
\def\tcb@saveupperbox{%
\begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}
\kvtcb@fontupper\kvtcb@halignupper\kvtcb@before@upper}}
}
\makeatother
\begin{document}
\begin{frame}
\begin{tcolorbox}[enhanced, colback=linen, colframe=sandybrown,
title=Formulas, coltitle=white, fonttitle=\small\bfseries,
clip upper, hackfortabularx,
fontupper=\sffamily, coltext=DarkRed,
tabularx*={\rowcolors{1}{linen}{linen!70!DarkRed}\arrayrulecolor{DarkRed}}%
{>{\centering\arraybackslash}X|>{\centering\arraybackslash}X}]
\multicolumn{1}{l|}{Some Text \bfseries{Some text}} &
\multicolumn{1}{l}{Some Text \bfseries{Some text}} \\\hline
$a= b+c$ & $a= b+c$\\\hline
$a= b+c$ & $a= b+c$\\\hline
$a= b+c$ & $a= b+c$
\end{tcolorbox}
\end{frame}
\end{document}
2da actualización:
El problema con multicolumn
el comando en la columna izquierda de la regla superior se resolvió en tcolorbox v4.20
. No hace falta pacto previo. La segunda cifra se puede obtener con:
\documentclass[10pt,xcolor={table, usenames, dvipsnames, svgnames}]{beamer}
\usepackage[T1]{fontenc}
\usepackage{array,tabularx}
\usepackage[most]{tcolorbox}
\definecolor{sandybrown}{rgb}{0.96,0.64,0.38}
\definecolor{linen}{HTML}{FAF0E6}
\begin{document}
\begin{frame}
\begin{tcolorbox}[enhanced, colback=linen, colframe=sandybrown,
title=Formulas, coltitle=white, fonttitle=\small\bfseries,
clip upper,
fontupper=\sffamily, coltext=DarkRed,
tabularx*={\rowcolors{1}{linen}{linen!70!DarkRed}\arrayrulecolor{DarkRed}}%
{>{\centering\arraybackslash}X|>{\centering\arraybackslash}X}]
\multicolumn{1}{l|}{Some Text \bfseries{Some text}} &
\multicolumn{1}{l}{Some Text \bfseries{Some text}} \\\hline
$a= b+c$ & $a= b+c$\\\hline
$a= b+c$ & $a= b+c$\\\hline
$a= b+c$ & $a= b+c$
\end{tcolorbox}
\end{frame}
\end{document}
Respuesta2
El problema surge porque sidebyside
aparece la opción de modificar el nodo de segmentación para que \tcblower
pueda producir una línea vertical entre las dos unidades en lugar de la habitual horizontal. En consecuencia, \tcbline
no funciona como se esperaba, ya que utiliza el mismo código de segmentación que se basa en el nodo de segmentación.
No puedo encontrar ningún ejemplo en la documentación del paquete sobre el uso \tcbline
de la sidebyside
opción, por lo que no está claro que sea compatible.
Puede obtener un cuadro razonablemente cercano al resultado deseado con una línea vertical sólida configurando su estilo de segmentación en sólido (rojo) y eliminando el código de segmentación (que está causando problemas). Sin embargo, no hay líneas horizontales discontinuas.
Los cambios
segmentation style={solid, red}
% segmentation code={
% \path[color=red,draw]
% (segmentation.west) -- (segmentation.east);}
produce
La única solución que veo es dibujar manualmente las líneas de segmentación usando la overlay
opción (deshabilitando las integradas con la segmentation hidden
tecla). Puedes hacer esto de manera algo pragmática usando el frame
nodo y la calc
biblioteca tikizlibrary:
% \usetikzlibrary{calc} % Preamble
% Box options
[title=Formulas,
sidebyside,
enhanced,
colback=linen,
colframe=sandybrown,
coltext=DarkRed,
coltitle=white,
fonttitle=\small\bfseries,
fontupper=\noindent,
segmentation hidden, % Hide the inbuilt segmentation - we're drawing our own
overlay={
\coordinate (FL) at (frame.west);
\coordinate (FT) at (frame.north);
\coordinate (FR) at (frame.east);
\coordinate (FB) at (frame.south);
\coordinate (L1) at (frame.center); % Center of frame is about right height
\coordinate (L2) at (0,1.1); % Second dashed line at height of 1.1
\def\borderthickness{2} % Offset due to borders of box
\def\titlethickness{15} % Offset due to box title
\draw [red,dashed] let \p{FT}=(FT),\p{FB}=(FB) in (\x{FB},\y{FB}+\borderthickness) -- (\x{FT},\y{FT}-\titlethickness);
\draw [red,dashed] let \p{FR}=(FR),\p{FL}=(FL),\p{L1}=(L1) in (\x{FL}+\borderthickness,\y{L1}) -- (\x{FR}-\borderthickness,\y{L1});
\draw [red,dashed] let \p{FR}=(FR),\p{FL}=(FL),\p{L2}=(L2) in (\x{FL}+\borderthickness,\y{L2}) -- (\x{FR}-\borderthickness,\y{L2});
}
]
Para el uso de comandos let
in \draw
, consulte, por ejemplo,esta respuesta. Al construir cuadros futuros, es de esperar que solo tenga que editar las coordenadas L1
y L2
corregir la altura de las líneas horizontales (tenga en cuenta que solo se utiliza el componente y de estas coordenadas).
Producción: