Advanced tips and tricks
If you looked at the basic skills page, we got this far:
Supermarkets charge for plastic bags Far fewer plastic bags purchased; edgecolor=black Pollution? Somewhat more hemp bags purchased; edgecolor=red Pollution?
I can even add labels to the edges and make them different widths.
Finally, this diagram needs a different shape. On the web interface, I can just drag the
proportion slider to the left to make it shallower. Or I can do the same thing by writing
proportion, putting a small number for shallow and wide:
Supermarkets charge for plastic bags Far fewer plastic bags purchased; edgewidth=4; edgecolor=black Pollution? Somewhat more hemp bags purchased; edgewidth=1; edgecolor=red; edgelabel=negative Pollution? proportion=.1
Oh, and if you are lazy you can abbreviate all these things:
Supermarkets charge for plastic bags Far fewer plastic bags purchased; ewid=4; ecol=black Pollution? Somewhat more hemp bags purchased; ewid=1; ecol=red; elab=negative Pollution? pro=.1
So we looked at how to ose dots and spaces and how to change the appearance by adding things like
Sometimes it is convenient to combine spaces and dots.
goal .result a goal 2 .result b
Sometimes we want to draw diagrams with loops in them. Theorymaker doesn’t stop you.
Parent gets angry Child gets upset Parent gets angry
If you find yourself repeating variables a lot and you don’t want to copy and paste, you can use an alias by putting some easy shorter form in front of the full name, separated by a double colon.
Pa Child gets upset Pa::Parent gets angry
You have to define the alias on the last appearance, othewise this will happen:
Pa::Parent gets angry Child gets upset Pa
Creating edges with
Those two techniques are nice and easy but for more complicated cases you can use
to=. You can specify more than one target, separated by spaces.
a;to=b d b;to=c c d
A space is used to separate targets. So what to do if the target of the “to” has spaces in its name? Just remove the spaces. The same goes for special characters like
b with gaps in name! a;to=bwithgapsinname d d
imply a variable using the to= or decimal methods without actually defining it, like c in the example below, the variable will be shown in grey.
Creating edges with the decimal notation
Finally, you can use a decimal point notation which is very common in project designs.
a a.1 a.1.x a.1.y a.2
If you are using the decimal point notation and want to have meaningful labels, you have to use aliases.
x :: Goal x.a :: Result a x.a.1 :: Result a.1 x.b :: Result b x.c :: Result c
Note that I put some spaces in before and after the colons to make it easier to read. You can leave them out if you want.
Combinations of these specifications can also be used.
a a.1 c;to=a .d
One of the neat things about Theorymaker is that it is easy to add edges, arrows, between variables.
If you are specifying more than one target with
to=, and you decorate the edges, look what happens:
a;to=b c;edgelabel= my label b c
If you don’t want this effect, you can use additional lines:
a;to=b;edgelabel= my label a;to=c;edgelabel= my other label b c
You can also control the arrowheads.
a b; edgedirection=both c; edgedirection=none
More about boxes
Empty boxes are possible too.
-box one --inner box
You can “finish off” one box without starting another by typing a line with the same number of dashes but no text.
There is also a handy way to add notes (with matching colours) to your items. So if you use
;note_two=some note in a variable, a note “some note” labelled “two” will appear at the bottom of the item. If you do this in multiple variables, the fill colours match.
-Project school b::Teachers;note_number=30;note_importance=high Intervention;to=b -Comparison school cb::Teachers;note_number=30 Dummy intervention;to=cb
Valued variables & input variables
One more feature: you can mark variables which are valued or which are inputs quite simply:
goal;valued=yes .result a ..subresult a ...other contribution a ..subresult b ...input b;input=yes .result b_val ..subresult c ...input c;input=yes ..subresult d ...input d1;input=yes ...input d2;input=yes
There are also shortcodes for some features which you can add at the end of your variable names or aliases:
_valmeans this is a valued variable
_inpmeans this is an input variable
_defmeans this is a defined variable
_scemeans this box is a scenario
_mulmeans this box contains multiple cases
_dotmakes a dotted line
--Group 1_sce c_inp a_val --Group 2_mul b_dot;to=d d