我如何创建这个表?

我如何创建这个表?

我想创建这个表:

在此处输入图片描述

我从这个开始,但它不起作用:

\documentclass[11pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{center}
    \begin{tabular}{c|c}

        hello & hello \\

        \toprule
        hello hello hello hello hello hello hello hello hello hello space infinity & hello hello hello hello  \\
        hello hello hello hello hello & hello hello hello hello  \\

    \end{tabular}
   \end{center}
   \end{document}}

在此处输入图片描述

我怎样才能解决这个问题?

答案1

像这样:

在此处输入图片描述

旁边是来自包(在本例中由包加载)的tabularx使用的选项!{<option>}和以及来自同名包的宏:\Xhline{<width>}arraytabularx\makecell

\documentclass[11pt,a4paper]{article}
\usepackage{makecell, tabularx}

\begin{document}
\begin{center}
\setcellgapes{5pt}\makegapedcells
    \begin{tabularx}{\textwidth}{X!{\vline width 1pt} X}
        \makecell{hello}   & \makecell{hello} \\
    \Xhline{1pt}
        hello hello hello hello hello hello hello hello hello hello space infinity
                            & hello hello hello hello  \\
        hello hello hello hello hello hello hello hello hello hello space infinity
                            & hello hello hello hello  \\
    \end{tabularx}
   \end{center}
\end{document}

答案2

不要booktabs与垂直规则一起使用。

并且不要加载两次包(你有两个\usepackage{graphicx})。

我使用了tabularx、和\\[4pt]\rule{0pt}{16pt}在水平线前后添加一些空间。

\documentclass[11pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{tabularx}
\begin{document}
\begin{center}
    \begin{tabularx}{\textwidth}{X|X}
        \multicolumn{1}{c|}{hello} & 
        \multicolumn{1}{c}{hello} \\[4pt]
        \hline
        \rule{0pt}{16pt}hello hello hello hello hello hello hello hello hello hello space infinity & hello hello hello hello  \\
        hello hello hello hello hello & hello hello hello hello  \\
    \end{tabularx}
   \end{center}
   \end{document}

在此处输入图片描述

答案3

查询附带的屏幕截图给人的印象是,每个表格列的宽度应刚好足够(但不更宽)以排版三个单词“hello”,并以空格分隔。如果这种印象是正确的,则应该p对两个列都使用该列类型。p列类型带有一个参数——可用宽度。在序言中,请务必设置一个长度参数并通过指令测量“hello hello hello”的宽度\settowidth

哦,如果你使用垂直线,就不要使用booktabs包(和\midrule指令)。相反,使用\hline

在此处输入图片描述

\documentclass[11pt,a4paper]{article}
\usepackage{array} % for "\extrarowheight" macro
\newlength\mylen
\settowidth\mylen{\sffamily hello hello hello} % measure width of "hello hello hello"
\begin{document}
\begin{center}
\sffamily % switch to sans-serif
\setlength\extrarowheight{2pt} % for a more open "look"
\begin{tabular}{p{\mylen}|p{\mylen}}
\multicolumn{1}{c|}{hello} & 
\multicolumn{1}{c}{hello} \\[2pt]
\hline
hello hello hello hello hello hello hello hello hello hello space infinity & hello hello hello hello  \\
hello hello hello hello hello & hello hello hello hello \\
\end{tabular}
\end{center}
\end{document}

答案4

由于规则非常粗,也许您想要像图中那样有圆形的封盖。使用 Tikz 可以绘制带有圆形封盖的规则。在{NiceTabular}的环境下nicematrix,您可以在行、列和单元格下构建 PGF/Tikz 节点,并且可以轻松地将它们与 Tikz 一起使用来绘制您想要的任何规则。

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}

\setlength{\extrarowheight}{2mm}
\begin{NiceTabular}{>{\raggedleft}p{2.6cm}>{\raggedright\arraybackslash}p{2.6cm}}
\Block{}{hello} & \Block{}{hello} \\
hello hello hello hello hello hello hello hello hello hello hello hello 
& hello hello hello hello hello hello hello hello hello hello hello hello \\
hello hello hello hello hello hello hello hello hello hello hello hello 
& hello hello hello hello hello hello hello hello hello hello hello hello \\
hello hello hello hello hello hello hello hello hello hello hello hello 
& hello hello hello hello hello hello hello hello hello hello hello hello \\
\CodeAfter
\tikz \draw [very thick, line cap = round] 
            (1-|2) -- (last-|2)
            (2-|1) -- (2-|3) ;
\end{NiceTabular}

\end{document}

您需要多次编译(因为nicematrix使用 PGF/Tikz 节点)。

上述代码的输出

相关内容