12

I'd like to mark one or more of my \item{...}'s in an enumeration with a squiggly line at the right so that I can easily see which parts I have to re-phrase/re-write later on. All I have found is how to make a paragraph a different color, but my printer really does not like this/prints it badly.

Any help is greatly appreciated.

Sorry I wasn't clear, I was thinking of something like this (except it can be smaller and less obstrusive, just enough of a squiggly line as not to oversee it later while reviewing):

This is what I am thinking of

5
  • I can think of several interpretations of "mark ... with a squiggly line at the right". Could you hack together a picture of what you'd like to obtain? Commented Apr 19, 2012 at 13:07
  • possible duplicate adding-a-large-brace-next-to-a-body-of-text
    – cmhughes
    Commented Apr 19, 2012 at 13:24
  • 1
    @cmhughes: Yes, output-wise just about right - but it would be great if it could be entered easier, as to not obstruct the "flow" of writing, something like \beginsquiggly(....) \endsquiggly or \squiggly{....} comes to my mind... These would also be al lot easier to remove later on. So this, if I might say so, is not a duplicate.
    – Christian
    Commented Apr 19, 2012 at 13:26
  • There is the leftbar environment from the framed package. See Alignment in the leftbar environment. Is rightbar possible? for an example.
    – Werner
    Commented Apr 19, 2012 at 14:12
  • edit: added another tag [highlight] and some more text to title for improved retrievability. considered adding tag [changes] or [change-bar] but didn't since those have the opposite intent although the appearance is basically equivalent. Commented Apr 19, 2012 at 18:07

1 Answer 1

19

Here's one possible solution that will draw the squiggly line and admits page breaks (well, one at most) in the affected paragraph(s); all you have to do is to enclose the desired paragraph(s) inside \Startsquiggly, \Endsquiggly:

\documentclass{article}
\usepackage{refcount}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing,calc}
\usepackage{lipsum}

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

\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]
      let \p1 = (a.north), \p2 = (b), \p3 = (current page.center) in
      ( $ (\x3,\y1) + (.55\textwidth,0) $ ) --  ( $ (\x3,\y3) + (0.55\textwidth,-0.5\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]
      let \p1 = (a.north), \p2 = (b), \p3 = (current page.center) in
      ( $ (\x3,\y1) + (.55\textwidth,0) $ ) --  ( $ (\x3,\y2) + (.55\textwidth,0) $ );
  \end{tikzpicture}%
  \else
  \begin{tikzpicture}[overlay, remember picture]
    \draw [decoration={coil,aspect=0},decorate,ultra thick,gray]
      let \p1 = (a.north), \p2 = (b), \p3 = (current page.center) in
      ( $ (\x3,\y3) + (.55\textwidth,.5\textheight) $ ) -- ( $ (\x3,\y2) + (.55\textwidth,0) $ );
  \end{tikzpicture}%
  \fi
}

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

\begin{itemize}
\item \lipsum*[1]
\item \Startsquiggly\lipsum*[1]\Endsquiggly
\item \lipsum*[1]
\item \Startsquiggly\lipsum*[1]\Endsquiggly
\end{itemize}

\end{document}

enter image description here

The code might need two or three runs for the lines to stabilize.

7
  • The Gods of stackexchange... ;) Thanks! Works like a charm (as long as I don't do \item{\Startsquiggly some text here... \Endsquiggly}, ie. it doesn't seem to like the curly braces. But I just noticed I don't necessarily need them anyways. So - this works!
    – Christian
    Commented Apr 19, 2012 at 14:25
  • I just noted that the document needs to be compiled twice for the squiggly lines to show whenever I have done a lot of edits in the text - am I doing something wrong?
    – Christian
    Commented Apr 19, 2012 at 14:32
  • @Christian: no, you're not doing nothing wrong; sometimes even three runs will be necessary for the lines to stabilize. Commented Apr 19, 2012 at 14:34
  • 2
    @Gonzalo -- this approach reminds me of the use of changebars, but the changebar package provides only straight rules, albeit color is possible (but isn't great for b/w printers). requiring tikz isn't usually a problem these days, so i think this would make a nice package. Commented Apr 19, 2012 at 17:59
  • 1
    @barbarabeeton: Thank you. I hadn't thought about the package, but you're right. I'll improve the code and hopefully, if I have the time, it'll end up as a package. Commented Apr 20, 2012 at 2:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .