Come prima, se non commento la linea contenente \ifseingola non riesco a compilare e se lo faccio mi rimane la linea sotto la prima firma…
Ma dov’è definito \ifsingola?
Evidentemente è saltata dal copia-incolla: subito dopo \makeatletter metti \newif\ifsingola.
`\documentclass[a4paper,draft]{article}
\usepackage{lipsum,calc,xkeyval}
\newcommand{\stileruolo}[1]{{\fontfamily{ptm}\selectfont\textsc{#1}}}
\newcommand{\stilenominativo}[1]{#1}
\newcommand{\firmabox}[1]{\makebox[.333\textwidth]{\hss#1\hss}}
\newcommand{\componifirma}[2]{%
\begin{tabular}[t]{@{}c@{}}
\firmabox{\stileruolo{#1}}\\
\firmabox{\stilenominativo{#2}}
\iflineabase\\\rule{0pt}{1cm}\rule{.333\textwidth}{0.4pt}\fi
\end{tabular}}
\makeatletter
\newif\ifsingola
\newif\iflineabase
\def\sigla{}
\define@key{firma}{sigla}{\def\sigla{#1}}
\define@key{firma}{lineabase}[false]{\@nameuse{lineabase#1}}
\makeatother
\newcommand{\firmadoppia}[5][]{\setkeys{firma}{#1}\par
% \expandafter\show\csname iflineabase\endcsname % per debug
\hbox to\hsize{%
\rlap{\sigla}\hfil
\ifsingola\expandafter\phantom\fi
{\componifirma{#2}{#3}}\hfil\componifirma{#4}{#5}}}
\newcommand{\firma}[3][]{\singolatrue\firmadoppia[#1]{}{}{#2}{#3}}
\newcommand\firmatripla[7][]{\firmadoppia[#1]{#2}{#3}{#4}{#5}
\medskip
\hbox to\hsize{\hfill\componifirma{#6}{#7}\hspace{.25\textwidth}}}
\begin{document}
\firmatripla[lineabase=true]
{Il Direttore Galattico}{Dott. Paperino Paolo}
{Il Direttore}{Dott. Paperino Paolo}
{Il Direttore}{Dott. Paperino Paolo}
\firmadoppia
{Il Direttore}{Dott. Paperino Paolo}
{Il Direttore}{Dott. Paperino Paolo}
\firma
{Il Direttore}{Dott. Paperino Paolo}
\firma{Il Direttore Galattico}{Lupo de Lupis}
\firma[sigla=/ab/cd]{Il Direttore Galattico}{Lupo de Lupis}
\firma[sigla=/ab/cd,lineabase]{Il Direttore Galattico}{Lupo de Lupis}
\firma[lineabase=true]{Il Direttore Galattico}{Lupo de Lupis}
\end{document}`
Ciao
Enrico