Esta pergunta é motivada por uma resposta que eu estava dandoaqui, no qual usei \includegraphics{...}
dentro de uma \def
definição, para incluir gráficos em um contexto in-line.
Pergunta:Como faço para centralizar o gráfico incluído, quando uso in-line, sem recorrer a métodos manuais como \hspace{}
? Eu tentei com \centering
, mas não surtiu efeito. Eu adicionei fbox
o exemplo abaixo para torná-lo mais aparente.
\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}
obs. Eu estava usando \keystroke{...}
do keystroke
pacote, mas o problema é mais geral e pode ser descritosemo keystroke
pacote. No entanto, resolva isso em sua resposta se for diferente do caso sem usar keystroke
, pois gostaria de melhorar minha resposta.
Responder1
Conforme observado por outros, existem vários problemas. Espaços perdidos estavam surgindo, porque as linhas dentro de uma definição de macro não terminavam em %
. Além disso, \centering
não tem relevância fora do mecanismo de configuração de parágrafo do TeX, que não se aplica dentro de um arquivo \fbox
. Finalmente, \fboxsep
é um comprimento, não uma definição e, portanto, deve ser definido como tal. No TeX, isso seria \fboxsep=0pt\relax
, enquanto no LaTeX, pode-se usar preferencialmente \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}