如何在 ASCII 编码的 Rd 文件中键入重音字符?

How do I type accented characters in ASCII-encoded Rd files?

可以在 Rd 文件中使用 LaTeX 转义重音符号吗?我尝试了标准 \'e 和许多变体(\'{e}{\'e}\'e\'{e}{\'e} 等),但是 none 在 PDF 或 HTML 输出中呈现为重音字符。

我希望我的参考部分(即 \references{})用重音字符呈现,但我不想在我的 Rd 文件中键入非 ASCII 字符。有good/recommended练习吗?我是否应该简单地将非 ASCII 字符替换为它们的 ASCII 等效字符 (é → e, ø → o)?

明确地说,我知道可以直接在 UTF-8 编码的文件中键入重音字符(例如 é),但我更愿意保留 ASCII 编码的文件。

这个问题不是关于

或变体。

最小测试包

包结构

test
test/man
test/man/one.Rd
test/R
test/R/one.R
test/DESCRIPTION

test/man/one.Rd

\name{one}
\alias{one}
\title{Get One}
\description{Accents are not rendered: \'e \'{e} {\'e} \'e \'{e} {\'e}}
\usage{
one()
}

test/R/one.R

one <- function() 1

test/DESCRIPTION

Package: test
Version: 0.1
Title: Test
Author: Nobody
Maintainer: Nobody <no@body.org>
Description: Test.
License: GPL-3

构建、检查和安装:

$ R CMD build test
$ R CMD check test_0.1.tar.gz
$ R CMD INSTALL test_0.1.tar.gz

使用数学模式就可以了。不确定 100% 这是否是您要找的。

这里有一些例子:

  \'{e} {\'e} \'e \'{e} {\'e}

$\acute{e}$

$\grave{e}$

$\tilde{e}$

PDF 输出:

’{e} {’e} \‘e \’{e} {\’e}
é
è
ẽ

更新:

\newcommand\latexcode[1]{#1}

\latexcode{\'{a}}

Thoma\latexcode{\'{s}}

这很有效,托马斯!

Rd 语法只是 LaTeX-like:它支持一组有限的宏,但不能保证它们的行为与它们的 LaTeX 对应物一样,如果存在的话.相反,很少有 LaTeX 宏具有 Rd 等价物。

This section of the Writing R Extensions manual describes most of the built-in Rd macros. Tables 1, 2, and 3 of this技术论文提供完整列表。

WRE 的

This 部分专门针对编码。 支持在 Rd 文件中使用 non-ASCII 个字符,前提是您在文件本身(通过 \enc\encoding)或 [=18] 中声明了适当的编码=](通过 Encoding 字段)。但是,鼓励限制使用 ASCII 字符:

Wherever possible, avoid non-ASCII chars in Rd files, and even symbols such as ‘<’, ‘>’, ‘$’, ‘^’, ‘&’, ‘|’, ‘@’, ‘~’, and ‘*’ outside ‘verbatim’ environments (since they may disappear in fonts designed to render text).

不包括 Rd 文件中的 non-ASCII 个字符的呈现帮助 中获取 non-ASCII 个字符的推荐方法是使用 conditional text\ifelse 允许您为 PDF 帮助页面提供原始 LaTeX,为 HTML 帮助页面提供原始 HTML,为纯文本帮助页面提供逐字文本:

\ifelse{latex}{\out{\'{e}}}{\ifelse{html}{\out{&eacute;}}{e}}

这太冗长了,所以我建议在 man/macros/macros.Rd 中使用 defining your own macro(s)。您可以使用 \newcommand\renewcommand:

\newcommand{\eacute}{\ifelse{latex}{\out{\'{e}}}{\ifelse{html}{\out{&eacute;}}{e}}}

然后您可以在所有 Rd 文件中自由使用 \eacute{}。要检查所有格式的文本是否以您想要的方式呈现,请安装包和 运行 help(topic, help_type=),其中 help_type 等于 "text""html""pdf".