図の表示につきまして

図の表示につきまして

- H M の投稿
返信数: 13
下記のコードを実行すると、添付図の通り
図1 about here
図2 about here
図3 about here
と表示します。これを
図1 about here
とするには、どうしたら良いでしょうか?
図は(a)~(g)まで3ページにまたがり7つ必要ですが、図1として纏めたいです。
\documentclass[dvipdfmx]{jarticle}
\usepackage[tablesfirst,notablist]{endfloat}
\usepackage{graphicx}
\makeatletter
\renewcommand{\thefigure}{%
\thesection.\arabic{figure}}%
\@addtoreset{figure}{section}%
\makeatother
\usepackage{subfigure}
\begin{document}
\begin{figure}[ht]
\centering
\begin{tabular}{cc}
\raisebox{-\height}{\Large\textbf{(a)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(b)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(c)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
%\label{fig:fig3}
\end{tabular}
\end{figure}

\begin{figure}[ht]
\centering
\begin{tabular}{cc}
\raisebox{-\height}{\Large\textbf{(d)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(e)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(f)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
%\label{fig:fig3}
\end{tabular}
\end{figure}

\begin{figure}[ht]
\centering
\begin{tabular}{cc}
\raisebox{-\height}{\Large\textbf{(g)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
%\label{fig:fig3}
%\label {population}
\end{tabular}
\caption{(a)から(g)はtigerを示す)}
%\label {population}
\end{figure}
\end{document}

添付 tiger1_1.jpg
H M への返信

Re: 図の表示につきまして

- 北見 けん の投稿
LaTeX の基本的なフロート(挿入位置が成りゆきで変動する図や表)は、
ページ分割されない一枚ものです。
これに対して、一つの図(あるいは一つの図として扱う図群)や表が紙面に
収まらずにページ分割させたい場合、
表であれば longtable パッケージ、
図であれば longfigure パッケージ というものが使えるようです。
(私は使ったことがありません)

これらのパッケージと endfloat パッケージが併用できればよさそうですが、
やはり試していません。

すでに試してだめだったならすみません。
北見 けん への返信

Re: 図の表示につきまして

- 岩熊 哲夫 の投稿
急ごしらえです。subfloat.sty とか subfigure.sty とかあると思いますが,以前自作したものを変更してみました。
実際には1ページ以内の一つの figure 環境の中に複数の図にサブキャプションをつける設定でしたが,以下のようにすると,不思議なことにご要望通りになるようです。もっといいのは他の方がお示しくださるかと。それまでにつなぎにお使いください。


\documentclass{jarticle}
\makeatletter
% subfloat.sty: set sub-number within one float
%
\@definecounter{subfloatnumber}
\def\@T@bLe{table}
\def\subfloatcap{\figurename\thefigure (\alph{subfloatnumber})} % default
%
\newif\if@subfloatcaptionhead \@subfloatcaptionheadtrue
\def\NoSubfloatCaptionHead{\@subfloatcaptionheadfalse}
%
\newif\if@subfloatwithcaptionhead
\def\subcaption{\@ifstar{%
\@subfloatwithcaptionheadfalse\subc@ption}{%
% \@subfloatwithcaptionheadtrue\subc@ption}}
\@subfloatwithcaptionheadfalse\subc@ption}} %<=== always (a)...
%
\def\subc@ption{\@addtoreset{subfloatnumber}{\@captype}%
\ifx\@captype\@T@bLe\relax\else\addtocounter{\@captype}{1}\fi%
\def\the@subfloatnumber{\csname the\@captype\endcsname\,\subfloatcap}%
\stepcounter{subfloatnumber}%
\edef\@currentlabel{\csname the@subfloatnumber\endcsname}%
\@dblarg{\@subcaption\@captype}}
%
\long\def\@subcaption#1[#2]#3{\par\addcontentsline{\csname
ext@#1\endcsname}{#1}{\protect\numberline{\csname
the#1\endcsname\subfloatcap}{\ignorespaces #2}}\begingroup
\@parboxrestore
\if@subfloatcaptionhead
\if@subfloatwithcaptionhead
\@makecaption{\csname fnum@#1\endcsname{\bf\subfloatcap}}%
% ^^^^^^^^^^^^^^^^^^
{\ignorespaces #3}\par
\else
\@makecaptionWOheading{\subfloatcap}{\ignorespaces #3}
\fi
\else\@makecaptionWOheading{}{\ignorespaces #3}\par\fi
\endgroup%
\ifx\@captype\@T@bLe\relax\else\addtocounter{\@captype}{-1}\fi}
%
\long\def\@makecaptionWOheading#1#2{%
\vskip 10\p@
\setbox\@tempboxa\hbox{#1 #2}%
\ifdim \wd\@tempboxa >\hsize
#1 #2\par
\else
\hbox to\hsize{\hfil\box\@tempboxa\hfil}%
\fi}
%
\makeatother
\begin{document}
\begin{figure}[ht]
\mbox{}\vspace*{15cm}ABC\mbox{}
\subcaption{一つ目です}
\end{figure}
\begin{figure}
\mbox{}\vspace*{15cm}DEF\mbox{}
\subcaption{二つ目です}
\end{figure}
\begin{figure}
\mbox{}\vspace*{15cm}GHI
\subcaption{三つ目です}
\caption{以上三つが最初の図です}
\end{figure}
\end{document}

岩熊 哲夫 への返信

Re: 図の表示につきまして

- 岩熊 哲夫 の投稿
あ,それぞれのページにも図1が必要なら
\begin{figure}[ht]
\mbox{}\vspace*{15cm}ABC\mbox{}
\subcaption{一つ目です}
\caption{三つのうちの最初の図で}
\end{figure}
\begin{figure}
\mbox{}\vspace*{15cm}DEF\mbox{}
\subcaption{二つ目です}
\addtocounter{figure}{-1}
\caption{三つのうちの二つ目の図で}
\end{figure}
\begin{figure}
\mbox{}\vspace*{15cm}GHI
\subcaption{三つ目です}
\addtocounter{figure}{-1}
\caption{以上三つが最初の図です}
\end{figure}
のように,カウンタを減らします。ま,邪道でしょうが・・・
岩熊 哲夫 への返信

Re: 図の表示につきまして

- 岩熊 哲夫 の投稿
あ,間違い。内職しながらだったものですから。でも,subcaption が不要ならプリアンブルは不要で,単に \addtoounter{figure}{-1} だけでいいでした。失礼しました。

\begin{figure}[ht]
\mbox{}\vspace*{15cm}ABC\mbox{}
\subcaption{一つ目です}
\caption{三つのうちの最初の図で}
\end{figure}
\begin{figure}
\mbox{}\vspace*{15cm}DEF\mbox{}
\addtocounter{figure}{-1}
\addtocounter{subfloatnumber}{1}
\subcaption{二つ目です}
\caption{三つのうちの二つ目の図で}
\end{figure}
\begin{figure}
\mbox{}\vspace*{15cm}GHI
\addtocounter{figure}{-1}
\addtocounter{subfloatnumber}{2}
\subcaption{三つ目です}
\caption{以上三つが最初の図です}
\end{figure}
岩熊 哲夫 への返信

Re: 図の表示につきまして

- H M の投稿
ご回答有難う御座います。
>\addtoounter{figure}{-1}
図1 about here
図2 about here
図3 about here
と表示します。これを
図1 about here
にしたいのですが、
\addtoounter{figure}{-1}
を追加しても変化がありませんでした。

北見 けん への返信

Re: 図の表示につきまして

- H M の投稿
ご回答有難う御座います。
>図であれば longfigure パッケージ というものが使えるようです。
下記のように試してみたのですが、ダメです。どこを修正すれば良いでしょうか?
\documentclass[dvipdfmx]{jarticle}
\usepackage[tablesfirst,notablist]{endfloat}
\usepackage{longfigure}
\usepackage{graphicx}
\makeatletter
\renewcommand{\thefigure}{%
\thesection.\arabic{figure}}%
\@addtoreset{figure}{section}%
\makeatother
\usepackage{subfigure}
\begin{document}
%\begin{longfigure}[ht]
\begin{longfigure}{cc}
%\begin{figure}[ht]
\centering
\begin{tabular}{cc}
\raisebox{-\height}{\Large\textbf{(a)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(b)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(c)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
%\label{fig:fig3}
%\end{tabular}
%\end{figure}
%
%
%\begin{figure}[ht]
%\centering
%\begin{tabular}{cc}
\raisebox{-\height}{\Large\textbf{(d)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(e)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(f)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
%\label{fig:fig3}
\end{tabular}
%\end{figure}
\end{longfigure}
\end{document}
H M への返信

Re: 図の表示につきまして

- 北見 けん の投稿
> 下記のように試してみたのですが、ダメです。どこを修正すれば良いでしょうか?

どんな風に駄目だったのでしょうか。
エラーが出るとか、意図と違ってこんな風になるとか、
もう少し説明が欲しいところです。

私はこのパッケージを使ったことが無いので、
CTANにあるマニュアルを読んだだけですが、とりあえず気づくのは、
longfigure 環境の中に tabular 環境が入れ子になっていると
改ページされなさそうということです。
改ページ可能なのは longfigure 環境直下の階層の \\ だと思います。
他の問題であればすみません。

確認したマニュアルは次のものです。
ctan/macros/latex/contrib/longfigure/longfigure.pdf
北見 けん への返信

Re: 図の表示につきまして

- H M の投稿
ご回答有難う御座います。
お世話になります。
すいません、説明が不足しておりました。
tabularを削除しました。すると、改ページして図はすべて表示しました。
>これらのパッケージと endfloat パッケージが併用できればよさそうですが、
その通りで御座います。
目的の
図1 about here
が表示しなくなりました。

\documentclass[dvipdfmx]{jarticle}
\usepackage[tablesfirst,notablist]{endfloat}
\usepackage{longfigure}
\usepackage{graphicx}
\makeatletter
\renewcommand{\thefigure}{%
\thesection.\arabic{figure}}%
\@addtoreset{figure}{section}%
\makeatother
\usepackage{subfigure}
\begin{document}
\begin{longfigure}{cc}
\centering
\raisebox{-\height}{\Large\textbf{(a)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(b)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(c)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(d)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(e)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(f)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\end{longfigure}

\end{document}

下記は、longfigureを使ってないです。すると、
図1 about here
図2 about here
になってしまい、図が分離します。
結局、うまくいかないです。

\documentclass[dvipdfmx]{jarticle}
\usepackage[tablesfirst,notablist]{endfloat}
\usepackage{longfigure}
\usepackage{graphicx}
\makeatletter
\renewcommand{\thefigure}{%
\thesection.\arabic{figure}}%
\@addtoreset{figure}{section}%
\makeatother
\usepackage{subfigure}
\begin{document}
\begin{figure}[ht]
\centering
\begin{tabular}{cc}
\raisebox{-\height}{\Large\textbf{(a)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(b)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(c)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\label{fig:fig3}
\end{tabular}
\end{figure}

\begin{figure}[ht]
\centering
\begin{tabular}{cc}
\raisebox{-\height}{\Large\textbf{(d)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(e)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\raisebox{-\height}{\Large\textbf{(f)}} & \raisebox{-\height}{\includegraphics[height=8cm,width=9cm]{tiger.eps}} \\
\end{tabular}
\end{figure}

\end{document}

H M への返信

Re: 図の表示につきまして

- H M の投稿

お世話になります。
結局、下記HPのPDFを作りたいです。
\usepackage[tablesfirst,notablist]{endfloat}
を使って、作れないでしょうか?


https://docs.wixstatic.com/ugd/d93788_d22c5667ad214741990adf16c100630f.pdf
H M への返信

Re: 図の表示につきまして

- 北見 けん の投稿
> >これらのパッケージと endfloat パッケージが併用できればよさそうですが、
> その通りで御座います。

やはり併用はうまくいかないのですね。

この方法とは別に、
しっぽ愛好家さんの方法でうまくいったようなので
良かったです。
H M への返信

Re: 図の表示につきまして

- しっぽ 愛好家 の投稿
とりあえず,添付のサンプルファイルのようなことは可能でしょう.
しっぽ 愛好家 への返信

Re: 図の表示につきまして

- H M の投稿
ご回答有難う御座います。
お世話になります。

拝見させて頂きました。
10行目から112行目までのコードの意味が私には、解らないです。(泣)
しかし、このコードを実行させると、私のほしい結果が、確かに得られます。(嬉)
(10行目から112行目までのコードをコメントアウトすると、ダメになります。)

教えて頂きましたコードを使って色々と試してみます。
まずは、お礼を申し上げます。
有難う御座いました。

H M への返信

Re: 図の表示につきまして

- H M の投稿
ご回答有難う御座います。
お世話になります
教えて頂きましたコードを使って色々と試してみました。
これを活用させて頂きます。有難う御座いました。