我正在编写一个文档,其中长而宽的表格溢出了双面文档类中的边距区域。我正在使用马可·丹尼尔的fullwidth
包裹。
使用longtable
(甚至longtabu
) 表格可以正确“超出”边距,但标题和页脚意外消失。这是 MWE:
\documentclass[twoside,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage[inner=1in, width=345pt]{geometry}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}
\usepackage{fullwidth}
\newlength{\tablewidth}
\setlength{\tablewidth}{\textwidth}
\addtolength{\tablewidth}{1in}
\begin{document}
\lipsum[1-2]
\begin{fullwidth}[outermargin=-1in]
\begin{longtable}{p{0.5\tablewidth}p{0.5\tablewidth}}
\toprule
Loren & Ipsum\\
\midrule
\endhead
\lipsum[1] & \lipsum[2]\\ \midrule
\lipsum[3] & \lipsum[4]\\ \midrule
\lipsum[5] & \lipsum[6]\\
\bottomrule
\end{longtable}
\end{fullwidth}
\lipsum[5]
\begin{longtable}{p{0.5\tablewidth}p{0.5\tablewidth}}
\toprule
This & Works\\
\midrule
\endhead
\lipsum[1] & \lipsum[2]\\ \midrule
\lipsum[3] & \lipsum[4]\\ \midrule
\lipsum[5] & \lipsum[6]\\
\bottomrule
\end{longtable}
\end{document}
我也尝试过 Marco 的mdframded
解决方案这里,但标题仍然没有出现。
有任何想法吗?
提前致谢。
答案1
这是一个解决方案。我们不使用fullwidth
包,因为它在这里什么也做不了。
我们的想法是修补\LT@output
命令(使用的特殊输出longtable
),我们将表移动到左边,实际上我们只需要对偶数页执行此操作,但我们也可以对奇数页执行此操作。
\documentclass[twoside,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage[inner=1in, width=345pt]{geometry}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}
\newlength{\tablewidth}
\setlength{\tablewidth}{\textwidth}
\addtolength{\tablewidth}{1in}
%%--------------------------
\usepackage{etoolbox}
\newcommand{\LTemove}{1in}% move longtable in even pages
\newcommand{\LTomove}{0in}% move longtable in odd pages
\makeatletter
\patchcmd{\LT@output}%
{\global\vsize\@colht}%
{\global\vsize\@colht%
\ifodd\c@page\moveleft\LTomove\else\moveleft\LTemove\fi}{}{}
\patchcmd{\LT@output}%
{\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}}%
{\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
\setbox\@cclv\vbox{\ifodd\c@page\moveleft\LTomove\else\moveleft\LTemove\fi\box\@cclv}}{}{}
\makeatother
%%------------
\begin{document}
\lipsum[1-2]
\begin{longtable}{p{0.5\dimexpr\tablewidth-4\tabcolsep\relax}p{0.5\dimexpr\tablewidth-4\tabcolsep\relax}}
\toprule
Loren & Ipsum\\
\midrule
\endhead
\lipsum[1] & \lipsum[2]\\ \midrule
\lipsum[3] & \lipsum[4]\\ \midrule
\lipsum[5] & \lipsum[6]\\
\bottomrule
\end{longtable}
\lipsum[5]
\begin{longtable}{p{0.5\dimexpr\tablewidth-4\tabcolsep\relax}p{0.5\dimexpr\tablewidth-4\tabcolsep\relax}}
\toprule
This & Works\\
\midrule
\endhead
\lipsum[1] & \lipsum[2]\\ \midrule
\lipsum[3] & \lipsum[4]\\ \midrule
\lipsum[5] & \lipsum[6]\\
\bottomrule
\end{longtable}
\end{document}