我被难住了一段时间,最接近的复制方法是:
\documentclass{article}
\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=1.2in]{geometry}
\usepackage[utf8]{}
\usepackage{tabularx}
\usepackage[table]{xcolor}
\usepackage{tcolorbox}
\usepackage{enumitem}
\usepackage{makecell}
\usepackage{hyperref}
\usepackage{longtable,array}
\usepackage{booktabs,ragged2e}
\usepackage[default,oldstyle,scale=0.95]{opensans}
\urlstyle{sf}
\title{t}
\begin{document}
\begin{longtable}{>{\raggedright\arraybackslash}m{5.5cm}|>{\raggedright\arraybackslash}m{2.0cm} |>{\raggedright\arraybackslash}m{2.0cm}|>{\raggedright\arraybackslash}m{6.5cm}}
\bfseries \cellcolor[gray]{.8}Column1 &
\bfseries \cellcolor[gray]{.8}Column2 &
\bfseries \cellcolor[gray]{.8}Column3 &
\bfseries \cellcolor[gray]{.8}Notes\\
\hline
General Chemistry& %row 1
-- \newline-- \newline --&\\\cline{2-2}& %row 2
&ch121\newline ch122\newline ch123&\\\cline{3-3}&&ch231/261\newline ch232/262\newline ch233/262&
ch121-123 available online at OSU\\\hline
\end{longtable}
\end{document}
如您所见,我希望每列的文本都从顶部开始,但使用 cline 似乎会产生奇怪的垂直缩进。例如,我希望第 2 列和第 3 列之间的水平线处于同一水平:
每次使用 cline 后,有没有办法“刷新”我的输入?我尝试查看 cline 手册页,例如:https://latexref.xyz/_005ccline.html,https://www.giss.nasa.gov/tools/latex/ltx-214.html和其他堆栈问题都无济于事。
提前致谢。
答案1
您的根本误解是您需要为一行提供每个数据条目,然后\\
结束该行,然后是任何\cline
或\hline
命令。
您的第二个问题是您正在加载 booktabs。我真的很喜欢 booktabs,但它的文档清楚地表明,在任何情况下都不应使用垂直线,并且带有 booktabs 的表格可能无法与垂直线配合使用。
我对长表不太熟悉,但我没有看到任何影响>{\raggedright\arraybackslash}
,所以我把它拿出来了。
我把“普通化学”放在第 3 行。如果您确实想要它位于第 3 行和第 4 行之间,您可以使用\multirow
另一个答案中的 a。
本例中不需要它,因此我把它拿出来,但除了少数例外,它hyperref
应该是最后加载的包。
如果没有 booktabs,你最终会得到这样的结果:
\documentclass{article}
\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=1.2in]{geometry}
\usepackage[table]{xcolor}
\usepackage{longtable}
%\usepackage{booktabs}
\usepackage[default,oldstyle,scale=0.95]{opensans}
\begin{document}
\begin{longtable}{m{5.5cm}|m{2.0cm}|m{2.0cm}|m{6.5cm}}
\bfseries \cellcolor[gray]{.8}Column1 &
\bfseries \cellcolor[gray]{.8}Column2 &
\bfseries \cellcolor[gray]{.8}Column3 &
\bfseries \cellcolor[gray]{.8}Notes\\
\hline
& -- & ch121 & \\%row 1
& -- & ch122 & ch121-123 available online at OSU \\%row 2
General Chemistry & -- & ch123 \\ % row 3
\cline{2-3}
&& ch231/261 & \\ % row 4
&& ch232/262 & \\ % row 5
&& ch233/262 & \\ % row 6
\hline
\end{longtable}
\end{document}
booktabs 的一个基本理念是删除多余的行,减少干扰并使表格更易于理解。该包将以类似以下的方式处理表格:
\documentclass{article}
\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=1.2in]{geometry}
\usepackage[table]{xcolor}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage[default,oldstyle,scale=0.95]{opensans}
\begin{document}
\begin{longtable}{m{5.5cm} m{2.0cm} m{2.0cm} m{6.5cm}}
\toprule
Column1 & Column2 & Column3 & Notes\\
\midrule
General Chemistry & -- & ch121 & ch121-123 available online at OSU \\%row 1
& -- & ch122 & \\%row 2
& -- & ch123 \\ % row 3
\cmidrule{2-3}
&& ch231/261 & \\ % row 4
&& ch232/262 & \\ % row 5
&& ch233/262 & \\ % row 6
\bottomrule
\end{longtable}
\end{document}
\cmidrule
如果看不到更多的表格,就很难判断它是否还在那里。
答案2
以下是解决您问题的方法:
\documentclass{article}
\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=1.2in]{geometry}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{xcolor,colortbl}% \rowcolor
\begin{document}
\begin{longtable}{p{5.5cm}|p{2.0cm}|p{2.0cm}|p{6.5cm}}
\rowcolor{gray!40}
\textbf{Column1} & \textbf{Column2} & \textbf{Column3} & \textbf{Notes}\\
\hline
\multirow{6}*{General Chemistry} & -- & ch121 & \multirow{3}*{ch121-123 available online at OSU}\\
& -- & ch122 & \\
& -- & ch123 & \\
\cline{2-3}
& & ch231/261 & A\\
& & ch232/262 & B\\
& & ch233/263 & C\\
\hline
\end{longtable}
% Use this if your table is not longer than one page.
\begin{table}
\begin{tabular}{p{5.5cm}|p{2.0cm}|p{2.0cm}|p{6.5cm}}
\rowcolor{gray!40}
\textbf{Column1} & \textbf{Column2} & \textbf{Column3} & \textbf{Notes}\\
\hline
\multirow{6}*{General Chemistry} & -- & ch121 & \multirow{3}*{ch121-123 available online at OSU}\\
& -- & ch122 & \\
& -- & ch123 & \\
\cline{2-3}
& & ch231/261 & A\\
& & ch232/262 & B\\
& & ch233/263 & C\\
\hline
\end{tabular}
\end{table}
\end{document}