我编译了全部代码,部分页面如下。
奇数页 偶数页
我的问题是,长表无法从偶数页左侧开始。我想要的是,将其添加到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
。因此,您可能需要更正包装的选项值geometry
。
桌子太宽
由于表格太宽,请参阅 Davids 的回答,列宽需要减小。tabularx
带有其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}