質問

LaTeX の図では、次のように使用できます。 \textwidth そして \columnwidth 周囲のテキストのサイズに対するグラフィックのサイズを指定します。\includegraphics[width=.5\textwidth]{myimage}.

図が 1 列テンプレートに対して大きくなりすぎることなく、1 列テンプレートから 2 列テンプレートに (またはその逆に) 簡単に切り替えたいと考えています。2 列のテンプレートの場合 (ここで、 \columnwidth およそ半分です \textwidth)、次のようなものにしたいです。\includegraphics[width=.9\columnwidth]{myimage}。そして 1 つの列テンプレートの場合 (ここで、 \columnwidth そして \textwidth は同じ):
\includegraphics[width=.5\textwidth]{myimage}.

さて、ある種の min 演算子を使用してこれを制限できると考えました。\includegraphics[width=min(.5\textwidth,.9\columnwidth)]{myimage} しかし、これは無効な構文です。おそらく LaTeX マクロ システムの使用を通じて、この問題を解決するためのこのようなものはありますか?

役に立ちましたか?

解決

この種のマクロを作成することは可能ですが、それを各図にハードコーディングしたくありません。このようなものはどうでしょうか

\makeatletter
\newlength \figwidth
\if@twocolumn
  \setlength \figwidth {0.9\columnwidth}
\else
  \setlength \figwidth {0.5\textwidth}
\fi
\makeatother

そして使用します

\includegraphics[width=\figwidth]{myimage}

をクリックしてグラフィックを挿入します。

他のヒント

\textwidth はページ本体の水平幅であり、目的にはあまり適していません。

\linewidth 現在の行の幅です。列やインデントなどに応じて更新されます。

次の段落では、線幅全体に正確に適合する画像が生成されます (つまり、過剰な警告はありません):

\noindent\includegraphics[width=\linewidth]{myimage}

左右の余白を小さくしたい場合は、以下を使用できます。

\begin{center}
\includegraphics[width=.9\linewidth]{myimage}
\end{center}

または、余白を絶対サイズで指定したい場合は、次のようにします。

\usepackage{calc}
...
\begin{center}
\includegraphics[width=\linewidth-20pt]{myimage}
\end{center}

ふーむ...上記のコード (\if@twocolumn など) はまったく機能しません。なぜそうしないのかわかりません。:( fink を使用した osX 上の tetex。revtex4 を使用しようとしているので、おそらくそれが問題です。幅などをいじるつもりなので、この種の変更のアイデアは本当に気に入っています。私の論文やさまざまな雑誌記事の場合、これらの距離をマクロで指定すると、この種の変換に役立つ場合があります。

コメントは大歓迎です!-アレン

おそらくこれに詳しい人が答えてくれるでしょうが、2 列にする場合は、Figure のタイプを Figure* に変更する必要があることに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top