如何在 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 编码的文件。
这个问题不是关于
- how to type special/accented letters in LaTeX
- how to use UTF-8 in LaTeX
- accents/special characters in 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
使用数学模式就可以了。不确定 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{é}}{e}}
这太冗长了,所以我建议在 man/macros/macros.Rd
中使用 defining your own macro(s)。您可以使用 \newcommand
和 \renewcommand
:
\newcommand{\eacute}{\ifelse{latex}{\out{\'{e}}}{\ifelse{html}{\out{é}}{e}}}
然后您可以在所有 Rd
文件中自由使用 \eacute{}
。要检查所有格式的文本是否以您想要的方式呈现,请安装包和 运行 help(topic, help_type=)
,其中 help_type
等于 "text"
、"html"
或"pdf"
.
可以在 Rd
文件中使用 LaTeX 转义重音符号吗?我尝试了标准 \'e
和许多变体(\'{e}
、{\'e}
、\'e
、\'{e}
、{\'e}
等),但是 none 在 PDF 或 HTML 输出中呈现为重音字符。
我希望我的参考部分(即 \references{}
)用重音字符呈现,但我不想在我的 Rd
文件中键入非 ASCII 字符。有good/recommended练习吗?我是否应该简单地将非 ASCII 字符替换为它们的 ASCII 等效字符 (é → e, ø → o)?
明确地说,我知道可以直接在 UTF-8 编码的文件中键入重音字符(例如 é
),但我更愿意保留 ASCII 编码的文件。
这个问题不是关于
- how to type special/accented letters in LaTeX
- how to use UTF-8 in LaTeX
- accents/special characters in 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
使用数学模式就可以了。不确定 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技术论文提供完整列表。
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{é}}{e}}
这太冗长了,所以我建议在 man/macros/macros.Rd
中使用 defining your own macro(s)。您可以使用 \newcommand
和 \renewcommand
:
\newcommand{\eacute}{\ifelse{latex}{\out{\'{e}}}{\ifelse{html}{\out{é}}{e}}}
然后您可以在所有 Rd
文件中自由使用 \eacute{}
。要检查所有格式的文本是否以您想要的方式呈现,请安装包和 运行 help(topic, help_type=)
,其中 help_type
等于 "text"
、"html"
或"pdf"
.