特定のグラフィックに setkeys を使用する - または: コマンドまたはマクロで特定のグラフィックのオプションを定義する方法は?

特定のグラフィックに setkeys を使用する - または: コマンドまたはマクロで特定のグラフィックのオプションを定義する方法は?

(私の質問の動機は最後に記載されています!)

質問: オプションのキーをincludegraphics、それを使用するグラフィック内ではなく、別のコマンドで定義するにはどうすればよいでしょうか? (たとえば、同じオプションを複数回使用できるようにしたり、グラフィックの組み込み自体ではなく、単に一元的に定義できるようにしたりします。)

ではgraphicx標準これらのオプションは、新しいオプションを指定して上書きしない限り、すべてのグラフィックスに使用されます。これは setkeys コマンドで実行され、次のようになります。

\documentclass{scrartcl}
\usepackage{graphicx}

\setkeys{Gin}{width=4cm,height=4cm}

\begin{document}   
  \hspace*{-3cm}
  \includegraphics{example-image-a}
  \includegraphics[width=2cm]{example-image-b}
  \includegraphics[width=2cm,height=!]{example-image-c}
  \includegraphics[width=!,height=!]{example-image}
\end{document}

ここに画像の説明を入力してください

したがって、最初に表示されるグラフィックでは、新しい標準は 4cm/4cm ですが、その他は個別の値 (w/h) で上書きされます。

  • A: 4cm/4cm、新しい標準
  • B: 2cm/4cm、高さは依然として新しい基準であるため
  • C: 2cm/*、*は幅に対する高さの比率
  • image: */*、つまり、グラフィックの元の寸法

しかし、私はsetkeys定義を特定のグラフィックにのみ使用したいと思います。(もちろん、新しい標準を設定し、他のすべてのグラフィックにとwidthを使用することもできますが、それは明らかに受け入れられる解決策ではありません。)つまり、私はheight!ない標準を変更したいのですが、この定義を自分の選んだグラフィックでのみ使用できるようにしたいのです。例えば、次のようなことができるようにしたいのです。

\setkeys{MyKeys}{width=4cm,height=4cm}
..
\includegraphics[MyKeys]{example-image-X}

それはどういうわけか可能ですか?

モチベーション:

私は、ほとんどの場合、それを使用する人がそれ以上触れる必要がないほど十分に柔軟な、Beamer スライド用の独自のパッケージ (つまり、sty ファイル) を定義したいと思っています。代わりに、必要な編集/個別化はすべて別の構成ファイルで行う必要があります。(たとえば、タイトル スライドのタイトルと作成者を定義できます。)

ここで設定すべき項目の1つは、タイトルスライドに表示されるグラフィックのサイズです。つまり、原則としての場合、sty ファイルには次のような内容が含まれている必要があります: \includegraphics[\OptionsSpecifiedInConfigFile]{\LogoSpecifiedInConfigFile}。ただし、これらのオプション ( などwidth=2cm,height=3cm) はコマンド ( など\OptionsSpecifiedInConfigFile) に単純に保存することはできないため、別の解決策が必要です。

オプションをパッケージに渡すことも選択肢の 1 つであることはわかっています (すでに実行しています) が、特にこれらのオプションに対してこれを行うのは意味がないと思います。

関連するstackoverflowの投稿:

(私の問題の解決には役立ちませんでしたが、関連性が高いと思われるため、他の人が役に立つと思われる場合に備えて投稿しました。)

助けてくれてありがとう!

答え1

場合によっては異なるデフォルトが必要な場合は、そのための新しいコマンドを定義することができます。

\newcommand*{\myincludegraphics}[2][]{\includegraphics[width=4cm,height=4cm, #1]{#2}}

オプションを特別なマクロに保存したい場合は、マクロを渡す前に展開する必要があります。\includegraphics

\newcommand*{\OptionsSpecifiedInConfigFile}{width=4cm,height=4cm}
\expandafter\includegraphics\expandafter[\OptionsSpecifiedInConfigFile]{example-image-a}

関連情報