`\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}

帶輸出

在此輸入影像描述

請注意,這適用於widthheight鍵,但不適用於scale鍵。這本身不是問題——我有一種scale單獨處理密鑰的方法——但我想知道還有哪些密鑰需要特殊處理。因此,我的問題是:

命令的哪些鍵\includegraphics不能全域設定?

答案1

很棒的文檔不是嗎:-)

一般來說,設定按鍵或多或少只是進行巨集定義,所以不能事先設定的是\includegraphics處理按鍵之前初始化的按鍵。查看程式碼(奇怪的是,比文件更能說明問題)唯一相關的初始化是

   \@tempswafalse

使用該布林標誌的鍵只是anglescale

該標誌的原因是大多數圖形包含後端可以“本機”縮放圖像,因此如果單獨使用縮放,則會將其傳遞到後端驅動程式代碼,但如果圖像已經旋轉,然後旋轉圖像被縮放,本質上是在基本影像包含物周圍\includegraphics插入一個 。\scalebox{}{\rotatebox{...也許可以用不同的方式處理,這樣你的比例範例就可以工作,但那是很久以前的事了:-)

對於略有不同的原因clip也應列出,請參閱

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

相關內容