
На данный момент у меня фактически есть одна большая таблица, содержащая то, что должно быть несколькими таблицами поменьше. То есть, мое форматирование нуждается в улучшении. В любом случае, у меня сейчас есть одна таблица с 9 столбцами, 3 строками. 9 столбцов разделены на 3 секции столбцов. Я хочу, чтобы зазор между каждой из этих 3 секций столбцов был скорректирован так, чтобы ширина всех таблиц (или одной большой таблицы, в зависимости от того, как вы на это смотрите) была равна ширине страницы. В настоящее время они все вместе находятся в центре.
Вот что у меня есть на данный момент:
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\noindent\begin{tabular}{lllllllll}
%\toprule
\multicolumn{3}{c}{\textbf{Computer Language}} & \multicolumn{3}{c}{\textbf{Tools}} & \multicolumn{3}{c}{\textbf{Hardware}} \\
\cmidrule(r){1-3}\cmidrule(l){4-6}\cmidrule(l){7-9}
%\midrule
C \& C++ & Java & Python & item & item & item & item & item & item\\
MIPS Assembly & Bash & Verilog & something & item & item & item & item & item \\
%\bottomrule
\end{tabular}
\end{document}
Кроме того, возможно ли добавить маркеры к каждому пункту в этом формате? Возможно, лучше подойдет совершенно другой макет. Предложения приветствуются.
Мое объяснение может быть немного запутанным, поэтому, если необходимы дополнительные пояснения, дайте мне знать.
решение1
Вот возможное решение, при котором я разделяю таблицу на три tabular
среды:
\documentclass{article}
\usepackage{geometry}
\usepackage{booktabs}
\begin{document}
\noindent\begin{tabular}{lll}
\multicolumn{3}{c}{\textbf{Computer Language}}\\
\midrule
C \& C++ & Java & Python \\
MIPS Assembly & Bash & Verilog\\
\end{tabular} \qquad
\begin{tabular}{lll}
\multicolumn{3}{c}{\textbf{Tools}}\\
\midrule
item & item & item \\
item & item & item \\
\end{tabular} \qquad
\begin{tabular}{lll}
\multicolumn{3}{c}{\textbf{Hardware}}\\
\midrule
item & item & item \\
item & item & item \\
\end{tabular}
\end{document}
Если вы замените \qquad
на \hfill
расстояние, оно автоматически подстраивается под максимально возможное расстояние, при этом помещаясь на одной странице. Результат показан на следующем изображении (красные линии указывают на поля):
решение2
Что-то вроде этого, на основе tabularx
и geometry
??
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{ragged2e}
\usepackage{siunitx}
\usepackage{tabularx, booktabs}
\setlength{\extrarowheight}{3pt}
\newcolumntype{Y}{>{\hsize=0.98\hsize\RaggedRight \arraybackslash}X}
\newcolumntype{Z}{>{\hsize=0.98\hsize\RaggedRight \arraybackslash\textbullet~}X}
\setlength{\tabcolsep}{3pt}
\begin{document}
\noindent\begin{tabularx}{\linewidth}{>{\hsize=1.16\hsize\RaggedRight\arraybackslash}XYY*{2}{!{\quad}ZZZ}}
%\toprule
\multicolumn{3}{c}{\textbf{Computer Language}} & \multicolumn{3}{c}{\textbf{Tools}} & \multicolumn{3}{c}{\textbf{Hardware}} \\
\cmidrule(r{1.5em}){1-3}\cmidrule(lr{1.5em}){4-6}\cmidrule(lr{1.5em}){7-9}
%Methods & {Time [\si{\second}]} & {RunCount} & {Time [\si{\second}]} & {RunCount} \\
%\midrule
C \& C++ & Java & Python & item & item & item & item & item & item\\
MIPS Assembly & Bash & Verilog & some\-thing & item & item & item & item & item \\
%\bottomrule
\end{tabularx}
\end{document}
решение3
Если вы не хотите разбивать данные на отдельные таблицы, можно добавить пустые столбцы.
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\noindent\begin{tabular}{lllclllclll}
%\toprule
\multicolumn{3}{c}{\textbf{Computer Language}} && \multicolumn{3}{c}{\textbf{Tools}} && \multicolumn{3}{c}{\textbf{Hardware}} \\
\cmidrule(r){1-3}\cmidrule(l){5-7}\cmidrule(l){9-11}
%\midrule
C \& C++ & Java & Python && item & item & item && item & item & item\\
MIPS Assembly & Bash & Verilog && something & item & item && item & item & item \\
%\bottomrule
\end{tabular}
Если вы хотите увеличить (или уменьшить) количество дополнительного пространства, вы можете заменить s c
на c@{\hskip 1cm}
или на любую другую длину, которую вы хотите.
В качестве альтернативы, если вы хотите разместить таблицы на полях страницы, вы можете разделить их на отдельные таблицы и использовать \hfill
.
Но если таблицы слишком широкие, это сдвинет третью таблицу на следующую строку.