]> git.lyx.org Git - features.git/commitdiff
Enable reLyX to recognise m column descriptors. Ensure that the LaTeX->LyX->LaTeX...
authorAngus Leeming <leeming@lyx.org>
Fri, 7 Feb 2003 13:46:48 +0000 (13:46 +0000)
committerAngus Leeming <leeming@lyx.org>
Fri, 7 Feb 2003 13:46:48 +0000 (13:46 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6054 a592a061-630c-0410-9148-cb99ea01b6c8

lib/ChangeLog
lib/reLyX/RelyxTable.pm

index 4926cbb4d5970599a12ed0ade2a0c4e5e27ca811..afa3ae4dbd407fa4d2b281ddfd6befbcc2f483d3 100644 (file)
@@ -5,6 +5,8 @@
        * reLyX/BasicLyX.pm, reLyX/CleanTeX.pm, reLyX/Verbatim.pm: pass
        $...$ and $$...$$ through reLyX unchanged.
 
+       * reLyX/RelyxTable.pm: provide support for 'm' column descriptors.
+
 2003-02-04  Joao Luis Meloni Assirati  <assirati@fma.if.usp.br>
 
        * images/math/rbracket.xpm: new file.
index 72b8837c4ceef97b87f418a18525666eeac5ea9f..dc57aa6bec5908b9871e093083281d4d287cff79 100644 (file)
@@ -68,7 +68,7 @@ sub parse_cols {
     while (@group) {
 
        $tok = shift(@group);
-       # Each $tok will consist of /^[clr|]*[p*@]?$/
+       # Each $tok will consist of /^[clr|]*[mp*@]?$/
        # (Except first may have | and/or @ expressions before it)
        # p*@ will end the $tok since after it comes a group in braces
        # @ will be a TT::Token, everything else will be in TT::Text
@@ -86,13 +86,14 @@ sub parse_cols {
        @new_cols = ($description =~ /[clr]\|*/g);
        push @cols, @new_cols;
 
-       # parse a p or * or @ if necessary
+       # parse a 'p', an 'm', a '*' or a '@' as necessary
        # use exact_print in case there's weird stuff in the @ descriptions
        $description = substr($description,-1);
-       if ($description eq 'p') {
+       # The m and p descriptors have identical form.
+       if ($description eq 'p' || $description eq 'm') {
            $tok = shift(@group);
-           my $pdes = $description . $tok->exact_print; # "p{foo}"
-           push @cols, $pdes;
+           my $des = $description . $tok->exact_print; # 'p{foo}' or 'm{foo}'
+           push @cols, $des;
 
        } elsif ($description eq '@') {
            $tok = shift(@group);
@@ -376,25 +377,25 @@ package RelyxTable::Column;
        $col->{"pwidth"} = "";
        $col->{"special"} = "";
 
-       # Any special (@) column should be handled differently
-       if ($description =~ /\@/) {
-          # Just put the whole description in "special" field --- this
-          # corresponds the the "extra" field in LyX table popup
-          # Note that LyX ignores alignment, r/l lines for a special column
-          $col->{"special"} = $description;
-          print "\n'$description' column won't display WYSIWYG in LyX\n"
-                                                           if $debug_on;
-
-       # It's not a special @ column
-       } else {
+       # LyX does not know about '@' or 'm' column descriptors so, to
+       # ensure that the LaTeX -> LyX -> LaTeX cycle is invariant,
+       # these descriptors are placed in the 'special' field.
+       if ($description =~ /\@/ || $description =~ /^m/ ) {
+           $col->{"special"} = $description;
+           print "\n'$description' column won't display WYSIWYG in LyX\n"
+                                                            if $debug_on;
+       }
 
+       # '@' columns really can't be displayed WYSIWYG in LyX,
+       # but we can get visual feedback on 'm' columns.
+       if (!($description =~ /\@/)) {
            # left line?
            $description =~ s/^\|*//;
            $col->{"left_line"} = length($&);
 
            # main column description
-           $description =~ s/^[clrp]//;
-           if ($& eq "p") {
+           $description =~ s/^[clrpm]//;
+           if ($& eq 'p' || $& eq 'm') {
                $description =~ s/^\{(.+)\}//; # eat the width
                $col->{"pwidth"} = $1; # width without braces
                # note: alignment is not applicable for 'p' columns