问:我正在制作一堆表格,我想从最后一张表格中删除三条垂直线。
梅威瑟:
\documentclass[12pt]{article}
\usepackage[a4paper,
vmargin=0.7in, hmargin=0.7in,
headheight=14.5pt,]{geometry}
\usepackage[misc]{ifsym}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{forest}
\usepackage{tikz}
\usepackage{parskip}
\usetikzlibrary{intersections}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\large
\setlength\extrarowheight{5pt}
\begin{tabular}{|c|c|}
\hline
Que. & Ans. \\ \hline
$1$ & \\\hline
$2$ & \\\hline
$3$ & \\\hline
$4$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}{|c|c|}
\hline
Que. & Ans. \\ \hline
$5$ & \\\hline
$6$ & \\\hline
$7$ & \\\hline
$8$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}{|c|c|}
\hline
Que. & Ans. \\ \hline
$9$ & \\\hline
$10$ & \\\hline
$11$ & \\\hline
$12$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}{|c|c|}
\hline
Que. & Ans. \\ \hline
$13$ & \\\hline
$14$ & \\\hline
$15$ & \\\hline
$16$ & \\\hline
\end{tabular}
\vspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}{|c|c|}
\hline
Que. & Ans. \\ \hline
$17$ & \\\hline
$18$ & \\\hline
$19$ & \\\hline
$20$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}{|c|c|}
\hline
Que. & Ans. \\ \hline
$21$ & \\\hline
$22$ & \\\hline
$23$ & \\\hline
$24$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}{|c|c|}
\hline
Que. & Ans. \\ \hline
$25$ & \\\hline
$26$ & \\\hline
$27$ & \\\hline
$28$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}{|c|c|}
\hline
Que. & Ans. \\ \hline
$29$ & \\\hline
$30$ & \\\hline
& \\
&
\end{tabular}
\end{document}
答案1
最简单的技巧是始终使用\begin{tabular}[t]{|c|c|}
,最后一个技巧只是一个三行表。
\documentclass[12pt]{article}
\usepackage[a4paper,
vmargin=0.7in, hmargin=0.7in,
headheight=14.5pt,]{geometry}
\usepackage[misc]{ifsym}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{forest}
\usepackage{tikz}
\usepackage{parskip}
\usetikzlibrary{intersections}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\large
\setlength\extrarowheight{5pt}
\begin{tabular}[t]{|c|c|}
\hline
Que. & Ans. \\ \hline
$1$ & \\\hline
$2$ & \\\hline
$3$ & \\\hline
$4$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}[t]{|c|c|}
\hline
Que. & Ans. \\ \hline
$5$ & \\\hline
$6$ & \\\hline
$7$ & \\\hline
$8$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}[t]{|c|c|}
\hline
Que. & Ans. \\ \hline
$9$ & \\\hline
$10$ & \\\hline
$11$ & \\\hline
$12$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}[t]{|c|c|}
\hline
Que. & Ans. \\ \hline
$13$ & \\\hline
$14$ & \\\hline
$15$ & \\\hline
$16$ & \\\hline
\end{tabular}
\vspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}[t]{|c|c|}
\hline
Que. & Ans. \\ \hline
$17$ & \\\hline
$18$ & \\\hline
$19$ & \\\hline
$20$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}[t]{|c|c|}
\hline
Que. & Ans. \\ \hline
$21$ & \\\hline
$22$ & \\\hline
$23$ & \\\hline
$24$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}[t]{|c|c|}
\hline
Que. & Ans. \\ \hline
$25$ & \\\hline
$26$ & \\\hline
$27$ & \\\hline
$28$ & \\\hline
\end{tabular}
\hspace{1cm}
\setlength\extrarowheight{5pt}
\begin{tabular}[t]{|c|c|}
\hline
Que. & Ans. \\ \hline
$29$ & \\\hline
$30$ & \\\hline
\end{tabular}
\end{document}
我保留了无用的\setlength\extrarowheight{5pt}
说明(第一个就足够了)只是为了保留原来空格。
你可能会喜欢这个看似复杂的代码,但它允许你直接说
\youranswers{30}
或者
\youranswers[5]{30}
可选参数(默认值为 4)指定每组中的答案数量(最大)。
\documentclass[12pt]{article}
\usepackage{xparse,array}
\ExplSyntaxOn
\NewDocumentCommand{\youranswers}{O{4}m}
{
\par
\group_begin:
\setlength{\extrarowheight}{5pt}
\setlength{\lineskip}{1cm}
\raggedright\large
\mathsforsandy_answers:nn { #1 } { #2 }
\par
\group_end:
}
\cs_new_protected:Nn \mathsforsandy_answers:nn
{
\int_zero:N \l_tmpa_int
\prg_replicate:nn { \fp_eval:n { ceil(#2/#1,0) } } { \__mathsforsandy_table:nn { #1 } { #2 } }
}
\cs_new_protected:Nn \__mathsforsandy_table:nn
{
\tl_clear:N \l_tmpa_tl
\prg_replicate:nn { #1 }
{
\int_incr:N \l_tmpa_int
\int_compare:nF { \l_tmpa_int > #2 }
{
\tl_put_right:Nx \l_tmpa_tl { \int_to_arabic:n { \l_tmpa_int } }
\tl_put_right:Nn \l_tmpa_tl { & \\ \hline }
}
}
\begin{tabular}[t]{|c|c|}\hline Que. & Ans. \\ \hline
\tl_use:N \l_tmpa_tl
\end{tabular}
\hspace{1cm}
}
\ExplSyntaxOff
\begin{document}
\youranswers{30}
\clearpage
\youranswers[5]{30}
\end{document}
这个想法是计算所需的表数量(上限#2/#1
),然后通过增加计数器逐个构建它们。
答案2
您的代码不起作用,您忘记在每一行新后面添加一个额外的反斜杠。
垂直线插入到列规范中的 s|
之间。(在您的例子中:)。若要省去垂直线,只需省去。c
|c|c|
|
编辑:我想我现在明白你的问题了,但有点不清楚。要删除空行的垂直线,只需省略代码的最后一行,& \\ &
这样它就会像:
\documentclass[12pt]{article}
\usepackage[a4paper, vmargin=0.7in, hmargin=0.7in, headheight=14.5pt,]{geometry}
\begin{document}
\begin{tabular}{|c|c|} \hline
Que. & Ans. \\ \hline
$29$ & \\\hline
$30$ & \\\hline
\end{tabular}
\end{document}