\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 一起使用。不过,我认为tikzpagenodes
和tikzmark
软件包需要 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}
并表明无论该线的高度和深度、前一条线和下一条线如何,它都可以工作: