`\includegraphics` を `\def` 内に集約する

`\includegraphics` を `\def` 内に集約する

この質問は私が答えていたことに由来していますここ\includegraphics{...}を定義内で使用して\def、インライン コンテキストにグラフィックを含めました。

質問:インラインを使用する場合、 のような手動の方法に頼らずに、含まれているグラフィックを中央に配置するにはどうすればよいですか\hspace{}? を試してみましたが、効果はありませんでした。よりわかりやすくするために、以下の例\centeringを追加しました。fbox

中央揃えの(中央揃えでない)インライングラフィック?

\documentclass{article}
\usepackage{graphicx,keystroke,scalerel}
\renewcommand{\fboxsep}{0pt}
\def\abcd{%
    {\centering \fbox{\scalerel*{\includegraphics{example-image-a}}{X}}}
}

\begin{document}
    This is an in-line graphic \fbox{\keystroke{\abcd}}.

    This is an in-line graphic \fbox{\abcd} with some space on either side.
\end{document}

\keystroke{...}追伸:私はそれを使っていましたkeystrokeが、問題はより一般的なものであり、説明することができますそれなしパッケージkeystroke。ただし、 を使用しない場合と異なる場合はkeystroke、回答でこの点について言及してください。その点について回答を改善したいと思います。

答え1

他の人が指摘したように、いくつかの問題があります。マクロ定義内の行が で終了していないため、余分なスペースが入り込んでいました。%また、\centeringは TeX の段落設定メカニズム以外では関連性がなく、 内では適用されません。\fbox最後に、 は\fboxsep定義ではなく長さなので、そのように設定する必要があります。TeX では になります\fboxsep=0pt\relaxが、LaTeX では を使用することをお勧めします\setlength{\fboxsep}{0pt}

\documentclass{article}
\usepackage{graphicx,keystroke,scalerel}
\setlength{\fboxsep}{0pt}
\newcommand\abcd{\fbox{\scalerel*{\includegraphics{example-image-a}}{X}}}
\begin{document}
    This is an in-line graphic \fbox{\keystroke{\abcd}}.

    This is an in-line graphic \fbox{\abcd} with some space on either side.
\end{document}

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

関連情報