R 情节标题中的斜体希腊字母/乳胶式数学

R 情节标题中的斜体希腊字母/乳胶式数学,r,unicode,utf-8,character-encoding,ggplot2,R,Unicode,Utf 8,Character Encoding,Ggplot2,我想在R中的绘图标题中创建latex样式的数学。它们可以显示有用但有限的表达式子集,并使用非latex语法和样式 例如,我想在绘图标题中打印方程$\mathrm{d}\mathbf{x}=a[\theta-\mathbf{x}]\mathrm{d}t$,并且仍然计算某些变量的值。我拥有的最佳解决方案是非常麻烦的: lambda <- 4 plot(1:10,1:10) mtext(bquote(paste(d*bolditalic(x)[italic(t)] == alpha*(thet

我想在R中的绘图标题中创建latex样式的数学。它们可以显示有用但有限的表达式子集,并使用非latex语法和样式

例如,我想在绘图标题中打印方程$\mathrm{d}\mathbf{x}=a[\theta-\mathbf{x}]\mathrm{d}t$,并且仍然计算某些变量的值。我拥有的最佳解决方案是非常麻烦的:

lambda <- 4
plot(1:10,1:10)

mtext(bquote(paste(d*bolditalic(x)[italic(t)] == alpha*(theta - bolditalic(x)[italic(t)] )*d*italic(t) +  .(lambda) * d * italic(B)[italic(t)] )), line=2.25,cex=2) 
几乎解决了这个问题,但是我失去了bquote显示变量数值的能力(在我的示例中是lambda)。有没有一种方法可以将这些组合起来,这样我就可以使用斜体希腊字母(变量的标准格式,例如tex所做的)并在特定的值上进行计算


有没有更好的方法让我可以简单地为方程编写tex语法并将它们添加到我的图表中?

你应该编辑你的问题,而不是添加子注释(我来看看我能对这个框做些什么)。我有时发现bquote只能深入到很深的地方,所以需要使用
替换
。这项工作:

 lambda <- 4
 plot(1:10,1:10)

mtext(substitute(paste(d*bolditalic(x)[italic(t)] == 
                       alpha*group("[", (theta - bolditalic(x)[italic(t)] )*d*italic(t) + 
                        lambda, "]") * d * italic(B)[italic(t)] ), list(lambda=lambda)), 
      line=2.25,cex=2)

“d”是“正方形”,至少我在网上参考了一组乳胶示例后理解了您的意思:


(我以为您想要,但还没有找到。)

您可能想查看该软件包(或先看一看),它提供了一种用R图形编写LaTeX数学的自然方法

我也有

这是另一个例子:

library(tikzDevice)
library(ggplot2)
tikz('math.tex', standAlone = TRUE, width = 4, height = 4)
qplot(1:10, 1:10, 
  main = '$\\mathrm{d} \\mathbf{x} = a [\\theta - \\mathbf{x}] \\mathrm{d} t$')
dev.off()
如果运行
pdflatex math.tex
,则会产生此结果:


我也希望在latex样式的方程式中显示正方形,而不是括号,但也看不到如何显示。您可以使用这个将latex转换为plotmath的CRAN包:我看到了这个示例,认为它非常有趣,但是,我将其应用于此示例的努力失败了。我对答案进行了一点编辑。你可以玩你自己的数学表达式。您需要提供的
tikzDevice
只是一个纯文本字符串,因此如果您希望lambda是一个数字,可以使用类似
sprintf('\\alpha+%s+\\beta',1.234)
;无需使用
bquote()
substitute()
expression()
进行黑客攻击。我想这说明了out-TeX设置的不同。我从TeXworks处理器(和我之前做的一样)收到这个错误消息:这是pdfTeX,版本3.1415926-1.40.10(TeX Live 2009),正在进入扩展模式(./math.TeX!未定义的控制序列.l.3\documentclass[10pt]{article}?是的。pdflatex生成了上面所示的绘图。谢谢,这正是我要找的!很高兴注意到,带有tikzDevice的sprintf解决方案可以使用可变值,就像bquote/SUBTATE一样(这可能是显而易见的)。我认为OP需要方括号,而不是圆括号。为此,您可以使用
group
,如下:
group(“[”,list(theta,bolditalic(x)[italic(t)],“])””)
(从
demo(plotmath)
的第4或第5页获得)。让我们看看术语“方括号”我会理解的。同意。“而不是括号”是我在这里要说的唯一线索,(而且我很容易对别人的要求错了)。对于问题不清楚,我深表歉意-我正在寻找主标题中的斜体希腊字母和方括号,最好是使用latex样式的输入,这比手动添加斜体命令更为周到,通常比plotmath选项更为灵活。所选的答案都是他自己的。
 qplot(1:10, 1:10) + opts(title=substitute(paste(d*bolditalic(x)[italic(t)] == 
                        alpha*(theta - bolditalic(x)[italic(t)] )*d*italic(t) + 
                         lambda * d * italic(B)[italic(t)] ), list(lambda=lambda)), 
                       line=2.25,cex=2)
library(tikzDevice)
library(ggplot2)
tikz('math.tex', standAlone = TRUE, width = 4, height = 4)
qplot(1:10, 1:10, 
  main = '$\\mathrm{d} \\mathbf{x} = a [\\theta - \\mathbf{x}] \\mathrm{d} t$')
dev.off()