`\includegraphics` のどの引数を事前に設定できないのでしょうか?

`\includegraphics` のどの引数を事前に設定できないのでしょうか?

パッケージのドキュメントからgraphicx:

keyvalパッケージ内で使用されるキーのほとんどは、パッケージによって提供されるgraphicxコマンドを使用して設定することもできます。\setkeyskeyval

たとえば、現在のドキュメントに含まれるすべてのファイルをテキスト行の幅の 75% に拡大縮小したい場合は、次のコマンドを発行します。

\setkeys{Gin}{width=0.75\textwidth} 

これは、「グラフィックスの包含」に関連付けられたキー ‘Gin’に使用される名前です。オプションの引数で実際に指定された他のキー設定に加えて、後続のすべてのコマンド (同じグループまたは環境内) は、指定されたかのように動作します。keyval\includegraphics[width=0.75\textwidth]

pgfkeys私はこれを使用して、パッケージを使用してキーを受け入れ、認識できないキーをコマンドに渡す引数を作成しようとしています\includegraphics。以下は、実際の動作例です。

\documentclass[convert]{standalone}
\usepackage{graphicx,pgfkeys}

\newcommand{\mykeyset}[1]{\pgfqkeys{/me}{#1}}

\mykeyset{graphic options/.code={}}
\mykeyset{set graphic option/.style={graphic options/.append code=#1}}

%Set up a handler for unknown keys
\mykeyset{.unknown/.code = %
    {%
        \edef\unknownkey{\pgfkeyscurrentname}%
        \mykeyset{set graphic option/.expand once = {\expandafter\setkeys\expandafter{\expandafter G\expandafter i\expandafter n\expandafter}\expandafter{\unknownkey=#1}}}%
    }%
}

\newcommand{\myincludegraphics}[2][]{\begingroup%
    \mykeyset{#1}%
    \mykeyset{graphic options}%
    \includegraphics{#2}%
    \endgroup%
}

\begin{document}
\myincludegraphics[width = 5cm, height = 8cm]{example-image}
\myincludegraphics[scale=0.5]{example-image}
\myincludegraphics{example-image}
\end{document}

出力あり

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

これは およびwidthキーには機能しますheightが、scaleキーには機能しないことに注意してください。これ自体は問題ではありません (scaleキーを個別に処理する方法があります)。ただし、他のどのキーに特別な処理が必要かを知りたいのです。そこで、私の質問は次のとおりです。

コマンドのどのキー\includegraphicsをグローバルに設定できませんか?

答え1

素晴らしいドキュメントですね:-)

一般的にキーの設定はマクロ定義を作成するだけなので、事前に設定できないものは\includegraphicsキーを処理する前に初期化されるものになります。コードを見ると(奇妙なことにドキュメントよりも明らかになっています)、関連する初期化は

   \@tempswafalse

そして、そのブールフラグを使用するキーは と だけangleですscale

フラグの理由は、ほとんどのグラフィックス インクルード バックエンドがイメージを「ネイティブに」拡大縮小できるため、拡大縮小が単独で使用されると、バックエンド ドライバー コードに渡されますが、イメージがすでに回転されていて、回転されたイメージが拡大縮小されると、\includegraphics基本的に基本的なイメージ インクルードの周囲に が挿入されるからです \scalebox{}{\rotatebox{...。おそらく、スケールの例が機能するように別の方法で処理できたかもしれませんが、それはずっと昔のことです:-)

少し異なる理由clipも記載する必要があります。

http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=graphics/2890

関連情報