输出用于乳胶的重音字符
Output accented characters for use with latex
我正在尝试使用 R
创建一个 tex 文件的内容。内容包含许多重音字母,我无法将它们正确写入 tex 文件。
这是我想要执行的一个简短的最小示例:
我有一个文件 texinput.tex
,它已经存在并且被编码为没有 BOM 的 UTF8。当我在 Notepad++ 中手动写入 é
并保存此文件时,它会在 LaTex
中正确编译并且输出符合预期。
然后我尝试在 R
中这样做:
str.to.write <- "é"
cat(str.to.write, file = "tex_list.tex", append=TRUE)
因此,在tex文件中出现了编码字符xe9
。 LaTex
尝试编译时抛出此错误:
! File ended while scanning use of \UTFviii@three@octets.<inserted text>\par \include{texinput}
然后我在 cat 命令之前尝试了以下所有操作:
Encoding(str.to.write) <- "latin1"
-> 与上面相同的输出错误
str.to.write <- enc2utf8(str.to.write)
-> 与上面相同的输出和错误
Encoding(str.to.write) <- "UTF-8"
-> 这出现在 tex 文件中:\xe9
。 LaTex
抛出此错误:! Undefined control sequence. \xe
Encoding(str.to.write) <- "bytes"
-> 这出现在 tex 文件中:\xe9
。 LaTex
编译没有错误,输出为 xe9
我知道我可以用\'{e}
代替é
,但我想有一个自动的方法,因为真正的内容很长,包含来自3种不同拉丁语的单词,所以它有很多不同的重音字符。
但是,我也很高兴有一个功能可以自动清理与 Latex 一起使用的 R 输出。我尝试使用 xtable
和 sanitize.text.function
,但它似乎不接受字符向量作为输入。
经过大量搜索和反复试验,我找到了适合我的东西:
# create output function
writeTex <- function(x) {write.table(x, "tex_list.tex",
append = TRUE, row.names = FALSE,
col.names = FALSE, quote = FALSE,
fileEncoding = "UTF-8")}
writeTex("é")
输出符合预期 (é
),并且在 LaTex 中编译得非常好。
使用 TIPA 处理国际
Latex 中的注音字母 (IPA) 符号。它已成为语言学领域的标准。
我正在尝试使用 R
创建一个 tex 文件的内容。内容包含许多重音字母,我无法将它们正确写入 tex 文件。
这是我想要执行的一个简短的最小示例:
我有一个文件 texinput.tex
,它已经存在并且被编码为没有 BOM 的 UTF8。当我在 Notepad++ 中手动写入 é
并保存此文件时,它会在 LaTex
中正确编译并且输出符合预期。
然后我尝试在 R
中这样做:
str.to.write <- "é"
cat(str.to.write, file = "tex_list.tex", append=TRUE)
因此,在tex文件中出现了编码字符xe9
。 LaTex
尝试编译时抛出此错误:
! File ended while scanning use of \UTFviii@three@octets.<inserted text>\par \include{texinput}
然后我在 cat 命令之前尝试了以下所有操作:
Encoding(str.to.write) <- "latin1"
-> 与上面相同的输出错误
str.to.write <- enc2utf8(str.to.write)
-> 与上面相同的输出和错误
Encoding(str.to.write) <- "UTF-8"
-> 这出现在 tex 文件中:\xe9
。 LaTex
抛出此错误:! Undefined control sequence. \xe
Encoding(str.to.write) <- "bytes"
-> 这出现在 tex 文件中:\xe9
。 LaTex
编译没有错误,输出为 xe9
我知道我可以用\'{e}
代替é
,但我想有一个自动的方法,因为真正的内容很长,包含来自3种不同拉丁语的单词,所以它有很多不同的重音字符。
但是,我也很高兴有一个功能可以自动清理与 Latex 一起使用的 R 输出。我尝试使用 xtable
和 sanitize.text.function
,但它似乎不接受字符向量作为输入。
经过大量搜索和反复试验,我找到了适合我的东西:
# create output function
writeTex <- function(x) {write.table(x, "tex_list.tex",
append = TRUE, row.names = FALSE,
col.names = FALSE, quote = FALSE,
fileEncoding = "UTF-8")}
writeTex("é")
输出符合预期 (é
),并且在 LaTex 中编译得非常好。
使用 TIPA 处理国际 Latex 中的注音字母 (IPA) 符号。它已成为语言学领域的标准。