3

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

我希望我的参考部分(即\references{})用重音字符呈现,但我不想在我的Rd文件中键入非 ASCII 字符。有没有好的/推荐的做法?我是否应该简单地将非 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
4

2 回答 2

2

Rd语法仅类似于 LaTeX 它支持一组有限的宏,但不能保证这些宏的行为与它们的 LaTeX 对应物(如果存在)相同。相反,很少有 LaTeX 宏具有Rd等价物。

编写 R 扩展手册的这一部分描述了大多数内置Rd宏。技术文件的表 1、2 和 3提供了完整列表。

WRE 的这一部分专门针对编码。支持在文件中使用非 ASCII 字符,前提是您在文件本身(通过和)或在(通过字段)Rd中声明适当的编码。但是,鼓励对 ASCII 字符进行限制:\enc\encodingDESCRIPTIONEncoding

尽可能避免在Rd文件中使用非 ASCII 字符,甚至避免使用 '<'、'>'、'$'、'^'、'&'、'|'、'@'、'~' 等符号, 和 '*' 在 'verbatim' 环境之外(因为它们可能会在设计用于呈现文本的字体中消失)。

在呈现的帮助中获取非 ASCII 字符 而不在文件中包含非 ASCII 字符的推荐方法Rd是使用条件文本\ifelse允许您为 PDF 帮助页面提供原始 LaTeX,为 HTML 帮助页面提供原始 HTML,为纯文本帮助页面提供逐字文本:

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

这很冗长,所以我建议man/macros/macros.Rd. 你可以用\newcommandand做到这一点\renewcommand

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

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

于 2022-02-07T19:31:08.377 回答
-1

使用数学模式它可以工作。不确定 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}}

那行得通,托马斯!

于 2022-02-07T15:59:13.870 回答