whiledo 与 tabular 中的不同间距

whiledo 与 tabular 中的不同间距

有时,我whiledo在表格环境中使用时会发现不同的空格。我该如何摆脱它们?

检查以下 MWE:

\documentclass{article}
\usepackage{ifthen}

\newcounter{qai}
\def\myand{&}

\begin{document}
\begin{tabular}{ |l|l|l|l|} \hline
    Q & Q & Q & Q\\  \hline
    \setcounter{qai}{1}
    \whiledo{\value{qai}<3}{Q\myand\stepcounter{qai}} 
    Q & Q \\\hline
\end{tabular}
\end{document}

输出

请注意,单元格未对齐。

答案1

在此处输入图片描述

您正在添加行尾的空格:

\documentclass{article}
\usepackage{ifthen}

\newcounter{qai}
\def\myand{&}

\begin{document}
\begin{tabular}{ |l|l|l|l|} \hline
    Q & Q & Q & Q\\  \hline
    \setcounter{qai}{1}%
    \whiledo{\value{qai}<3}{Q\myand\stepcounter{qai}}%
    Q & Q \\\hline
\end{tabular}
\end{document}

答案2

正如大卫指出的那样,有些空间你没有考虑到。

有比 更好的方法来完成重复性任务\whiledo

\documentclass{article}

\ExplSyntaxOn

\NewExpandableDocumentCommand{\Repeat}{m O{} +m}
 {% #1 = number of repetitions
  % #2 = what to put in between
  % #3 = thing to repeat
  \int_compare:nT { #1 > 0 }
   {% do nothing if #3 <= 0
    #3
    \prg_replicate:nn { #1 - 1 } { #2 #3 }
   }
 }

\ExplSyntaxOff

\begin{document}

\Repeat{10}{I must not drive the principal's car\par}

\bigskip

\begin{tabular}{|c|c|c|c|}
  \hline
  Q & Q & Q & Q \\
  \hline
  \Repeat{4}[&]{Q} \\
  \hline
\end{tabular}

\end{document}

在此处输入图片描述

相关内容