名前: 野村 日時: 2009-01-30 18:46:49 IPアドレス: 150.84.51.*
以下のような内容を持った表を作っています. \begin{tabular}{|*{4}{p{45pt}|}}\hline \multicolumn{4}{|l|}{要素1}\\\hline \textbf{項目A}& \multicolumn{3}{l|}{内容1A}\\\hline \textbf{項目B}& \multicolumn{2}{p{102.4pt}|}{内容1B}& オプション\\\hline \textbf{項目C}& 内容1C& \textbf{項目D}& 内容1D\\\hline \textbf{項目E}& \multicolumn{3}{l|}{内容1E:長文}\\\hline \multicolumn{4}{|l|}{要素2}\\\hline \textbf{項目A}& \multicolumn{3}{l|}{内容2A}\\\hline \textbf{項目B}& \multicolumn{2}{p{102.4pt}|}{内容2B}& \\\hline \textbf{項目C}& 内容2C& \textbf{項目D}& 内容2D\\\hline \textbf{項目E}& \multicolumn{3}{l|}{内容2E:長文}\\\hline \end{tabular} 今までは数も少なかったので 手入力でtabular環境を作っていました. 今後,要素数が増えていきそうなため,入力と修正をしやすくしようとして, 下記のような入力データで上記の出力と同じものを作ることを考えています. \begin{tabular}{|*{4}{p{45pt}|}}\hline \begin{要素} \項目A{内容1A} \項目B[オプション]{内容1B} \項目C{内容1C} \項目D{内容1D} \項目E{内容1E:長文} \end{要素} \begin{要素} \項目A{内容2A} \項目B{内容2B} \項目C{内容2C} \項目D{内容2D} \項目E{内容2E:長文} \end{要素} \end{tabular} そこで,下記のような環境を定義してみたのですが \multicolumn,& や \\\hline などのコマンドを書き込むと ! Extra }, or forgotten \endgroup. ! Misplaced \noalign. のエラーが出力されてしまいます. \newcounter{要素} \newenvironment{要素}{% \let\@内容A\@empty \let\@内容B\@empty \let\@内容C\@empty \let\@内容D\@empty \let\@内容E\@empty \stepcounter{要素}% \def\項目A##1{\def\@内容A{##1}}% \def\項目B{\@ifnextchar[%] {\@項目B}{\@項目B[]}}% \def\@項目B[##1]##2{\def\@内容B{##2& ##1}}% \def\項目C##1{\def\@内容C{##1}}% \def\項目D##1{\def\@内容D{##1}}% \def\項目E##1{\def\@内容E{##1}}% }{% % \multicolumn{4}{|l|}{要素\the\c@要素}\\\hline \textbf{項目A} \@内容A % \textbf{項目B}& \@内容B\\\hline % \textbf{項目C}& \@内容C\\\hline % \textbf{項目D}& \@内容D\\\hline % \textbf{項目E}& \@内容E\\\hline } できれば,項目の順番がバラバラでも正しく処理ができ,また「内容E」の量に よっては,自動で次のページの先頭に要素の最初から表を組むようにしたいと 考えています. 検索しても \omit や \noalign などが関わることくらいしか理解できませんでした. 環境の作り方,あるいは入力と編集・修正を行いやすくするアイデアなどを教えて いただけないでしょうか.
この書き込みへの返事: