如何在不“打开”段落的情况下创建边注

如何在不“打开”段落的情况下创建边注

\marginalstar这是来自的宏的示例电子书不带\marginalstar款是正常,带\marginalstar款就是“开通”了。

\def\strutdepth{\dp\strutbox}
\def\marginalstar{\strut\vadjust{\kern-\strutdepth\specialstar}}
\def\specialstar{%
  \vtop to \strutdepth{
    \baselineskip\strutdepth
    \vss
    \llap{* }
    \null
  }%
}
\nopagenumbers
\hsize0.8in
\noindent
Quick brown fox eats a
\marginalstar
fat big
\vrule height 9pt width 2pt depth 0pt
mouse.
\bye

是否有任何 TeX 引擎或 LaTeX/ConTeXt 包可以产生与上述示例相同的输出,但不会“打开”段落?(即,有没有不使用的解决方案\strut

答案1

嗯,如果你使用 TikZ,你可以叠加一张包含星号的图片而不会干扰段落的文本。如果你使用库tikzmark,你可以轻松标记相关的垂直坐标。使用tikzpagenodes包,你可以轻松获得相关的水平坐标。

TikZ 可以与普通 TeX、ConTeXt 以及 Tex、pdfTeX、XeTeX 和 LuaTeX 一起使用。不过,我认为tikzpagenodestikzmark软件包需要 LaTeX 格式。

这是一个 LaTeX 示例:

\documentclass{article}
\usepackage{tikz,tikzpagenodes}
\usetikzlibrary{tikzmark}
\begin{document}
\hsize0.8in
\noindent
Quick brown fox eats a
\tikzmark{a}%
fat big
\vrule height 9pt width 2pt depth 0pt
mouse.
\begin{tikzpicture} [overlay,remember picture]
  \node [anchor=east] at ({pic cs:a} -| current page text area.west) {*};
\end{tikzpicture}
\end{document}

未开段落

为了更方便,你可以将其包装在新命令中。此版本还用于yshift将星星相对于基线稍微向上移动:

\documentclass{article}
\usepackage{tikz,tikzpagenodes}
\usetikzlibrary{tikzmark}
\newcounter{mystar}
\setcounter{mystar}{0}
\newcommand\specialstar{%
  \stepcounter{mystar}%
  \tikzmark{\arabic{mystar}}%
  \tikz[overlay, remember picture] \node [anchor=east, yshift=.25em] at ({pic cs:\arabic{mystar}} -| current page text area.west) {*};}
\begin{document}
\hsize0.8in
\noindent
Quick brown fox eats a
\specialstar%
fat big
\vrule height 9pt width 2pt depth 0pt
mouse.

\noindent
Quick brown fox eats a
\specialstar%
$\frac{a^n + b^n}{\frac{\frac{c}{a^n}}{b^n - c^n}}$
big fat
\vrule height 9pt width 2pt depth 0pt
mouse.

\noindent
Quick
$\frac{a^n + b^n}{\frac{\frac{c}{a^n}}{b^n - c^n}}$
eats a
\specialstar%
big fat
\vrule height 9pt width 2pt depth 0pt
juicy mouse.

\noindent
Quick brown fox eats a
\specialstar%
big fat
\vrule height 9pt width 2pt depth 0pt
$\frac{a^n + b^n}{\frac{\frac{c}{a^n}}{b^n - c^n}}$
mouse.

\end{document}

并表明无论该线的高度和深度、前一条线和下一条线如何,它都可以工作:

演示

相关内容