5

I'm currently writting a new version of my French recipe book (I mean, that's in French).

My problem is I'd like to have recipes looking like:

What I want

This style is composed of two independent columns each containing a iemize-like structure.

My needs :

  1. the two columns should be independent
  2. It should break right at the end of the page (i.e. it should break as if the speudo-column went on on the other page).

1st try: tcolorbox

The above example uses sidebyside tcolorbor. It works well, as do the raster library of tcolorbox, but it does not break at the end of the page.

2nd try: parcolumns

This seems to work well for paragraphs such as given by lipsum, but is seems it has some problems with itemize-style environments. Here is what I get with and without page break.

enter image description here

enter image description here

The problems are: 1. The left itemize items space is too short 2. The space for right items is too large 3. Strange additional spaces (above the first enumerate).

I saw a solution in this forum where a minipage was proposed to solve these problems, but it would then be unbrakable :s

Conclusion

It seems I tried the different solutions and none really worked. Do you have an idea ?

Minimal Working Ex.

\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}

5
  • Nice recipe ! I can almost see what you want, except for "It should break right at the end of the page (i.e. it should break as if the speudo-column went on on the other page)."
    – BambOo
    Mar 19 '20 at 14:58
  • Unrelated: the recipe would be better using rye flour.
    – Bernard
    Mar 19 '20 at 15:00
  • Do you know xcookybooky? I've never used, but it says it allows recipies longer than one page.
    – Ignasi
    Mar 19 '20 at 17:51
  • Please put your project here when it's finished: tex.stackexchange.com/questions/1319/… Mar 19 '20 at 19:10
  • I create my own documentclass because it should be really easy to modify (using markdown) and I want it compact. So I won't use xcookybooky. It would be a pleasure to put it at the link you proposed Dr. Manuel, but I'm not the creator of this style (which is not the final one, by the way). It was inspired by overleaf.com/latex/examples/… Mar 20 '20 at 14:49
2

You can try with paracol package. It breaks columns in an independent way and it seems to respect itemize distances. And if you find problems with justifying narrow columns you can combine it with a blanker tcolorbox as it's shown here

\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}

enter image description here

1
  • That's perfect. Thanks a lot ! paracol was enough. Mar 20 '20 at 14:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.