[Arjen Markus] (22 november 2018) Today I realised that you do not need to put a canvas in a top level window (manage it) to still use it. Ordinarily I do something like: ====== pack [canvas .c] ... draw graphical objects ====== But you can simply do: ====== canvas .c # Draw a line ... .c create line 10 100 200 200 -fill blue -width 5 ====== The canvas may not be visible, but it does contain the line, as you will see if you put it into a top level window or the like: ====== pack .c ====== Easy to try in a "wish" console. At first sight, this does not to be very useful, but it also works with [pdf4tcl]: ====== # plotlinpr.tcl -- # Simple plot of linear programming problem # package require pdf4tcl # # DO NOT pack the canvas, only create it ... # #pack [canvas .c -bg white -width 400 -height 300] canvas .c -bg white -width 400 -height 300 .c create line 50 250 350 250 -width 4 .c create line 50 250 50 50 -width 4 .c create text 200 270 -text "X" .c create text 30 150 -text "Y" -angle 90 .c create text 150 40 -text "Constraints" -fill blue .c create line 50 100 350 200 -fill blue .c create line 150 50 275 250 -fill blue .c create text 180 170 -text "Optimum" -fill red .c create line 90 50 332 250 -fill red -width 4 after 1000 { set pdf1 [::pdf4tcl::new %AUTO% -paper {12.0c 8.0c}] $pdf1 canvas .c -width 13.4c $pdf1 write -file linear_programming.pdf set go 1 } ====== So this trick allows you to produce pictures in the background. <>Tips and Tricks