总是将 \cmidrule 向右移动一列

总是将 \cmidrule 向右移动一列

对于奇怪的原因,我的表格(由我的统计软件 Stata 生成)\cmidrule{3-6}在应该有的时候有\cmidrule{4-7}。在我的统计软件中,我可以更改 cmidrule,但我无法更改它生成的跨度。

作为一个修复,我想定义一个新命令\cmidruleshiftedbyone,它自动将 1 添加到跨度的开始和结束并将其传递给\cmidrule

我不明白如何解析和改变的参数\cmidrule,否则我想做类似的事情

\documentclass{article}
\usepackage{booktabs}
%I know this wont work, I just have this to illustrate what I am trying to do:
\usepackage{calc}
\newcommand{\cmidruleshiftedbyone}[1]{\cmidrule{{#1}+{1-1}}
\begin{document}
  \begin{tabular}{ccc}
    1 & 2 & 3 \\\cmidruleshiftedbyone(lr){1-2} %I wan this to actually span 2-3
  \end{tabular}
\end{document}

答案1

\documentclass{article}
\usepackage{booktabs}
\newcommand{\cmidruleshiftedbyone}[1]{\cmidrulehelp#1\relax}
\def\cmidrulehelp#1-#2\relax{\cmidrule{\numexpr#1+1\relax-\numexpr#2+1\relax}}
\begin{document}
  \begin{tabular}{ccc}
    1 & 2 & 3 \\\cmidruleshiftedbyone{1-2} %I wan this to actually span 2-3
  \end{tabular}
\end{document}

在此处输入图片描述

相关内容