当以下 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
,需要数学模式),如下面的屏幕截图所示?
笔记:
边注应设置在三角形的右侧,而不是将三角形嵌入边注中,就好像它是边注的首字母一样。
三角形的基线应与边注顶线的基线对齐。
三角形和边注的边界框之间应该有一点水平空间,比如说
\enspace
。\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}