リスト表示のLaTeXコードを書き換えずに表組にするマクロを作ろうと、しばらく格闘したが敗北。詳しい理由は分からないが、どうも \begin{hoge} ... \end{hoge} の環境の処理あたりに原因があると推測。ワタシの力ではダメでした・・・。

目的は次の通り。すでにリスト表示することを前提に、次のような文書が作ってあるとする。

\section{はじめに}
\begin{itemize}
\item なんとか
\item かんとか
\item かくかく
\item しかじか
\end{itemize}

\section{つづいて}
\begin{itemize}
\item あれや
\item これや
\end{itemize}

こんな調子でかなりのページが組んであるのだ。ところが、気が変わって、表組みにしたくなったとする。つまり次のような感じ。

\begin{tabular}{|c|c|c|}
\hline
はじめに &              &       \\ \hline
            &  なんとか &       \\ \hline
            &  かんとか &       \\ \hline
            & かくかく  &       \\ \hline
            & しかじか  &       \\ \hline
つづいて  &             &       \\ \hline
            & あれや    &       \\ \hline
            & これや    &       \\ \hline
\end{tabular}

もちろん、Perlとかで変換することも考えたのだが、なんとかマクロ処理で出来ないかと思ったのだった。簡単だと思ったんだがなあ。環境の処理の仕方をソースコードを読んで理解してから、また挑戦という選択肢もあるにはあるが・・・。

とりあえず、次善の策として、もう少し汎用性のある形式に Perl で変換しておこうと思う。例えば、

\contents

\section{はじめに}
\itemize
\item なんとか \enditem
\item かんとか \enditem
\item かくかく \enditem
\item しかじか \enditem
\enditemize
\endsection

\section{つづいて}
\itemize
\item あれや \enditem
\item これや \enditem
\enditemize
\endsection

\endcontents

これだと、簡単なマクロで、リストにも表組みにも対応できるのだ。既に実験済み。というか、どうして環境だと出来ないのか謎である。

投稿者 sukarabe

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です