Das sind meine gesamten Codes, zusammengestellt auf einigen Seiten weiter unten.
ungerade Seite gerade Seite
Mein Problem, die Longtable startet bei geraden Seiten nicht links. Das will ich, füge das marginparwidth
und hinzu marginparsep
.
Hier die Seite, die ich will.
Hier das MWE
\documentclass[a4paper,twoside,openright,12pt]{book}
\usepackage[left=1.5cm,right=1cm,top=3cm,bottom=1.5cm,marginparwidth=5.5cm,marginparsep=1cm,outer=8cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{longtable}
\usepackage{showframe}
\usepackage{lipsum}
\begin{document}
\lipsum[1-3]
\begin{longtable}[l]{|p{7cm}|p{7cm}|}
\hline
The power delivered at each instant, of course, varies with the
magnitude of the sinusoidal ac current & The power delivered at each instant, of course, varies with the magnitude of the sinusoidal ac current\\
\hline
\end{longtable}
\end{document}
Ich denke, das ist so...
\checkoddpage
\ifoddpage
START -(\marginparsep+\marginparwidth)
\else
NOTHING DO
\fi
Was soll ich machen?
Antwort1
\begin{center}
herum longtable
hat keinen Einfluss auf die Ausrichtung, es fügt nur unnötigen vertikalen Raum hinzu.
longtable
ist standardmäßig zentriert, aber wenn Sie eine Ausrichtung linksbündig wünschen, können Sie
\begin{longtable}[l]
aber man kann es überhaupt nicht ausrichten, da es viel zu breit ist
Overfull \hbox (95.13185pt too wide) in alignment at lines 16--21
Sie haben keinen Platz für zwei 7cm Säulen,
{|p{7cm}|p{7cm}|}
machen diese 5cm
Antwort2
Auf geraden Seiten links beginnend
Package showframe
visualisiert sehr gut, warum die Tabelle auf geraden Seiten ziemlich eingerückt beginnt. Wie man sieht, wird auch die Kopfzeile verschoben und der linke Platz wird von einer ziemlich großen "marginpar"-Spalte mit width eingenommen 5.5cm
. Daher sollten Sie die Optionswerte für package korrigieren geometry
.
Zu breiter Tisch
Da die Tabelle zu breit ist, siehe DavidsAntwortmüssen die Spaltenbreiten reduziert werden. Das Paket tabularx
mit seinen X
Spalten kann für Tabellen verwendet werden, die auf eine Seite passen. Es gibt auch einige Pakete, die sich mit der Vereinigung von longtable
mit befassen tabularx
, die hier verwendet werden können.
Das folgende Beispiel berechnet die maximale Breite. Die Angabe des Tabellenkopfs ist recht einfach.
Jede Spalte erhält links und rechts den Platz \tabcolsep
(sofern sie nicht in der Tabellenspezifikation überschrieben wurde). Wenn ein Paket array
geladen wird, dann trägt auch das Regelwerk zum Platz bei. Achtung, Pakete array
werden oft von anderen Paketen geladen. Deshalb implementiert das Beispiel am Ende der Präambel einen Test für das Paket.
Die Berechnung kann auf viele verschiedene Arten erfolgen. Beispiele sind Paket calc
, e-TeX's \dimexpr
, Paket pgfmath
. Das Beispiel beschränkt sich auf die grundlegenden LaTeX-Befehle \setlength
und \addtolength
.
\documentclass[a4paper,twoside,openright,12pt]{book}
\usepackage[
left=1.5cm,
right=1cm,
top=3cm,
bottom=1.5cm,
marginparwidth=5.5cm,
marginparsep=1cm,
outer=8cm
]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{array}
\usepackage{longtable}
\usepackage{showframe}
\usepackage{lipsum}
\newdimen\TabColWidth
\makeatletter
\newif\ifPackageArray
\AtBeginDocument{\@ifpackageloaded{array}{\PackageArraytrue}{}}
\makeatother
\begin{document}
\lipsum[1-3]
\setlength{\TabColWidth}{\linewidth}
\addtolength{\TabColWidth}{-4\tabcolsep}
\ifPackageArray
\addtolength{\TabColWidth}{-3\arrayrulewidth}
\fi
\setlength{\TabColWidth}{.5\TabColWidth}
\begin{longtable}[l]{|p{\TabColWidth}|p{\TabColWidth}|}
\hline
The power delivered at each instant, of course, varies with the
magnitude of the sinusoidal ac current & The power delivered at each
instant, of course, varies with the magnitude of the sinusoidal ac current\\
\hline
\end{longtable}
\end{document}