Seite 1 von 1

.

Verfasst: So 12. Mai 2013, 18:31
von ChristophW
.

Verfasst: Mo 13. Mai 2013, 10:20
von Noch so einer
Und was soll passieren, wenn ein Item nicht mehr vollständig auf die Seite passt? Einzig sinnvoll Lösung wäre IMHO eigentlich, dass dann das gesamte Paar auf die nächste Seite umbrochen wird, denn sonst blickt da am Seitenanfang niemand mehr durch. Dann ist das auch relativ leicht zu realisieren:
\usepackage{lipsum}% Zu Demozwecken
\usepackage{multicol}
\usepackage{enumitem}% Wegen series und resume
\usepackage{parskip}% Für den Abstand (bei scrartcl wäre stattdessen Option
                    % parskip=full- eine gute Möglichkeit, die per
                    % \KOMAoptions auch lokal genutzt werden könnte).

\begin{document}
\begin{minipage}{\textwidth}%
\begin{multicols}{2}
  \begin{enumerate}[series=multicols]
  \item \lipsum[1]
    \columnbreak
  \item \lipsum[2]
  \end{enumerate}
\end{multicols}
\end{minipage}

\begin{minipage}{\textwidth}%
\begin{multicols}{2}
  \begin{enumerate}[resume=multicols]
  \item \lipsum[3]
    \columnbreak
  \item \lipsum[4]
  \end{enumerate}
\end{multicols}
\end{minipage}

\begin{minipage}{\textwidth}%
\begin{multicols}{2}
  \begin{enumerate}[resume=multicols]
  \item \lipsum[5]
    \columnbreak
  \item \lipsum[6]
  \end{enumerate}
\end{multicols}
\end{minipage}

\begin{minipage}{\textwidth}%
\begin{multicols}{2}
  \begin{enumerate}[resume=multicols]
  \item \lipsum[7]
    \columnbreak
  \item \lipsum[8]
  \end{enumerate}
\end{multicols}
\end{minipage}
\end{document}
Im Prinzip könnte man auch ohne multicols nur mit minipage-Umgebungen arbeiten. Dann hätte man eben jedes item in einer eigenen Umgebung. Sinnvoller Weise würde man das dann besser mit einem Befehl regeln:
\documentclass{article}
\usepackage{lipsum}% Zu Demozwecken
\usepackage{enumitem}% Wegen series und resume

\newcounter{currentcolumn}
\newenvironment{colenumerate}{%
  \par\smallskip
  \setcounter{currentcolumn}{0}%
  \newcommand{\colitem}[1]{%
    \ifnum \value{currentcolumn}=0
      \noindent\begin{minipage}[t]{.5\textwidth}
        \begin{enumerate}[series=multicols]
          \item ##1%
        \end{enumerate}
      \end{minipage}%
      \setcounter{currentcolumn}{2}%
    \else
      \ifnum \value{currentcolumn}=1 \noindent\fi
      \begin{minipage}[t]{.5\textwidth}
        \begin{enumerate}[resume=multicols]
          \item ##1%
        \end{enumerate}
      \end{minipage}%
      \ifnum \value{currentcolumn}=2
        \par\bigskip
        \setcounter{currentcolumn}{1}%
      \else
        \setcounter{currentcolumn}{2}%
      \fi
    \fi
    \ignorespaces
  }%
}{%
  \ifhmode \par\bigskip\fi
}
\begin{document}
\lipsum[1]
\begin{colenumerate}
\colitem{\lipsum[2]}
\colitem{\lipsum[3]}
\colitem{\lipsum[4]}
\colitem{\lipsum[5]}
\colitem{\lipsum[6]}
\colitem{\lipsum[7]}
\colitem{\lipsum[8]}
\end{colenumerate}
\lipsum[9]
\end{document}
Wichtig: Im Unterschied zu \item wird bei \colitem der Text als Argument angegeben!

Im Beispiel habe ich eine ungerade Anzahl an Items verwendet, um zu demonstrieren, dass auch das geht und vor und hinter der Umgebung noch normalen Text eingefügt.

Verfasst: Mo 13. Mai 2013, 14:26
von ChristophW
.

Verfasst: Mo 13. Mai 2013, 14:46
von Besserwisser
Das wird nicht funktionieren, da \columnbreak nur zwischen den beiden Items verwendet werden darf. Ansonsten: Statt enumerate umzudefinieren, wäre es sinnvoller eine eigene Umgebung zu definieren. Aber auch dann hast Du das Problem mit \columnbreak. Also landest Du früher oder später wieder bei der zweiten Lösung …

Verfasst: Mo 13. Mai 2013, 15:01
von ChristophW
.

Verfasst: Mo 13. Mai 2013, 17:18
von Noch so einer
Für LyX muss man doch irgendwie neue Umgebungen und Befehle definieren können. Vermutlich muss man sich dafür mit der Syntax der LyX-Style-Dateien beschäftigen. Als Ausgangspunkt könnte man beispielsweise stdlyxlist.inc verwenden. Das ist ebenfalls eine Definition einer neuen Listen-Umgebung für LyX.

Ansonsten musst Du selbst sehen, wie Du meine Lösung weiter ausbaust. Ich kenne mich mit LyX nicht aus und verspüre kein Interesse, nur wegen dieser Nebenbedingung zusätzliche Arbeit zu investieren. Sorry, aber das ist nicht meine Baustelle.

Verfasst: Mo 13. Mai 2013, 17:33
von ChristophW
.

Verfasst: Mo 13. Mai 2013, 18:09
von ChristophW
.

Verfasst: Mo 13. Mai 2013, 19:51
von Noch so einer
Weil eine LaTeX-Umgebung immer auch eine Gruppe ist, gehen Änderungen innerhalb der Umgebung (und dazu gehört auch der \begin-Code und der \end-Code) mit dem Ende der Umgebung verloren. Man kann das zwar auch durchbrechen, aber das Beispiel sieht ohnehin nach ganz üblem gehacke aus. Das will keinesfalls unterstützen, weil es garantiert bei nächster Gelegenheit jemandem um die Ohren fliegt. Im Beispiel wäre es beispielsweise sinnvoller, \item innerhalb des \begin-Codes von enumerate leer zu definieren. Das wäre dann nach der Umgebung automatisch wieder auf die Originaldefinition zurück gestellt.

BTW: Du verwendest den Status Rückfrage falsch!