
3 つのミニページを使用して、テーブルと 2 つの画像を隣り合わせに配置すると、画像は正しい位置にありますが、テーブルがかなり下に配置されてしまい、見苦しい結果になります。なぜこのようなことが起こるのでしょうか。どうすれば修正できますか。
\begin{minipage}[t]{5cm}
\begin{tabular}{|c|c|c|}
\hline
$V_{c}(Low)$ & $mV$ & $0$\\
\hline
$V_{c}(High)$ & $V$ & $5.6$\\
\hline
$T_{d}$ & $ns$ & $30$\\
\hline
$T_{r}$ & $ns$ & $30$\\
\hline
$T_{sd}$ & $ns$ & $780$\\
\hline
$T_{f}$ & $ns$ & $240$\\
\hline
$F_{max}$ & $kHz$ & $570$\\
\hline
\end{tabular}
\end{minipage}
\begin{minipage}[t]{5cm}
\includegraphics[width=\textwidth]{A1.JPG}
\end{minipage}
\begin{minipage}[t]{5cm}
\includegraphics[width=\textwidth]{A2.JPG}
\end{minipage}
答え1
コードが機能しない理由。
これは、この垂直方向の配置が実際にどのように機能するかに関係しています。まず、次のコードとその出力を検討してください。
\documentclass{article}
\usepackage{graphicx}
\begin{document}
Some text then a table \begin{tabular}{c}
1 \\2 \\ 3 \\ 4
\end{tabular}
then some more text and an image \includegraphics[width=2cm]{example-image-10x16}.
\end{document}
ここでのポイントは、表と画像が周囲のテキストのベースラインに対してどのように配置されるかということです。つまり、表はtabular
垂直方向に中央に配置され、画像はベースライン上に配置され、行の上に突き出ます。
さて、私が理解している限り、 sのt
/b
位置指定子がminipage
指すのは、実際にはsの上端/下端ではなく、minipage
テキストの最初/最後の行のベースラインでは、上の画像からわかるように、表のある ではベースラインは表の中央にあります。しかし、minipage
画像のある では、ベースラインは画像の下部にあります。その結果、画像の下部が表の中央に揃います。minipage
minipage
提案1
daleif の提案に従って、以下のコードでminipage
を削除しました。tabular
右揃えを設定すると、minipage
見た目c
が良くなります。
\begin{minipage}[c]{5cm}
はデフォルトで配置さtabular
れます。c
tabular
上揃えにするには、との両方の位置をminipage
に設定し、 と画像のt
内側の位置(3番目のオプション引数)を に設定します。つまり、minipage
b
\begin{tabular}[t]{...}
テーブルと
\begin{minipage}[t][][b]{5cm}
sの場合minipage
。
提案2
を追加すると、\usepackage[export]{adjustbox}
オプションの引数valign=<t/c/b>
を使用して、ベースラインを基準とした画像の垂直方向の配置を変更できます\includegraphics
。その後、 を完全に削除できますminipage
。
\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage[export]{adjustbox}
\begin{document}
\begin{tabular}{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\includegraphics[width=5cm,valign=c]{example-image-a}
\includegraphics[width=5cm,valign=c]{example-image-b}
\end{document}
テーブルに関するいくつかの注意事項。
質問の一部ではありませんが、以下のコードでテーブルを記述する方法の提案を追加しました。結果は画像に示されています。
列の指定が に変更されました{>{$}c<{$} s S }
。パッケージをロードするときに、/array
を使用してセルの先頭/末尾に内容を挿入できます。上記の操作を行うと、各セルが数式モードに設定されます。これにより、入力の手間が省けます。>{}
<{}
2 番目の列については、単位は一般的に斜体で書かないように注意してください。単純にすべての数式モードを削除すれば、ずっと良くなります。ここでは、s
の列を使用しましたsiunitx
。これにより、 の単位マクロを使用してsiunitx
単位をタイプセットできます。
最後の列はS
、これも からの列でsiunitx
、小数点の位置で数字を揃えます。 この場合の改善かどうかはわかりませんが、ヒントとして追加しておこうと思いました。
最初の列では、「Low」、「High」、「max」という単語をテキスト モードで設定していることに気付くでしょう。これは主に慣例の問題だと思いますが、変数名ではなく説明的な単語は斜体にすべきではないと思います。また、すべての縦線を削除し、booktabs
上下に太い横線 ( から ) を追加しました。これにより、表がすっきりします。
\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\begin{minipage}[c]{5cm}
\includegraphics[width=\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[c]{5cm}
\includegraphics[width=\textwidth]{example-image-b}
\end{minipage}
\vspace{2cm}
\begin{tabular}[t]{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\begin{minipage}[t][][b]{5cm}
\includegraphics[width=\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[t][][b]{5cm}
\includegraphics[width=\textwidth]{example-image-b}
\end{minipage}
\end{document}
答え2
パッケージの と を使用minipages
すると、 を完全に回避できます。MWE の末尾の構文に注意してください。この場合、各項目を独自のスタックボックスのみに保存したので、中央揃えの出力が必要な場合、ボックスの高さを使用した追加の計算が必要になります。それ以外の場合は、示されている構文を使用して列を直接出力できます。\abovebaseline
\belowbaseline
stackengine
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{stackengine}
\parskip 1em
\begin{document}
\savestack{\colA}{
\begin{tabular}[b]{|c|c|c|}
\hline
$V_{c}(Low)$ & $mV$ & $0$\\
\hline
$V_{c}(High)$ & $V$ & $5.6$\\
\hline
$T_{d}$ & $ns$ & $30$\\
\hline
$T_{r}$ & $ns$ & $30$\\
\hline
$T_{sd}$ & $ns$ & $780$\\
\hline
$T_{f}$ & $ns$ & $240$\\
\hline
$F_{max}$ & $kHz$ & $570$\\
\hline
\end{tabular}}
\savestack{\colB}{\includegraphics[width=5cm,height=4cm]{A1.JPG}}
\savestack{\colC}{\includegraphics[width=5cm,height=2.5cm]{A2.JPG}}
\colA\ \abovebaseline[.5\ht\colAcontent-.5\ht\colBcontent]{\colB}\
\abovebaseline[.5\ht\colAcontent-.5\ht\colCcontent]{\colC}
\colA\ \colB\ \colC
\belowbaseline{\colA}\ \belowbaseline{\colB}\ \belowbaseline{\colC}
\end{document}
答え3
tabular
はすでに一種のミニページです ( を使用するとよいでしょう\begin{tabular[t]{...}
)。デフォルトでは中央にベースラインがあり、 は1 本の線のminipage
ように動作するので、周囲はこれを変更しませんtabular
(ある意味)。画像は のようにベースライン上に揃えられ、それよりも高くなります。
パッケージを試してみるといいでしょう。このパッケージにはadjustbox
、ものを整列させるための便利な機能が多数あります。
また、ちょっとしたお願いですが、編集せずにコピー&ペーストして使用できるものを投稿してください。 前文がなく、もちろん画像もありません。 画像については、 を使用できます\rule{length}{length}
。