Index: /trunk/Ohana/src/kapa2/src/PSFrame.c
===================================================================
--- /trunk/Ohana/src/kapa2/src/PSFrame.c	(revision 40060)
+++ /trunk/Ohana/src/kapa2/src/PSFrame.c	(revision 40061)
@@ -4,5 +4,5 @@
 int PSFrame (KapaGraphWidget *graph, FILE *f) {
   
-  int i, j, Nticks, P, doffset;
+  int i, j, Nticks, doffset;
   double fx, fy, dfx, dfy, dx = 0, dy = 0, lweight;
   Graphic *graphic;
@@ -12,5 +12,9 @@
   graphic = GetGraphic();
 
-  P = 0.5 * (1 + 0.25*graph[0].axis[0].lweight) * (hypot (graph[0].axis[0].dfx, graph[0].axis[0].dfy) + hypot (graph[0].axis[0].dfx, graph[0].axis[0].dfy));
+  // P = 0.5 * (1 + 0.25*graph[0].axis[0].lweight) * (hypot (graph[0].axis[0].dfx, graph[0].axis[0].dfy) + hypot (graph[0].axis[0].dfx, graph[0].axis[0].dfy));
+
+  int Px = 0.5 * (1 + 0.25*graph[0].axis[0].lweight) * (hypot (graph[0].axis[0].dfx, graph[0].axis[0].dfy) + hypot (graph[0].axis[0].dfx, graph[0].axis[0].dfy));
+  int Py = 0.5 * (1 + 0.25*graph[0].axis[1].lweight) * (hypot (graph[0].axis[1].dfx, graph[0].axis[1].dfy) + hypot (graph[0].axis[1].dfx, graph[0].axis[1].dfy));
+  int P = MIN (Px, Py);
 
   /* each axis is drawn independently */
@@ -102,4 +106,81 @@
     GetRotFont (&fontsize);
 
+    pad = !isnan(axis->ticktextPad) ? axis->ticktextPad*fontsize : fontsize + 4.0;
+    // pad = !isnan(axis->ticktextPad) ? axis->ticktextPad*fontsize : 0.8*fontsize + 1.0;
+    
+    /* temporarily assume rectilinear axes */
+    if (naxis == 0) { dx = 0; dy = -pad; pos = 1; }
+    if (naxis == 2) { dx = 0; dy = +pad; pos = 7; }
+
+    if (naxis == 1) { dy = 0; dx = -pad; pos = 3; }
+    if (naxis == 3) { dy = 0; dx = +pad; pos = 5; }
+
+    xt = fx + (value-min)*dfx/(max - min) + dx;
+    yt = fy + (value-min)*dfy/(max - min) + dy;
+
+    PrintTick (string, value, min, max, tick->nsignif);
+    PSRotText (f, xt, yt, string, pos, 0.0);
+  }
+}
+
+  /* 
+  dx = size*dfy*n;	
+  dy = size*dfx*n;
+  DrawLine (x, y, dx, dy);
+  
+  dx = -size*dfy*n;	
+  dy = -size*dfx*n;
+  DrawLine (x, y, dx, dy);
+  */
+  
+# if (0)
+void PSTick (Graphic *graphic, Axis *axis, int P, TickMarkData *tick, int naxis, FILE *f) {
+  
+  double x, y, dx, dy;
+  int pos, dir, fontsize;
+  double size, n, pad;
+  char string[64];
+
+  double fx  = axis->fx;
+  double fy  = graphic->dy - axis->fy;
+  double dfx = axis->dfx;
+  double dfy = -axis->dfy;
+
+  double min = axis->min;
+  double max = axis->max;
+
+  double value = tick->value;
+
+  pos = size = 0;
+
+  if (tick->IsMajor) { 
+    size = MAX (0.02, 7.0 / P); 
+  } else {
+    size = MAX (0.01, 4.0 / P); 
+  }
+  
+  n = P / hypot(dfx, dfy);
+  x = fx + (value-min)*dfx/(max - min);
+  y = fy + (value-min)*dfy/(max - min);
+
+  if ((naxis == 0) || (naxis == 2)) {
+    x = MIN(MAX(x, fx),fx+dfx);
+  }
+  if ((naxis == 1) || (naxis == 3)) {
+    y = MIN(MAX(y, fy),fy+dfy);
+  }
+
+  dir = ((naxis == 0) || (naxis == 1)) ? +1 : -1;
+  dx = dir*size*dfy*n;	
+  dy = dir*size*dfx*n;
+  
+  DrawLine (x, y, dx, dy);
+
+  if (tick->IsLabel) {
+    int xt, yt;
+
+    // char *fontname is returned by not needed
+    GetRotFont (&fontsize);
+
     pad = !isnan(axis->ticktextPad) ? axis->ticktextPad*fontsize : 0.8*fontsize + 1.0;
     
@@ -118,80 +199,4 @@
   }
 }
-
-  /* 
-  dx = size*dfy*n;	
-  dy = size*dfx*n;
-  DrawLine (x, y, dx, dy);
-  
-  dx = -size*dfy*n;	
-  dy = -size*dfx*n;
-  DrawLine (x, y, dx, dy);
-  */
-  
-# if (0)
-void PSTick (Graphic *graphic, Axis *axis, int P, TickMarkData *tick, int naxis, FILE *f) {
-  
-  double x, y, dx, dy;
-  int pos, dir, fontsize;
-  double size, n, pad;
-  char string[64];
-
-  double fx  = axis->fx;
-  double fy  = graphic->dy - axis->fy;
-  double dfx = axis->dfx;
-  double dfy = -axis->dfy;
-
-  double min = axis->min;
-  double max = axis->max;
-
-  double value = tick->value;
-
-  pos = size = 0;
-
-  if (tick->IsMajor) { 
-    size = MAX (0.02, 7.0 / P); 
-  } else {
-    size = MAX (0.01, 4.0 / P); 
-  }
-  
-  n = P / hypot(dfx, dfy);
-  x = fx + (value-min)*dfx/(max - min);
-  y = fy + (value-min)*dfy/(max - min);
-
-  if ((naxis == 0) || (naxis == 2)) {
-    x = MIN(MAX(x, fx),fx+dfx);
-  }
-  if ((naxis == 1) || (naxis == 3)) {
-    y = MIN(MAX(y, fy),fy+dfy);
-  }
-
-  dir = ((naxis == 0) || (naxis == 1)) ? +1 : -1;
-  dx = dir*size*dfy*n;	
-  dy = dir*size*dfx*n;
-  
-  DrawLine (x, y, dx, dy);
-
-  if (tick->IsLabel) {
-    int xt, yt;
-
-    // char *fontname is returned by not needed
-    GetRotFont (&fontsize);
-
-    pad = !isnan(axis->ticktextPad) ? axis->ticktextPad*fontsize : 0.8*fontsize + 1.0;
-    
-    /* temporarily assume rectilinear axes */
-    if (naxis == 0) { dx = 0; dy = -pad; pos = 1; }
-    if (naxis == 2) { dx = 0; dy = +pad; pos = 7; }
-
-    if (naxis == 1) { dy = 0; dx = -pad; pos = 3; }
-    if (naxis == 3) { dy = 0; dx = +pad; pos = 5; }
-
-    xt = fx + (value-min)*dfx/(max - min) + dx;
-    yt = fy + (value-min)*dfy/(max - min) + dy;
-
-    PrintTick (string, value, min, max, tick->nsignif);
-    PSRotText (f, xt, yt, string, pos, 0.0);
-  }
-}
 # endif
 
Index: /trunk/Ohana/src/kapa2/src/PSimage.c
===================================================================
--- /trunk/Ohana/src/kapa2/src/PSimage.c	(revision 40060)
+++ /trunk/Ohana/src/kapa2/src/PSimage.c	(revision 40061)
@@ -20,9 +20,12 @@
   // the values come from the following map: image[0].pixmap[i] -> cmap[pixel].red -> R (0-255)
 
-  fprintf (f, " newpath %d %d moveto %d %d lineto %d %d lineto %d %d lineto closepath\n\n", 
-	   (int) image[0].picture.x,                       graphic->dy - (int) image[0].picture.y, 
-	   (int) image[0].picture.x + image[0].picture.dx, graphic->dy - (int) image[0].picture.y, 
-	   (int) image[0].picture.x + image[0].picture.dx, graphic->dy - (int) image[0].picture.y - image[0].picture.dy, 
-	   (int) image[0].picture.x,                       graphic->dy - (int) image[0].picture.y - image[0].picture.dy); 
+  if (0) {
+    fprintf (f, " newpath %d %d moveto %d %d lineto %d %d lineto %d %d lineto closepath\n\n", 
+	     (int) image[0].picture.x,                       graphic->dy - (int) image[0].picture.y, 
+	     (int) image[0].picture.x + image[0].picture.dx, graphic->dy - (int) image[0].picture.y, 
+	     (int) image[0].picture.x + image[0].picture.dx, graphic->dy - (int) image[0].picture.y - image[0].picture.dy, 
+	     (int) image[0].picture.x,                       graphic->dy - (int) image[0].picture.y - image[0].picture.dy); 
+  }
+
   fprintf (f, "gsave %% encloses image\n");
   fprintf (f, "%d %d translate\n", (int) image[0].picture.x, graphic->dy - (int) image[0].picture.y - image[0].picture.dy);
