On 15/01/2010 6:24 AM, Jim Lemon wrote:
On 01/15/2010 12:13 AM, Duncan Murdoch wrote:
On 14/01/2010 11:20 AM, Jim Lemon wrote:
Hi Core Team,
I received an email about a problem with the help on the plotrix
package. Apparently the \link tags in the help pages were showing up
as literal text. I couldn't see this problem, nor any problem with the
Rd files. Since the plotrix package hasn't been built for a while, I
rechecked, rebuilt and reinstalled it. Sure enough, the \link tags
showed up as literal text in both text and HTML help. This may be
peculiar to R-2.10.1 as I never installed 2.10.0. If it helps, the
--no-latex tag wasn't recognized by the INSTALL command (although only
the HTML help was apparently built).

As far as I can see, the previous behavior of translating \link{ into
<a href="... and the following } into </a> has been lost. The \samp{
string is now translated to an HTML span tag whereas I think it used
to be translated to a <code> tag and this may be where the problem lies.

I think this is all done in Perl, so I can't help with the debugging.
The help parsing is done in C now, and the conversion to output formats
is done in R. See the Rd2* functions in the tools package if you want to
debug anything.
Thanks for the tip. You're talking my language now.

The problem is indeed with the \samp{} markup tag, as this is translated to define a <span> class "samp" that is supposed to change the font to "monospace" between the tags (it doesn't). I tried changing this to defining a style (not recommended, but...) and that didn't work, either. Fooled around with the R.css file, explicitly defining fontfamily as "Courier" doesn't work. None of the other classes defined as a font change to "monospace" work. <span> itself doesn't appear consider any text within it as literal, as manually entering the link within the <span> tags in the HTML page creates a valid link. As far as I can determine, the writeLink function doesn't get called for links within a \samp{} as there are no error messages but the link doesn't get written to the HTML file. My suspicion at the moment is that by the time the action reaches line 227 in Rd2HTML, the "\link" string is no longer there to recognize.

The \samp{} macro is defined (in Writing R Extensions) as

\samp{text}
Indicate text that is a literal example of a sequence of characters, entered verbatim. No wrapping or reformatting will occur. Displayed using typewriter font if possible.

In 2.8.x and 2.9.x, it said something similar, but was less explicit:

\samp{text}
    Indicate text that is a literal example of a sequence of characters.

The Perl converters in earlier versions may have processed \link macros within this, but I think that was an error. This macro should be used to document things like Rd macros or other literal sequences of characters, without requiring escapes (or with minimal requirements for escapes).

Part of the problem with writing a grammar for Rd files is that usage was so irregular, so this looks like a case where I decided on something that was close to the documentation, but not so close to the existing implementation.


I can fix the problem by reverting to using \code{} _except_ where that markup includes a link. This gives the font change, but of course prints everything within the resulting <pre> tags literally. However, that produces an HTML page that looks okay and has the requested links. I suspect that this will not be a welcome fix, as I can still recall changing all the \code{} to \samp{} in my Rd files.

You don't want to use \code{} unless you are entering R code. I don't think you've said exactly what your goal is: is it just to get a typewriter font for text? I'm not sure there's a way to do that, and it does seem like a reasonable thing to want to do, but the current styles don't support it. We've got \emph, \bold, \strong, but no \texttt equivalent. What would you use it for?

Duncan Murdoch


I wouldn't mind an opinion on a preferred direction before trying to find where the processing of \samp{} is going wrong.

Jim

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to