Начиная слева на четных страницах

Начиная слева на четных страницах

Вот все мои коды скомпилированы, некоторые страницы ниже.

нечетная страница введите описание изображения здесь четная страница введите описание изображения здесь

Моя проблема, длинная таблица не начинается слева на четных страницах. Это я хочу, добавить к marginparwidthи marginparsep.

Вот четная страница, то что я хочу. введите описание изображения здесь

Здесь МВЭ

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

Я думаю об этом так...

\checkoddpage
\ifoddpage
START -(\marginparsep+\marginparwidth)
\else
NOTHING DO
\fi

Что я должен делать?

решение1

\begin{center}around longtableне влияет на выравнивание, а просто добавляет лишнее вертикальное пространство.

longtableпо умолчанию выравнивается по центру, но если вам нужно выравнивание по левому краю, вы можете использовать

\begin{longtable}[l]

но вы не можете выровнять его вообще, так как он слишком широкий

Overfull \hbox (95.13185pt too wide) in alignment at lines 16--21

У вас нет места для двух 7-сантиметровых колонок,

 {|p{7cm}|p{7cm}|}

сделайте эти 5 см

решение2

Начиная слева на четных страницах

Пакет showframeвизуализирует очень хорошо, почему таблица начинается с отступа на четных страницах. Как можно видеть, строка заголовка также смещена, а левое пространство занято довольно большим столбцом "marginpar" с шириной 5.5cm. Поэтому вы можете захотеть исправить значения опций для пакета geometry.

Слишком широкий стол

Так как таблица слишком широкая, см. Davids'sотвечать, ширину столбцов нужно уменьшить. Пакет tabularxсо своими Xстолбцами можно использовать для таблиц, которые помещаются на одной странице. Также есть некоторые пакеты, которые имеют дело с объединением longtableс tabularx, которые можно использовать здесь.

Пример ниже вычисляет максимальную ширину. Спецификация заголовка таблицы достаточно проста.

Каждый столбец попадает на левую и правую сторону пространства \tabcolsep(если не перезаписано в спецификации таблицы). Если пакет arrayзагружен, то правила также вносят вклад в пространство. Внимание, пакет arrayчасто загружается другими пакетами. Поэтому пример реализует тест для пакета в конце преамбулы.

Расчет может быть выполнен многими различными способами. Примерами являются package calc, e-TeX's \dimexpr, package pgfmath. Пример ограничивается основными командами LaTeX \setlengthи \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}

Результат

Связанный контент