可以在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 字符,前提是您在文件本身(通过enc
和encoding
)或DESCRIPTION
(通过Encoding
字段)中声明适当的编码。但是,鼓励限制使用 ASCII 字符:
尽可能避免在
Rd
文件中使用非 ASCII 字符,甚至在"逐字"环境之外使用"<"、">"、"$"、"^"、"&"、"|"、"@"、"~"和"*"等符号(因为它们可能会在设计用于呈现文本的字体中消失)。
在呈现的帮助中获取非 ASCII 字符而不在Rd
文件中包含非 ASCII 字符的建议方法是使用条件文本。ifelse
允许您为 PDF 帮助页面提供原始 LaTeX,为 HTML 帮助页面提供原始 HTML 以及为纯文本帮助页面提供逐字文本:
ifelse{latex}{out{'{e}}}{ifelse{html}{out{é}}{e}}
这很冗长,所以我建议在man/macros/macros.Rd
中定义您自己的宏。您可以使用newcommand
和renewcommand
来执行此操作:
newcommand{eacute}{ifelse{latex}{out{'{e}}}{ifelse{html}{out{é}}{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}}
托马斯!