mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-10 20:04:46 +00:00
support synctex in tex2lyx.cpp
- tex2lyx/Preamble.cpp/h: handle \synctex and package srcltx - tex2lyx/test/test-structure.tex: add \synctex
This commit is contained in:
parent
5d79cd531d
commit
adb0d7f63f
@ -470,6 +470,7 @@ Preamble::Preamble() : one_language(true), title_layout_found(false)
|
||||
//h_options;
|
||||
h_output_changes = "false";
|
||||
h_output_sync = "0";
|
||||
//h_output_sync_macro
|
||||
h_papercolumns = "1";
|
||||
h_paperfontsize = "default";
|
||||
h_paperorientation = "portrait";
|
||||
@ -776,6 +777,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
|
||||
@ -969,8 +979,10 @@ bool Preamble::writeLyXHeader(ostream & os, bool subdoc)
|
||||
<< "\\font_tt_scale " << h_font_tt_scale << "\n\n"
|
||||
<< "\\graphics " << h_graphics << "\n"
|
||||
<< "\\default_output_format " << h_default_output_format << "\n"
|
||||
<< "\\output_sync " << h_output_sync << "\n"
|
||||
<< "\\bibtex_command " << h_bibtex_command << "\n"
|
||||
<< "\\output_sync " << h_output_sync << "\n";
|
||||
if (h_output_sync == "1")
|
||||
os << "\\output_sync_macro \"" << h_output_sync_macro << "\"\n";
|
||||
os << "\\bibtex_command " << h_bibtex_command << "\n"
|
||||
<< "\\index_command " << h_index_command << "\n";
|
||||
if (!h_float_placement.empty())
|
||||
os << "\\float_placement " << h_float_placement << "\n";
|
||||
@ -1451,6 +1463,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")
|
||||
|
@ -124,6 +124,7 @@ private:
|
||||
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;
|
||||
|
@ -4,7 +4,7 @@
|
||||
\usepackage[latin9]{inputenc}
|
||||
\usepackage{color}
|
||||
\usepackage{rotfloat}
|
||||
\usepackage{wrapfig}
|
||||
\synctex=-1\usepackage{wrapfig}
|
||||
|
||||
\makeatletter
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user