В настоящее время я пишу новую версию своей французской кулинарной книги (я имею в виду, на французском языке).
Моя проблема в том, что я хотел бы, чтобы рецепты выглядели примерно так:
Этот стиль состоит из двух независимых столбцов, каждый из которых содержит структуру, подобную иэмизе.
Мои потребности :
- два столбца должны быть независимыми
- Он должен прерываться прямо в конце страницы (т.е. он должен прерываться так, как будто спейдо-колонка продолжается на другой странице).
1-я попытка: tcolorbox
В примере выше используется sidebyside tcolorbor. Он работает хорошо, как и растровая библиотека tcolorbox, но не обрывается в конце страницы.
2-я попытка: parcolumns
Кажется, это хорошо работает для абзацев, таких как задано Lipsum, но, похоже, у него есть некоторые проблемы с окружениями в стиле itemize. Вот что я получаю с разрывом страницы и без него.
Проблемы следующие: 1. Пространство для элементов левого перечня слишком мало. 2. Пространство для элементов правого перечня слишком велико. 3. Странные дополнительные пробелы (над первым перечислением).
Я видел решение на этом форуме, где предлагалось создать мини-страницу для решения этих проблем, но тогда ее было бы невозможно тормозить :с
Заключение
Кажется, я пробовал разные решения, но ни одно из них не сработало. Есть идея?
Минимальный рабочий образец.
\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}
решение1
Вы можете попробовать с paracol
пакетом. Он разбивает столбцы независимо и, кажется, учитывает itemize
расстояния. И если у вас возникнут проблемы с выравниванием узких столбцов, вы можете объединить его с blanker
tcolorbox, как показаноздесь
\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}