Zentralisieren Sie ein `\includegraphics` innerhalb eines `\def`

Zentralisieren Sie ein `\includegraphics` innerhalb eines `\def`

Diese Frage wurde durch eine Antwort ausgelöst, die ich gegeben habeHier, die ich \includegraphics{...}innerhalb einer \defDefinition verwendet habe, um Grafiken in einen Inline-Kontext einzubinden.

Frage:Wie kann ich die eingefügte Grafik zentralisieren, wenn ich sie inline verwende, ohne auf manuelle Methoden wie zurückzugreifen \hspace{}? Ich habe es mit versucht \centering, aber das hat keinen Effekt. Ich habe fboxdas folgende Beispiel hinzugefügt, um es deutlicher zu machen.

Inline-Grafik mit (ohne) Zentrierung?

\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. Ich habe es im Paket verwendet keystroke, aber das Problem ist allgemeiner und kann beschrieben werdenohnedas keystrokePaket. Bitte gehen Sie jedoch in Ihrer Antwort darauf ein, wenn es anders ist als der Fall ohne Verwendung keystroke, da ich meine Antwort dort verbessern möchte.

Antwort1

Wie von anderen angemerkt, gibt es mehrere Probleme. Es schlichen sich Leerzeichen ein, weil Zeilen innerhalb einer Makrodefinition nicht mit einem endeten %. Außerdem \centeringist es außerhalb des Absatzeinstellungsmechanismus von TeX, der innerhalb eines nicht gilt, nicht relevant \fbox. Schließlich \fboxsepist es eine Länge und keine Definition und sollte daher auch so eingestellt werden. In TeX wäre das \fboxsep=0pt\relax, während man in LaTeX vorzugsweise verwenden kann \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}

Bildbeschreibung hier eingeben

verwandte Informationen