Que todos os meus códigos foram compilados, algumas páginas estão abaixo.
página ímpar página par
Meu problema, a tabela longa não começa à esquerda nas páginas pares. O que eu quero, adicione ao marginparwidth
e marginparsep
.
Aqui a página par o que eu quero.
Aqui o 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}
Estou pensando assim...
\checkoddpage
\ifoddpage
START -(\marginparsep+\marginparwidth)
\else
NOTHING DO
\fi
O que devo fazer?
Responder1
\begin{center}
ao redor longtable
não afeta o alinhamento, apenas adiciona espaço vertical espúrio.
longtable
é centralizado por padrão, mas se você quiser o alinhamento à esquerda, você pode usar
\begin{longtable}[l]
mas você não pode alinhá-lo porque é muito largo
Overfull \hbox (95.13185pt too wide) in alignment at lines 16--21
Você não tem espaço para duas colunas de 7cm,
{|p{7cm}|p{7cm}|}
faça aqueles 5cm
Responder2
Começando à esquerda nas páginas pares
O pacote showframe
visualiza muito bem porque a tabela começa com um recuo nas páginas pares. Como pode ser visto, a linha principal também é movida e o espaço esquerdo é ocupado por uma coluna "marginpar" bastante grande com largura 5.5cm
. Portanto, você pode querer corrigir os valores das opções para package geometry
.
Mesa muito larga
Como a tabela é muito larga, veja a tabela de Davidsresponder, as larguras das colunas precisam ser reduzidas. O pacote tabularx
com suas X
colunas pode ser usado para tabelas que cabem em uma página. Existem também alguns pacotes, que tratam da união de longtable
with tabularx
, que podem ser usados aqui.
O exemplo abaixo calcula a largura máxima. A especificação do cabeçote da mesa é bastante fácil.
Cada coluna fica no lado esquerdo e direito do espaço \tabcolsep
(a menos que seja substituída na especificação da tabela). Se o pacote array
for carregado, as regras também contribuirão para o espaço. Cuidado, o pacote array
é frequentemente carregado por outros pacotes. Portanto o exemplo implementa um teste para o pacote no final do preâmbulo.
O cálculo pode ser feito de muitas maneiras diferentes. Exemplos são pacote calc
, e-TeX's \dimexpr
, pacote pgfmath
. O exemplo se restringe aos comandos básicos do LaTeX \setlength
e \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}