如何在每个边注的开头添加自动装饰?

如何在每个边注的开头添加自动装饰?

当以下 LaTeX 代码(保存在文件中~/Test.tex

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\lipsum[1-1]\marginpar{\lipsum[2-2][1-1]}
\end{document}

通过在终端中执行以下命令进行编译

> cd ~
> lualatex Test

在 PDF 查看器中打开时,结果~/Test.pdf如下所示(我仅截取了显示的相关部分):

裸露的边注。


问题

我怎样才能使每个边注自动以三角形开头(包amssymb\blacktriangleright,需要数学模式),如下面的屏幕截图所示?

带有装饰的边注

笔记:

  1. 边注应设置在三角形的右侧,而不是将三角形嵌入边注中,就好像它是边注的首字母一样。

  2. 三角形的基线应与边注顶线的基线对齐。

  3. 三角形和边注的边界框之间应该有一点水平空间,比如说\enspace

  4. \marginpar如果有某个软件包可以让我的目标更容易实现,那么我很乐意使用内置的以外的其他类型的边际注释。

答案1

如果你坚持要修改\marginpar,你可以执行以下操作:

\documentclass{article}
\usepackage{amssymb}

\newlength{\blacktrianglerightwidth}
\settowidth{\blacktrianglerightwidth}{$\blacktriangleright$}

\makeatletter
\long\def\@savemarbox#1#2{%
\global\setbox #1\color@vbox\vtop{%
\hsize\marginparwidth\@parboxrestore
\@marginparreset $\blacktriangleright$\hskip.5em\relax
\begin{minipage}[t]{%
\dimexpr\marginparwidth-\blacktrianglerightwidth-.5em}#2%
\end{minipage}%
\par\@minipagefalse\outer@nobreak}\color@endbox
}
\makeatother

\usepackage{lipsum}

\begin{document}
    \lipsum[1-1]\marginpar{\lipsum[2-2][1-1]}
\end{document}

但我认为最好定义自己的命令,\mymarginpar如下所示:

\documentclass{article}
\usepackage{amssymb}

\newlength{\blacktrianglerightwidth}
\settowidth{\blacktrianglerightwidth}{$\blacktriangleright$}


\newcommand\mymarginpar[1]{%
    \marginpar{%
        $\blacktriangleright$\hskip.5em\relax
        \begin{minipage}[t]{%
                \dimexpr\marginparwidth-\blacktrianglerightwidth-.5em}#1%
        \end{minipage}%
    }
}



\usepackage{lipsum}

\begin{document}
    \lipsum[1-1]\mymarginpar{\lipsum[2-2][1-1]}
\end{document}

两者的输出 pdf 都是 在此处输入图片描述

相关内容