プロが教えるわが家の防犯対策術!

newenvironmentを使って、新しい環境を作りたいのですが、どうも上手く行きません。
作りたいものは表を使うときの省略版コマンドなのですが、いざ使ってみると「Misplaced alignment tab character &.」というエラーメッセージが出てしまいます。
どこに問題があるのでしょうか?

**定義**
\newenvironment{aa}[3]
{%
\begin{table}[htbp]%
\caption{#2}%
\begin{tabular}{#1}%
}
{%
\end{tabular}%
\label{#3}%
\end{table}%
}

**使用**
\begin{aa}{|c|r|}{キャプション}{ラベル}}
ss && s \\
ff && s \\
\end{aa}

A 回答 (1件)

括弧の対応がおかしい.



同じものを, その新しい環境を使わず table環境で書くとしたら, あなたはどう書きますか?

この回答への補足

回答ありがとうございます。

すいません、使用時の所で「}」が1個余分だったのと, &の使い方がおかしいですね。
確認不足でした。

\begin{document}
\begin{table}
\caption{キャプション}
\begin{tabular}{r|c}
ss & s \\
ff & s \\
\end{tabular}
\label{ラベル}
\end{table}

table環境を使うならこうですよね。これは上手く行きます。
しかし、これを、newenvironmentを使って書くと

**定義**
\newenvironment{aa}[3]
{%
\begin{table}[htbp]%
\caption{#2}%
\begin{tabular}{#1}%
}
{%
\end{tabular}%
\label{#3}%
\end{aa}%
}

**使用**
\begin{aa}{|c|r|}{キャプション}{ラベル}
ss & s \\
ff & s \\
\end{aa}


こう書くと、
「Illegal parameter number in definition of \endmytable」:aa環境定義時の「}」
「Illegal parameter number in definition of \reserved@a」:aa環境使用時の「}」
というエラーが出ます。
パラメーターと言われても、どこかおかしい所ありますかね?

補足日時:2012/01/16 19:51
    • good
    • 0
この回答へのお礼

\newenvironment{tablex}[3]
{%
\begin{table}[htbp]%
\caption{#2}%
\label{#3}%
\begin{tabular}{#1}%
}
{%
\end{tabular}%
\end{table}%
}


と書くことで、うまくいきました。
\labalの位置が問題だった?ようです。

お礼日時:2012/01/30 09:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!