r - 在 R 中阅读 .bib 的乳胶口音
问题描述
当我导出带有以乳胶编码的重音符号的 .bib 引用时(例如,它们是从 mendeley 导出的),那么它们看起来并不像预期的那样在 R 中进行进一步的独立处理。
我的文件.bib:
@misc{Llorens1980,
abstract = {Aunque el reactor de fusi{\'{o}}n termonuclear constituye la esperanza m{\'{a}}s s{\'{o}}lida de obtenci{\'{o}}n de energ{\'{i}}a a gran escala, los problemas f{\'{i}}sicos y tecnol{\'{o}}gicos que el mismo plantea son muchos y dif{\'{i}}ciles.},
author = {Llorens, Mart{\'{i}}n and Menzell, Alfred and Villarrubia, Miguel},
booktitle = {Investigaci{\'{o}}n y Ciencia (Scientific American)},
keywords = {INGENIER{\'{I}}A NUCLEAR},
number = {51},
pages = {1--5},
title = {{F{\'{i}}sica y tecnolog{\'{i}}a del reactor de fusi{\'{o}}n}},
volume = {DICIEMBRE},
year = {1980}
}
在 R 中:
testbibR <- RefManageR::ReadBib("myfile.bib")
testbibR$author
[1] "Mart\\'in Llorens" "Alfred Menzell" "Miguel Villarrubia"
testbibR$title
[1] "{F{\\'{i}}sica y tecnolog{\\'{i}}a del reactor de fusi{\\'{o}}n}"
btex<-bibtex::read.bib("myfile.bib")
btex$author
[1] "Mart\\'in Llorens" "Alfred Menzell" "Miguel Villarrubia"
btex$title
[1] "{F{\\'{i}}sica y tecnolog{\\'{i}}a del reactor de fusi{\\'{o}}n}"
testbib <- bib2df::bib2df("myfile.bib")
testbib$AUTHOR[[1]]
[1] "Llorens, Mart{\\'{i}}n" "Menzell, Alfred" "Villarrubia, Miguel"
testbib$TITLE
[1] "F{\\'{i}}sica y tecnolog{\\'{i}}a del reactor de fusi{\\'{o}}n"
我想知道我是否可以Martín
在那些地方看到一个
相关帖子:https ://github.com/ropensci/bib2df/issues/35
顺便说一句,在导入/导出这些围兜时,包似乎以(其他)乳胶格式重写,作者字段(Mart\'in
)。仅bib2df
将所有字段写入原始字段,请参见上文。
RefManageR::WriteBib(testbibR,"refmanager.bib")
bibtex::write.bib(btex,"bibtex.bib")
bib2df::df2bib(testbib,"bib2df")
解决方案
这是从 .bib 中删除一些乳胶口音的解决方法。
正如我在这篇文章的答案中给出的答案一样,第一部分是在 python 中。
python:字典到.csv
latexAccents = [
[ u"Í", "{\\'{I}}"],
[ u"í", "{\\'{i}}"],
[ u"á", "{\\'{a}}"],
[ u"é", "{\\'{e}}"],
[ u"ó", "{\\'{o}}"],
[ u"ú", "{\\'{u}}"],
]
import pandas
mydf = pandas.DataFrame(latexAccents)
newname = "dictaccent.csv"
mydf.to_csv(newname, index =False)
R:替换 .bib 中的乳胶
dictaccent <- read.csv("dictaccent.csv")
bibLines <- readLines("myfile.bib")
library(stringi)
for (i in 1:nrow(dictaccent)){
for (j in 1:length(bibLines)) {
bibLines[j]<-stri_replace_all_fixed(bibLines[j], dictaccent$X1[i], dictaccent$X0[i])
}
}
writeLines(bibLines,"noLatex.bib")
推荐阅读
- coq - coq 中的通用平等提升
- c# - Unity C#如何在另一个脚本中引用下标?
- vue.js - 在模板中,如何使用导入的函数?
- ios - 在 TableView 中显示城市名称
- extjs - Extjs 将另一个商店作为另一个属性绑定到网格
- sql - 如何在 SQL Server 的表列中添加从父 JSON 读取的 JSON 值?
- python - 如何在 Tensorflow 2.0 中获取其他指标(不仅是准确性)?
- php - While Loop 仅在与 AJAX PHP 一起使用时更新第一行数据
- android - 默认启动器设置存储在哪里,并将 apk 直接安装到文件系统中
- excel - Google 表格 - 传递来自不同表格的信息