根据特定提案的格式要求,我需要一种方法来标记文档的各部分(可能跨页),并在两个边距上用星号标记。理想情况下,我希望能够执行 \begin 和 \end 命令来创建该部分,而不是猜测其长度。类似于以下内容:
* Lorem ipsum dolor sit amet, consectetur adipiscing *
* elit, sed do eiusmod tempor incididunt ut labore et *
* dolore manga aliqua. Ut enim ad minim veniam, quis *
* nostrud exercitation ullamco laboris nisi ut aliquip *
* ex ea commodo *consequat. Duis aute irure dolor in *
答案1
更新:再次尝试fancypar
:
\documentclass[a4paper]{article}
\usepackage{lipsum}
\usepackage{parskip}
\usepackage{fancypar}
\makeatletter
\define@choicekey+[FP]{fancypar}{position}[\val\nr]{left,right,both}{%
\ifcase\nr\relax
\def\FancyMarkPosition{\llap{\mbox{\FancyMark\quad}}\box\linebox}
\or
\def\FancyMarkPosition{\box\linebox\rlap{\mbox{\quad\FancyMark}}}
\or
\def\FancyMarkPosition{\llap{\mbox{\FancyMark\quad}}\box\linebox\box\linebox\rlap{\mbox{\quad\FancyMark}}}
\fi
}{%
\PackageWarning{fancypar}{erroneous input ignored}%
}
\makeatother
\usepackage{environ}
\NewEnviron{stars}{%
\MarkedPar[mark=$\star$, position=both]{\BODY}%
}
\begin{document}
\begin{stars}
\lipsum[1]
\end{stars}
\end{document}
除非有人想出一个好的答案,否则这里有一个快速而肮脏的破解方法:
使用 Werner 的答案这里lineno
,我滥用了在页边空白处打印星星而不是数字的机制。
\documentclass[a4paper]{article}
\usepackage{lipsum}
\usepackage{parskip}
\usepackage{lineno}
\makeatletter
\def\makeLineNumberLeft{%
\llap{\hb@xt@\linenumberwidth{$\star$\hss}\hskip\linenumbersep}% left line number
\hskip\columnwidth% skip over column of text
\rlap{\hskip\linenumbersep\hb@xt@\linenumberwidth{\hss$\star$}}\hss}% right line number
\leftlinenumbers% Re-issue [left] option
\makeatother
\begin{document}
\begin{linenumbers}
\lipsum[1]
\end{linenumbers}
\end{document}