ctioga 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. data/COPYING +340 -0
  2. data/ctioga/bin/ctable +28 -0
  3. data/ctioga/bin/ctioga +37 -0
  4. data/ctioga/doc/ctable.1 +156 -0
  5. data/ctioga/doc/ctioga.1 +2363 -0
  6. data/ctioga/examples/README +46 -0
  7. data/ctioga/examples/ctioga.gnuplot +4 -0
  8. data/ctioga/examples/ctioga_within_tioga.rb +53 -0
  9. data/ctioga/examples/ctiogarc.rb +24 -0
  10. data/ctioga/examples/include_1.rb +15 -0
  11. data/ctioga/examples/noise.dat +100 -0
  12. data/ctioga/examples/noise.rb +13 -0
  13. data/ctioga/examples/trig.csv +100 -0
  14. data/ctioga/examples/trig.dat +100 -0
  15. data/ctioga/examples/trig.rb +14 -0
  16. data/ctioga/examples/trigh.dat +100 -0
  17. data/ctioga/examples/trigh.rb +10 -0
  18. data/ctioga/examples/tutorial +763 -0
  19. data/ctioga/examples/tutorial.sh +269 -0
  20. data/ctioga/tests/README +14 -0
  21. data/ctioga/tests/axes.sh +40 -0
  22. data/ctioga/tests/basic.sh +11 -0
  23. data/ctioga/tests/draw.sh +24 -0
  24. data/ctioga/tests/histograms.sh +14 -0
  25. data/ctioga/tests/insets.sh +41 -0
  26. data/ctioga/tests/layouts.sh +29 -0
  27. data/ctioga/tests/legends.sh +113 -0
  28. data/ctioga/tests/styles.sh +43 -0
  29. data/ctioga/tests/test_style.sh +8 -0
  30. data/ctioga/tests/tests.sh +24 -0
  31. data/ctioga/tests/text_backend.sh +83 -0
  32. data/ctioga/tests/tioga_defaults.rb +18 -0
  33. data/lib/CTioga/axes.rb +904 -0
  34. data/lib/CTioga/backends.rb +88 -0
  35. data/lib/CTioga/boundaries.rb +224 -0
  36. data/lib/CTioga/ctable.rb +134 -0
  37. data/lib/CTioga/curve_style.rb +246 -0
  38. data/lib/CTioga/debug.rb +199 -0
  39. data/lib/CTioga/dimension.rb +133 -0
  40. data/lib/CTioga/elements.rb +17 -0
  41. data/lib/CTioga/elements/base.rb +84 -0
  42. data/lib/CTioga/elements/containers.rb +578 -0
  43. data/lib/CTioga/elements/curves.rb +368 -0
  44. data/lib/CTioga/elements/tioga_primitives.rb +440 -0
  45. data/lib/CTioga/layout.rb +595 -0
  46. data/lib/CTioga/legends.rb +29 -0
  47. data/lib/CTioga/legends/cmdline.rb +187 -0
  48. data/lib/CTioga/legends/item.rb +164 -0
  49. data/lib/CTioga/legends/style.rb +257 -0
  50. data/lib/CTioga/log.rb +73 -0
  51. data/lib/CTioga/movingarrays.rb +131 -0
  52. data/lib/CTioga/partition.rb +271 -0
  53. data/lib/CTioga/plot_style.rb +230 -0
  54. data/lib/CTioga/plotmaker.rb +1677 -0
  55. data/lib/CTioga/shortcuts.rb +69 -0
  56. data/lib/CTioga/structures.rb +82 -0
  57. data/lib/CTioga/styles.rb +140 -0
  58. data/lib/CTioga/themes.rb +581 -0
  59. data/lib/CTioga/themes/classical.rb +82 -0
  60. data/lib/CTioga/themes/demo.rb +63 -0
  61. data/lib/CTioga/themes/fits.rb +91 -0
  62. data/lib/CTioga/themes/mono.rb +33 -0
  63. data/lib/CTioga/tioga.rb +32 -0
  64. data/lib/CTioga/utils.rb +173 -0
  65. data/lib/MetaBuilder/Parameters/dates.rb +38 -0
  66. data/lib/MetaBuilder/Parameters/lists.rb +132 -0
  67. data/lib/MetaBuilder/Parameters/numbers.rb +69 -0
  68. data/lib/MetaBuilder/Parameters/strings.rb +86 -0
  69. data/lib/MetaBuilder/Parameters/styles.rb +75 -0
  70. data/lib/MetaBuilder/Qt4/Parameters/dates.rb +51 -0
  71. data/lib/MetaBuilder/Qt4/Parameters/numbers.rb +65 -0
  72. data/lib/MetaBuilder/Qt4/Parameters/strings.rb +106 -0
  73. data/lib/MetaBuilder/Qt4/parameter.rb +172 -0
  74. data/lib/MetaBuilder/Qt4/parameters.rb +9 -0
  75. data/lib/MetaBuilder/descriptions.rb +603 -0
  76. data/lib/MetaBuilder/factory.rb +101 -0
  77. data/lib/MetaBuilder/group.rb +57 -0
  78. data/lib/MetaBuilder/metabuilder.rb +10 -0
  79. data/lib/MetaBuilder/parameter.rb +374 -0
  80. data/lib/MetaBuilder/parameters.rb +11 -0
  81. data/lib/MetaBuilder/qt4.rb +8 -0
  82. data/lib/SciYAG/Backends/backend.rb +379 -0
  83. data/lib/SciYAG/Backends/binner.rb +168 -0
  84. data/lib/SciYAG/Backends/cache.rb +102 -0
  85. data/lib/SciYAG/Backends/dataset.rb +158 -0
  86. data/lib/SciYAG/Backends/descriptions.rb +469 -0
  87. data/lib/SciYAG/Backends/filters.rb +25 -0
  88. data/lib/SciYAG/Backends/filters/average.rb +134 -0
  89. data/lib/SciYAG/Backends/filters/cumulate.rb +37 -0
  90. data/lib/SciYAG/Backends/filters/filter.rb +70 -0
  91. data/lib/SciYAG/Backends/filters/norm.rb +39 -0
  92. data/lib/SciYAG/Backends/filters/smooth.rb +63 -0
  93. data/lib/SciYAG/Backends/filters/sort.rb +43 -0
  94. data/lib/SciYAG/Backends/filters/strip.rb +34 -0
  95. data/lib/SciYAG/Backends/filters/trim.rb +64 -0
  96. data/lib/SciYAG/Backends/gnuplot.rb +131 -0
  97. data/lib/SciYAG/Backends/math.rb +108 -0
  98. data/lib/SciYAG/Backends/mdb.rb +462 -0
  99. data/lib/SciYAG/Backends/multitext.rb +96 -0
  100. data/lib/SciYAG/Backends/source.rb +64 -0
  101. data/lib/SciYAG/Backends/text.rb +339 -0
  102. data/lib/SciYAG/backends.rb +16 -0
  103. metadata +191 -0
@@ -0,0 +1,2363 @@
1
+ '\" t
2
+ .\" ** The above line should force tbl to be a preprocessor **
3
+ .\" Man page for ctioga, based on the one from man(1)
4
+ .\"
5
+ .\" Copyright 2006, 2007, 2008, 2009 by Vincent Fourmond
6
+ .\"
7
+ .\" You may distribute under the terms of the GNU General Public
8
+ .\" License as specified in the file COPYING that comes with the
9
+ .\" ctioga program.
10
+ .\"
11
+ .pc
12
+ .TH CTIOGA 1 "2009-01-07" "Version 1.9" "Tioga command-line interface"
13
+ .SH NAME
14
+ ctioga \- a command-line front-end for the Tioga plotting library
15
+ .SH SYNOPSIS
16
+ .\" The general command line
17
+ .B ctioga
18
+ .I arguments
19
+ \&.\|.\|.
20
+
21
+ .SH DESCRIPTION
22
+ .B ctioga
23
+ is a command-line front-end to the wonderful Tioga plotting
24
+ library. It aims at plotting quickly both data files and mathematical
25
+ functions, with however the possibility of a high control over the
26
+ details.
27
+
28
+ .SH IMPORTANT NOTE
29
+ Please keep in mind while reading this that the main author of
30
+ .B ctioga
31
+ has more fun programming than writing documentation, which means that
32
+ he is more willing to invest energy into new features of ctioga rather
33
+ than keeping this manual page up-to-date. Best care is taken for
34
+ .B ctioga
35
+ to remain backward-compatible, which means that the information
36
+ you'll find here will most probably never be misleading. However, not
37
+ all the features might be documented at some point. The currently
38
+ implemented features will be found using
39
+ .I ctioga --help\fR.
40
+
41
+
42
+
43
+ .SH EXAMPLES
44
+
45
+ To get to the facts, let's start with a few examples:
46
+ .TP 8
47
+ .BI ctioga \ File.dat
48
+ Produces a file \fIPlot.pdf\fR showing the second column of File.dat
49
+ as a function of the first.
50
+
51
+ .TP
52
+ .BI ctioga \ File.dat@2:3
53
+ Produces a file \fIPlot.pdf\fR showing the third column of File.dat
54
+ as a function of the second.
55
+
56
+ .TP
57
+ .B ctioga \fIFile.dat@2:3 @4:5 \fR
58
+ Produces a file \fIPlot.pdf\fR showing the third column of File.dat
59
+ as a function of the second and the fifth as a function of the fourth.
60
+
61
+ .TP
62
+ .BI ctioga \ --math\ 'sin(x)'
63
+ Produces a file \fIPlot.pdf\fR showing the function sin(x).
64
+
65
+ .TP
66
+ .BI ctioga \ --xpdf\ --math\ -l\ 'Cosine'\ 'cos(x)'
67
+ Produces a file \fIPlot.pdf\fR showing the function cos(x), nicely
68
+ labeled with the text
69
+ .I 'Cosine'
70
+ and launches
71
+ .I xpdf
72
+ to display the file produced.
73
+
74
+ .P
75
+
76
+ More examples and a rather complete tutorial
77
+ can be found in the
78
+ .I examples/
79
+ directory in the original tarball.
80
+
81
+
82
+ .SH OPTIONS
83
+
84
+ ctioga works with the concept of \fIbackends\fR: a \fIbackend\fR is an
85
+ object dealing with the data. Some read data from different kinds of
86
+ files, others, like the
87
+ .I math
88
+ backend create data on demand from mathematical formulas. Backends
89
+ work with data sets. A set is one curve.
90
+
91
+ ctioga's command line is made of of options, starting with '-' or '--',
92
+ mixed with sets (all the rest). Options apply to the sets specified on
93
+ their right; some (like \fI--legend\fR) only to the next one.
94
+
95
+
96
+ .\" --------------------------------------------------------------------
97
+ .SS Basic style options
98
+
99
+ .TP 8
100
+ .BI -c,\ --[no-]color \ [color]
101
+ specifies the color to be used for lines. It can be set to any valid
102
+ Tioga color, or to
103
+ .I auto
104
+ to use \fIctioga\fR's automatic color scheme (by default). When
105
+ specified as
106
+ .B --no-color
107
+ it disables the display of the lines.
108
+
109
+ .TP
110
+ .BI -m,\ --[no-]marker \ [marker]
111
+ enables or disable the use of markers.
112
+ .I marker
113
+ can be \fIauto\fR, \fIno\fR or a Tioga marker specification. Like with
114
+ .IR --color ,
115
+ .I auto
116
+ makes the markers shift with every data set.
117
+
118
+ .TP
119
+ .BI --marker-color \ color
120
+ exactly the same as
121
+ .I --color
122
+ except that it applies the the marker's color.
123
+
124
+ .TP
125
+ .BI --line-style \ linestyle
126
+ sets the line style. As with previous parameters,
127
+ .I auto
128
+ turns on automatic change, and you can specify any Tioga line
129
+ style. Using
130
+ .I no
131
+ removes completely lines.
132
+
133
+ .TP
134
+ .BI --line-width \ width
135
+ sets the line width. This will be affected by any subsequent
136
+ .IR --rescale .
137
+
138
+
139
+ .TP
140
+ .B --[no-]interpolate
141
+ wheter to turn on automatic interpolation for the next curves or
142
+ not. Automatic interpolation just transforms lines between two
143
+ consecutive data points into cubic splines. It looks very good in many
144
+ cases.
145
+
146
+ .TP
147
+ .BI --error-bar-color \ color
148
+ .B ctioga
149
+ version 1.4 has a support for error bars, and this options enables one
150
+ to select their color. See discussion on the
151
+ .I text
152
+ backend below for more details about how to get error bars in the
153
+ first place.
154
+
155
+
156
+ .TP
157
+ .BI --drawing-order \ order
158
+ Have you ever wanted to have your markers in a different color and
159
+ .I behind
160
+ the lines ? You can use this option to do so. It takes an integer
161
+ between 0 and 5, and specifies the order in which the lines, the
162
+ markers and the error bars are drawn on the resulting PDF. The last
163
+ will be the most visible in the end. Any invalid argument for
164
+ .I order
165
+ will show which numbers are valid and what they mean.
166
+
167
+ .\" --------------------------------------------------------------------
168
+ .SS Transparency
169
+
170
+ .TP
171
+ .BI --transparency \ transparency
172
+ .TP
173
+ .BI --marker-transparency \ transparency
174
+ .TP
175
+ .BI --error-bar-transparency \ transparency
176
+ Sets the transparency for drawing respectively lines, markers and
177
+ error bars. The transparency is a number
178
+ between 0 and 1, 0 meaning perfectly opaque and 1 absolutely
179
+ invisible.
180
+
181
+ .\" --------------------------------------------------------------------
182
+ .SS Fillings
183
+
184
+ From
185
+ .B ctioga
186
+ version
187
+ .IR 1.5 ,
188
+ it is possible to fill spaces under the curves. You need to specify a
189
+ .I y
190
+ value where the filling will go to. The boundary for that has to be
191
+ a horizontal line. It is specified using the
192
+ .I --fill-type
193
+ option:
194
+
195
+ .TP
196
+ .BI --fill-type \ type
197
+ Sets the fill type for filling next curves. The fill type can be
198
+ .RS 4
199
+ .TP 12
200
+ .I none
201
+ for no filling
202
+
203
+ .TP
204
+ .I y_axis
205
+ to fill until the
206
+ .I y = 0
207
+ line
208
+
209
+ .TP
210
+ .IR bottom ,\ top
211
+ to fill respectively to the bottom or to the top of the current graph
212
+
213
+ .TP
214
+ .I y = val
215
+ to fill until the
216
+ .I y
217
+ value
218
+ .IR val .
219
+ .RE
220
+
221
+ .TP
222
+ .BI --fill-color \ color
223
+ The color for the fill. If specified neither by you nor by the current
224
+ theme, it defaults to the current plotting color.
225
+
226
+ .TP
227
+ .BI --fill-transparency \ trans
228
+ Sets the transparency for fills. I daresay, it looks very cool with a
229
+ transparency of around 0.5.
230
+
231
+ .\" --------------------------------------------------------------------
232
+ .SS Histograms
233
+
234
+ .B ctioga
235
+ version 1.5 brings a much more powerful way to make histograms. Here
236
+ are the functions dealing with that:
237
+
238
+ .TP
239
+ .BI --hist \ type
240
+ All subsequent curves will be histograms. The 'type' of histogram used
241
+ depends on the
242
+ .I type
243
+ argument. It can be
244
+ .IR no \ or \ off
245
+ to stop making histograms,
246
+ .I old-style
247
+ to use the old style histograms: steps without sides. Then, you can
248
+ use the same kind of specification as for the
249
+ .I --fill
250
+ option to specify the level at which the steps should start/stop.
251
+ .B Important:
252
+ please note that if you use something else than
253
+ .I old-style
254
+ for this argument and that you fill the resulting curves, the actual
255
+ argument to
256
+ .I --fill
257
+ will be ignored and will be considered the same as the
258
+ .I type
259
+ one of the
260
+ .I --hist
261
+ option: not taking the same thing always leads to pretty
262
+ disgusting results. However, please note that you need to use
263
+ .I --fill
264
+ with a valid argument to actually get a filled histogram.
265
+
266
+ .TP
267
+ .BI --hist-left \ left
268
+ .TP
269
+ .BI --hist-right \ right
270
+ Set respectively the position of the left or the right side of the
271
+ step relative to its total size. If you want that the steps are
272
+ joined, use respectively 0 and 1. Other values will change the
273
+ apparent width of the steps. Please note that nothing prevents you
274
+ from setting either value outside the [0,1] interval where these
275
+ values make sense. But don't complain if it looks ugly.
276
+
277
+ .TP
278
+ .BI --hist-width \ width
279
+ A convenience interface for the
280
+ .I --hist-left
281
+ and
282
+ .I --hist-right
283
+ options. Basically sets the left and right boundaries so that the
284
+ apparent width of the step is
285
+ .I width
286
+ times its real size and that the results are centered on the interval.
287
+
288
+ .TP
289
+ .B --no-hist
290
+ Stop making histograms.
291
+
292
+ .TP
293
+ .B --[no-]histogram
294
+ This is the old option, here to keep old things working. It is the
295
+ equivalent of either the
296
+ .I --hist old-style
297
+ option or the
298
+ .I --no-hist
299
+ one. Don't use it. Anyway, new histograms look way better !!
300
+
301
+ .\" --------------------------------------------------------------------
302
+ .SS Themes and sets
303
+
304
+ .TP
305
+ .BI --theme \ theme
306
+ chooses the theme. Themes are little pieces of Ruby code that can take
307
+ care of many detail of presentation, to help you focus on the data you
308
+ want to plot, and not on the details about presentation.
309
+ .B ctioga
310
+ will automatically load themes in the
311
+ .I themes/
312
+ subdirectory of your
313
+ .I rubylib/CTioga
314
+ directory, and also on your personal
315
+ .I $HOME/.ctioga/themes
316
+ directory. A good place to start to write your own theme is to take
317
+ the
318
+ .I rubylib/CTioga/themes/demo.rb
319
+ file and tweak it until it suits your needs.
320
+
321
+ .TP
322
+ .BI --theme-list
323
+ lists all the themes
324
+ .B ctioga
325
+ found. If for some reason the theme you wrote doesn't show up here,
326
+ you can give a try at the
327
+ .I --debug
328
+ flag, it should give relevant information about the problem.
329
+
330
+ .TP
331
+ .B --reset-theme
332
+ resets the current theme, which essentially means: select the default
333
+ color/marker sets and reset them.
334
+
335
+ .TP
336
+ .B --mono
337
+ sets up a monochromatic display: color is set to Black and linestyle
338
+ changes with every set. Strictly equivalent to
339
+ .IR --theme\ mono .
340
+
341
+ .TP
342
+ .BI --color-set \ set
343
+ .TP
344
+ .BI --marker-set \ set
345
+ .TP
346
+ .BI --marker-color-set \ set
347
+ .TP
348
+ .BI --line-style-set \ set
349
+ chooses the different color, marker, marker colors and linestyle sets
350
+ available. The only way to get reliable data about available sets is
351
+ to run
352
+ .BI ctioga \ --help\fR,
353
+ which lists them. To know how they look like, just try out dataset
354
+ expansion:
355
+
356
+ .I ctioga --math 'sin(x) + 1##8'
357
+
358
+ Starting from
359
+ .B ctioga
360
+ version 1.8, you can use directly colors, markers and so on for sets,
361
+ and you get a set with only this color/marker/linestyle.
362
+
363
+ .\" --------------------------------------------------------------------
364
+ .SS Style manipulations
365
+
366
+ .TP
367
+ .B --skip-style
368
+ Does not use the next theme style, but skips to the next one.
369
+
370
+ .TP
371
+ .B -s, --same-style
372
+ Apply the same style to the next curve as to the last curve. This
373
+ actually only applies to elements of style deemed that have been
374
+ fed with the
375
+ .I auto
376
+ argument, which is nearly everything by default. Style can be further
377
+ overridden by other style options.
378
+
379
+ .TP
380
+ .BI --save-style \ name
381
+ Saves the style of the last curve under the name
382
+ .IR name .
383
+
384
+ .TP
385
+ .BI --use-style \ name
386
+ Uses a previously saved style for the next curve. Same provisions as
387
+ for
388
+ .I --same-style
389
+ apply. If
390
+ .I name
391
+ has not been saved yet, it is interpreted as the number of the style
392
+ we're interested in. 0 is the first, 1 the second, -1 the last, -2 the
393
+ one just before and so on.
394
+ .I --same-style
395
+ is therefore equivalent to
396
+ .I --use-style -1
397
+ (unless a style with name
398
+ .I -1
399
+ has been saved beforehand).
400
+
401
+ .TP
402
+ .BI --reset-override
403
+ Resets the current style override. See the section CURVE STYLES below
404
+ for a detailed explanation of what are overrides.
405
+
406
+ .TP
407
+ .BI --save-override \ name
408
+ The pendant of the
409
+ .B --save-style
410
+ option, but for overrides only. See CURVE STYLES below.
411
+
412
+ .TP
413
+ .BI --use-override \ name
414
+ Uses a previously saved override. See CURVE STYLES below.
415
+
416
+ .\" --------------------------------------------------------------------
417
+ .SS Shortcuts
418
+
419
+ .TP
420
+ .BI --short \ shortcut
421
+ Uses the given shortcut. Shortcuts are a quick way to add many
422
+ command-line arguments at once. See the SHORTCUTS section below.
423
+
424
+ .TP
425
+ .BI --short-list
426
+ Lists available shortcuts, along with the command-line arguments they
427
+ expand into.
428
+
429
+
430
+ .\" --------------------------------------------------------------------
431
+ .SS Edges and axes looks
432
+
433
+ .TP
434
+ .BI --xaxis \ style
435
+ .TP
436
+ .BI --yaxis \ style
437
+ Gives some style informations about the
438
+ .I X
439
+ or
440
+ .I Y
441
+ axes and edges.
442
+ Valid arguments are:
443
+ .IR left , \ right , \ top , \ bottom , \ org
444
+ that place axes only on the corresponding sides (org is the origin)
445
+ with no edges.
446
+ .I both
447
+ sets edges on both sides.
448
+ .IR hidden , \ line , \ ticks , \ major , \ majornum \ and \ full
449
+ which select the style for both edges and axes (hidden, line only,
450
+ line with major and minor ticks, major ticks only, major ticks with
451
+ numeric labels, and major and minor ticks with numeric labels). You
452
+ can specify several items separated by commas.
453
+
454
+ .TP
455
+ .B --no-axes
456
+ Disable all axes and edges for the current plot.
457
+
458
+
459
+
460
+ .TP
461
+ .BI --lines-color \ axis\ color
462
+ Selects the color for drawing background lines corresponding to the
463
+ named
464
+ .IR axis .
465
+ Lines are starting from major ticks. If you use that with both the X
466
+ and Y axis, you'll have a background grid.
467
+
468
+
469
+ .\" --------------------------------------------------------------------
470
+ .SS LaTeX options
471
+
472
+ .TP
473
+ .BI --use \ package
474
+ Adds a
475
+ .BI \eusepackage{ package }
476
+ in the LaTeX preamble of the file. This can be very useful to depend
477
+ on custom style files for fonts or to use standard or personal
478
+ macros.
479
+
480
+ .TP
481
+ .BI --preamble \ string
482
+ Adds the given
483
+ .I string
484
+ on a line of its own inside the LaTeX preamble. This can give
485
+ basically any kind of customization that the
486
+ .I --use
487
+ option cannot. You are however strongly encouraged to use
488
+ .I --use
489
+ whenever it is possible.
490
+
491
+ .\" --------------------------------------------------------------------
492
+ .SS Global appearance
493
+
494
+ .TP
495
+ .BI --[no-]background \ color
496
+ Sets the background color of the current plot, or removes it
497
+ altogether for the current plot.
498
+
499
+ .TP
500
+ .BI --[no-]watermark \ TEXT
501
+ Adds a text watermark at the back of the plot.
502
+
503
+ .TP
504
+ .BI --watermark-color \ COLOR
505
+ Sets the color for the watermark.
506
+
507
+
508
+ .TP
509
+ .BI --aspect-ratio \ ratio
510
+ sets the aspect ratio of the plot (the ratio of it's length over it's
511
+ height).
512
+ .I Deprecated, do not use !
513
+
514
+ .TP
515
+ .BI --golden-ratio
516
+ sets the aspect ratio to the golden number. Looks good.
517
+ .I Deprecated, do not use !
518
+
519
+ .TP
520
+ .BI --xrange \ range
521
+ .TP
522
+ .BI --yrange \ range
523
+ sets the current X or Y plotting range; arguments are in the form
524
+ .IB left : right
525
+ where
526
+ .IR left \ or \ right
527
+ can be omitted. If you swap them, the plot will be swapped as
528
+ well.
529
+ .B NOTE:
530
+ these settings are completely uncorrelated with the ones from the
531
+ mathematical backend.
532
+
533
+ .TP
534
+ .BI --margin \ margin
535
+ sets a margin around data when plotting. If your plot has many data
536
+ points near the edge, try something between 0.01 and 0.05. See the
537
+ MARGINS section below for more explanations about how to specify
538
+ margins.
539
+
540
+ .TP
541
+ .BI --rescale \ factor
542
+ scales the current picture by
543
+ .IR factor .
544
+ This is especially useful for subplots and insets, but it can be used
545
+ anywhere.
546
+
547
+ .TP
548
+ .BI --padding \ padding
549
+ Sets the padding for the current object and subsequent ones to
550
+ .IR padding .
551
+ The latter should be in the form of
552
+ .IB left , right , bottom , top
553
+ or
554
+ .IB left , right , bottom and top
555
+ or
556
+ .IB left and right , bottom and top
557
+ or
558
+ .IR all .
559
+ Each of the elements can be a valid (absolute) TeX dimension, such as
560
+ .I 10cm
561
+ or
562
+ .IR 12pt ,
563
+ or a number, in which case the dimension is relative to the current
564
+ graph (but be careful in grids, as it is relative to the
565
+ .I whole
566
+ graph, and not simply to the current element).
567
+ See the section LAYOUT below for an explanation of what is the padding.
568
+
569
+
570
+
571
+ .\" --------------------------------------------------------------------
572
+ .SS Subplots and assimilated...
573
+
574
+ .TP
575
+ .B --x2\fR,\fB --y2
576
+ Use an alternative
577
+ .I x
578
+ or
579
+ .I y
580
+ axis until the matching
581
+ .I --end
582
+ is encountered. Useful to plot, say, two different data that have
583
+ different Y values but share the same X values.
584
+
585
+ .TP
586
+ .BI --inset \ spec
587
+ Starts an inset at position
588
+ .IR spec .
589
+ See the INSETS section for more details about the exact
590
+ specification. The plot decorations (title, labels) are
591
+ .I outside
592
+ the box specified by
593
+ .IR spec .
594
+
595
+ .TP
596
+ .BI --zoom-inset \ spec
597
+ This is very much like the
598
+ .I --inset
599
+ option, except that the new inset starts with all the curves that
600
+ have already been added to its parent. This is really useful to zoom
601
+ into particular places of the curves, using the
602
+ .I --xrange
603
+ and
604
+ .I --yrange
605
+ options. Legend is not added for the curves duplicated this way.
606
+
607
+ .TP
608
+ .BI --next-inset \ spec
609
+ Leaves the current inset/subplot and starts a new inset at the given
610
+ position. See the INSETS section for more details.
611
+ .B NB:
612
+ you need to
613
+ .I --end
614
+ the current
615
+ .I --x2
616
+ or
617
+ .I --y2
618
+ specification before using that, else you'll get rather unexpected
619
+ results.
620
+
621
+ .TP
622
+ .BI --subplot \ spec
623
+
624
+ .TP
625
+ .BI --next-subplot \ spec
626
+ these two options have the same effet as
627
+ .I --inset
628
+ and
629
+ .IR --next-inset ,
630
+ with the exception that, unlike for insets, the decorations (title,
631
+ labels) are
632
+ .I inside
633
+ the box delimited by
634
+ .IR spec .
635
+
636
+
637
+ .TP
638
+ .B --disable-legends
639
+ No legend will be taken into account after this switch for the current
640
+ subplot.
641
+
642
+ .TP
643
+ .B --enable-legends
644
+ Reverts
645
+ .IR --disable-legends .
646
+
647
+
648
+ .TP
649
+ .BI --grid \ spec
650
+ Start a grid with a number of column or rows given by
651
+ .IR spec ,
652
+ which can be either
653
+ .BI column= nb
654
+ or
655
+ .BI row= nb\fR.
656
+ You start a new plot by using the
657
+ .I --next
658
+ option.
659
+
660
+ .TP
661
+ .BI --col
662
+ Starts a column of plots sharing the same X range. New plots start
663
+ with
664
+ .IR --next .
665
+
666
+ .TP
667
+ .BR --[no-]auto-next ,\ --auto-next-expanded
668
+ After the use of this option,
669
+ .B ctioga
670
+ considers that there is a
671
+ .I --next
672
+ before every single data set specification on the command-line
673
+ (except the first one). The
674
+ negation permits to cancel this behavior. With
675
+ .IR --auto-next-expanded ,
676
+ .B ctioga
677
+ first performs dataset expansion and places
678
+ .I --next
679
+ before the resulting datasets.
680
+
681
+
682
+ .TP
683
+ .B --region
684
+ Starts a filled region. This is primarily used for filling space
685
+ between curves. See the
686
+ .B FILLED REGIONS
687
+ section below for a more complete explanation.
688
+
689
+ .TP
690
+ .BI --region-color \ color
691
+ Sets the color used for filling the current region.
692
+
693
+ .TP
694
+ .BI --region-transparency \ transparency
695
+ Sets the transparency of the region's fill.
696
+
697
+
698
+ .TP
699
+ .BI --region-dont-display
700
+ No curve in the region will be displayed. They will only be used to
701
+ delimit the filled region.
702
+
703
+ .TP
704
+ .BI --region-debug
705
+ Helps understanding how the filling works by tampering with the style
706
+ of the plots inside the region to fill them so as to represent the
707
+ actual clipping path: the filled region will be the one coloured by
708
+ the colors of all the plots.
709
+
710
+ .TP
711
+ .BI --region-invert-rule
712
+ Reverts the rule for delimiting the filling region. See the
713
+ .B FILLED REGIONS
714
+ section below.
715
+
716
+ .TP
717
+ .BI --region-fill-twice
718
+ Fills the region twice, using opposite rules for determining the
719
+ filling region. You really should have a look at the
720
+ .B FILLED REGIONS
721
+ section below to understand that. It will probably give better results
722
+ in the case of intersecting curves.
723
+
724
+
725
+ .TP
726
+ .B --end
727
+ Ends the current subplot, grid, inset or region.
728
+
729
+
730
+ .\" --------------------------------------------------------------------
731
+ .SS Labels and titles (including tick labels)
732
+
733
+ .TP
734
+ .BI -x,\ --[no-]xlabel \ label
735
+ sets the x axis label of the current plot, or removes it.
736
+
737
+ .TP
738
+ .BI -y,\ --[no-]ylabel \ [label]
739
+ sets the y axis label of the current plot, or removes it.
740
+
741
+ .TP
742
+ .BI -t,\ --[no-]title \ [title]
743
+ sets the title of the current plot, or removes it.
744
+
745
+ .TP
746
+ .BI --side \ what\ align
747
+ .TP
748
+ .BI --lcolor \ what\ color
749
+ .TP
750
+ .BI --position \ what\ where
751
+ .TP
752
+ .BI --angle \ what\ angle
753
+ .TP
754
+ .BI --scale \ what\ scale
755
+ .TP
756
+ .BI --shift \ what\ shift
757
+ .TP
758
+ .BI --align \ what\ align
759
+ .TP
760
+ .BI --just \ what\ just
761
+ Sets respectively the side, color, position, angle, scale, shift,
762
+ alignement or justification of the
763
+ .I what
764
+ label, where
765
+ .I what
766
+ can be either
767
+ .IR title , \ xlabel , \ ylabel , \ xticks \ or \ yticks .
768
+
769
+ Please note that the
770
+ .I color
771
+ attribute is not available for tick labels.
772
+
773
+
774
+ .\" --------------------------------------------------------------------
775
+ .SS Legends and texts
776
+
777
+
778
+ .TP
779
+ .BI -l,\ --[no-]legend \ [legend]
780
+ sets the legend of the
781
+ .I next
782
+ dataset, or removes it from the legend display.
783
+
784
+ .TP
785
+ .BI --[no-]auto-legend
786
+ .B ctioga
787
+ automatically provides default legends for plots that don't have
788
+ one. This option allows one to turn this off and back on.
789
+
790
+ .TP
791
+ .B -N\fR,\fB --no-legends
792
+ are shortcuts for
793
+ .IR --no-auto-legend .
794
+
795
+ .TP
796
+ .BI --[no-]separate-legends
797
+ For inclusion of a graph in an article, it is sometimes useful to be
798
+ able to include the legend "pictogram" (the small image next to the
799
+ text) directly from within the article, and not on the graph. With
800
+ this option, automatic legending is turned off, and
801
+ .B ctioga
802
+ produces files of the form
803
+ .IR Plot_legend_00.pdf , \ Plot_legend_01.pdf ,\ aso.
804
+ which contains only the small pictograms. You can then include those
805
+ in your article with the
806
+ .I \eincludegraphics
807
+ command to make your own in-text legend.
808
+
809
+ .TP
810
+ .BI --fontsize \ nb
811
+ Sets the default TeX font size for text. It is passed directly to TeX
812
+ without interpretation, so mistakes in this parameter might result in
813
+ very cryptic error messages.
814
+
815
+ .TP
816
+ .BI --legend-scale \ scale
817
+ Changes the default scale for the legends. This does influence the
818
+ size of the text and the pictograms, and also to some extent the
819
+ positioning of the legends.
820
+
821
+ .TP
822
+ .BI --legend-pos \ spec
823
+ Sets the legend position on one of the side of the plot.
824
+ .I spec
825
+ is in the form
826
+ .IB side , size , delta
827
+ where
828
+ .I side
829
+ is
830
+ .IR left , \ right , \ top , \ bottom ,
831
+ .I size
832
+ is the fraction of the page that will be dedicated to the plot (best
833
+ take it rather smaller than 1...) and
834
+ .IR delta ,
835
+ optional, is the fraction of the page that should be left blank
836
+ between the legend and the plot itself.
837
+
838
+ .TP
839
+ .BI --legend-inside \ spec
840
+ Position te legend inside the plot. The specification
841
+ .I spec
842
+ is the nearly same as for insets, see the INSETS section
843
+ for more information.
844
+
845
+ .TP
846
+ .BI --legend-dy \ dimension
847
+ The distance between two lines of the legend, in terms of the height of
848
+ one text line.
849
+
850
+ .TP
851
+ .BI --legend-line \ text
852
+ Adds a line of text without any pictogram to the legend.
853
+
854
+
855
+ .TP
856
+ .BI --[no-]legend-frame \ [type]
857
+ If
858
+ .I type
859
+ is
860
+ .I round
861
+ or
862
+ .I square\fR,
863
+ draws a (rounded or square) frame around the legends. Best used in
864
+ combination with the
865
+ .I vh:x,y
866
+ .B --legend-inside
867
+ specifications.
868
+ If
869
+ .I none\fR,
870
+ cancels the drawing of the frame.
871
+
872
+ .TP
873
+ .BI --[no-]legend-color \ [color]
874
+ Sets the color of the frame to be drawn when
875
+ .B --legend-frame
876
+ is on, or cancels the drawing of the frame (this way, you can have a
877
+ filled box without a line around).
878
+
879
+ .TP
880
+ .BI --[no-]legend-background \ [color]
881
+ Sets the background color of the legend frame to
882
+ .I color\fR,
883
+ or stops drawing a background for the legend frame. Works only when a
884
+ legend frame is being drawn.
885
+
886
+ .TP
887
+ .BI --[no-]legend-transparency \ [value]
888
+ Sets the transparency value for the background of the legend to
889
+ .I value\fR,
890
+ or make the legend fully opaque.
891
+
892
+ .TP
893
+ .BI --legend-line-width \ value
894
+ Sets the line width for drawing the frame around the legend.
895
+
896
+ .TP
897
+ .BI --legend-line-style \ style
898
+ Sets the line style for drawing the frame around the legend.
899
+
900
+
901
+ .\" --------------------------------------------------------------------
902
+ .SS Axis manipulations
903
+
904
+ .TP
905
+ .BI --xfact \ f ,\ --yfact \ f
906
+ Scales the
907
+ .I x
908
+ or the
909
+ .I y
910
+ values by a factor of
911
+ .IR f .
912
+ This can be useful to change the units in a graph. If say, you have
913
+ .I x
914
+ data expressed in meters, but in the range of nanometers, you can use
915
+ .I --x-fact 1e9
916
+ and use nanometers units...
917
+
918
+ .TP
919
+ .BI --xoffset \ f ,\ --yoffset \ f
920
+ Adds the
921
+ .I f
922
+ to the
923
+ .I x
924
+ or
925
+ .I y
926
+ values. This applies
927
+ .B after
928
+ multiplication by
929
+ .I --xfact
930
+ or
931
+ .IR --yfact ,
932
+ if the latter is applicable. Useful for instance to convert on the fly
933
+ Celsius degrees to kelvins.
934
+
935
+ .TP
936
+ .B --[no-]xlog, --[no-]ylog
937
+ Swicthes on or off the log scale for the axes. These options
938
+ must appear
939
+ .B before
940
+ any data set.
941
+ .B ctioga
942
+ will most probably fail if they don't.
943
+
944
+ .B Note:
945
+ this option has no effect on the sample rate of the
946
+ .I math
947
+ backend. You probably want to use
948
+ .I --math-log
949
+ in addition to this to get a decent output when using the
950
+ .I math
951
+ backend.
952
+
953
+ .TP
954
+ .B --reset-transformations
955
+ Resets all the offset, scales and log options applied so far.
956
+
957
+ .TP
958
+ .BI --comma,\ --decimal\ SEP
959
+ uses
960
+ .I SEP
961
+ as a decimal separator for axis (or a comma for
962
+ .IR --comma ,
963
+ obviously). It is based on LaTeX black magic, so it might fail from
964
+ time to time. Please do report cases when it does.
965
+
966
+
967
+
968
+ .\" --------------------------------------------------------------------
969
+ .SS Real size options
970
+
971
+ .TP
972
+ .BI -r,\ --real-size\ size
973
+ Turns on the real size mode for
974
+ .IR ctioga .
975
+ .I size
976
+ should look like
977
+ .IR 10cmx12in .
978
+ The PDF file produced will have exactly the size requested, with the
979
+ plot filling as much as possible. You can include it in your
980
+ documents with the TeX command
981
+ .IR \eincludegraphics .
982
+
983
+ .TP
984
+ .BI --frame-margins\ margin
985
+ With the
986
+ .B --real-size
987
+ option, when the sizes are small, the text around the plot can be
988
+ clipped off the graph. Try to set the
989
+ .I margin
990
+ a bit higher with this parameter (try something like 0.2, and go on
991
+ increasing until you find something decent).
992
+ .B Important note:
993
+ with the new layout mechanism introduced in
994
+ .B ctioga
995
+ version
996
+ .IR 1.6 ,
997
+ it is no longer necessary to use this option, except in the most
998
+ desperate cases. See the section LAYOUT below.
999
+
1000
+ .\" --------------------------------------------------------------------
1001
+ .SS Graphics primitives
1002
+
1003
+ .TP
1004
+ .BI --draw \ spec
1005
+ Adds a graphic primitive to the current graph, using the
1006
+ specification
1007
+ .IR spec .
1008
+ See the
1009
+ .B GRAPHIC PRIMITIVES
1010
+ section below for more details about the specifications.
1011
+
1012
+ .TP
1013
+ .BI --draw-help
1014
+ Lists the graphic primitives currently known to
1015
+ .BR ctioga ,
1016
+ along with the options they currently handle and pointers to the
1017
+ appropriate functions in the
1018
+ .B Tioga
1019
+ documentation. By construction, the output of this function will
1020
+ always be a perfect reflection of the capabilities of
1021
+ .BR ctioga .
1022
+
1023
+
1024
+
1025
+ .\" --------------------------------------------------------------------
1026
+ .SS Backend-related options
1027
+
1028
+ See the sections BACKENDS and FILTERS for more details.
1029
+
1030
+ .TP
1031
+ .BI --text
1032
+
1033
+ .TP
1034
+ .BI --text-skip
1035
+
1036
+ .TP
1037
+ .BI --text-baseline
1038
+
1039
+ .TP
1040
+ .BI --multitext
1041
+
1042
+ .TP
1043
+ .BI --multitext-skip
1044
+
1045
+ .TP
1046
+ .BI --math
1047
+
1048
+ .TP
1049
+ .BI --math-samples \ number
1050
+
1051
+ .TP
1052
+ .BI --math-xrange \ range
1053
+
1054
+ .TP
1055
+ .BI --smooth\ number
1056
+ .TP
1057
+ .BI --sort
1058
+
1059
+ .TP
1060
+ .BI --filter-pop
1061
+
1062
+ .TP
1063
+ .BI --filter-clear
1064
+
1065
+ and more...
1066
+
1067
+ .\" --------------------------------------------------------------------
1068
+ .SS Miscellaneous options
1069
+
1070
+ .TP
1071
+ .BI --xpdf
1072
+ runs
1073
+ .I xpdf
1074
+ on the PDF file produced to see the results.
1075
+
1076
+ .TP
1077
+ .BI --open
1078
+ runs
1079
+ .I open
1080
+ on the PDF file produced to see the results.
1081
+
1082
+ .TP
1083
+ .BI --viewer \ viewer
1084
+ opens the PDF file produced with
1085
+ .IR viewer .
1086
+
1087
+ .TP
1088
+ .BI --no-viewer
1089
+ cancels the opening of the file if requested earlier (such as in a
1090
+ configuration file, see next section).
1091
+
1092
+ .TP
1093
+ .BI --args \ file
1094
+ Reads command-line arguments or options,
1095
+ .B one per line\fR,
1096
+ from
1097
+ .I file\fR.
1098
+ An option and its arguments must be on separated lines. This can be
1099
+ useful to avoid excessive quoting for complex plots
1100
+
1101
+
1102
+ .TP
1103
+ .BI --[no-]cleanup
1104
+ wether or not to remove all files created by the plot apart
1105
+ from the pdf output. This is not a good thing is case you want to
1106
+ include the picture inside a LaTeX file. In the latter case, you might
1107
+ want to prefer the next option.
1108
+ .B Important note:
1109
+ from
1110
+ .B ctioga
1111
+ version 1.5, this option is on by default (I'm fed up to always forget
1112
+ it and clean up manually afterwards).
1113
+
1114
+ .TP
1115
+ .BI --tex-cleanup
1116
+ removes all files produced except the
1117
+ .I _figure.pdf
1118
+ and
1119
+ .I _figure.txt
1120
+ as those ones are used for inclusion in LaTeX documents using the
1121
+ .I \etiogafigure
1122
+ Tioga-provided commands.
1123
+
1124
+ .TP
1125
+ .BI --clean-all
1126
+ removes all files produced, after displaying the PDF file produced (if
1127
+ you did ask to display something).
1128
+
1129
+ .TP
1130
+ .BI --include \ file
1131
+ .I file
1132
+ is read and evaluated as ruby code. See next section for more informations.
1133
+
1134
+ .TP
1135
+ .BI --save-dir \ dir
1136
+ files will be created in the directory
1137
+ .I dir
1138
+ rather than in the current directory.
1139
+ .\"Comes in quite convenient...
1140
+
1141
+ .TP
1142
+ .BI --name \ name
1143
+ the base name for files will be
1144
+ .I name
1145
+ rather than Plot.
1146
+
1147
+ .TP
1148
+ .BI --output \ name
1149
+ Asks
1150
+ .B ctioga
1151
+ to write the figure created up to this flag to the file
1152
+ .I name.pdf
1153
+ just as if you had written
1154
+ .I --name name
1155
+ and stopped the command-line here. Further output is still
1156
+ produced. This can be used to create animations, such as:
1157
+
1158
+ .I ctioga --math 'sin(x)' --output One_sine 'cos(x)' --name Two_sines
1159
+
1160
+ which produces two files:
1161
+ .I One_sine.pdf
1162
+ that contains only the
1163
+ .I 'sin(x)'
1164
+ curve, and
1165
+ .I Two_sines.pdf
1166
+ that contains both
1167
+ .I 'sin(x)'
1168
+ and
1169
+ .I 'cos(x)'
1170
+ curves.
1171
+
1172
+ .TP
1173
+ .BI --display-commandline
1174
+ the command-line used to make the plot is written in black at the
1175
+ bottom of the plot. No care is taken to ensure it doesn't overwrite
1176
+ any existing drawing. It can come in useful when sending image to
1177
+ someone or when one forgets too quickly how to make plots (which is
1178
+ the case of the author of
1179
+ .B ctioga\fR).
1180
+ Now,
1181
+ .B ctioga
1182
+ includes by default the command-line as a comment of the produced PDF
1183
+ file. Tools like
1184
+ .I pdfinfo
1185
+ can be used to retrieve it, see the
1186
+ .B --mark
1187
+ command just below.
1188
+
1189
+
1190
+ .TP
1191
+ .BI --[no-]mark
1192
+ .B ctioga
1193
+ can fill the
1194
+ .I creator
1195
+ meta-information field of the produced PDF file with the
1196
+ command-line. This is a useful feature, as you can use
1197
+ .I pdfinfo(1)
1198
+ to see which command-line was used to produce a given file (it is also
1199
+ displayed in
1200
+ .IR acroread(1) ).
1201
+ However, it can sometimes prove to be painful, as the text is
1202
+ interpreted by TeX and causes funny errors.
1203
+ This is why it is switched off by default. You can turn it on
1204
+ (and back off) with this switch.
1205
+
1206
+
1207
+ .TP
1208
+ .B --echo
1209
+ writes the ctioga command-line on standard output. Especially useful
1210
+ for examples found in the
1211
+ .I tests/
1212
+ directory, but you might find uses for that too.
1213
+
1214
+ .TP
1215
+ .BR --quiet ,\ --verbose ,\ --debug
1216
+ These options choose the verbosity level of
1217
+ .B ctioga\fR.
1218
+ With
1219
+ .B --quiet\fR,
1220
+ only errors are reported, while you get increasing amount of messages
1221
+ with
1222
+ .B --verbose
1223
+ which culminates in
1224
+ .B --debug\fR.
1225
+ The latter is so full of information you'll probably never find
1226
+ anything unless you wrote
1227
+ .B ctioga\fR.
1228
+
1229
+ .TP
1230
+ .B --version
1231
+ Writes the version of
1232
+ .B ctioga
1233
+ on standard output and exits.
1234
+
1235
+ .SS Alternative outputs
1236
+
1237
+ .TP
1238
+ .BI --eps
1239
+ With this option,
1240
+ .B ctioga
1241
+ does not call pdflatex, but rather transforms the intermediate PDF
1242
+ file into an EPS file using pdftops (from xpdf) and then calls latex
1243
+ followed by dvips to produce an EPS file. This results essentially in
1244
+ a difference in the type of the fonts used, and can ease the
1245
+ integration of
1246
+ .B ctioga
1247
+ graphs into pure LaTeX document (not generated with pdfLaTeX).
1248
+
1249
+ .TP
1250
+ .BI --png \ width x height
1251
+ Runs
1252
+ .B ctioga
1253
+ as usual, but converts the produced PDF file into a PNG file of size
1254
+ .IB width x height
1255
+ with the convert program from ImageMagick. The PDF file produced is
1256
+ .B not
1257
+ deleted. This option also changes the real size of the graph to match
1258
+ the size of the PNG file produced (on postscript point for one
1259
+ pixel). This can always be changed later on.
1260
+
1261
+ .TP
1262
+ .BI --png-oversampling \ nb
1263
+ The conversion to PNG will use a resolution of
1264
+ .I nb
1265
+ times more pixels in each dimension before rescaling. The higher this
1266
+ number, the better the antialiasing will be. Output is fairly decent
1267
+ with numbers around 2 (the default) to 3. You might need to tweak this
1268
+ option if you use
1269
+ .I --real-size
1270
+ after the
1271
+ .I --png
1272
+ option.
1273
+
1274
+ .TP
1275
+ .BI --svg
1276
+ Runs
1277
+ .B ctioga
1278
+ as usual, and then converts the produced PDF file into a SVG file
1279
+ using
1280
+ .B pdf2svg\fR.
1281
+
1282
+
1283
+
1284
+ .SS Debugging options
1285
+
1286
+ .TP
1287
+ .BI --debug
1288
+ This options enables some debugging output, especially when things
1289
+ don't quite end up as expected. It is more designed for developpers,
1290
+ though. See above, too.
1291
+
1292
+ .TP
1293
+ .B --debug-patterns
1294
+ Produces two more graphes, called
1295
+ .I Test_patterns
1296
+ and
1297
+ .I Test_patterns_right
1298
+ that show if the alignment of the graphes produced by
1299
+ .B ctioga
1300
+ with the given command-line options are correctly aligned. If somehow
1301
+ you find that it is not, you
1302
+ .B should
1303
+ file a bug report (with the full command-line and the PDF files
1304
+ produced).
1305
+
1306
+ .SH "INSETS"
1307
+
1308
+ Starting from release 1.8,
1309
+ .B ctioga
1310
+ provides three ways to specify the position of insets, subplots and
1311
+ inner legends:
1312
+
1313
+ .TP
1314
+ .IB x , y : w[ x h]
1315
+ centers the object at position
1316
+ .IB x , y
1317
+ with a width of
1318
+ .I w
1319
+ and a height of
1320
+ .IR h ,
1321
+ or
1322
+ .I w
1323
+ if
1324
+ .I h
1325
+ was not specified. All values are from 0 to 1, relative to the
1326
+ container.
1327
+
1328
+ .TP
1329
+ .IB x1 , y1 ; x2 , y2
1330
+ places the object with the exact border coordinates given by
1331
+ .IB x1 , y1
1332
+ and
1333
+ .IB x2 , y2\fR.
1334
+ As for the other ways, all positions are between 0 and 1 and relative
1335
+ to the container.
1336
+
1337
+ .TP
1338
+ .IB h x w [+|-] x [+|-] y
1339
+ A X Geometry-like specification. The box will be of height
1340
+ .I h
1341
+ and of width
1342
+ .I w
1343
+ and the point
1344
+ .I x,y
1345
+ is the left (+) or right (-) top (+) or bottom (-) corner of the box.
1346
+
1347
+ .SS Legend box
1348
+
1349
+ The
1350
+ .B --legend-inside
1351
+ can take an inset specification as argument. However, from version
1352
+ .B 1.9\fR,
1353
+ it can also take another form:
1354
+
1355
+ .IB vh : x ,y
1356
+
1357
+ where
1358
+ .I v
1359
+ is the vertical centering (\fIt\fR for top, \fIc\fR for center and
1360
+ \fIb\fR for bottom),
1361
+ .I h
1362
+ is the horizontal centering (\fIl\fR for left, \fIc\fR for center and
1363
+ \fIr\fR for right),
1364
+ and
1365
+ .I x
1366
+ and
1367
+ .I y
1368
+ are the coordinates. For instance
1369
+
1370
+ .I --legend-inside tl:0.5,0.5
1371
+
1372
+ will place the top left of the legends at the exact center of the
1373
+ drawings.
1374
+
1375
+ Starting from
1376
+ .B ctioga
1377
+ version
1378
+ .I 1.10\fR,
1379
+ it is possible to omit altogether the positions. To put the legend in
1380
+ the top left of the graph, simply use:
1381
+
1382
+ .I --legend-inside tl
1383
+
1384
+
1385
+ .SH "LAYOUT"
1386
+
1387
+ Since
1388
+ .B ctioga
1389
+ version 1.6, a relatively complex layout system has been incorporated
1390
+ to the code. The layout is responsible mainly for leaving enough space
1391
+ around plots so you can actually see labels and ticks. As of version
1392
+ 1.8, only one parameter of the layout system is accessible: something
1393
+ I call the padding. It represents the
1394
+ .I minimal
1395
+ amount of space that should be left on the sides of a graph. The
1396
+ actual space left may be bigger due to the presence of elements, such
1397
+ as labels. You can control it via the
1398
+ .I --padding
1399
+ option.
1400
+
1401
+
1402
+ .SH "CONFIGURATION FILES"
1403
+
1404
+ At startup,
1405
+ .B ctioga
1406
+ looks for a
1407
+ .I .ctiogarc
1408
+ file in the current directory and in the
1409
+ .I $HOME
1410
+ directory. This file is then read and evaluated as ruby code. The
1411
+ functions provided in this file are then made available to the
1412
+ backends. You can use it for two purposes:
1413
+
1414
+ .TP 2
1415
+ .B *
1416
+ define your own functions that can be called by backends such as the
1417
+ .I --math
1418
+ backend.
1419
+ .TP
1420
+ .B *
1421
+ before starting to process the command-line, if a function
1422
+ .I ctioga_defaults
1423
+ is defined, ctioga runs it. It can be used to set default values for
1424
+ .IR ctioga .
1425
+ You are strongly advised to look at the file
1426
+ .I plotmaker.rb
1427
+ to see what you actually can modify. This function is run in the
1428
+ context of the
1429
+ .I PlotMaker
1430
+ instance created.
1431
+ .TP
1432
+ .B *
1433
+ before doing the actual plotting,
1434
+ .B ctioga
1435
+ looks for a function named
1436
+ .I ctioga_init
1437
+ and if it finds it, it calls it passing it the
1438
+ .I FigureMaker
1439
+ object used to make the plots.
1440
+ You can use that function to customize the appearance of the
1441
+ graphes. You will find Tioga's rdoc documentation really useful for
1442
+ doing so.
1443
+
1444
+ .P
1445
+
1446
+ .P
1447
+ The files passed to
1448
+ .B ctioga
1449
+ with the
1450
+ .I --include
1451
+ option are treated exactly the same way, and in the order they are
1452
+ found. From the description above, you can guess that it's pretty
1453
+ useless to have a
1454
+ .I ctioga_defaults
1455
+ in such a file, as it will not be taken into account (although this
1456
+ could be interesting as well).
1457
+
1458
+ .SH GRAPHIC PRIMITIVES
1459
+
1460
+ Starting from ctioga 1.4, it is now possible to add simple graphic
1461
+ elements to a graph, such as text labels, markers and arrows. It is
1462
+ additionally possible to add tangent to the last curve plotted. You
1463
+ should be somewhat familiar with the Tioga documentation to make the
1464
+ best of them, although simple use should be straightforward.
1465
+
1466
+ You use graphic primitives with the
1467
+ .B --draw
1468
+ option. It takes a single argument (a long one), which is further
1469
+ broken into separate words in the same way the shell would do it. This
1470
+ argument must have the following form:
1471
+
1472
+ .IB what :
1473
+ .I mandatory arguments
1474
+ .I option1=thing option2=thing...
1475
+
1476
+ In this,
1477
+ .I what
1478
+ is the graphic primitive that can be used, the mandatory arguments must
1479
+ always be specified; they often are coordinates of meaningful
1480
+ points. Optional arguments follow a
1481
+ .IB key = value
1482
+ syntax, and can be completely omitted. Their name is the same as in
1483
+ the dictionnary in the
1484
+ .I Tioga
1485
+ function. See the
1486
+ .B --draw-help
1487
+ command-line switch for a list of supported keys.
1488
+
1489
+ Points are specified using
1490
+ .IB x , y
1491
+ values. Please note the absence of space between the coordinates.
1492
+
1493
+ .B ctioga
1494
+ understands the following primitives:
1495
+
1496
+ .TP
1497
+ .BI arrow: \ tail\ head
1498
+ Draws an arrow from the point
1499
+ .I tail
1500
+ to the point
1501
+ .I head.
1502
+
1503
+ .TP
1504
+ .BI line: \ tail\ head
1505
+ Same thing as the
1506
+ .B arrow
1507
+ primitive, excepted that arrow heads and tails are disabled by
1508
+ default.
1509
+
1510
+ .TP
1511
+ .BI hrule: \ point\ size
1512
+ Draws a horizontal ruler at the given point of the given size.
1513
+
1514
+ .TP
1515
+ .BI vrule: \ point\ size
1516
+ Draws a vertical ruler at the given point of the given size.
1517
+
1518
+ .TP
1519
+ .BI text: \ point\ text
1520
+ Places a TeX text at the location
1521
+ .IR point .
1522
+ Please note that you need to quote
1523
+ .I text
1524
+ if there are spaces or quotation marks inside.
1525
+
1526
+ .TP
1527
+ .BI marker: \ point\ marker
1528
+ This is the pendant of
1529
+ .I text
1530
+ for markers.
1531
+
1532
+ .TP
1533
+ .BI tangent: \ spec
1534
+ This is not strictly speaking a graphics primitive, but it comes in
1535
+ very handy to place tangents to a curve. See below for the meaning of
1536
+ .IR spec .
1537
+ (not documented yet)
1538
+
1539
+ All these primitives accept additional options. It would be too long
1540
+ to describe them here, but the
1541
+ .I --draw-help
1542
+ option lists them all and gives pointers to the function in the
1543
+ .B Tioga
1544
+ documentation where you will find documentation about them.
1545
+
1546
+ .P
1547
+ For example, to place a piece of text at the origin, use
1548
+
1549
+ \" The following 'escape sequence' is pretty ugly, but it turned
1550
+ \" out to be the only one that works...
1551
+
1552
+ .I --draw 'text: 0,0 \fI"Some text" '
1553
+
1554
+ Note the quotes within quotes around
1555
+ .IR Some\ text .
1556
+ To do the same, but text tilting 45 degree from
1557
+ horizontal and with a nice (!) pink color, this would do:
1558
+
1559
+ .I --draw 'text: 0,0 \fI"Some text" angle=45 color=Pink'
1560
+
1561
+ \" .SS Tangents
1562
+
1563
+ \" A tangent to a curve is essentially an arrow with a direction given by
1564
+ \" the slope of the curve at a given point, and 'centered' around this
1565
+ \" point. To specify this point, you have several ways:
1566
+
1567
+
1568
+ .SH CURVE STYLES
1569
+
1570
+ .B ctioga
1571
+ has a pretty advanced mechanism for choosing a style for a
1572
+ curve. This mechanism has been designed to provide maximum flexibility
1573
+ while keeping the command-line to its minimal.
1574
+ Styles are the result of the interaction of two elements
1575
+
1576
+ .TP 2
1577
+ .B *
1578
+ the theme, which is providing a base for the style of a curve
1579
+
1580
+ .TP
1581
+ .B *
1582
+ the override, that is any style-related options that have been passed
1583
+ on the command-line.
1584
+
1585
+ .P
1586
+
1587
+ When
1588
+ .B ctioga
1589
+ needs to know the style of the next curve, it first asks the
1590
+ .B theme
1591
+ to provide one. Usually, the styles provided by the themes will change
1592
+ at every curve. Then, the style is modified taking the override into
1593
+ account. A
1594
+ .I --color Red
1595
+ command-line option sets the
1596
+ .I color
1597
+ override to
1598
+ .IR Red ,
1599
+ which means that every single curve after that, until the override is
1600
+ changed, will be red.
1601
+
1602
+ A
1603
+ .I --color auto
1604
+ option removes the override for
1605
+ .IR color ,
1606
+ so that the actual color used is the theme's one.
1607
+
1608
+ The default override is to set the
1609
+ .I markers
1610
+ to
1611
+ .IR no ,
1612
+ so that by default no markers are present. The use of
1613
+ .I --reset-override
1614
+ restores the default override (which would remove markers...).
1615
+
1616
+ Finally, the
1617
+ .I --save-style
1618
+ option saves the style effectively used for the last curve. The
1619
+ .I --use-style
1620
+ option prevents
1621
+ .B ctioga
1622
+ from asking the theme to provide a base style, but rather uses the
1623
+ saved style as if the theme had provided it.
1624
+
1625
+ .SH SHORTCUTS
1626
+
1627
+ Starting from
1628
+ .B ctioga
1629
+ 1.7, it is possible to use shortcuts on the command-line. Shortcuts
1630
+ are used with the
1631
+ .I --short
1632
+ option and expand into a series of command-line arguments. For
1633
+ instance,
1634
+ .I --short cloud
1635
+ expands into
1636
+ .I --marker auto --marker-scale 0.2 --line-style no\fR,
1637
+ which is very convenient to make dot clouds. You can list available
1638
+ shortcuts along with what they expand to with the
1639
+ .I --short-list
1640
+ option. You can define shortcuts in your
1641
+ .I ~/.ctiogarc
1642
+ file with something in the spirit of
1643
+
1644
+ .I Shortcut.new('pink', '--color', 'Pink', '--marker-color', 'Pink')
1645
+
1646
+ This line defines a
1647
+ .I pink
1648
+ shortcut that expands to
1649
+ .I --color Pink --marker-color Pink\fR.
1650
+ You use it simply by passing the
1651
+ .I --short pink
1652
+ option to
1653
+ .B ctioga\fR.
1654
+ Better, if it does not conflict with existing options, you can use it
1655
+ directly as
1656
+ .I --pink\fR.
1657
+
1658
+
1659
+ passing
1660
+ Be sure to separate all arguments (which you would separate with
1661
+ spaces on the command-line) with
1662
+ .IR commas ,
1663
+ and to enclose them in single or double quotes.
1664
+ Failing to do so will most likely result in
1665
+ .B ctioga
1666
+ complaining about unknown options.
1667
+
1668
+
1669
+ You can make sure
1670
+ .B ctioga
1671
+ sees these definitions with the
1672
+ .I --short-list
1673
+ option. If they don't show up there, you might have either a
1674
+ compilation problem in you
1675
+ .I ~/.ctiogarc
1676
+ file, or you simply didn't really write it there...
1677
+
1678
+
1679
+
1680
+
1681
+ .SH MARGIN SPECIFICATION
1682
+
1683
+ Several options accept a specification for margins. You need to
1684
+ remember that Tioga, and hence ctioga counts margins as a fraction of
1685
+ the total relevant length from the given side. So, if the right margin
1686
+ is at
1687
+ .IR 0.2 ,
1688
+ it means that it will take the right
1689
+ .I 20%
1690
+ of the image. The specification is
1691
+
1692
+ .I left,right,top,bottom
1693
+
1694
+ where each of the component is a number between 0 and 1. All distances
1695
+ are always relative to the direct container: margins for the whole
1696
+ plot are relative to the size of the whole plot.
1697
+
1698
+ .SH FILLED REGIONS
1699
+
1700
+ With the
1701
+ .I --region
1702
+ option, you start a filled region, which means that all subsequent
1703
+ plots until the next
1704
+ .I --end
1705
+ option will serve, in addition to be displayed normally, as a way to
1706
+ delimit the region where the fill will occur, according to the
1707
+ following simple rule: every odd plot will be closed by a line at the
1708
+ top of the figure, every even one by a line at the bottom. The
1709
+ resulting path will be used as a clipping path for the region. To
1710
+ understand which region will be filled, imagine that every curve is
1711
+ filled in the normal way to the top or the bottom of the plot. The
1712
+ colored region will be the one filled by all curves. The
1713
+ .I --region-debug
1714
+ does precisely this and can be of a really great help to understand
1715
+ what is actually happening.
1716
+
1717
+ If the
1718
+ .I --region-invert-rule
1719
+ option is in order, the above rule gets reversed: every odd plot is
1720
+ closed to the bottom and every even one to the top.
1721
+ With the
1722
+ .I --region-fill-twice
1723
+ option, the region is filled twice, once with each rule.
1724
+
1725
+ To make simple things simple, if you just want to be filling the space
1726
+ between two non-intersecting curves, just put the lower one firs or
1727
+ use
1728
+ .I --region-invert-rule
1729
+ if you don't want that.
1730
+ For relatively simple intersecting curves, you might want to try
1731
+ .IR --region-fill-twice ,
1732
+ as it tends to do what one wants (in my humble opinion).
1733
+
1734
+ For more complex stuff, you can use the
1735
+ .I --region-dont-display
1736
+ to specify complex shapes and clip them. You can use multiple
1737
+ .I --region
1738
+ to get the desired effect.
1739
+
1740
+
1741
+ .SH "ENVIRONMENT VARIABLE"
1742
+
1743
+ If a
1744
+ .B CTIOGA
1745
+ environement variable is found, it is taken as a part of the command
1746
+ line, with some differences however:
1747
+
1748
+ .TP 2
1749
+ .B *
1750
+ it is parsed before the command line;
1751
+
1752
+ .TP
1753
+ .B *
1754
+ if a
1755
+ .BI --include \ file
1756
+ option is present, the
1757
+ .IR file 's
1758
+ .I ctioga_defaults
1759
+ function will be taken into account;
1760
+
1761
+ .TP
1762
+ .B *
1763
+ it's contents don't show up in the
1764
+ .B --display-commandline
1765
+ display.
1766
+
1767
+ .SH BACKENDS
1768
+
1769
+ .B ctioga
1770
+ is based on the concept of
1771
+ .IR Backends .
1772
+ Backends are classes that deal with acquiring the data. This can mean
1773
+ generate the data on the fly (like what the
1774
+ .I math
1775
+ backend does), reading it from a text file (the
1776
+ .IR text )
1777
+ backend or from binary files or databases (backends yet to be
1778
+ written). For some backends, you can provide additional information
1779
+ with command-line switches. For some, a given set of command-line
1780
+ switches are necessary for good operation (not applicable yet).
1781
+
1782
+ \" .P
1783
+
1784
+ \" We will detail each available backend separately.
1785
+
1786
+ .SS Set expansion
1787
+
1788
+ Most of the backends come with a feature called
1789
+ .I set expansion
1790
+ : it is possible to compactly transform a single set specification
1791
+ into several different data sets. For instance,
1792
+ .I file@1:2##4
1793
+ is transformed into
1794
+ .I file@1:2 file@1:3 file@1:4\fR.
1795
+
1796
+ There are three patterns recognised by most of the backends:
1797
+
1798
+ .TP
1799
+ .IB n ## m
1800
+ where
1801
+ .I n
1802
+ and
1803
+ .I m
1804
+ are numbers, is expanded into all the numbers from
1805
+ .I n
1806
+ to
1807
+ .I m
1808
+ included.
1809
+
1810
+ .TP
1811
+ .BI #< n < code > m >
1812
+ is expanded into the Ruby code
1813
+ .I code
1814
+ with variable
1815
+ .B i
1816
+ ranging from
1817
+ .I n
1818
+ to
1819
+ .IR m .
1820
+ The value the block is returning is replaced
1821
+ in the set specification. This way,
1822
+ .I #<1<i**2>4>
1823
+ expands into
1824
+ .I 1 4 9 16\fR.
1825
+ Please note the absence of spaces around
1826
+ .I n
1827
+ and
1828
+ .IR m .
1829
+
1830
+ .TP
1831
+ .BI #< var = n < code > m >
1832
+ Although it looks very much like the previous one, this one is much
1833
+ easier to work with: the previous expands to a block of Ruby code,
1834
+ which means that you're likely to get into compilation errors. This
1835
+ way, however, expands the
1836
+ .B string
1837
+ .IR code ,
1838
+ replacing any occurence of the variable named
1839
+ .I var
1840
+ by an integer value from
1841
+ .I n
1842
+ to
1843
+ .IR m .
1844
+ Contrary to the previous expressions, you can put arbitrary spaces.
1845
+
1846
+
1847
+ .P
1848
+ The second and third expansions, though in appearance very similar,
1849
+ have completely different applications.
1850
+
1851
+ .P
1852
+ The second,
1853
+ .BI #< var = n < code > m >\fR,
1854
+ works with a real Ruby expression that must return a
1855
+ .I String
1856
+ object, or something that can be cast to a String, such as a number.
1857
+ This expansion can be used for instance to plot every second column of
1858
+ a file, using the following specification:
1859
+
1860
+ .I ctioga file.dat@'1:#<2<i*2>6>'
1861
+
1862
+ .B ctioga
1863
+ will expand that to the value of the expression
1864
+ .I i*2
1865
+ with
1866
+ .I i
1867
+ ranging from 2 to 6. What we obtain is:
1868
+
1869
+ .I ctioga file.dat@'1:4' file.dat@'1:6' ... file.dat@'1:12'
1870
+
1871
+ The second expansion is well adapted to dirty tricks about data
1872
+ files. In principle, it is the most powerful expansion, as you get
1873
+ full ruby interpretation. But it can be delicate, as you need to think
1874
+ in terms of Ruby expressions.
1875
+
1876
+ .P
1877
+ On the other hand, in the third,
1878
+ .BI #< var = n < code > m >
1879
+ you define a variable whose name will be replaced by all the numbers
1880
+ from
1881
+ .I n
1882
+ to \fIm\fR. In particular, we can't try the same trick as above: using
1883
+
1884
+
1885
+ .I ctioga file.dat@'1:#<n=2<n*2>6>'
1886
+
1887
+ will result in
1888
+ .B ctioga
1889
+ expanding that into:
1890
+
1891
+ .I ctioga file.dat@'1:2*2' file.dat@'1:3*2' ... file.dat@'1:6*2'
1892
+
1893
+ which is completely different than above. On the other hand, this
1894
+ expansion is much more suited to change a parameter that must appear
1895
+ in several places in the expansion, such as the followin:
1896
+
1897
+ .I ctioga --math '#<n = 2< sin(n*x)/n>10>'
1898
+
1899
+ which plots
1900
+ .I sin(n*x)/n
1901
+ for all
1902
+ .I n
1903
+ values from 2 to 10.
1904
+
1905
+ That is possible to do with the second expansion, but it is way
1906
+ heavier:
1907
+
1908
+ .I ctioga --math '#<2<"sin(#{i}*x)/#{i}">10>'
1909
+
1910
+ Note that the quotes are necessary, as we want to get a ruby string,
1911
+ and not the result of the computation of
1912
+ .I sin(i*x)/i\fR,
1913
+ which will most likely result in a Ruby error, because it does not
1914
+ know about any
1915
+ .IR x .
1916
+
1917
+
1918
+ .SS The text backend
1919
+
1920
+ Select it with the option
1921
+ .IR --text .
1922
+ It accepts four options:
1923
+
1924
+ .TP
1925
+ .BI --text-skip \ number
1926
+ when reading subsequent files, the file
1927
+ .I number
1928
+ lines of the file are skipped.
1929
+
1930
+ .TP
1931
+ .BI --text-baseline \ set
1932
+ this specifies that
1933
+ .I set
1934
+ should act as a baseline for every subsequent set. That is, the Y
1935
+ values of this set will be substracted to every single subsequent
1936
+ set. Use
1937
+ .I no
1938
+ to cancel baseline.
1939
+
1940
+ .TP
1941
+ .BI --text-col \ spec
1942
+ which column specification to use in case no one is specified. No
1943
+ expansion is performed here.
1944
+
1945
+ .TP
1946
+ .BI --text-separator \ regexp
1947
+ a Ruby regular expression that designates the column separator.
1948
+ For instance, for CSV files, you could use
1949
+ .I ,
1950
+ or
1951
+ .I ;
1952
+ or, even better
1953
+ .IR "'/[,;]/'" .
1954
+
1955
+
1956
+ .P
1957
+
1958
+ It reads text files in a simple
1959
+ format (numbers separated with spaces) and seperates them in
1960
+ columns. The first column in the file is 1, and so on. You can access
1961
+ to the index of the line with the column number 0 (like in
1962
+ .IR gnuplot ).
1963
+
1964
+ The general syntax of a data set is
1965
+ .IB file @ x_col : y_col
1966
+ with the following meaning:
1967
+
1968
+ .TP 4
1969
+ .I file
1970
+ is the name of the file where the data is. If it is omitted, the last
1971
+ file opened by the backend is used.
1972
+
1973
+ .TP
1974
+ .IB x_col : y_col
1975
+ are column specifications. If they are simple numbers, the
1976
+ corresponding columns are used:
1977
+ .I 3:1
1978
+ asks to plot the first column as a function of the third.
1979
+ On the contrary if they contain at least one \fI$\fR
1980
+ sign, then they are interpreted as a function of the columns, where
1981
+ .I $n
1982
+ represents the nth column:
1983
+ .I $2**2:$1*$3
1984
+ asks to plot the product of column 1 and 3 as a function of the square
1985
+ of the second. Arbitrary expressions can be used, as well as functions
1986
+ defined in configuration or included files. Please note that in the
1987
+ latter case you will most probably need to quote the arguments with
1988
+ .I single quotes
1989
+ to prevent the shell from tampering with your arguments.
1990
+
1991
+ .P
1992
+ If the
1993
+ .BI @ x_col : y_col
1994
+ is omitted, then it defaults to
1995
+ .IR \fB@\fI1\fB:\fI2 ,
1996
+ or the the value given to the
1997
+ .B --text-col
1998
+ option if the latter was specified before.
1999
+
2000
+ .P
2001
+ The text backend supports an extansion to the set expansion mechanism
2002
+ described earlier, in that you can ommit the trailing number in
2003
+ a
2004
+ .I n##m
2005
+ specification. In this case, the last digit is taken to be the number of
2006
+ the last column in the file. If
2007
+ .I file.dat
2008
+ has 4 columns,
2009
+ .I file.dat@1:2##
2010
+ is exactly equivalent to
2011
+ .IR file.dat@1:2##4 .
2012
+
2013
+ Starting from
2014
+ .B ctioga
2015
+ version 1.4, the text bacjend supports error bars. You do it using
2016
+ extra column specifications, such as in the following:
2017
+
2018
+ .IB file.dat : 1 : 2 : xeabs=3 : yeabs=4
2019
+
2020
+ This column specification means that column
2021
+ .I 3
2022
+ will be taken as absolute errors on the
2023
+ .I x
2024
+ values
2025
+ and column
2026
+ .I 4
2027
+ as the absolute error on the
2028
+ .I y
2029
+ values, both of the being symmetric: for
2030
+ .IR y ,
2031
+ for instance, you get the value in the column
2032
+ .I 2
2033
+ plus or minus the one in column
2034
+ .I 4
2035
+ as an error bar.
2036
+
2037
+ Quite a few different specifiers are available in place of
2038
+ .I xeabs
2039
+ and
2040
+ .IR yeabs .
2041
+ For instance, for
2042
+ .I x
2043
+ error bars:
2044
+
2045
+ .TP
2046
+ .I xeabs
2047
+ specifies an absolute symmetric error
2048
+
2049
+ .TP
2050
+ .I xeup
2051
+ specifies the absolute error above the
2052
+ .I x
2053
+ values.
2054
+
2055
+ .TP
2056
+ .I xedown
2057
+ the absolute error below the
2058
+ .I x
2059
+ values.
2060
+
2061
+ .TP
2062
+ .I xerel
2063
+ plays the same role as
2064
+ .I xeabs
2065
+ but for relative values (expressed in fractions of the corresponding
2066
+ value).
2067
+
2068
+ .TP
2069
+ .IR xerdown \ and \ xerup
2070
+ are the equivalent of
2071
+ .I xeup
2072
+ and
2073
+ .I xedown
2074
+ for relative values.
2075
+
2076
+
2077
+ .TP
2078
+ .I xmin
2079
+ and
2080
+ .I xmax
2081
+ directly specify the position of the left and right position of the
2082
+ error bar.
2083
+
2084
+ .P
2085
+
2086
+ The
2087
+ .I yeabs
2088
+ and so on are the pendant of the
2089
+ .I xeabs
2090
+ for the
2091
+ .I y
2092
+ values. Specifications can be abbreviated to the smallest unambiguous
2093
+ possibilities.
2094
+
2095
+ .TP
2096
+ .B --[no-]text-split
2097
+
2098
+ Starting from version
2099
+ .B 1.9\fR,
2100
+ at the request of
2101
+ .I Ivars Finvers\fR,
2102
+ it is possible to separate a text file into subsets at blank lines, a
2103
+ bit like what gnuplot is doing. Subsets can be reached using a syntax
2104
+ in the spirit of
2105
+
2106
+ .I ctioga --text-split file.dat#12
2107
+
2108
+ that shows the 12th subset of
2109
+ .I file.dat\fR.
2110
+
2111
+
2112
+
2113
+ .SS The multitext backend
2114
+
2115
+ Select it with the option
2116
+ .IR --multitext .
2117
+ It recognizes the option
2118
+ .I --multitext-skip
2119
+ which is the equivalent of
2120
+ .IR --text-skip .
2121
+ It exists to provide the ability of plotting columns from different data
2122
+ files and works similarly to the
2123
+ .I --text
2124
+ backend with a stricter syntax:
2125
+
2126
+ .IB [file1@x_col] : [file2@y_col]
2127
+
2128
+ Nothing can be ommited, especially not the square braces. Nevertheless, it can
2129
+ handle arbitrarily complicated mathematical expression such as
2130
+
2131
+ .IB [file1@x_col1]-[file2@x_col2] : [file3@y_col1]/[file4@y_col2]
2132
+
2133
+ Note that the files should all have the same number of lines and that you
2134
+ should avoid for example division by 0.
2135
+ You will also need to quote the arguments to avoid shell expansion.
2136
+
2137
+ The expansion mechanism explained in the
2138
+ .I text
2139
+ backend also works, with the exception that the last column has to be specified.
2140
+
2141
+ .SS The math backend
2142
+
2143
+ Select it with the option
2144
+ .IR --math .
2145
+ It accepts two options
2146
+
2147
+ .TP 10
2148
+ .BI --math-xrange \ range
2149
+ specifies the range over which to plot, in the form
2150
+ .IB xmin : xmax
2151
+
2152
+ .TP
2153
+ .BI --math-samples \ number
2154
+ the number of points used for the computation. They are distributed
2155
+ homogeneously in the range.
2156
+
2157
+ .TP
2158
+ .B --[no-]math-log
2159
+ with this option, the samples are spaced logarithmically instead of
2160
+ linealy. Good in combination with
2161
+ .IR --xlog .
2162
+
2163
+
2164
+ .P
2165
+ You can use arbitrary functions of
2166
+ .I x
2167
+ with this backend, such as
2168
+ .IR sin(x) , \ x**2\ +\ 2*x , \ etc ...
2169
+ You will probably need to quote the arguments to prevent shell
2170
+ expansion.
2171
+
2172
+
2173
+
2174
+ .SS The gnuplot backend
2175
+
2176
+ This backend is an attempt to use files that make plots with
2177
+ .BR gnuplot .
2178
+ In particular, it can be really useful to write a series of
2179
+ functions and fits using gnuplot, profiting from its abilities while
2180
+ benefitting from
2181
+ .BR ctioga 's
2182
+ better-looking output.
2183
+
2184
+ In short, this backend sends the file to
2185
+ .B gnuplot
2186
+ and intercept its output with the
2187
+ .I table
2188
+ terminal.
2189
+ You should not have to modify the original file to use with
2190
+ .BR ctioga ,
2191
+ but that might fail some times (please file a bug report then).
2192
+
2193
+ .B Note :
2194
+ this is just a backend, and in its way it will only provide
2195
+ .B ctioga
2196
+ with
2197
+ .BR data .
2198
+ In particular,
2199
+ .B all formatting options in the gnuplot file are lost
2200
+ !
2201
+
2202
+ You select it with the
2203
+ .I --gnuplot
2204
+ option.
2205
+
2206
+ Options:
2207
+
2208
+ .TP
2209
+ .BI --gnuplot-range \ range
2210
+ overrides range specification for plots from the file
2211
+
2212
+ .TP
2213
+ .BI --gnuplot-vars \ vars
2214
+ a colon-separated list of variables that will override the ones from
2215
+ the file.
2216
+
2217
+
2218
+
2219
+
2220
+ For the examples, we'll use the following
2221
+ .I ctioga.gnuplot
2222
+ file:
2223
+
2224
+ .I set term postscript
2225
+ .I a = 10
2226
+ .I b = 4
2227
+ .I plot [2:12] x**2 - a*x + b
2228
+
2229
+ It can be found in the
2230
+ .I examples/
2231
+ directory in the source tarball. Try this:
2232
+
2233
+
2234
+ .I ctioga --gnuplot ctioga.gnuplot
2235
+
2236
+ .I ctioga --gnuplot --gnuplot-range -2:2 ctioga.gnuplot
2237
+
2238
+ .I ctioga --gnuplot ctioga.gnuplot --gnuplot-vars 'a=11; b=3' ctioga.gnuplot
2239
+
2240
+
2241
+ .SH FILTERS
2242
+
2243
+ Each backend can have as many filters as you wish. They are applied in
2244
+ the order with which they come on the command-line. You can view it as
2245
+ a stack where the bottom filters are applied first, and new filters go
2246
+ on top.
2247
+ .I Each backend has its own stack.
2248
+
2249
+
2250
+ .TP
2251
+ .B --filter-pop
2252
+ Pops the last filter pushed onto the current backend's stack.
2253
+
2254
+ .TP
2255
+ .B --filter-clear
2256
+ Clears all filters of the current backend.
2257
+
2258
+ .TP
2259
+ .BI --smooth\ number
2260
+ Applies a gaussian-like convolution filter of size
2261
+ .I number
2262
+ onto the data. For better results,
2263
+ .I number
2264
+ should be odd to have a clear middle for the convolution kernel.
2265
+
2266
+ .TP
2267
+ .B --sort
2268
+ Sorts the X data.
2269
+
2270
+
2271
+ .TP
2272
+ .BI --trim \ number
2273
+ Keeps only one point every
2274
+ .I number
2275
+ in the data. Useful to reduce PDF size and displaying time for curves
2276
+ with wild oversampling.
2277
+
2278
+ .TP
2279
+ .B --norm
2280
+ Normalizes the input data so that the maximum absolute value is 1. It
2281
+ does not change its sign.
2282
+
2283
+ .TP
2284
+ .B --cumulate
2285
+ Sums all points as they are read. Do not mistake this for integration.
2286
+
2287
+ .TP
2288
+ .B --strip
2289
+ Strips all points that are not NaN, mostly useful with
2290
+ .B ctable
2291
+ (1).
2292
+
2293
+ .TP
2294
+ .B --avgdup
2295
+ Averages all Y values of the same X value. Sorts data at the same
2296
+ time.
2297
+
2298
+ .TP
2299
+ .B --stddev
2300
+ Averages successive Y values with the same X value, and set error bars
2301
+ to reflect standard deviation around the average. Dead useful.
2302
+
2303
+
2304
+ .SH AUTHOR
2305
+
2306
+ .B ctioga
2307
+ was written by Vincent Fourmond with the help of Jean-Julien Fleck.
2308
+ .B Tioga
2309
+ was written by Bill Paxton.
2310
+
2311
+ .SH BUGS
2312
+
2313
+ .B ctioga
2314
+ is most certainly not bug-free. You can use the facility at
2315
+ .B rubyforge.org
2316
+ to report any bug you notice:
2317
+ .IR http://rubyforge.org/tracker/?func=add&group_id=1477&atid=5773 .
2318
+ You can also use the same facility for feature requests.
2319
+
2320
+ .SH "IMPORTANT NOTE"
2321
+
2322
+ The development of
2323
+ .B ctioga
2324
+ as such has ended. Further development is going on on a complete
2325
+ rewrite of the engine, called
2326
+ .B ctioga2\fR.
2327
+ More information can be found at the
2328
+ .B ctioga2
2329
+ website:
2330
+ .IR http://ctioga2.rubyforge.org .
2331
+
2332
+ .SH "SEE ALSO"
2333
+
2334
+ .BR xpdf (1),
2335
+ .BR pdflatex (1),
2336
+ .BR open (1),
2337
+ .BR gnuplot (1)
2338
+
2339
+ The original tarball includes an
2340
+ .I examples/
2341
+ directory where you will find some data files, some commented examples
2342
+ of configuration files and most importantly a tutorial along with a
2343
+ .I tutorial.sh
2344
+ shell script demonstrating the commands used in the tutorial.
2345
+
2346
+ It also includes a
2347
+ .I tests/
2348
+ directory containing test shell scripts. Runnning these shell scripts
2349
+ should give you a decent idea of
2350
+ .BR ctioga 's
2351
+ possibilities while assuring that it did install properly.
2352
+
2353
+ Useful documentation, including an illustrated version of the
2354
+ tutorial and instructions on bug reporting, can be found on
2355
+ .BR ctioga 's
2356
+ website, at
2357
+ .IR http://sciyag.rubyforge.org/ctioga .
2358
+
2359
+ More information about
2360
+ .B Tioga
2361
+ and its rdoc documentation
2362
+ can be found at
2363
+ .I http://www.kitp.ucsb.edu/~paxton/tioga.html