没有边距的块旁边的垂直线

没有边距的块旁边的垂直线

我见过本网站在段落旁边添加一行有几种可能。像这样:(行是连续的)

text text text |
text text text |
text text text |

但是,我想在页边距上打印该行,这样原始段落就不会受到任何修改。在其他示例中,段落与下一个和前一个段落之间有额外的间距,并且文本稍微向一侧移动。

我见过的另一个选项是使用 pdfcomments 包,但我只想要一个真正的行,而不是会在打印时引起问题的注释。这可能吗?也许使用 Tikz?

答案1

changebar软件包已经这样做了:

\documentclass{article}
\usepackage[color]{changebar}
\usepackage{lipsum}

\setlength\changebarsep{10pt}

\begin{document}

\lipsum[4]
\cbstart
\lipsum[4]
\cbend
\lipsum[4]
\cbcolor{red}
\setlength\changebarwidth{6pt}
\cbstart
\lipsum[4]
\cbend

\end{document}

在此处输入图片描述

想要更精致的版本,你可以看看this answer用波浪线标记(突出显示)某个段落(\item{...}),以便稍后注意

答案2

谢谢贡萨洛·梅迪纳的回应经过一些修改,我最终得到:

\newcounter{tmp}
\newcommand\tikzmark[1]{%
  \tikz[overlay,remember picture] \node (#1) {};}

\def\separacionBarraInicial{.51}
\def\separacionBarraFinal{.53}

\newcommand\Startsquiggly{%
  \stepcounter{tmp}%
  \tikzmark{a}\label{a\thetmp}%
  \ifnum\getpagerefnumber{a\thetmp}=\getpagerefnumber{b\thetmp} \else
      \begin{tikzpicture}[overlay, remember picture]
        %\draw [decoration={coil,aspect=0},decorate,ultra thick,gray]
        \draw [decorate,ultra thick,black]
          let \p1 = (a.north), \p2 = (b), \p3 = (current page.center) in
          ( $ (\x3,\y1) + (\separacionBarraInicial\textwidth,1ex) $ ) --
          ( $ (\x3,\y1) + (\separacionBarraFinal\textwidth,1ex) $ ) --  
          ( $ (\x3,\y3) + (\separacionBarraFinal\textwidth,-0.51\textheight) $ );
      \end{tikzpicture}%
  \fi%
}

\newcommand\Endsquiggly{%
\tikzmark{b}\label{b\thetmp}
  \ifnum\getpagerefnumber{a\thetmp}=\getpagerefnumber{b\thetmp}
      \begin{tikzpicture}[overlay, remember picture]
        %\draw [decoration={coil,aspect=0},decorate,ultra thick,gray]
        \draw [decorate,ultra thick,black]
          let \p1 = (a.north), \p2 = (b), \p3 = (current page.center) in
          ( $ (\x3,\y1) + (\separacionBarraInicial\textwidth,1ex) $ ) -- 
          ( $ (\x3,\y1) + (\separacionBarraFinal\textwidth,1ex) $ ) --  
          ( $ (\x3,\y2) + (\separacionBarraFinal\textwidth,-0.75ex) $ ) --
          ( $ (\x3,\y2) + (\separacionBarraInicial\textwidth,-0.75ex) $ );
      \end{tikzpicture}%
  \else
      \begin{tikzpicture}[overlay, remember picture]
        %\draw [decoration={coil,aspect=0},decorate,ultra thick,gray]
        \draw [decorate,ultra thick,black]
          let \p1 = (a.north), \p2 = (b), \p3 = (current page.center) in
          ( $ (\x3,\y3) + (\separacionBarraFinal\textwidth,.495\textheight) $ ) -- 
          ( $ (\x3,\y2) + (\separacionBarraFinal\textwidth,-0.75ex) $ ) --
          ( $ (\x3,\y2) + (\separacionBarraInicial\textwidth,-0.75ex) $ );
      \end{tikzpicture}%
  \fi
}

\newcommand\Squ[1]{\Startsquiggly#1\Endsquiggly}

我基本上去掉了“线圈”装饰,并使其稍长一些(包括其上部和下部)。这是最终结果

最后结果

最后我想说一句,就是“changebar”调整位置时会出现问题(可能是因为与其他包冲突)。所以 Tikz 的解决方案似乎是最好的。

答案3

下一个代码产生的结果与Alvaro的selfanswer类似,但有tcolorbox帮助。

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

\newtcolorbox{markbox}{%
     enhanced, breakable, size=minimal, parbox=false, after={\par}, 
     before upper={\indent}, colback=white, 
     overlay = {\draw[line width=2pt] (frame.north east) -|
                       ([xshift=3mm]frame.east)|-(frame.south east);},
     overlay first={\draw[line width=2pt] (frame.north east) -|
                           ([xshift=3mm]frame.south east);},
     overlay middle={\draw[line width=2pt] ([xshift=3mm]frame.north east) -- 
                              ([xshift=3mm]frame.south east);},
     overlay last={\draw[line width=2pt] ([xshift=3mm]frame.north east)|-
                          (frame.south east);},
}

\begin{document}
\lipsum[1]
\begin{markbox}
\lipsum[2-11]
\end{markbox}
\lipsum[12]
\begin{markbox}
\lipsum[13]
\end{markbox}
\lipsum[14-15]
\end{document}

下图中标记段落周围的细线是观看者看到的痕迹,并非打印出来的。

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

相关内容