寻找标记边距的方法

寻找标记边距的方法

根据特定提案的格式要求,我需要一种方法来标记文档的各部分(可能跨页),并在两个边距上用星号标记。理想情况下,我希望能够执行 \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}

在此处输入图片描述

相关内容