Seite 1 von 2

Tabular: Geht über Seitenrand hinaus

Verfasst: Di 14. Jul 2015, 13:07
von Achim
Hallo zusammen,

ich bin noch relativ neu in LaTeX und schon allein die Problemformulierung bereitet mir leider etwas Schwierigkeiten. Ich bitte euch deshalb, etwas Nachsicht bei mir walten zu lassen :?

Ich schreibe gerade meine Masterarbeit und brauche da sehr viele Formeln und Gleichungen. Zu dem Zweck nutze ich folgende Vereinfachung, um alle Zeilen gleich auszurichten:
\newenvironment{derivation}
	{\vspace{8pt}\begin{tabular}[b]{p{0.3cm} p{0.2cm} p{15cm}}}
	{\end{tabular}\vspace{8pt}}
Als Veranschauling - das erzeugt mir dann solche Ausgaben (ohne Trennstriche):

(Schrittnummer) | = | [Gleichung]

Leider macht das mehrere Probleme:
1. Für untenstehendes Dokument ist die letzte Zeile über den Seitenrand hinausgerutscht
2. Es gibt immer einen Seitenumbruch, wenn das Environment über die vorherige Seite hinausgeht, siehe Seite 3/4

Habt ihr eine Idee, wie ich das bessermachen könnte?

Vielen Dank schonmal im Voraus!
%Das ist mein Dokument
\documentclass[a4paper, 12pt]{article}

\usepackage{array}
\usepackage{fixltx2e}
\usepackage[top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{stmaryrd}		% for evaluation brackets
\usepackage{qtree}			% for tree design
\usepackage{lscape} 		%for landscape mode
\usepackage{setspace}		% line spacing
\usepackage[normalem]{ulem} % striking through words

\newcommand{\evalleft}{\llbracket}
\newcommand{\evalright}{\rrbracket}
\newcommand{\variable}[2]{#1\textsubscript{#2}}
\newcommand{\var}[2]{#1\textsubscript{#2}}
\newcommand{\step}[1]{-- #1}

\newenvironment{derivation}
	{\vspace{8pt}\begin{tabular}[b]{p{0.3cm} p{0.2cm} p{15cm}}}
	{\end{tabular}\vspace{8pt}}

\newenvironment{evaluation}
	{$\evalleft$}
	{$\evalright$}

\newcommand{\derstart}[1]{\\ \\ (#1) &	$=$	&}

\newcommand{\type}[1]{$<$#1$>$}
\newcommand{\example}[1]{(#1)}

%================================================%

\begin{document}
\onehalfspacing

\begin{derivation}
	\derstart{1} $\evalleft$$R$$\evalright$ (\var{w}{0}) \& $\evalleft$Sim \var{w}{0} 2 f I \var{w}{2} be f you \var{w}{2}$\evalright$ \step{lexical entry for R}
	\derstart{2} [$\lambda$\variable{w}{a}.[$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{a}]] (\var{w}{0}) \& $\evalleft$Sim \var{w}{0} 2 f I \var{w}{2} be f you \var{w}{2}$\evalright$ \step{via variable assignment function}
	\derstart{3} [$\lambda$\variable{w}{a}.[$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{a}]] (\var{w}{0}) \& $\evalleft$Sim \var{w}{0} 2 \var{speaker}{w2} be \var{hearer}{w2}$\evalright$ \step{via lambda conversion}
	\derstart{4} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& $\evalleft$Sim \var{w}{0} 2 \var{speaker}{w2} be \var{hearer}{w2}$\evalright$ \step{lexical entry for Sim}
	\derstart{5} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& [$\lambda$w.[$\lambda$p.[$\lambda$w'.w'$\in$p \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',w) $<$ dist(w'', w)] ]]] (\var{w}{0}) ($\evalleft$2 \var{speaker}{w2} be \var{hearer}{w2}$\evalright$)) \step{via lambda conversion}
	\derstart{6} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& [$\lambda$p.[$\lambda$w'.w'$\in$p \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',\var{w}{0}) $<$ dist(w'', \var{w}{0})] ]] ($\evalleft$2 \var{speaker}{w2} be \var{hearer}{w2}$\evalright$)) \step{via lambda abstraction}
	\derstart{7} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& [$\lambda$p.[$\lambda$w'.w'$\in$p \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',\var{w}{0}) $<$ dist(w'', \var{w}{0})] ]] ([$\lambda$\var{w}{2}.$\evalleft$\var{speaker}{w2} be \var{hearer}{w2}$\evalright$]) \step{function application \& lexical entry}
	\derstart{7a} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& [$\lambda$p.[$\lambda$w'.w'$\in$p \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',\var{w}{0}) $<$ dist(w'', \var{w}{0})] ]] ([$\lambda$\var{w}{2}.[$\lambda$x.[$\lambda$y.y is in a contextually relevant sense similar to x]] (\var{hearer}{\var{w}{2}}) (\var{speaker}{\var{w}{2}})]) \step{lexical entry}
	\derstart{7b} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& [$\lambda$p.[$\lambda$w'.w'$\in$p \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',\var{w}{0}) $<$ dist(w'', \var{w}{0})] ]] ([$\lambda$\var{w}{2}.\var{speaker}{\var{w}{2}} is in a contextually relevant sense similar to \var{speaker}{\var{w}{2}}]) \step{$\lambda$-conversion x2}
	\derstart{9} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& [$\lambda$p.[$\lambda$w'.w'$\in$p \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',\var{w}{0}) $<$ dist(w'', \var{w}{0})] ]] ([$\lambda$\var{w}{2}.\var{speaker}{w2} is in a contextually relevant sense similar to \var{hearer}{w2}]) \step{$\lambda$-conversion}
	\derstart{0} [$\lambda$\var{w}{b}.\var{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& \newline
	[$\lambda$w'.	\variable{speaker}{w'} is in a contextually relevant sense similar to \variable{hearer}{w'} \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',\variable{w}{0}) $<$ dist(w'', \variable{w}{0})] ] \step{simplification}
	\derstart{$\alpha$} [$\lambda$w'.w' is compatible with what \var{speaker}{w0} knows in \variable{w}{0} \& \variable{speaker}{w'} is in a contextually relevant sense similar to \variable{hearer}{w'} \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',\variable{w}{0}) $<$ dist(w'', \variable{w}{0})] ]
\end{derivation}

\newpage

\par Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
\par Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
\par Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.


\begin{derivation}
	\derstart{1} $\evalleft$$R$$\evalright$ (\var{w}{0}) \& $\evalleft$Sim \var{w}{0} 2 f I \var{w}{2} be f you \var{w}{2}$\evalright$ \step{lexical entry for R}
	\derstart{2} [$\lambda$\variable{w}{a}.[$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{a}]] (\var{w}{0}) \& $\evalleft$Sim \var{w}{0} 2 f I \var{w}{2} be f you \var{w}{2}$\evalright$ \step{via variable assignment function}
	\derstart{3} [$\lambda$\variable{w}{a}.[$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{a}]] (\var{w}{0}) \& $\evalleft$Sim \var{w}{0} 2 \var{speaker}{w2} be \var{hearer}{w2}$\evalright$ \step{via lambda conversion}
	\derstart{4} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& $\evalleft$Sim \var{w}{0} 2 \var{speaker}{w2} be \var{hearer}{w2}$\evalright$ \step{lexical entry for Sim}
	\derstart{5} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& [$\lambda$w.[$\lambda$p.[$\lambda$w'.w'$\in$p \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',w) $<$ dist(w'', w)] ]]] (\var{w}{0}) ($\evalleft$2 \var{speaker}{w2} be \var{hearer}{w2}$\evalright$)) \step{via lambda conversion}
	\derstart{6} [$\lambda$\variable{w}{b}.\variable{w}{b} is compatible with what \var{speaker}{w0} knows in \variable{w}{0}] \& [$\lambda$p.[$\lambda$w'.w'$\in$p \& $\forall$w''$\in$p, w'' $\neq$ w' [dist(w',\var{w}{0}) $<$ dist(w'', \var{w}{0})] ]] ($\evalleft$2 \var{speaker}{w2} be \var{hearer}{w2}$\evalright$)) \step{via lambda abstraction}
\end{derivation}

\end{document}
%Ende des Dokumentes

Verfasst: Di 14. Jul 2015, 14:51
von Besserwisser
Und warum verwendest du nicht beispielsweise die align-Umgebung des von dir bereits geladenen amsmath-Pakets?

fixltx2e braucht man übrigens seit LaTeX 2015/01/01 nicht mehr.

Verfasst: Di 14. Jul 2015, 14:54
von Achim
align kenne ich noch nicht :) Kannst du mir da vielleicht kurz ein Beispiel schreiben mit drei Spalten?

Ich weiß leider gar nicht mehr, warum ich amsmath geladen hab. Ich hab das nur so aus einem vorherigen file von mir übernommen ;)

Dank schonmal!

PS: Und was heißt eigentlich, dass man das nicht mehr braucht? Muss ich jetzt MikTex updaten, damit es auch ohne funktioniert? Wenn ich es auskommentiere, kompiliert mein file nicht mehr :-/

Verfasst: Di 14. Jul 2015, 14:58
von Besserwisser
Klick auf den Link, den ich dir gegeben habe, wähle dort die Anleitung aus und lies sie. Alternativ: Schau in das TOP-Thema im Mathematik-Forum und wähle dort die erste ausführliche Dokumentation.

Dass du die Umgebung nicht kennst, aber das Paket lädst, lässt mich vermuten, dass du noch mehr von den geladenen Paketen nicht verwendest. Siehe daher: »Minimale Vorlage vs. maximale Probleme«

Verfasst: Di 14. Jul 2015, 15:04
von Achim
Ah, sorry, ich wusste nicht, dass da ein richtiger Link dahinter steckt. Ich dachte, das wäre eine Autokorrektur des Boards, das automatisch Pakete beschreibt.

Ich hab \begin{align} ausprobiert. Das scheint mir aber nur für zwei Argumente nützlich zu sein. Wenn ich drei Sachen habe ...

(1) & = & Hallo Welt\\
(2) & = & Lorem Ipsum

... dann wird das erste & einfach ignoriert :-/

Verfasst: Di 14. Jul 2015, 16:13
von u_fischer
tabular ist eine Box. Da gibt es keinen Seitenumbruch zwischen den Zeilen. Du könntest longtable nehmen, aber für mich sieht das Ganze nach einer Liste aus. Versuche es mal mit
\usepackage{enumitem}
\newenvironment{derivation}
   {\begin{enumerate}[label={\arabic*~=}]}
   {\end{enumerate}}
\newcommand{\derstart}[1]{\item\relax}
(Statt all den \derstart{x} kannst du dann auch einfach \item{} benutzen).

Verfasst: Di 14. Jul 2015, 16:23
von Achim
Oh, hm, das ist ja einfach :D

Kann ich bei bestimmten Zeilen auch irgendwie noch die Beschriftung ändern? Manchmal brauche ich da z.B. ein Alpha in der Klammer statt der nächsten Zahl.

Ansonsten gefällt mir die Lösung gut! Wodurch wird da erreicht, dass es immer untereinander ausgerichtet wird? Ist das das ~ nach \arabic ?

Vielen Dank nochmal!

Verfasst: Mi 15. Jul 2015, 10:56
von Johannes_B
Crosspost zu LaTeX-community

Verfasst: Mi 15. Jul 2015, 10:58
von Achim
Ja, ähm, sorry ...! Die Zeit drängt leider. Ich hätte euch schon informiert, wenn ich eine Lösung gefunden hätte :-/ Ich sitze seit Stunden dran, das Dokument richtig zu formatieren und verzweifle etwas :-(

Verfasst: Mi 15. Jul 2015, 12:48
von u_fischer
Achim hat geschrieben:Oh, hm, das ist ja einfach :D

Kann ich bei bestimmten Zeilen auch irgendwie noch die Beschriftung ändern? Manchmal brauche ich da z.B. ein Alpha in der Klammer statt der nächsten Zahl.
Du kannst das optionale Argument von \item nutzen:

\item[$\alpha$] blalblal

Das \relax hinter \item in meinem Code ist nur da, damit deine [...] nicht plötzlich als Beschriftung angesehen werden.
Wodurch wird da erreicht, dass es immer untereinander ausgerichtet wird? Ist das das ~ nach \arabic ?
Nein, das ist bloß für den Abstand da. Labels von Listen kann man nun mal ausrichten. Eine normale enumerate oder itemize macht es ja auch.