包含图形但不修改布局(即在文本后面添加图像)

包含图形但不修改布局(即在文本后面添加图像)

我想定义一个\mark添加图像的命令mark.png

  • 与当前文本位于同一垂直坐标上
  • 距左边界 1cm 处
  • 不修改布局,即如果我删除此命令,文本不应该移动,页面应该具有相同的布局

例子

\documentclass{article}
\usepackage{graphicx}
\def\mark{\includegraphics{test.png}}
\begin{document}
Hello world
$$x^2+1$$
\mark Hello world
\end{document}

没有:

在此处输入图片描述

预期行为:

在此处输入图片描述

目前错误的输出:

在此处输入图片描述

答案1

您可以将图像放在边缘处,这样可确保它不会影响正文的布局。

为此,您可以使用\marginpar{....}或按照@Skillmon 建议的方式在评论中 \marginnote{}为了更好的放置,可以从同名的包中找到。

与问题无关,但你不应该使用$$...$$,请参阅为什么 \[ ... \] 比 $$ ... $$ 更可取?了解更多信息。

\documentclass{article}
\usepackage{graphicx}

\usepackage{marginnote}
\reversemarginpar

\begin{document}
Hello world
\[
    x^2+1
\]
\marginnote{\includegraphics[width=1cm]{example-image-duck}}
Hello world
\end{document}

在此处输入图片描述


由于@samcarter 允许我这样做,因此我将使用以下编辑:

  1. 我会将宏放入\begingroup-\endgroup对中并将其保留\reversemarginpar在该组中,这样我们就不会影响使用它的其他宏。

  2. 我会把它放进\includegraphics\rlap,这样图像的宽度就无所谓了。

  3. 我会\marginnote在本地改变左边距的对齐方式。

代入代码:

\newcommand\mymark[2][]
  {%
     \begingroup
     \reversemarginpar
     \renewcommand*\raggedleftmarginnote{\raggedright}%
     \marginnote{\rlap{\includegraphics[#1]{#2}}}%
     \endgroup
  }

现在您可以\mymark像平常一样使用\includegraphics,但将图像放入边缘。


注意:如果您想要正确对齐,请不要忘记将其放在方程式内:

 \[ \mymark x^2 +1 \]

有效,而

 \mymark \[x^2 +1 \]

会产生错位

相关内容