2009-04-06 3 views
29

Я включаю таблицу в свой документ LaTeX, и центрирование отлично работает, если таблица не шире, чем текстовый столбец над ней, но когда таблица шире, левая сторона таблицы прикрепляется к левой стороне текстового столбца, а дополнительная ширина таблицы находится в правой части страницы, как я могу центрировать таблицу?Центрирование таблицы шире текстового столбца

ответ

1

Вы используете многоколоночный документ? Я так, рассмотрим вариант среды table*.

В одной среде колонке ваши варианты бежать:

  • Увеличение textwidth. Но маржа по умолчанию была выбрана по добрым эргономическим причинам, поэтому это должно быть обескуражено за минимальную настройку.
  • Уменьшите размер текста в таблице (то есть \small или даже \footnotesize внутри среды tabular). Опять же, это менее оптимально.
  • Используйте rotating package, как предложено в the link Stephan202 gave. Я использовал это для пары очень больших таблиц в моей диссертации (только с настройками позиционирования p), и это получилось очень красиво.
31

Я бы порекомендовал попробовать пакет chngpage.

\documentclass{article} 

% allows for temporary adjustment of side margins 
\usepackage{chngpage} 

% provides filler text 
\usepackage{lipsum} 

% just makes the table prettier (see \toprule, \bottomrule, etc. commands below) 
\usepackage{booktabs} 

\begin{document} 

\lipsum[1]% just a paragraph of filler text 

\medskip% adds some space before the table 
\begin{adjustwidth}{-1in}{-1in}% adjust the L and R margins by 1 inch 
    \begin{tabular}{ll} 
    \toprule 
    Sequence & Wide column \\ 
    \midrule 
    First & Vestibulum porta ultricies felis. In nec mi. \\ 
    Second & Nam vestibulum auctor nibh. In eleifend, 
    lacus id tristique ullamcorper, mauris urna convallis elit. \\ 
    Third & Ut luctus nisi quam lobortis magna. Aenean sit amet odio 
    et sapien rutrum lobortis. \\ 
    Fourth & Integer dictum accumsan purus. Nullam erat ligula, 
    dictum sed, feugiat nec, faucibus id, ipsum. \\ 
    \bottomrule 
    \end{tabular} 
\end{adjustwidth} 
\medskip% adds some space after the table 

\noindent\lipsum[2]% just a paragraph of filler text 

\end{document} 

документация для chngpage пакета находится в нижней части файла chngpage.sty. Я вытащил документы для adjustwidth среды:

В пределах adjustwidth среды левый и правый края могут быть скорректированы . Среда занимает один необязательный аргумент и два обязательных аргумента длина:

\begin{adjustwidth}[]{leftmargin}{rightmargin}

A positive length value will increase the relevant margin 

(укорочения текстовые строки) в то время как отрицательное значение длины будет уменьшаться запас (удлиняя строк текста). Аргумент пустой длины означает, что нет изменить на полях. В конце окружающей среды поля возвращаются к их исходным значениям.

Например, чтобы расширить текст в правом поле:

\begin{adjustwidth}{}{-8em}

Любое появление дополнительного аргумента (даже просто []) заставит значения маржи для переключения между нечетные и четные страницы.

Если документ создается twosided это может быть выгодно иметь любой широкий текст, проходящий в внешнего края.Это может быть сделано с помощью дополнительный аргумент, как:

\begin{adjustwidth}[]{}{-8em}

Чтобы скорректированный текст горизонтально по центру относительно любого окружающего текста, поля должны быть отрегулированы одинаково:

\begin{adjustwidth}{-4em}{-4em}

+2

Отличный ответ. Одно предостережение: вам лучше использовать новый пакет «changepage», который почти идентичен, но использует тот же интерфейс, что и класс memoir. Все тот же автор. –

+0

Будет, это правда. Но так как пакет 'changepage' является настолько новым, я использовал здесь пакет' chngpage', так как он поставляется со всеми дистрибутивами LaTeX. Для Zequj синтаксис для среды 'adjustwidth' немного меняется между пакетами' chngpage' и 'changepage'. – godbyk

+1

Должна ли эта работа работать с длинными столами? – Johnus

13

Если вы используете float \ table, необходимо установить \ begin {adjustwidth} ... \ end {adjustwidth} внутри него.

2

Важно, чтобы добавить, в цифрах, эта цифра среда должна содержать adjustwidth окр .. Кроме того, caption должны быть оставлены за пределами этой среды для приведения в соответствие с общей шириной фигуры:

latex \begin{figure}[h] \begin{adjustwidth}{-1in}{-1in}% adjust the L and R margins by 1 inch \centering \includegraphics[scale=0.44]{res/sth.png} \end{adjustwidth} \caption{sth} \label{fig:sth} \end{figure}

6

Latex: Стол для центрирования больше, чем ширина текста

Обычно вы можете центрировать столы с \ центром. Но когда таблица длиннее \ textwidth, она будет выравниваться с левым боковым полем. Вы можете временно изменить ширину текста.

% allows for temporary adjustment of side margins 
\usepackage{chngpage} 

\begin{table} 
    \begin{adjustwidth}{-.5in}{-.5in} 
     \begin{center} 
     \begin{tabular}{|c|} 
      \hline 
And here comes a very long line. And here comes a very long line. And here comes a very long line. \\ 
      \hline 
     \end{tabular} 

     \caption{This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. And its caption is really long, too. This Table is longer than the text width. } 
     \label{myTable} 
     \end{center} 
    \end{adjustwidth} 
\end{table} 
+2

Включая внешнюю ссылку на хорошо документированный источник, мы ценим здесь, когда Stack Overflow, но важно включить в свой ответ наиболее важные/релевантные фрагменты из внешнего источника и дать контекст, как ответить на вопрос, потому что если эта ссылка идет мертвый (сервер идет вниз и т. д.), тогда ваш ответ становится бесполезным. – mbinette

Смежные вопросы