將“\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}

在此輸入影像描述

相關內容