rr-packageroxygen2rd

Conditional HTML entities in R documentation


I wish to include some non-ascii characters in the documentation for an R package, specifically the diacritic ă. I am using roxygen2, so must not include any non-ASCII characters in the .R file from which the documentation will be generated. Moreover, the non-ASCII characters may not be available to the software that compiles a PDF manual, so I wish to specify a safe fallback for the PDF documentation.

The obvious approach seems to be to conditionally display HTML entities, i.e. \ifelse{html}{ă}{a}, but the entities are evidently escaped at some point: the .rd file reads ă where I expect an ă.

Bonus points for answers that can be applied to diacritics included from REFERENCES.bib via the \insertRef macro...


Solution

  • Per Stéphane Laurent's comment, the simple case can be solved by wrapping the desired HTML entities in \out{}, i.e. \ifelse{html}{\out{ă}}{a}

    For bonus points, it's possible to provide the appropriate PDF character with an ASCII fallback to be used if this is not available with \ifelse{html}{\out{ă}}{\v{a}}{a}

    It would be nice to think that when diacritics occur in references, it would be possible to create two bibtex entries, one using only ascii characters:

    \insertCite{\ifelse{html}{RefWithAccents}{RefAscii}}

    But this triggers a server error...