¿Cómo mover horizontalmente un tcolorbox rompible?

¿Cómo mover horizontalmente un tcolorbox rompible?

Me gustaría mostrar tcolorboxmensajes electrónicos rompibles con la misma posición horizontal en las páginas, incluso si están en elementos de listas. Podría arreglármelas con cajas irrompibles pero no con cajas rompibles, como lo muestran los siguientes MCE.

De ahí la pregunta: ¿cómo desplazar horizontalmente un frágil tcolorbox?

\documentclass{article}
\usepackage{showframe}
\usepackage{calc}
\usepackage{lipsum}
\usepackage{tcolorbox}

\tcbuselibrary{breakable}

\newlength{\myshift}

\newtcolorbox{mybox}[1][]{
  text width=\textwidth,
  before={%
    \setlength{\myshift}{\linewidth-\textwidth-5.5mm}%
    \smallskip\par
    \noindent\hspace*{\myshift}%
  },
  #1
}

\newcommand{\test}[1][]{%
  Foo\par
  \begin{mybox}[#1]
    \lipsum[1]
  \end{mybox}
}

\begin{document}
\section{Non-beakable}
\test
\begin{enumerate}
\item \test
\end{enumerate}
\newpage
\section{Beakable}
\test[breakable]
\begin{enumerate}
\item \test[breakable]
\end{enumerate}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta1

Dentro de los entornos de lista, el margen izquierdo total se almacena en dimensión \@totalleftmargin. Por lo tanto, puedes usar enlarge left by=-5.5mm-\@totalleftmarginpara reemplazar before=....

\documentclass{article}
\usepackage{showframe}
\usepackage{calc}
\usepackage{lipsum}
\usepackage{tcolorbox}

\tcbuselibrary{breakable}

\makeatletter
\newtcolorbox{mybox}[1][]{
  text width=\textwidth,
  enlarge left by=-5.5mm-\@totalleftmargin,
  #1
}
\makeatother

\newcommand{\test}[1][]{%
  Foo\par
  \begin{mybox}[#1]
    \lipsum[1]
  \end{mybox}
}

\begin{document}
\section{Non-beakable}
  \test
  \begin{enumerate}
  \item \test
  \end{enumerate}
  \newpage

\section{Beakable}
  \test[breakable]
  \begin{enumerate}
  \item \test[breakable]
  \end{enumerate}
\end{document}

Observación: before=...solo se aplica al primer cuadro en una secuencia de cuadros rotos, consulte la documentación de tcolorbox, sec. 18.1Descripción técnica (de la biblioteca breakable).

información relacionada