Diese Frage wurde durch eine Antwort ausgelöst, die ich gegeben habeHier, die ich \includegraphics{...}
innerhalb einer \def
Definition 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 fbox
das folgende Beispiel hinzugefügt, um es deutlicher zu machen.
\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 keystroke
Paket. 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 \centering
ist es außerhalb des Absatzeinstellungsmechanismus von TeX, der innerhalb eines nicht gilt, nicht relevant \fbox
. Schließlich \fboxsep
ist 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}