多列格式的条件定义

多列格式的条件定义

我正在制作一个表格(类似于日历),其中每个表格单元格的右上角都有一个日期或一些短字符串,然后将该单元格的内容左对齐。

我正在尝试写一点\newcommand来帮助简化这件事。

这是制作我的表格的漫长历程,但结果是正确的:

\begin{tabular}{|l|l|l|}
\hline
\multicolumn{1}{|r|}{\textbf{1}} & \multicolumn{1}{r|}{\textbf{2}} & \multicolumn{1}{r|}{\textbf{3}} \\
first thing & second thing & third thing \\
\hline
\multicolumn{1}{|r|}{\textbf{4}} & \multicolumn{1}{r|}{\textbf{New 1}} & \multicolumn{1}{r|}{\textbf{2}} \\
fourth thing & restarting &  \\
\hline
\end{tabular}

我试图变得聪明并且不再重复自己,因此尝试做两件事:

  1. 设置一个计数器来对每个单元格进行计数
  2. 写一个\newcommand,这样我就不必\multicolumn在每个单元格中重复该代码。

我无法让它工作,并且在编译时出现很多“非法前缀标记”或“放错\omit”错误。

以下是我尝试过的:

在文档标题中:

\newcounter{DateNumber}
\setcounter{DateNumber}{22}
\newcommand{\datehead}[2]{%
    \multicolumn{1}{%
        \ifthenelse{\equal{#2}{first}}{|r|}{r|}}%
        {\textbf{#1 \theDateNumber}}\stepcounter{DateNumber}%
}

桌子:

\begin{tabular}{|l|l|l|}
\hline
\datehead{}{first} & \datehead{}{} & \datehead{}{} \\
first thing & second thing & third thing \\
\hline
\datehead{}{first} & \setcounter{DateNumber}{1}\datehead{New} & \datehead{}\\
fourth thing & restarting &  \\
\hline
\end{tabular}

任何帮助深表感谢!

答案1

你不需要\multicolumn这个,只需要\hspace*{\fill}

\documentclass{article}

\newcounter{head}
\newcommand{\head}[1]{\stepcounter{head}\hspace*{\fill}\bfseries #1 \thehead}
\newcommand{\headnew}[1]{\setcounter{head}{0}\head{#1}}

\begin{document}

\begin{tabular}{|l|l|l|}
\hline
\head{} & \head{} & \head{} \\
first thing & second thing & third thing \\
\hline
\head{} & \headnew{New} & \head{} \\
fourth thing & restarting &  \\
\hline
\end{tabular}

\end{document}

在此处输入图片描述

相关内容