0

我在 Mathematica 9.0 中绘制图表并将所有颜色转换为 CMYK。之后,我使用绘图工具调色板添加了文本和其他信息。我也希望这些东西也是 CMYK 颜色,但找不到改变它的方法。我现在正在使用演示版本,看看这是否适用于我们的出版物。

谢谢

[稍后] 谢谢,这有帮助。我正在为我们的办公室制作一个“虚拟证明”模板以供我们使用,但是当我导出为 pdf 之类的文件时,我的函数箭头似乎与我的函数颜色不同。我想要一种手动控制箭头颜色的方法,但似乎找不到这样写的方法。我也不介意将箭头样式更改为仅两条线而不是实心形状。箭头是最后一行。

ClearAll["Global`*"];
Interpretation[{f = {  1/(x - 1) + 1, Sin[x], -x, x}, 
  points = {{3, 2}, {-5, -8}}, min = -10, max = 10, size = 0.5, 
  rmin = -10, rmax = 10, gridx = 1, gridy = 1, hlabel = "x", 
  vlabel = "y"}, 
 Panel[Grid[{{Style["Plot Characteristics", Bold], SpanFromLeft},
    {"Functions:", InputField[Dynamic[f]]},
    {"Points:", InputField[Dynamic[points]]},
    {"Domain Min:", InputField[Dynamic[min]]},
    {"Domain Max:", InputField[Dynamic[max]]},
    {"Range Min:", InputField[Dynamic[rmin]]},
    {"Range Max:", InputField[Dynamic[rmax]]},
    {"Grid Size (cm):", InputField[Dynamic[size]]},
    {"Gridline Space x:", InputField[Dynamic[gridx]]},
    {"Grdiline Space y:", InputField[Dynamic[gridy]]},
    {"Horizontal Label:", InputField[Dynamic[hlabel]]},
    {"Vertical Label:", InputField[Dynamic[vlabel]]}
    }]],
 Plot[f, {x, min - 0.58*gridx, max + 0.58*gridx},
   PlotRange -> {rmin - 1.01*gridy, rmax + 1.01 gridy} ,
   GridLines -> {Range[min, max, gridx], Range[rmin, rmax, gridy]},
   GridLinesStyle -> {{Dashed, CMYKColor[0, 0, 0, 1, 0.25], 
      AbsoluteThickness[0.5]}, {Dashed, CMYKColor[0, 0, 0, 1, 0.25], 
      AbsoluteThickness[0.5]}},
   Ticks -> {Range[min, max, gridx], Range[rmin, rmax, gridy]}, 
   TicksStyle -> 
   Directive[10, Opacity[0], FontOpacity -> 0.9999, 
     CMYKColor[0, 0, 0, 1], FontFamily -> "Helvetica"],
   ImageSize -> {(max + gridx - (min - gridx))*28.52*size + 37.2 + 
      6.4*StringLength[hlabel], (rmax + gridy - (rmin - gridy))*28.52*
       size + 49},
   AspectRatio -> Full,
   AxesLabel -> {Style[hlabel, Italic], Style[vlabel, Italic]},
   LabelStyle -> {{FontFamily -> "Helvetica", FontSize -> 14}},
   AxesStyle -> {CMYKColor[1, 1, 1, 1], AbsoluteThickness[0.5]},
   PlotStyle -> {{AbsoluteThickness[1], 
      CMYKColor[0, 0, 0, 1]}, {AbsoluteThickness[1], 
      CMYKColor[0, 0.83, 1, 0]}, {AbsoluteThickness[1], 
      CMYKColor[1, 0, 0, 0]}, {AbsoluteThickness[1], 
      CMYKColor[0.36, 1, 0, 0]}, {AbsoluteThickness[1], 
      CMYKColor[0.63, 0, 1, 0]}, {AbsoluteThickness[1], 
      CMYKColor[0, 0, 0, 1]}},
   Prolog -> {Arrowheads[{0.02, 0.01, {0, 0.03}}], 
     Arrow[{{max + gridx, 0}, {max + gridx + gridx/10, 0}}], 
     Arrow[{{min - gridx, 0}, {min - gridx - gridx/10, 0}}], 
     Arrow[{{0, rmax + gridy}, {0, rmax + gridy + gridy/10}}], 
     Arrow[{{0, rmin - gridy}, {0, rmin - gridy - gridy/10}}], 
     AbsolutePointSize[5], Point[points]},
   Epilog -> {Text[
      Style["Label", 12, FontColor -> CMYKColor[0, 0, 0, 1], 
       FontFamily -> "Helvetica"], {5, 5}]}
   ]
  /. Line[x__] :> Sequence[Arrowheads[{-.02, .02}], Arrow[x]]
 ]
4

2 回答 2

1

我认为我不会热衷于您的方法 - 一方面,如果您再次生成图表,您是否不必重新进行注释?然后,您正在手工做一些可能更容易自动化的事情(如果您有很多此类工作要做......)。尽管学习通过Mathematica做所有事情都需要一些时间。

当您导出它时,这似乎保留了 CMYK 颜色:

p = Framed[
  Plot[
   Sin[x], 
   {x, 0, 2 Pi}, 
   PlotStyle -> CMYKColor[0, 1, 0, .15],
   PlotRangePadding -> 0,
   Prolog -> {CMYKColor[.1, .1, .3, .15],
     Rectangle[{-1, -1}, {2 Pi, 1}]},
   Epilog -> {Text[
      Style["Sine of x", 28,
       FontColor -> CMYKColor[.2, .5, 1, .15], 
       FontFamily -> "Optima Bold"],
      {4.5, .5}]}],
  Background -> CMYKColor[.3, .2, .0, .15],
  FrameStyle -> CMYKColor[.1, .2, .0, 0]
  ]

Export["p.eps", p]

阴谋

但是自从我不得不使用 CMYK 以来已经有一段时间了,所以我可能不知道我在做什么了......:)

于 2013-06-26T13:59:23.817 回答
1

如果它在这里有帮助,您可以如何获得 CMYK 颜色的 RGB 等价物。

ColorConvert[ CMYKColor[0, 1, 1, 0] , "RGB"] /. RGBColor -> List

(*  {1., 0., 0.} *)

或者在适合对话框的范围内:

255 ( ColorConvert[ CMYKColor[.1, .8, .3, .15] , "RGB"] /. RGBColor -> List) // Round

(* {195, 43, 152} *)

我有一种感觉,您需要手动将它们键入绘图工具对话框。

当然,您始终可以使用图形基元而不是 GUI 工具来进行标记,然后您就可以完全控制。

编辑//只是搞砸了。我可以很好地将绘图工具对象的颜色与 CMYK 基元(字体除外)相匹配。字体颜色显然可以通过字体对话框或绘图工具对话框设置,但对我来说都没有任何意义。我认为我们可以将 GUI 绘图工具标记为尚未准备好进行高质量工作

于 2013-06-25T20:34:46.870 回答