我編譯的整個程式碼,以下是一些頁面。
奇數頁 偶數頁
我的問題是,長表不會在偶數頁開始。我想要的,添加到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}
aroundlongtable
不會影響對齊,它只會增加虛假的垂直空間。
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
。因此,您可能需要修正 package 的選項值geometry
。
桌子太寬
由於表格太寬,請參閱 Davids 的回答,需要減小列寬。tabularx
帶有列的包X
可用於適合一頁的表格。還有一些包處理longtable
with的並集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}