将 `\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{...}ps. 我是从包中使用它的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}

在此处输入图片描述

相关内容