pspp-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Output tables


From: John Darrington
Subject: Re: Output tables
Date: Fri, 19 Jun 2009 00:05:45 +0000
User-agent: Mutt/1.5.18 (2008-05-17)

When I open the result in gedit,  the table borders look really good,
but the headers look broken, because of the a^Ha^Ha business.
Perhaps there should be a configuration with the utf8 borders, but without
the bold overstrike?

J'

On Wed, Jun 17, 2009 at 10:33:00PM -0700, Ben Pfaff wrote:
     "address@hidden" <address@hidden>
     writes:
     
     > Is it possible to tweak the system so as to tidy up table boundaries 
(-,=.+
     > and #) with Unicode characters (&#9472;, &#9516;, &#9484; for example).  
I
     > have been using an Open Office macro but it occurs to me there might be a
     > quicker and easier way.
     
     Good idea.  It's not too hard.  Copy the attached file over your
     PSPP "devices" file, then pass "-o list-utf8" when you invoke
     PSPP.  (This will only work for the text user interface, not for
     the GUI.  Better things are in the works for the GUI.)
     

Content-Description: Unicode line drawing support
     # PSPP's standard output drivers.
     #
     # An introduction to the use of PSPP output drivers and this file
     # follows.  However, refer to PSPP's Texinfo documentation for full
     # information.
     #
     # Each output driver specification must be on a single line; however,
     # lines may be spliced with a \ at the end of a line.  Line splicing
     # is performed *before* comments (introduced by `#') are removed.
     #
     # Format is `DRIVERNAME:CLASSNAME:DEVICETYPE:OPTIONS'.
     #
     # DRIVERNAME is the name that identifies the driver to the user.  It
     # is the name used on the -o command-line option.
     #
     # CLASSNAME is the internal name of the type of driver.  Device
     # classes can be listed with `pspp -l'.
     #
     # DEVICETYPE identifies what type or types the devices is.  Zero or
     # more of the following keywords may be given here: screen, printer,
     # or listing.
     #
     # OPTIONS is a list of key/value pairs to pass to the driver.  Use
     # spaces to separate pairs, and '=' to separate keys and values.
     # Quotes " or ' can be used to delimit values that contain spaces.
     # Example: paper-size="Envelope #10" charset=latin1
     #
     # Driver categories may be defined with lines of the form:
     #
     #   category=driver1 driver2 driver3 ... driverN
     #
     # To disable a driver, define a category with nothing on the right
     # side.
     #
     # Macros may be defined with lines of the form:
     #
     #   define macro-name definition
     #
     # Macros may not be recursive; they may not take arguments.  (However,
     # `definition' is macro-expanded *at time of definition*.)  Macros are
     # referenced with $var or ${var} syntax; the latter is preferred.
     
     # Preferred devices.
     default=list-ascii
     interactive=tty-ascii
     
     # Output files.
     define tty-output-file "|more"
     define list-output-file "pspp.list"
     
     # Generic ASCII devices
     tty-ascii:ascii:screen:squeeze=on headers=off top-margin=0 bottom-margin=0 
\
       paginate=off length=auto width=auto output-file=${tty-output-file}
     list-ascii:ascii:listing:length=66 width=79 output-file=${list-output-file}
     raw-ascii:ascii:listing:width=9999 length=9999 
output-file=${list-output-file} \
       emphasis=none headers=off paginate=off squeeze=on \
       top-margin=0 bottom-margin=0
     
     # ASCII devices that support bold & underline via backspacing.
     tty-ascii-bi:ascii:screen:output-file=${tty-output-file}
     list-ascii-bi:ascii:listing:length=66 width=79 
output-file=${list-output-file}
     
     # VT100 graphics devices.
     define vt100-graphics \
       init='\033(B\033)0' \
       box[1000]='\16q\17' box[1010]='\16q\17' box[0010]='\16q\17' \
       box[0100]='\16x\17' box[0101]='\16x\17' box[0001]='\16x\17' \
       box[0011]='\16j\17' box[1100]='\16l\17' box[0110]='\16k\17' \
       box[1001]='\16m\17' box[1110]='\16w\17' box[1101]='\16t\17' \
       box[0111]='\16u\17' box[1011]='\16v\17' box[1111]='\16n\17'
     
     tty-vt100:ascii:screen:squeeze=on headers=off top-margin=0 bottom-margin=0 
\
       paginate=off output-file=${tty-output-file} ${vt100-graphics}
     list-vt100:ascii:listing:length=66 width=79 
output-file=${list-output-file} \
       ${vt100-graphics}
     
     # HTML device.
     html:html::
     
     # PostScript device.
     list-ps:postscript::
     
     # Devices that support the IBM PC line-drawing characters.
     define ibmpc-graphics \
       box[0000]='\x20' box[0001]='\xb3' box[0002]='\xba' \
       box[0010]='\xc4' box[0011]='\xd9' box[0012]='\xbd' \
       box[0020]='\xcd' box[0021]='\xbe' box[0022]='\xbc' \
       box[0100]='\xb3' box[0101]='\xb3' box[0102]='\xc4' \
       box[0110]='\xbf' box[0111]='\xb4' box[0112]='\xb6' \
       box[0120]='\xb8' box[0121]='\xb5' box[0122]='\xb9' \
       box[0200]='\xba' box[0201]='\xba' box[0202]='\xba' \
       box[0210]='\xb7' box[0211]='\xb6' box[0212]='\xb6' \
       box[0220]='\xbb' box[0221]='\xb9' box[0222]='\xb9' \
       box[1000]='\xc4' box[1001]='\xc0' box[1002]='\xd3' \
       box[1010]='\xc4' box[1011]='\xc1' box[1012]='\xd0' \
       box[1020]='\xcd' box[1021]='\xcf' box[1022]='\xca' \
       box[1100]='\xda' box[1101]='\xc3' box[1102]='\xc7' \
       box[1110]='\xc2' box[1111]='\xc5' box[1112]='\xd7' \
       box[1120]='\xd1' box[1121]='\xd8' box[1122]='\xce' \
       box[1200]='\xd6' box[1201]='\xc7' box[1202]='\xc7' \
       box[1210]='\xd2' box[1211]='\xd7' box[1212]='\xd7' \
       box[1220]='\xca' box[1221]='\xce' box[1222]='\xce' \
       box[2000]='\xcd' box[2001]='\xd4' box[2002]='\xc8' \
       box[2010]='\xcd' box[2011]='\xcf' box[2012]='\xca' \
       box[2020]='\xcd' box[2021]='\xcf' box[2022]='\xca' \
       box[2100]='\xd5' box[2101]='\xc6' box[2102]='\xcc' \
       box[2110]='\xd1' box[2111]='\xd8' box[2112]='\xce' \
       box[2120]='\xd1' box[2121]='\xd8' box[2122]='\xce' \
       box[2200]='\xc9' box[2201]='\xcc' box[2202]='\xcc' \
       box[2210]='\xcb' box[2211]='\xce' box[2212]='\xce' \
       box[2220]='\xcb' box[2221]='\xce' box[2222]='\xce'
     
     tty-ibmpc:ascii:screen:length=$viewlength width=$viewwidth 
${ibmpc-graphics} \
       output-file=${tty-output-file}
     list-ibmpc:ascii:listing:length=66 width=79 
output-file=${list-output-file} \
       ${ibmpc-graphics}
     
     # Devices that support Unicode line-drawing characters in UTF-8 encoding.
     # PSPP doesn't support a \u escape but if it did then this is how these
     # would appear:
     #
     #     define utf8-graphics \
     #       box[0000]='\u0020' box[1000]='\u2576' box[2000]='\u2550' \
     #       box[0100]='\u2577' box[1100]='\u256D' box[2100]='\u2552' \
     #       box[0200]='\u2551' box[1200]='\u2553' box[2200]='\u2554' \
     #       box[0010]='\u2574' box[1010]='\u2500' box[2010]='\u2550' \
     #       box[0110]='\u256E' box[1110]='\u252C' box[2110]='\u2564' \
     #       box[0210]='\u2556' box[1210]='\u2565' box[2210]='\u2566' \
     #       box[0020]='\u2550' box[1020]='\u2550' box[2020]='\u2550' \
     #       box[0120]='\u2555' box[1120]='\u2564' box[2120]='\u2564' \
     #       box[0220]='\u2557' box[1220]='\u2566' box[2220]='\u2566' \
     #       box[0001]='\u2575' box[1001]='\u2570' box[2001]='\u2558' \
     #       box[0101]='\u2502' box[1101]='\u251C' box[2101]='\u255E' \
     #       box[0201]='\u2551' box[1201]='\u255F' box[2201]='\u2560' \
     #       box[0011]='\u256F' box[1011]='\u2534' box[2011]='\u2567' \
     #       box[0111]='\u2524' box[1111]='\u253C' box[2111]='\u256A' \
     #       box[0211]='\u2562' box[1211]='\u256B' box[2211]='\u256C' \
     #       box[0021]='\u255B' box[1021]='\u2567' box[2021]='\u2567' \
     #       box[0121]='\u2561' box[1121]='\u256A' box[2121]='\u256A' \
     #       box[0221]='\u2563' box[1221]='\u256C' box[2221]='\u256C' \
     #       box[0002]='\u2551' box[1002]='\u2559' box[2002]='\u255A' \
     #       box[0102]='\u2551' box[1102]='\u255F' box[2102]='\u2560' \
     #       box[0202]='\u2551' box[1202]='\u255F' box[2202]='\u2560' \
     #       box[0012]='\u255C' box[1012]='\u2568' box[2012]='\u2569' \
     #       box[0112]='\u2562' box[1112]='\u256A' box[2112]='\u256C' \
     #       box[0212]='\u2562' box[1212]='\u256B' box[2212]='\u256C' \
     #       box[0022]='\u255D' box[1022]='\u2569' box[2022]='\u2569' \
     #       box[0122]='\u2563' box[1122]='\u256C' box[2122]='\u256C' \
     #       box[0222]='\u2563' box[1222]='\u256C' box[2222]='\u256C'
     #
     # Instead, we encode them in UTF-8 by hand below.
     #
     # Here is a little Perl program that I used to do this translation:
     #
     #     sub utf8_encode {
     #         my $val = hex($_[0]);
     #         my $d0 = 0xe0 | ($val >> 12);
     #         my $d1 = 0x80 | (($val >> 6) & 0x3f);
     #         my $d2 = 0x80 | ($val & 0x3f);
     #         return sprintf('\x%02x\x%02x\x%02x', $d0, $d1, $d2);
     #     }
     #     while (<>) {
     #         s/\\u(....)/utf8_encode($1)/ge;
     #         print $_;
     #     }
     #
     define utf8-graphics \
       box[0000]='\xe0\x80\xa0' box[1000]='\xe2\x95\xb6' 
box[2000]='\xe2\x95\x90' \
       box[0100]='\xe2\x95\xb7' box[1100]='\xe2\x95\xad' 
box[2100]='\xe2\x95\x92' \
       box[0200]='\xe2\x95\x91' box[1200]='\xe2\x95\x93' 
box[2200]='\xe2\x95\x94' \
       box[0010]='\xe2\x95\xb4' box[1010]='\xe2\x94\x80' 
box[2010]='\xe2\x95\x90' \
       box[0110]='\xe2\x95\xae' box[1110]='\xe2\x94\xac' 
box[2110]='\xe2\x95\xa4' \
       box[0210]='\xe2\x95\x96' box[1210]='\xe2\x95\xa5' 
box[2210]='\xe2\x95\xa6' \
       box[0020]='\xe2\x95\x90' box[1020]='\xe2\x95\x90' 
box[2020]='\xe2\x95\x90' \
       box[0120]='\xe2\x95\x95' box[1120]='\xe2\x95\xa4' 
box[2120]='\xe2\x95\xa4' \
       box[0220]='\xe2\x95\x97' box[1220]='\xe2\x95\xa6' 
box[2220]='\xe2\x95\xa6' \
       box[0001]='\xe2\x95\xb5' box[1001]='\xe2\x95\xb0' 
box[2001]='\xe2\x95\x98' \
       box[0101]='\xe2\x94\x82' box[1101]='\xe2\x94\x9c' 
box[2101]='\xe2\x95\x9e' \
       box[0201]='\xe2\x95\x91' box[1201]='\xe2\x95\x9f' 
box[2201]='\xe2\x95\xa0' \
       box[0011]='\xe2\x95\xaf' box[1011]='\xe2\x94\xb4' 
box[2011]='\xe2\x95\xa7' \
       box[0111]='\xe2\x94\xa4' box[1111]='\xe2\x94\xbc' 
box[2111]='\xe2\x95\xaa' \
       box[0211]='\xe2\x95\xa2' box[1211]='\xe2\x95\xab' 
box[2211]='\xe2\x95\xac' \
       box[0021]='\xe2\x95\x9b' box[1021]='\xe2\x95\xa7' 
box[2021]='\xe2\x95\xa7' \
       box[0121]='\xe2\x95\xa1' box[1121]='\xe2\x95\xaa' 
box[2121]='\xe2\x95\xaa' \
       box[0221]='\xe2\x95\xa3' box[1221]='\xe2\x95\xac' 
box[2221]='\xe2\x95\xac' \
       box[0002]='\xe2\x95\x91' box[1002]='\xe2\x95\x99' 
box[2002]='\xe2\x95\x9a' \
       box[0102]='\xe2\x95\x91' box[1102]='\xe2\x95\x9f' 
box[2102]='\xe2\x95\xa0' \
       box[0202]='\xe2\x95\x91' box[1202]='\xe2\x95\x9f' 
box[2202]='\xe2\x95\xa0' \
       box[0012]='\xe2\x95\x9c' box[1012]='\xe2\x95\xa8' 
box[2012]='\xe2\x95\xa9' \
       box[0112]='\xe2\x95\xa2' box[1112]='\xe2\x95\xaa' 
box[2112]='\xe2\x95\xac' \
       box[0212]='\xe2\x95\xa2' box[1212]='\xe2\x95\xab' 
box[2212]='\xe2\x95\xac' \
       box[0022]='\xe2\x95\x9d' box[1022]='\xe2\x95\xa9' 
box[2022]='\xe2\x95\xa9' \
       box[0122]='\xe2\x95\xa3' box[1122]='\xe2\x95\xac' 
box[2122]='\xe2\x95\xac' \
       box[0222]='\xe2\x95\xa3' box[1222]='\xe2\x95\xac' 
box[2222]='\xe2\x95\xac'
     
     tty-utf8:ascii:screen:length=$viewlength width=$viewwidth ${utf8-graphics} 
\
       output-file=${tty-output-file}
     list-utf8:ascii:listing:length=66 width=79 output-file=${list-output-file} 
\
       ${utf8-graphics}
     
     # Local Variables:
     # fill-prefix: "# "
     # End:

     
     -- 
     Ben Pfaff 
     http://benpfaff.org

     _______________________________________________
     Pspp-users mailing list
     address@hidden
     http://lists.gnu.org/mailman/listinfo/pspp-users


-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://pgp.mit.edu or any PGP keyserver for public key.


Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]