Получение двух таблиц в LaTeX с одинаковой шириной столбца (выравнивание по правому краю)

У меня есть две очень короткие и последовательные секции (для CV), каждая из которых содержит небольшую таблицу:

\section{Work Experience}

\begin{tabular}{r|p{11cm}}
Current & Your job at Your Company, Town \\
Jan 2009 & What your company does \\
& A description of what you do\\
\multicolumn{2}{c}{}\ 
\end{tabular}

\section{Education}

\begin{tabular}{r|p{11cm}}
Slightly wider first column & University, Town \\
Jan 2009 & Thesis subject \\
& A description of what you did\\
\multicolumn{2}{c}{}\ 
\end{tabular}

Итак, каждая таблица имеет два столбца: первая содержит период, выровненный по правому краю. Вторая: дополнительная информация с определенной шириной, верхняя (и левая) выровненная.

Проблема заключается в том, что ширина левого столбца в двух таблицах отличается и не выглядит красивой, так как разделы (поэтому таблицы) являются последовательными и на одной странице. Я не могу дать r ширину, как p:

\begin{tabular}{r{11cm}|p{11cm}}

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

EDIT Спасибо за ответы, все они работают для меня, поэтому я поддержал их всех и принял тот, который понравился мне больше всего (и больше всего понравился), так как у вас нет для указания \hfill в каждой строке. Однако, если вы не хотите использовать пакет массива по какой-либо причине, то другие решения также прекрасны.

Ответы

Ответ 1

Если вы используете пакет array, вы можете поместить \hfill в заголовок следующим образом, поэтому вам не нужно запоминать его (или \parbox) в каждой строке.

\documentclass{article}
\usepackage{multicol}
\usepackage{array}
\begin{document}
\section{Work Experience}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}}
  Current & Your job at Your Company, Town \\
  Jan 2009 & What your company does \\
  & A description of what you do\\
  \multicolumn{2}{c}{} 
\end{tabular}

\section{Education}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}}
  Slightly wider first column & University, Town \\
  Jan 2009 & Thesis subject \\
  & A description of what you did\\
  \multicolumn{2}{c}{} 
\end{tabular}
\end{document}

:

alt text http://www.freeimagehosting.net/uploads/5e29f675e3.jpg

Ответ 2

Здесь вариант ответа @RTBarnard с помощью пакета tabularx:

\documentclass[a4paper,twoside,draft,12pt]{article}
\usepackage{tabularx}
\begin{document}

\section{Work Experience}

\begin{tabularx}{\textwidth}{>{\raggedleft}X|p{8cm}}
Current & Your job at Your Company, Town \\
Jan 2009 & What your company does \\
& A description of what you do\\
\end{tabularx}

\section{Education}

\begin{tabularx}{\textwidth}{>{\raggedleft}X|p{8cm}}
Somewhat wider than first column, 
overflowing into additional lines & University, Town \\
Jan 2009 & Thesis subject \\
& A description of what you did\\
\end{tabularx}
\end{document}

Примечания:

  • Почему tabularx? Потому что это часто легче узнать ширину, которую вы имеете доступны для всей таблицы и чтобы TeX вычислил неизвестное ширины столбцов.
  • Первый параметр - общая ширина таблицы. Здесь я указал \textwidth, чтобы заполнить ширину typeblock, но вы можете изменить это на любую меру, которая вам нужна.
  • Я использовал \raggedright, а не \hfill: если элемент перетекает во вторую строку, \hfill выравнивает только первую строку абзаца.
  • Значительно ли был \multicol? Я удалил его, чтобы ответить как можно проще.

Запустите с помощью XeTeX под TeXLive.

Ответ 3

Здесь одно решение многих возможностей:

\begin{tabular}{r|p{11cm}}
\parbox{11cm}{\hfill Current} & Your job at Your Company, Town \\
Jan 2009 & What your company does \\
& A description of what you do\\
\multicolumn{2}{c}{}\ 
\end{tabular}

В принципе, создайте \parbox с нужной шириной и поместите \hfill слева.

Ответ 4

Вы можете указать оба параметра p {width} и ​​начать каждую ячейку слева с помощью \hfill.

Ответ 5

Вы можете использовать пакет array, чтобы указать команду заполнения для каждой строки в первом столбце:

\begin{tabular}{>{\hfill}p{11cm}|p{11cm}|}

Например:

\documentclass{article}
\usepackage{array}
\begin{document}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}|}
This is a test & test
\end{tabular}

\begin{tabular}{>{\hfill}p{5cm}|p{11cm}|}
Test & this is a test
\end{tabular}
\end{document}