垂直移动字符而不影响换行符

垂直移动字符而不影响换行符

我正在尝试设置边注指甲。我想使用实际的 unicode 字符作为手形符号,并希望将其偏移到注释其余部分的左侧,放大并稍微向下移动,以便它指向正确的行,如下所示。 所需结果的图片。手写笔与边注分离,并且边注的换行均均匀。 现在我有下面的代码,它接近我想要的,但是放大和移动的手形符号导致了大的换行。

\usepackage{marginnote}
\usepackage{fontspec}
\usepackage[hmarginratio={1:3},totalwidth={4.5in},marginparwidth={13em},marginparsep={3em},vmargin=1in]{geometry}

[...]

\lettrine{\red{B}}{eginning of document}
    In this example I want the manicule to be pointing at the end of this line.

\marginnote{\raisebox{-1em}{\llap{\fontspec{AppleSymbols}\huge{☜}}}\lipsum[5-5]}
\lipsum[1-4]

输出 与上一张图片相同,但在边注的第一行后有一个较大的换行符

所以我的问题是,如何让 Latex 在为其余边注换行时忽略手写字符。或者有没有更好的方法来实现这个结果。

我在 TexStudio 中使用 LuaLaTex

答案1

如果你只在该上下文中使用该符号,则可以使用以下方式缩短输入\newunicodechar

\documentclass{article}
\usepackage{marginnote}
\usepackage{lettrine}
\usepackage{fontspec}
\usepackage[
  hmarginratio={1:3},
  totalwidth={4.5in},
  marginparwidth={13em},
  marginparsep={3em},
  vmargin=1in
]{geometry}
\usepackage{newunicodechar}

\usepackage{lipsum}

\newfontface{\symbolsfont}{AppleSymbols}[Scale=1.8]
\newunicodechar{☜}{%
  \raisebox{-0.5ex}[0pt][0pt]{%
    \makebox[0pt][r]{\symbolsfont ☜}\ignorespaces
  }%
}

\begin{document}

\lettrine{B}{eginning of document}
In this example I want the manicule to be pointing at the end of this line.
\marginnote{☜\lipsum[5][1-2]}
\lipsum[1-4]

\end{document}

避免\fontspec在文档正文中使用,它很慢而且效率低。

在此处输入图片描述

答案2

通过将边注的其余部分放入其自己的 parbox 中来修复此问题,该 parbox 使用 [t] 与前一个文本的顶部对齐。

    \marginnote{\raisebox{-1em}{\llap{\fontspec{AppleSymbols}\huge{☜}}}{\parbox[t]{13em}{\lipsum[5-5]}}}

与问题图片相同但已修复

相关内容