r语言 - 如何在 ASCII 编码的 Rd 文件中插入重音字符?



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

我想要我的参考部分(即references{}) 使用重音字符呈现,但我不想在我的Rd文件中键入非 ASCII 字符。是否有良好/推荐的做法?我是否应该简单地将非 ASCII 字符替换为它们的 ASCII 等效字符(é → e、ø → o)?

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

这个问题不是关于:

  • 如何在 LaTeX 中键入特殊/重音字母
  • 如何在 LaTeX 中使用 UTF-8
  • R Markdown 中的重音/特殊字符

或变体。

最小的测试包

包装结构:

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

Rd语法只是类似LaTeX的:它支持一组有限的宏,但不能保证这些宏的行为与LaTeX对应项(如果有的话)相似。相反,很少有 LaTeX 宏具有Rd等效项。

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

WRE 的这一部分专门讨论编码。 支持在Rd文件中使用非 ASCII 字符,前提是您在文件本身(通过encencoding)或DESCRIPTION(通过Encoding字段)中声明适当的编码。但是,鼓励限制使用 ASCII 字符:

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

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

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

这很冗长,所以我建议在man/macros/macros.Rd中定义您自己的宏。您可以使用newcommandrenewcommand来执行此操作:

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

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

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

以下是一些示例:

'{e} {'e} \'e \'{e} {\'e}
$acute{e}$
$grave{e}$
$tilde{e}$

PDF输出:

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

更新:

newcommandlatexcode[1]{#1}
latexcode{'{a}}
Thomalatexcode{'{s}}

托马斯!

最新更新