Começando à esquerda nas páginas pares

Começando à esquerda nas páginas pares

Que todos os meus códigos foram compilados, algumas páginas estão abaixo.

página insira a descrição da imagem aqui ímpar página par insira a descrição da imagem aqui

Meu problema, a tabela longa não começa à esquerda nas páginas pares. O que eu quero, adicione ao marginparwidthe marginparsep.

Aqui a página par o que eu quero. insira a descrição da imagem aqui

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 longtablenã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 showframevisualiza 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 tabularxcom suas Xcolunas pode ser usado para tabelas que cabem em uma página. Existem também alguns pacotes, que tratam da união de longtablewith 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 arrayfor 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 \setlengthe \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}

Resultado

informação relacionada