tcolorbox o parcolumns no se muestran correctamente para mis recetas

tcolorbox o parcolumns no se muestran correctamente para mis recetas

Actualmente estoy escribiendo una nueva versión de mi libro de recetas en francés (quiero decir, está en francés).

Mi problema es que me gustaría tener recetas parecidas a:

Lo que quiero

Este estilo se compone de dos columnas independientes, cada una de las cuales contiene una estructura similar a un iemize.

Mis necesidades :

  1. las dos columnas deben ser independientes
  2. Debería dividirse justo al final de la página (es decir, debería dividirse como si la columna speudo continuara en la otra página).

1er intento: tcolorbox

El ejemplo anterior utiliza tcolorbor en paralelo. Funciona bien, al igual que la biblioteca ráster de tcolorbox, pero no se rompe al final de la página.

2do intento: parcolumnas

Esto parece funcionar bien para párrafos como los proporcionados por Lipsum, pero parece que tiene algunos problemas con los entornos de estilo itemize. Esto es lo que obtengo con y sin salto de página.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Los problemas son: 1. El espacio para los elementos detallados de la izquierda es demasiado corto. 2. El espacio para los elementos de la derecha es demasiado grande. 3. Espacios adicionales extraños (por encima de la primera enumeración).

Vi una solución en este foro donde se proponía una minipágina para solucionar estos problemas, pero luego sería irrompible :s

Conclusión

Parece que probé diferentes soluciones y ninguna funcionó realmente. Tienes una idea ?

Ex. de trabajo mínimo.

\documentclass{article}
\usepackage{showframe}

%% With tcolorbox

\usepackage[most]{tcolorbox}
\tcbuselibrary{raster}
\tcbuselibrary{breakable, skins}

\tcbset{colback=white,colframe=white, left skip=0pt, right skip=0pt, left=0pt, right=0pt, top=0pt, bottom=0pt, rightrule=0pt, leftrule=0pt, toprule=0pt, bottomrule=0pt, sharp corners,  breakable}

\newcommand\itemlist{
    \subsection{Ingredients}
    \begin{itemize}
      \item Element 1
      \item Element 2
      \item Element 3
      \item Element that is quite long
      \item Some nice cheeze
    \end{itemize}
}

\newcommand\enumlist{
    \subsection{Preparation}
    \begin{itemize}
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
    \end{itemize}
}

\newcommand\recipe{
\section{tcolorbox Lipsum}

\begin{tcolorbox}[sidebyside,lefthand width=3cm, sidebyside align=top seam, breakable]
  \itemlist
\tcblower
  \enumlist
\end{tcolorbox}

}

%% With parcolumns
\usepackage{parcolumns}

\newcommand\recipebis{
    \section{parcolumns Lipsum}

    \begin{parcolumns}[colwidths={1=3cm}, distance=3em]{2}
        \colchunk[1]{\itemlist}
        \colchunk[2]{\enumlist}
        \colplacechunks
    \end{parcolumns}
}

\begin{document}

% A test
\section{Test}
\itemlist
\enumlist

% With tcolorbox
\newpage
\recipe
\recipe
\rule{5cm}{1cm}
\recipe

% With parcolumns
\newpage
\recipebis
\recipebis
\recipebis
\rule{1cm}{1cm}
\recipebis
\recipebis

\end{document}

Respuesta1

Puedes probar con paracolel paquete. Rompe columnas de forma independiente y parece respetar itemizelas distancias. Y si encuentra problemas para justificar columnas estrechas, puede combinarlo con un blankertcolorbox como se muestra.aquí

\documentclass{article}
\usepackage{showframe}
\usepackage{paracol}

\newcommand\itemlist{
    \subsection{Ingredients}
    \begin{itemize}
      \item Element 1
      \item Element 2
      \item Element 3
      \item Element 1
      \item Element 2
      \item Element 3
      \item Element 1
      \item Element 2
      \item Element 3
      \item Element 1
      \item Element 2
      \item Element 3
      \item Element 1
      \item Element 2
      \item Element 3
      \item Element 1
      \item Element 2
      \item Element 3
      \item Element 1
      \item Element 2
      \item Element 3
      \item Element that is quite long
      \item Some nice cheeze
    \end{itemize}
}

\newcommand\enumlist{
    \subsection{Preparation}
    \begin{itemize}
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
      \item Preparation 1
      \item Preparation 2
      \item Preparation 3
      \item Preparation that is quite long
      \item Some nice cheeze at the end.
    \end{itemize}
}

\newcommand\recipeparacol{
}

\begin{document}
    \setcolumnwidth{3cm, 7cm}
    \setlength{\columnsep}{3em}

    \section{paracol Lipsum}
    \begin{paracol}{2}
        \itemlist
        \switchcolumn
        \enumlist
    \end{paracol}

\end{document}

ingrese la descripción de la imagen aquí

información relacionada