私のコード全体をコンパイルしたページの一部を以下に示します。
奇数ページ 偶数ページ
私の問題は、長い表が偶数ページで左から開始されないことです。私が望んでいるのは、 と を追加すること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
の結合を扱うパッケージもいくつかあり、ここで使用できます。longtable
tabularx
以下の例では最大幅を計算します。テーブル ヘッダーの指定は非常に簡単です。
各列は、スペースの左側と右側に配置されます\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}