Получение двух таблиц в 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}