mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 21:21:32 +00:00
tex2lyx: prevent \; \: and \! to be converted in tipa and algorithm
These commands have special meanings there.
This commit is contained in:
parent
a204dbe934
commit
a04d30a650
@ -91,6 +91,7 @@ Context::Context(bool need_layout_,
|
|||||||
layout = &textclass.defaultLayout();
|
layout = &textclass.defaultLayout();
|
||||||
if (!parent_layout)
|
if (!parent_layout)
|
||||||
parent_layout = &textclass.defaultLayout();
|
parent_layout = &textclass.defaultLayout();
|
||||||
|
pass_thru_cmds.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -145,6 +145,9 @@ public:
|
|||||||
/// the text before the first \item. Typically, list
|
/// the text before the first \item. Typically, list
|
||||||
/// parameters (such as lengths) are adjusted here.
|
/// parameters (such as lengths) are adjusted here.
|
||||||
bool in_list_preamble;
|
bool in_list_preamble;
|
||||||
|
/// Store commands that should not be converted
|
||||||
|
/// (stored without \\)
|
||||||
|
std::set<std::string> pass_thru_cmds;
|
||||||
/// we are handling a standard paragraph in an itemize-like
|
/// we are handling a standard paragraph in an itemize-like
|
||||||
/// environment
|
/// environment
|
||||||
bool deeper_paragraph;
|
bool deeper_paragraph;
|
||||||
|
@ -64,6 +64,8 @@ void parse_text_in_inset(Parser & p, ostream & os, unsigned flags, bool outer,
|
|||||||
newcontext.layout = &context.textclass.plainLayout();
|
newcontext.layout = &context.textclass.plainLayout();
|
||||||
else
|
else
|
||||||
newcontext.font = context.font;
|
newcontext.font = context.font;
|
||||||
|
// Inherit commands to pass through
|
||||||
|
newcontext.pass_thru_cmds = context.pass_thru_cmds;
|
||||||
if (layout)
|
if (layout)
|
||||||
output_arguments(os, p, outer, false, string(), newcontext,
|
output_arguments(os, p, outer, false, string(), newcontext,
|
||||||
layout->latexargs());
|
layout->latexargs());
|
||||||
@ -1733,7 +1735,13 @@ void parse_environment(Parser & p, ostream & os, bool outer,
|
|||||||
os << "wide " << convert<string>(is_starred)
|
os << "wide " << convert<string>(is_starred)
|
||||||
<< "\nsideways false"
|
<< "\nsideways false"
|
||||||
<< "\nstatus open\n\n";
|
<< "\nstatus open\n\n";
|
||||||
|
set<string> pass_thru_cmds = parent_context.pass_thru_cmds;
|
||||||
|
if (unstarred_name == "algorithm")
|
||||||
|
// in algorithm, \; has special meaning
|
||||||
|
parent_context.pass_thru_cmds.insert(";");
|
||||||
parse_text_in_inset(p, os, FLAG_END, outer, parent_context);
|
parse_text_in_inset(p, os, FLAG_END, outer, parent_context);
|
||||||
|
if (unstarred_name == "algorithm")
|
||||||
|
parent_context.pass_thru_cmds = pass_thru_cmds;
|
||||||
end_inset(os);
|
end_inset(os);
|
||||||
// We don't need really a new paragraph, but
|
// We don't need really a new paragraph, but
|
||||||
// we must make sure that the next item gets a \begin_layout.
|
// we must make sure that the next item gets a \begin_layout.
|
||||||
@ -1869,7 +1877,13 @@ void parse_environment(Parser & p, ostream & os, bool outer,
|
|||||||
eat_whitespace(p, os, parent_context, false);
|
eat_whitespace(p, os, parent_context, false);
|
||||||
parent_context.check_layout(os);
|
parent_context.check_layout(os);
|
||||||
begin_inset(os, "IPA\n");
|
begin_inset(os, "IPA\n");
|
||||||
|
set<string> pass_thru_cmds = parent_context.pass_thru_cmds;
|
||||||
|
// These commands have special meanings in IPA
|
||||||
|
parent_context.pass_thru_cmds.insert("!");
|
||||||
|
parent_context.pass_thru_cmds.insert(";");
|
||||||
|
parent_context.pass_thru_cmds.insert(":");
|
||||||
parse_text_in_inset(p, os, FLAG_END, outer, parent_context);
|
parse_text_in_inset(p, os, FLAG_END, outer, parent_context);
|
||||||
|
parent_context.pass_thru_cmds = pass_thru_cmds;
|
||||||
end_inset(os);
|
end_inset(os);
|
||||||
p.skip_spaces();
|
p.skip_spaces();
|
||||||
preamble.registerAutomaticallyLoadedPackage("tipa");
|
preamble.registerAutomaticallyLoadedPackage("tipa");
|
||||||
@ -4121,7 +4135,13 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
|||||||
begin_inset(os, "IPA\n");
|
begin_inset(os, "IPA\n");
|
||||||
bool merging_hyphens_allowed = context.merging_hyphens_allowed;
|
bool merging_hyphens_allowed = context.merging_hyphens_allowed;
|
||||||
context.merging_hyphens_allowed = false;
|
context.merging_hyphens_allowed = false;
|
||||||
|
set<string> pass_thru_cmds = context.pass_thru_cmds;
|
||||||
|
// These commands have special meanings in IPA
|
||||||
|
context.pass_thru_cmds.insert("!");
|
||||||
|
context.pass_thru_cmds.insert(";");
|
||||||
|
context.pass_thru_cmds.insert(":");
|
||||||
parse_text_in_inset(p, os, FLAG_ITEM, outer, context);
|
parse_text_in_inset(p, os, FLAG_ITEM, outer, context);
|
||||||
|
context.pass_thru_cmds = pass_thru_cmds;
|
||||||
context.merging_hyphens_allowed = merging_hyphens_allowed;
|
context.merging_hyphens_allowed = merging_hyphens_allowed;
|
||||||
end_inset(os);
|
end_inset(os);
|
||||||
preamble.registerAutomaticallyLoadedPackage("tipa");
|
preamble.registerAutomaticallyLoadedPackage("tipa");
|
||||||
@ -5586,7 +5606,8 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((where = is_known(t.cs(), known_spaces))) {
|
if ((where = is_known(t.cs(), known_spaces))
|
||||||
|
&& (context.pass_thru_cmds.find(t.cs()) == context.pass_thru_cmds.end())) {
|
||||||
context.check_layout(os);
|
context.check_layout(os);
|
||||||
begin_inset(os, "space ");
|
begin_inset(os, "space ");
|
||||||
os << '\\' << known_coded_spaces[where - known_spaces]
|
os << '\\' << known_coded_spaces[where - known_spaces]
|
||||||
|
Loading…
Reference in New Issue
Block a user