我从这个网站找到一个表格代码,其中有一列是空白的。他没有&
为每一行使用,只是\hspace
在标题上放了一个。
\documentclass{article}
\begin{document}
\begin{tabular}{|l|@{\hspace{1em}}|}
\hline
A \\
\hline
B \\
\hline
\end{tabular}
\begin{tabular}{|l|@{\hspace{2em}}|}
\hline
A \\
\hline
B \\
\hline
\end{tabular}
\end{document}
我的问题是我想制作这种类型的表格(不需要垂直线),其中一些列是空白的,但有标题。我不想&
为每一行都放。我想做一些类似的事情,\begin{tabular}{|l|@\header{Quantity{\hspace{1em}}}|}
我需要这个来回答这个问题如何用 LaTeX 制作好的市场/购物/杂货清单?
答案1
答案2
这是一种比较 hack 的方法,但是大多数情况下下面的方法应该可行。\myheader
需要:
- 一个可选参数指定对齐方式,
r
右对齐,c
居中,其他一切都左对齐。 - 该可选参数之后是一个强制参数,其中包含第一列标题的内容。
- 之后,需要输入一个可选参数
[<alignment>,<width>]
,其中<alignment>
表示r
右对齐、c
居中或j
两端对齐,其他内容均固定为左对齐<width>
。如果没有给出可选参数,则内容左对齐,但没有固定宽度。 - 最后是第二列标题的内容
代码:
\documentclass[]{article}
\makeatletter
\newcommand\myStrCMP[2]
{%
\bgroup
\def\tmpa{#1}%
\def\tmpb{#2}%
\ifx\tmpa\tmpb
\egroup
\expandafter\@firstoftwo
\else
\egroup
\expandafter\@secondoftwo
\fi
}
\newcommand\myheader[2][l]
{%
\myStrCMP{#1}{c}{\hfill#2\hfill}
{%
\myStrCMP{#1}{r}{\hfill#2}{#2\hfill}%
}
\myheader@i
}
\def\myheader@i%
{%
\@ifnextchar[
{\myheader@ii}
{\myheader@iii}%
}
\long\def\myheader@ii[#1,#2]#3%
{%
\myStrCMP{#1}{r}
{\myheader@iii{\parbox{\dimexpr#2-2\tabcolsep\relax}{\raggedleft#3}}}
{%
\myStrCMP{#1}{c}
{%
\myheader@iii
{%
\parbox
{\dimexpr#2-2\tabcolsep\relax}{\centering#3}%
}%
}
{%
\myStrCMP{#1}{j}
{%
\myheader@iii{\parbox{\dimexpr#2-2\tabcolsep\relax}{#3}}%
}
{%
\myheader@iii
{\parbox{\dimexpr#2-2\tabcolsep\relax}{\raggedright#3}}%
}
}%
}%
}
\newcommand\myheader@iii[1]
{%
\rlap{\hskip2\tabcolsep#1}%
}
\makeatother
\begin{document}
\begin{tabular}[]{|l|@{\hspace{5em}}|}
\hline
\myheader{1col}{2col}\\
\hline
Abc is longer than header\\
\hline
B\\
\hline
\end{tabular}
\begin{tabular}[]{|l|@{\hspace{5em}}|}
\hline
\myheader[c]{1col}[c,5em]{2col}\\
\hline
Abc is longer than header\\
\hline
B\\
\hline
\end{tabular}
\begin{tabular}[]{|l|@{\hspace{5em}}|}
\hline
\myheader[r]{1col}[r,5em]{2col}\\
\hline
Abc is longer than header\\
\hline
B\\
\hline
\end{tabular}
\begin{tabular}[]{|l|@{\hspace{5em}}|}
\hline
\myheader[l]{1col}[l,5em]{2col with long header}\\
\hline
Abc is longer than header\\
\hline
B\\
\hline
\end{tabular}
\end{document}
结果:
答案3
您可以使用\multicolumn
。
\documentclass{article}
\begin{document}
\begin{tabular}{|l|@{\hspace{6em}}|}
\hline
\multicolumn{1}{|r|}{Quantity}\\
\hline
A \\
\hline
B \\
\hline
\end{tabular}
\end{document}