Когда я ввожу это, почему «Type I stuff» и «Type II stuff» разбиваются на 2-3 строки? Как мне написать их в одну строку без переноса строки? Когда я использую c вместо M для многоколоночного формата, текст не центрируется по вертикальной середине ячейки. Как мне это изменить?
\documentclass[a4paper,12pt]{scrartcl}
\usepackage{array}
\usepackage{hhline}
\usepackage{xfrac}
\begin{document}
\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.10\linewidth-2\tabcolsep}}
\begin{table}[h]
\centering
\caption{Long Stuff}
\begin{tabular}{|l|MMMM|MMMM|M}
\hline
Primer & \multicolumn{4}{M|}{Type I stuff} & \multicolumn{4}{M|}{Type II stuff} \\[5pt] \hline
Type I & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\[5pt] \hline
Type II & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\[5pt] \hline
\end{tabular}
\end{table}
\end{document}
решение1
Нецентрирование происходит из-за \\[5pt]
использования перед \hline
s. Я заменяю это загрузкой пакета cellspace
, который обеспечивает минимальный вертикальный интервал над и под cel в столбцах с помощью спецификатора с префиксом в виде буквы S
(или C
если вы используете siunitx
). Я также загружаю caption
пакет, чтобы обеспечить правильный вертикальный интервал между подписью и таблицей:
\documentclass[preview]{article}
\usepackage{amsmath, xfrac}
\usepackage{caption}
\usepackage{cellspace}
\setlength\cellspacetoplimit{6pt}
\setlength\cellspacebottomlimit{6pt}
\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.10\linewidth-2\tabcolsep}}
\begin{document}
\begin{table}[h]
\caption{Dilutions used to establish positive and negative controls}
\label{Dilutions used to establish positive and negative controls}
\begin{tabular}{|Sl|*{4}{M}|*{4}{M}|M}
\hline
Primer & \multicolumn{4}{c|}{Type I stuff} & \multicolumn{4}{c|}{Type II stuff} \\ \hline
Type I & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\\hline
Type II & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\ \hline
\end{tabular}
\end{table}
\end{document}
решение2
Используйте \makecell
из одноименного пакета (т.е. makecell
). Однако эта команда должна быть указана длякаждыйячейка по отдельности. Настройка по умолчанию — центрировать ее вертикально.
Есть некоторая проблема с \\[5pt]
командами, которая приводит к некоторому смещению дробей в последнем столбце. Я добавил вторую версию, в которой этого не происходит
\documentclass{article}
\usepackage{array}
\usepackage{hhline}
\usepackage{mathtools}
\usepackage{makecell}
\usepackage{xfrac}
\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.12\linewidth-2\tabcolsep}}
%\newcolumntype{Q}[1]{>{\centering\arraybackslash}m{\dimexpr.10\linewidth-2\tabcolsep}}
\begin{document}
\begin{table}[h]
\centering
\caption{Dilutions used to establish positive and negative controls}
\label{Dilutions used to establish positive and negative controls}
\begin{tabular}{|l|MMMM|MMMM|M}
\hline
Primer & \multicolumn{4}{M|}{\makecell{Type I stuff}} & \multicolumn{4}{M|}{\makecell{Type II stuff}} \\[5pt] \hline
Type I & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\[5pt] \hline
Type II & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\[5pt] \hline
\end{tabular}
\end{table}
\begin{table}[h]
\centering
\caption{Dilutions used to establish positive and negative controls}
\label{Dilutions used to establish positive and negative controls}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{|l|MMMM|MMMM|M}
\hline
Primer & \multicolumn{4}{M|}{\centering\makecell{Type I stuff}} & \multicolumn{4}{M|}{\makecell{Type II stuff}} \\ \hline
Type I & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\ \hline
Type II & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\ \hline
\end{tabular}
\end{table}
\end{document}
решение3
Предлагаю вам удалить [5pt]
директивы по ручному расстановке пробелов и вместо этого указать
\setlength\extrarowheight{5pt}
Я бы также переключился с типа столбца m
на p
, чтобы гарантировать, что материал в первом столбце установлен на той же базовой линии, что и в остальных 8 столбцах.
Кроме того, я хотел бы призвать вас перейти на дизайн таблицы, который не использует вертикальных линий и использует меньше, но хорошо разнесенных горизонтальных линий, как показано во второй таблице ниже. Он использует макросы рисования линий пакета booktabs
.
\documentclass[a4paper,12pt]{scrartcl}
\usepackage{tabularx}
\newcolumntype{M}{>{\centering\arraybackslash}p{\dimexpr.10\linewidth -2\tabcolsep}}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage{hhline}
\usepackage{xfrac}
\usepackage{booktabs}
\begin{document}
\begin{table}[h]
\setlength\extrarowheight{5pt}
\centering
\caption{Long Stuff}
\begin{tabular}{|l|MMMM|MMMM|}
\hline
Primer & \multicolumn{4}{c|}{Type I stuff} & \multicolumn{4}{c|}{Type II stuff} \\ \hline
Type I & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\ \hline
Type II & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\ \hline
\end{tabular}
\end{table}
\begin{table}[h]
\setlength\extrarowheight{3pt}
\centering
\caption{Version with booktabs-based horizontal rules and no vertical rules}
\begin{tabularx}{0.92\textwidth}{@{} l *{8}{C} @{}}
\toprule
Primer & \multicolumn{4}{c}{Type I stuff} & \multicolumn{4}{c}{Type II stuff} \\
\cmidrule(lr){2-5} \cmidrule(l){6-9}
Type I & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\
Type II & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ & undiluted & $\sfrac{1}{10}$ & $\sfrac{1}{100}$ & $\sfrac{1}{1000}$ \\ \bottomrule
\end{tabularx}
\end{table}
\end{document}