R targets包执行报错排查:unexpected '/'错误及tikzLatex配置问题
问题排查:Targets管道错误与TikZ LaTeX配置失效
一、Targets管道运行错误
错误信息
✖ error target quantities_plot_base • end pipeline [3.558 seconds] Error: ! Error running targets::tar_make() Target errors: targets::tar_meta(fields = error, complete_only = TRUE) Tips: https://books.ropensci.org/targets/debugging.html Last error: <text>:1:2: unexpected '/' 1: +/ ^
关联代码
对应的target定义:
tar_target( name = quantities_plot_base, command = powerscale_seq_summ_plot(sensitivity_sequence_base) )
powerscale_seq_summ_plot函数代码:
powerscale_seq_summ_plot <- function(powerscale_seq) { powerscale_plot_quantities(powerscale_seq, variables = "b_wrist", quantities = c("mean", "sd"), mcse = TRUE) + ggplot2::facet_wrap( . ~ quantity, scales = "free", ncol = 3, labeller = ggplot2::as_labeller( c( "b_wrist" = "", "sd" = "SD", "mean" = "Mean", "cjs_dist" = "$\\text{CJS}_{\\text{dist}}$" ) ) ) + guides(colour = "none") + xlab("Power-scaling $\\alpha$") + scale_color_manual(values = rep("black", 3)) + scale_shape_manual(values = c("prior" = 15, "likelihood" = 22), labels = c("Prior power-scaling", "Likelihood power-scaling"), name = NULL) + scale_linetype_manual(values = "dashed", labels = "$\\pm2$ MCSE", name = NULL) + cowplot::theme_half_open() + theme( legend.position = "bottom", legend.text = element_text(size = 10), axis.text = element_text(size = 10), axis.title = element_text(size = 10), strip.text = element_text(size = 10), strip.background = element_blank(), legend.text.align = 0, axis.line.y = element_blank(), axis.ticks.y = element_line(colour = "black"), axis.line.x = element_blank(), axis.ticks.x = element_line(colour = "black"), legend.title = element_text(size = 10), aspect.ratio = 1 ) + cowplot::panel_border(color = "black", size = 1) }
错误排查点
错误提示unexpected '/'指向+/,说明ggplot链式操作的某个+后存在语法错误,核心问题在LaTeX公式的字符串转义:
- R字符串中反斜杠
\是转义字符,因此LaTeX命令里的\text、\alpha等需要写成\\text、\\alpha,否则R会将单个\解析为转义,导致字符串结构混乱,进而引发+后的语法错误。 - 修正函数中所有包含LaTeX的字符串:比如
"$\text{CJS}_{\text{dist}}$"改为"$\\text{CJS}_{\\text{dist}}$","Power-scaling $\alpha$"改为"Power-scaling $\\alpha$","$\pm2$ MCSE"改为"$\\pm2$ MCSE"。
二、TikZ LaTeX配置不生效问题
配置代码
options( tizkDocumentDelcaration = "\documentclass[10pt]{article}", tikzLatexPackages = c( getOption("tikzLatexPackages"), "\usepackage{tikz}", "\usepackage{amsmath}", "\usepackage{amsfonts}", "\usepackage{bm}", "\usepackage{lmodern}", "\usepackage{multirow}", "\usepackage[T1]{fontenc}", "\usepackage{textcomp}", "\usepackage{microtype}", "\DeclareMathOperator{\normal}{normal}", "\DeclareMathOperator{\Bernoulli}{Bernoulli}", "\DeclareMathOperator{\gammadist}{gamma}", "\DeclareMathOperator{\expdist}{exponential}", "\DeclareMathOperator{\betadist}{beta}", "\DeclareMathOperator{\Cauchy}{Cauchy}" ) )
问题排查
配置存在两处关键错误导致失效:
- 拼写错误:
tizkDocumentDelcaration应为tikzDocumentDeclaration(tizk拼写错误,Delcaration应为Declaration); - 字符串转义错误:所有LaTeX命令前的
\需要改为\\,比如"\documentclass[10pt]{article}"改为"\\documentclass[10pt]{article}"; - 确保已安装并加载
tikzDevice包,否则配置选项无法生效。
内容的提问来源于stack exchange,提问作者Chachi
相关产品推荐
相关产品推荐

