这个问题是由我之前给出的一个答案引发的这里,我在其中使用了\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}