multicols環境を使用した2段組でのtable環境

multicols環境を使用した2段組でのtable環境

- 河野 勝行 の投稿
返信数: 6
はじめまして

\begin{multicols}{2} と \end{multicols} を使用して、2段組にした中でtable環境をしようすると、エラーメッセージが出ないにもかかわらず、\begin{table}[hbtp] と \end{table} で挟まれた部分が全く出力されません。それは仕様でしょうか?それとも何か対策があるのでしょうか?仕様であればあきらめます。

\documentclass[9pt,b5paper,papersize,twoside]{jsarticle}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}% これと\end{multicols}をコメントアウトすると表示される
\begin{table}[hbtp]
  \caption{C言語の代表的なデータの型}
  \label{table:data_type}
  \centering
  \begin{tabular}{lcr}
    \hline
    データの型  & 宣言  &  ビット幅  \\
    \hline \hline
    文字型  & char  & 8 \\
    整数型  & int   & 32 \\
    倍精度実数型  & double  & 64 \\
    倍々精度実数型  &  long double  &  96 \\
    \hline
  \end{tabular}\newline
\end{table}
\end{multicols}% これと\begin{multicols}{2}をコメントアウトすると表示される
\end{document}

河野 勝行 への返信

Re: multicols環境を使用した2段組でのtable環境

- 前田 一貴 の投稿
エラーは出ていなくても警告が出ていませんか?

Package multicol Warning: Floats and marginpars not allowed inside `multicols'
environment!.

multicol のドキュメントにも次のようにあります.

\LaTeX{}'s float mechanism,
however, is partly disabled in this implementation.  At the
moment only page-wide floats (i.e., star-forms) can be used within
the scope of the environment.
前田 一貴 への返信

Re: multicols環境を使用した2段組でのtable環境

- 上田 完 の投稿
http://tex.stackexchange.com/questions/20731/listing-and-tabular-in-multicols-enviornment

辺りにも書かれていますが、table を使うと先の warning が出るようですね。
理由は上に書かれている通り。
上田 完 への返信

Re: multicols環境を使用した2段組でのtable環境

- tat tsan の投稿
multicols 環境では float を使えないので、とりあえず captionだけを付けられるようにする方法があります。captionパッケージ、またnonfloatパッケージを利用します。


\documentclass[9pt,b5paper,papersize,twoside]{jsarticle}
\usepackage{multicol}
\usepackage{caption}% これか、
\usepackage{nonfloat}%これの、どちらか一方でいい
\setlength{\columnseprule}{1pt}
\begin{document}


\begin{multicols}{2}
\noindent
\begin{minipage}{1\linewidth}
\centering
\captionof{table}{C言語の代表的なデータの型(あ)}% captionパッケージを使う場合
\begin{tabular}{lcr}
\hline
データの型 & 宣言 & ビット幅 \\
\hline \hline
文字型 & char & 8 \\
整数型 & int & 32 \\
倍精度実数型 & double & 64 \\
倍々精度実数型 & long double & 96 \\
\hline
\end{tabular}\label{table:data_type_あ}
\end{minipage}
\newline
\noindent
\begin{minipage}{1\linewidth}
\centering
\tabcaption{C言語の代表的なデータの型(い)}% nonfloatパッケージを使う場合
\begin{tabular}{lcr}
\hline
データの型 & 宣言 & ビット幅 \\
\hline \hline
文字型 & char & 8 \\
整数型 & int & 32 \\
倍精度実数型 & double & 64 \\
倍々精度実数型 & long double & 96 \\
\hline
\end{tabular}\label{table:data_type_い}
\end{minipage}
\end{multicols}

\end{document}

tat tsan への返信

Re: multicols環境を使用した2段組でのtable環境

- 河野 勝行 の投稿
みなさま、コメントありがとうございました。

おっしゃるとおり、エラーにはなっていないもののWarningが出ておりました。
これが仕様ということであれば仕方がありませんので、他の方法を考えたいと思います。

captionパッケージまたはnonfloatパッケージを利用する方法をご教示いただきありがとうございました。

これも含め検討したいと思います。

まだTeXを始めて10日ぐらいで、勝手がわからないところがたくさんあり、いろいろ試しております。ワードではできないことがたくさんできて、面白いと思っております。

ありがとうございました。
河野 勝行 への返信

Re: multicols環境を使用した2段組でのtable環境

- aminophen の投稿
仮に「文書全体が二段組になる」でよいならば、
multicol パッケージを使わずに
\documentclass[twocolumn,ほかのオプション]{jsarticle}
で良いかもしれません。いろいろ試してみてください。
aminophen への返信

Re: multicols環境を使用した2段組でのtable環境

- 河野 勝行 の投稿
ありがとうございます。

文書の途中で一段になったり二段になったりすることを想定しているので、
documentclass[twocolumn,ほかのオプション]{jsarticle}
は検討の対象から外していました。