我正在尝试定义以下宏:
\newcounter{cp}
\setcounter{cp}{1}
\newcommand{\phase}[3]{
\multicolumn{#2}{|l|}{\makecell[l]{Phase \thecp{} - #3 JEH \\ \footnotesize{#1}}}
\addtocounter{cp}{1}
}
这个想法是它应该在表格块中使用:
\begin{tabularx}{\linewidth}{|*{10}{X|}}\hline
[...]
\phase{Etude de faisabilité}{6}{3}
\end{tabularx}
我的问题是
\addtocounter{cp}{1}
你能帮助我理解为什么会这样吗,以及如何避免这种情况?
多谢
编辑:这是完整的代码:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames,table]{xcolor}
\usepackage[french]{babel}
\usepackage[protrusion=true,expansion=true]{microtype}
\usepackage{fourier}
\usepackage{amsmath,amsfonts,amsthm}
\usepackage{graphicx}
\usepackage{url}
\usepackage{float}
\usepackage{longtable}
\usepackage{tabularx}
\usepackage{calc}
\usepackage{geometry}
\usepackage{colortbl}
\usepackage{array}
\usepackage{makecell}
\usepackage{lastpage}
\usepackage{adjustbox}
\usepackage{multicol}
\usepackage{tikz}
\usepackage{lmodern}
\usepackage{lipsum}
\usepackage{sectsty}
\usepackage{fp}
\usepackage{fancyhdr}
\usepackage{totcount}
\usepackage{forloop}
\usepackage{ifthen}
\usepackage[sfdefault,light]{FiraSans} %% option 'sfdefault' activates Fira Sans as the default text font
\usepackage[T1]{fontenc}
\renewcommand*\oldstylenums[1]{{\firaoldstyle #1}}
\definecolor{tableGray}{RGB}{220, 180, 180}
\begin{document}
\newcounter{cp} %compteur pour la numérotation des phases
\setcounter{cp}{1}
\newcommand{\phase}[3]{
\multicolumn{#2}{|l|}{\makecell[l]{Phase \thecp{} - #3 JEH \\ footnotesize{#1}}}
\addtocounter{cp}{1}
}
\noindent
\begin{tabularx}{\linewidth}{|*{10}{X|}}\hline
\rowcolor{tableGray}
\multicolumn{10}{|c|}{Semaines} \\\hline
\rowcolor{tableGray}
\newcounter{c}
\forloop{c}{1}{\value{c} < 10}%
{%
\thec &
}
\thec \\\hline
\phase{Etude de faisabilité}{6}{3}
\end{tabularx}
\end{document}
答案1
与原始版本相比,我将其放在\newcounter{c}
了前言部分(在文档部分内,但在tabularx
环境之外也应该可以工作),以消除“命令 \c@c 已定义。”错误消息。此外,我将其替换\addtocounter{cp}{1}
为\stepcounter{cp}
并将此命令放在命令内部\multicolumn
而不是命令之后。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames,table]{xcolor}
\usepackage[french]{babel}
\usepackage[protrusion=true,expansion=true]{microtype}
\usepackage{fourier}
\usepackage{amsmath,amsfonts,amsthm}
\usepackage{graphicx}
\usepackage{url}
\usepackage{float}
\usepackage{longtable}
\usepackage{tabularx}
\usepackage{calc}
\usepackage{geometry}
\usepackage{colortbl}
\usepackage{array}
\usepackage{makecell}
\usepackage{lastpage}
\usepackage{adjustbox}
\usepackage{multicol}
\usepackage{tikz}
\usepackage{lmodern}
\usepackage{lipsum}
\usepackage{sectsty}
\usepackage{fp}
\usepackage{fancyhdr}
\usepackage{totcount}
\usepackage{forloop}
\usepackage{ifthen}
\usepackage[sfdefault,light]{FiraSans} %% option 'sfdefault' activates Fira Sans as the default text font
\usepackage[T1]{fontenc}
\renewcommand*\oldstylenums[1]{{\firaoldstyle #1}}
\definecolor{tableGray}{RGB}{220, 180, 180}
\begin{document}
\newcounter{cp} %compteur pour la numérotation des phases
\setcounter{cp}{1}
\newcounter{c}
\newcommand{\phase}[3]{%
\multicolumn{#2}{|l|}{\makecell[l]{Phase \thecp{} - #3 JEH \\ \footnotesize{#1}}\stepcounter{cp}}%
}
\noindent
\begin{tabularx}{\linewidth}{|*{10}{X|}}\hline
\rowcolor{tableGray}
\multicolumn{10}{|c|}{Semaines} \\\hline
\rowcolor{tableGray}
\forloop{c}{1}{\value{c} < 10}%
{%
\thec &
}
\thec \\\hline
\phase{Etude de faisabilité}{6}{3}
\end{tabularx}
\end{document}