]> git.lyx.org Git - features.git/commitdiff
tex2lyx: support for syncTeX
authorUwe Stöhr <uwestoehr@lyx.org>
Mon, 2 Jul 2012 22:21:39 +0000 (00:21 +0200)
committerUwe Stöhr <uwestoehr@lyx.org>
Mon, 2 Jul 2012 22:21:39 +0000 (00:21 +0200)
backport enhancement bug #8217

src/tex2lyx/Preamble.cpp
src/tex2lyx/Preamble.h
src/tex2lyx/test/test-structure.tex
status.20x

index 746e216eba60eed8482c76c3d834ed1c45a361e4..c02ca5becaca1650f956a29783964f1aeaadde75 100644 (file)
@@ -450,6 +450,8 @@ Preamble::Preamble() : one_language(true), title_layout_found(false)
        //h_notefontcolor;
        //h_options;
        h_output_changes          = "false";
+       h_output_sync             = "0";
+       //h_output_sync_macro
        h_papercolumns            = "1";
        h_paperfontsize           = "default";
        h_paperorientation        = "portrait";
@@ -749,6 +751,15 @@ void Preamble::handle_package(Parser &p, string const & name,
                options.clear();
        }
 
+       else if (name == "srcltx") {
+               h_output_sync = "1";
+               if (!opts.empty()) {
+                       h_output_sync_macro = "\\usepackage[" + opts + "]{srcltx}";
+                       options.clear();
+               } else
+                       h_output_sync_macro = "\\usepackage{srcltx}";
+       }
+
        else if (is_known(name, known_old_language_packages)) {
                // known language packages from the times before babel
                // if they are found and not also babel, they will be used as
@@ -956,7 +967,10 @@ bool Preamble::writeLyXHeader(ostream & os, bool subdoc)
           << "\\font_sf_scale " << h_font_sf_scale << "\n"
           << "\\font_tt_scale " << h_font_tt_scale << "\n"
           << "\\graphics " << h_graphics << "\n"
-          << "\\default_output_format " << h_default_output_format << "\n";
+          << "\\default_output_format " << h_default_output_format << "\n"
+          << "\\output_sync " << h_output_sync << "\n";
+       if (h_output_sync == "1")
+               os << "\\output_sync_macro \"" << h_output_sync_macro << "\"\n";
        if (!h_float_placement.empty())
                os << "\\float_placement " << h_float_placement << "\n";
        os << "\\paperfontsize " << h_paperfontsize << "\n"
@@ -1445,6 +1459,19 @@ void Preamble::parse(Parser & p, string const & forceclass,
                else if (t.cs() == "setstretch")
                        h_spacing = "other " + p.verbatim_item();
 
+               else if (t.cs() == "synctex") {
+                       // the scheme is \synctex=value
+                       // where value can only be "1" or "-1"
+                       h_output_sync = "1";
+                       // there can be any character behind the value (e.g. a linebreak or a '\'
+                       // therefore we extract it char by char
+                       p.get_token();
+                       string value = p.get_token().asInput();
+                       if (value == "-")
+                               value += p.get_token().asInput();
+                       h_output_sync_macro = "\\synctex=" + value;
+               }
+
                else if (t.cs() == "begin") {
                        string const name = p.getArg('{', '}');
                        if (name == "document")
index 1389a86db9cd0e1430770b7281e19fd564c53d14..bde44a07fd3c299d489a9bbfa50284016fedc058 100644 (file)
@@ -123,6 +123,8 @@ private:
        std::string h_notefontcolor;
        std::string h_options;
        std::string h_output_changes;
+       std::string h_output_sync;
+       std::string h_output_sync_macro;
        std::string h_papercolumns;
        std::string h_paperfontsize;
        std::string h_paperorientation;
index 609860fd3e4db68f32604c4b6f55c4bc1be0e73b..b93563491c9df74e47ab83e569b5962646643ddc 100644 (file)
@@ -4,7 +4,7 @@
 \usepackage[latin9]{inputenc}
 \usepackage{color}
 \usepackage{rotfloat}
-\usepackage{wrapfig}
+\synctex=-1\usepackage{wrapfig}
 
 \makeatletter
 
index e245bfb5578ea91c36a6d02b0b40b143bbf8b446..6b8df8b6f2f7ed9d9bb0419c83ebdaa19329b8d5 100644 (file)
@@ -36,6 +36,8 @@ What's new
 
 - The polyglossia/XeTeX language commands are now supported (bug 8212).
 
+- It is now recognized if syncTeX is used (bug 8217).
+
 
 * USER INTERFACE