偶数ページで左から開始

偶数ページで左から開始

私のコード全体をコンパイルしたページの一部を以下に示します。

奇数ページ ここに画像の説明を入力してください 偶数ページ ここに画像の説明を入力してください

私の問題は、長い表が偶数ページで左から開始されないことです。私が望んでいるのは、 と を追加することmarginparwidthですmarginparsep

ここに私が欲しいページがあります。 ここに画像の説明を入力してください

ここで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}

私はこう考えています...

\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

7cmの柱を2本置くスペースはありません。

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

5cmにする

答え2

偶数ページで左から開始

パッケージshowframeの視覚化は非常に優れていますが、偶数ページではテーブルがインデントされた状態で開始されます。 ご覧のとおり、見出し行も移動され、左側のスペースは幅 の非常に大きな「marginpar」列で占められています5.5cm。 したがって、パッケージのオプション値を修正することをお勧めしますgeometry

テーブルが広すぎる

表が広すぎるので、Davidsの答えの場合、列幅を狭める必要があります。tabularxの列を含むパッケージは、1 ページに収まるテーブルに使用できます。とXの結合を扱うパッケージもいくつかあり、ここで使用できます。longtabletabularx

以下の例では最大幅を計算します。テーブル ヘッダーの指定は非常に簡単です。

各列は、スペースの左側と右側に配置されます\tabcolsep(テーブル仕様で上書きされない限り)。パッケージarrayがロードされると、ルールもスペースに寄与します。注意: パッケージarrayは他のパッケージによってロードされることがよくあります。したがって、例では、プリアンブルの最後にパッケージのテストを実装しています。

計算はさまざまな方法で行うことができます。例としては、パッケージcalc、e-TeX の\dimexpr、パッケージ などがあります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}

結果

関連情報