José  Matos wrote:
>> reLyX doesn't know about these tokens. Should I therefore ignore them? Or
>> should I do as you do and remove the line?
>   Ignore them. They were produced by lyx.

>> This is the last outstanding issue:
>> Here's the code. Shall I simply append a '{}' after $name for all of
>> them?
>   Yes, that is all. :-)

Well, I believe that the attached patch enables reLyX to output lyxformat 
2.16. Do you have a test suite?

-- 
Angus
Index: lib/reLyX/BasicLyX.pm
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/reLyX/BasicLyX.pm,v
retrieving revision 1.5
diff -u -p -r1.5 BasicLyX.pm
--- lib/reLyX/BasicLyX.pm	7 Jan 2003 14:30:52 -0000	1.5
+++ lib/reLyX/BasicLyX.pm	5 Feb 2003 18:09:05 -0000
@@ -149,7 +149,9 @@ my %TextTokenTransTable = (
     '\j' => '\j',
 
     # Misc simple LaTeX tokens
-    '~'      => "\n\\protected_separator \n",
+    # '~' was output as \protected_separator. Not now.
+    # Angus 5 Feb 2003, upgrading reLyX to output lyxformat 216.
+    '~'      => "\\SpecialChar ~\n",
     '@'      => "@", # TeX.pm considers this a token, but it's not really
     '\@'     => "\\SpecialChar \\@",
     '\ldots' => "\n\\SpecialChar \\ldots\{\}\n",
@@ -360,6 +362,14 @@ sub basic_lyx {
 
 		my $to_print = $TextTokenTransTable{$name};
 
+		# One special case: if we encounter a '~' inside a lyxcode
+		# environment, then it should be turned into a ' ' rather
+		# than '\SpecialChar ~'
+		# Angus 5 Feb 2003, upgrading reLyX to output lyxformat 216.
+		if ($name eq '~' && $$CurrentLayoutStack[-1] eq 'LyX-Code') {
+		    $to_print = ' ';
+		}
+
 		# \@ has to be specially handled, because it depends on
 		# the character AFTER the \@
 		if ($name eq '\@') {
@@ -381,10 +391,13 @@ sub basic_lyx {
 		} # end special handling for \@
 
 	    # Handle tokens that LyX translates as a "LatexCommand" inset
+
+	    # Append a '{}' after the command.
+	    # Angus 5 Feb 2003, upgrading reLyX to output lyxformat 216.
 	    } elsif (grep {$_ eq $name} @LatexCommands) {
 		&CheckForNewParagraph; #Start new paragraph if necessary
 	        print OUTFILE "$pre_space\n\\begin_inset LatexCommand ",
-		               $name,
+		               $name, '{}'
 			      "\n\n\\end_inset \n\n";
 
 	    # Math -- copy verbatim until you're done
Index: lib/reLyX/reLyXmain.pl
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/reLyX/reLyXmain.pl,v
retrieving revision 1.5
diff -u -p -r1.5 reLyXmain.pl
--- lib/reLyX/reLyXmain.pl	20 Jan 2003 19:38:50 -0000	1.5
+++ lib/reLyX/reLyXmain.pl	5 Feb 2003 18:09:07 -0000
@@ -53,7 +53,11 @@ use vars qw($lyxdir $lyxname);
  
 # variables that a user might want to change
 @Suffix_List = '\.(ltx|latex|tex)'; # allowed suffixes for LaTeX file
-$LyXFormat = "2.15"; #What to print in \lyxformat command in .lyx file
+
+# What to print in \lyxformat command in .lyx file
+# Angus 5 Feb 2003, upgrading reLyX to output lyxformat 216.
+$LyXFormat = "2.16";
+
 my $syntaxname = "syntax.default"; # name of the default syntax file
 $dot_lyxdir = $ENV{'HOME'} . "/.$lyxname"; # personal .lyx directory
 

Reply via email to