\documentclass{article}
\usepackage[forcolorpaper]{web}
% To compiles with latex > dvips > ps2pdf, use the option gonative, which gets
% passed on to fitr. With gonative, no document JavaScript is created, which 
% is not supported by a non-Acrobat PDF viewer.
\usepackage[!viewMagWin,!preview]{artthreads}
\usepackage{fancyvrb}
\usepackage{multicol}

\useFullWidthForPaper % from web
\providecommand{\cs}[1]{\texttt{\char`\\#1}}
\let\pkg\textsf

\setAddToBorder{addtow=4bp,addtoh=4bp}

\begin{document}

%\noindent
%The two article threads: \setLink[\A{/S/Thread/D(Lipsum)}]{Read Lipsum}
%and \setLink[\Color{red}\A{/S/Thread/D(more Lipsum)}]{Read more Lipsum}.


\noindent
Below is a description of the \setLink[\linktxtcolor{red}\A{\Thread{Methodology}}]{methodology}
for developing article threads. You
may compile this document using any of the usual drivers (options
\texttt{dvips}, \texttt{pdftex}, \texttt{xetex}, \texttt{dvipdfm}, \texttt{dvipdfmx}).
Play around with various combinations of \texttt{preview}, \texttt{!preview},
\texttt{viewMagWin}, and \texttt{!viewMagWin}.

\setThreadInfo{%
    title=Methodology,
    author=D. P. Story,
    subject=Article thread test,
    keywords={AeB, PDF, LaTeX}
}

\begin{multicols}{2}
\noindent\bArticle{lift=\baselineskip,width=\linewidth,height=4in+2\baselineskip}%
There are two places to begin a thread: (1) at the very beginning of a paragraph;
and (2) from within a paragraph. Method~(1) is preferred. We began this paragraph
with
\begin{Verbatim}[xleftmargin=\parindent,fontsize=\small]
\noindent\bArticle{lift=\baselineskip,
    width=\linewidth,
    height=4in+2\baselineskip}%
There are two places...
\end{Verbatim}
Place article threads after you've finished composing your document. While
placing threads, one or both of the  options \texttt{preview} or
\texttt{viewMagWin} should be in effect. In a \textsf{DVI} viewer, we can see
the bounding rectangles. We can see its too low, too long and so on. For
users of \textsf{pdflatex}, \textsf{xelatex}, etc., view your documents in
the \textsf{DVI} previewer first (or view them as a \textsf{PDF}). I've used
\texttt{lift=\string\baselineskip} to raise up the thread rectangle by that
mount to enclose the first line. The value of \texttt{width} is usually
\cs{linewidth}, but the value of \texttt{height} may have to be adjusted, in
this example, I've ``tweaked'' the \texttt{4in} by
\texttt{2\string\baselineskip}.

Naturally, after you're satisfied, you then remove \texttt{preview} and
\texttt{viewMagWin} or change them to \texttt{!preview} and
\texttt{!viewMagWin}. Method~(2): Another possible location is from within a
paragraph, here, we continue the current thread using the \cs{cArticle}
command in conjunction with the \cs{vadjust} {\TeX}
primitive\vadjust{\noindent
\cArticle{lift=2\baselineskip,width=\linewidth,height=4in+2\baselineskip}}.
Between the end of the word `primitive' and the period (.) ending the
sentence, I've place
\begin{Verbatim}[xleftmargin=\parindent,fontsize=\small]
primitive\vadjust{\noindent
    \cArticle{lift=2\baselineskip,
    width=\linewidth,
    height=4in+2\baselineskip}}.
    Between the ...
\end{Verbatim}
The value of \texttt{lift=2\string\baselineskip} we chosen because the
original positioning of the thread rectangle was too low by about two lines.
The value of \texttt{height} was chosen to cover the paragraph once the
complete paragraph was composed.

Of course, in this example, it was unnecessary to insert the \cs{cArticle}
mid-paragraph, it would have been better placed at the beginning of a
paragraph and `lifting' more. Placing \cs{cArticle} mid-paragraph is useful
for multi-column formats. When the paragraph flows from the first column the
second column, use the \cs{vadjust} technique to cover the portion of the
text that flows to the right column.

By the way, notice the use of \cs{noindent}, this is
oftentimes needed to position the article thread in the left margin of the
text block.
\end{multicols}

\noindent
Adding text to the columns will change the positions of the article threads, for
this reason, the threads need to be inserted after the document is finished.


\setThreadInfo{%
    title=\textbraceleft J\"{u}rgen's Thread\textbraceright,
    author={D. P. Story, J\"{u}rgen},
    subject=Discussion of the PDFDocEncloding Character Set,
    keywords={AeB, PDF, LaTeX}
}

% Pass the title through \pdfstringdef, then pass directly as the argument of \Thread
\pdfstringdef\JT{\textbraceleft J\"{u}rgen's Thread\textbraceright}
% Here is a link with the thread title pass directly to the \Thread command.
% \setLink[\linktxtcolor{red}\A{\Thread{\JT}}]{\textbraceleft{J\"{u}rgen's Thread}\textbraceright}
\begin{center}
\setLink[\cmd{\readArticle{\textbraceleft J\"{u}rgen's Thread\textbraceright}}\linktxtcolor{red}\A{\Thread{\threadTitle}}]{\textbraceleft{J\"{u}rgen's Thread}\textbraceright}\\[10bp]
\begin{minipage}{5in}
\noindent\bArticle{lift=\baselineskip,width=\linewidth,height=12\baselineskip+6pt}%
The \pkg{artthreads} package does support, through \pkg{hyperref}, the PDFDocEncloding Character Set. This thread offers
a brief discussion of the topic. The \texttt{title} of this thread is
\verb~\textbraceleft J\"{u}rgen's Thread\textbraceright~, which is properly understood to be
``\textbraceleft J\"{u}rgen's Thread\textbraceright'' and appears correctly in the \setLink[\linktxtcolor{red}\A{\sArticlesPaneActn}]{\textsf{Articles}} pane.
Use standard {\LaTeX} markup for accents, as in \verb~J\"{u}rgen~. Creating a link to such ``special titles''
requires a little bit of trouble. When using the \cs{Thread} command to create an action to read an article thread,
rather than passing the thread title directly as an argument, pass \verb~\A{\Thread{\threadTitle}}~ in the optional
argument of a link, prior to that, insert \verb~\cmd{<thread-title>}}~ in the optional argument. See
the link created for this article. You can also pass the thread title directly to \cs{Thread} but you must
pass the title through \cs{pdfstringdef} first, the source of this file for details.
\end{minipage}
\end{center}

\end{document}
