mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-12 22:14:35 +00:00
Update tex2lyx to produce the current 2.0.x file format
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@39927 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
2e3b43c45f
commit
13bca637e4
@ -51,4 +51,50 @@ Format LaTeX feature LyX feature
|
||||
332 ? InsetGraphics groupId
|
||||
336 ? \font_cjk
|
||||
343 ? \use_default_options
|
||||
347 tabular valign InsetTabular
|
||||
348 \phantom, \hphantom, \vphantom InsetPhantom
|
||||
350 ? \default_output_format
|
||||
351 ? \backgroundcolor
|
||||
353 \printsubindex InsetIndex
|
||||
354 \printindex*, \printsubindex* InsetIndex
|
||||
355 \sout fonts
|
||||
356 \uuline, \uwave fonts
|
||||
358 custom bibtex command \bibtex_command
|
||||
358 custom makeindex command \index_command
|
||||
359 set_width InsetCommand nomencl_print
|
||||
360 width InsetCommand nomencl_print
|
||||
362 applemac encoding \encoding
|
||||
363 horizontal longtable alignment InsetTabular
|
||||
364 branch file name suffix \filename_suffix
|
||||
366 relative lengths for parskip \defskip
|
||||
367 relative lengths for h and v space InsetHSpace, InsetVSpace
|
||||
368 glue lengths InsetHSpace
|
||||
369 author id \author
|
||||
370 \date{} \suppress_date
|
||||
371 automatic mhchem loading \use_mhchem
|
||||
375 \includeonly \{begin,end}_includeonly
|
||||
376 update .aux of unincluded children \maintain_unincluded_children
|
||||
377 multirow.sty InsetTabular
|
||||
378 revision info InsetInfo
|
||||
380 ? InsetPreview
|
||||
381 \xymatrix@!{0,R,C} InsetMathXYMatrix
|
||||
382 note_fontcolor InsetNote
|
||||
384 document font color \fontcolor
|
||||
385 shaded box background color \boxbgcolor
|
||||
386 LyX version InsetInfo
|
||||
390 forward/reverse search \forward_search, \forward_macro
|
||||
391 decimal alignment in tables InsetTabular
|
||||
392 new beamer format InsetLayout
|
||||
394 \makebox InsetBox use_makebox
|
||||
396 nameref.sty InsetRef
|
||||
399 automatic mathdots loading \use_mathdots
|
||||
400 other rules than \lyxline InsetLine
|
||||
401 feyn.sty InsetMathDiagram
|
||||
402 \addcontentsline InsetBibtex bibtotoc option
|
||||
404 refstyle.sty InsetRef
|
||||
405 author hash \author
|
||||
407 vertical offset for multirows InsetTabular
|
||||
409 XeTeX \use_non_tex_fonts
|
||||
411 babel etc. \language_package
|
||||
412 tabular* InsetTabular
|
||||
|
||||
|
@ -49,11 +49,12 @@ const char * const modules_placeholder = "\001modules\001";
|
||||
// needed to handle encodings with babel
|
||||
bool one_language = true;
|
||||
string h_inputencoding = "auto";
|
||||
string h_paragraph_separation = "indent";
|
||||
|
||||
namespace {
|
||||
|
||||
//add this to known_languages when updating to lyxformat 266:
|
||||
// "armenian"
|
||||
// "armenian" (needs special handling since not supported by standard babel)
|
||||
//add these to known_languages when updating to lyxformat 268:
|
||||
//"chinese-simplified", "chinese-traditional", "japanese", "korean"
|
||||
// Both changes require first that support for non-babel languages (CJK,
|
||||
@ -61,7 +62,7 @@ namespace {
|
||||
// add turkmen for lyxformat 383
|
||||
/**
|
||||
* known babel language names (including synonyms)
|
||||
* not in standard babel: arabic, arabtex, belarusian, serbian-latin, thai
|
||||
* not in standard babel: arabic, arabtex, armenian, belarusian, serbian-latin, thai
|
||||
* not yet supported by LyX: kurmanji
|
||||
* please keep this in sync with known_coded_languages line by line!
|
||||
*/
|
||||
@ -77,8 +78,9 @@ const char * const known_languages[] = {"acadian", "afrikaans", "albanian",
|
||||
"ngerman", "ngermanb", "norsk", "nynorsk", "polutonikogreek", "polish",
|
||||
"portuges", "portuguese", "romanian", "russian", "russianb", "samin",
|
||||
"scottish", "serbian", "serbian-latin", "slovak", "slovene", "spanish",
|
||||
"swedish", "thai", "turkish", "ukraineb", "ukrainian", "uppersorbian",
|
||||
"UKenglish", "USenglish", "usorbian", "vietnam", "welsh", 0};
|
||||
"swedish", "thai", "turkish", "turkmen", "ukraineb", "ukrainian",
|
||||
"uppersorbian", "UKenglish", "USenglish", "usorbian", "vietnam", "welsh",
|
||||
0};
|
||||
|
||||
/**
|
||||
* the same as known_languages with .lyx names
|
||||
@ -96,21 +98,21 @@ const char * const known_coded_languages[] = {"french", "afrikaans", "albanian",
|
||||
"ngerman", "ngerman", "norsk", "nynorsk", "polutonikogreek", "polish",
|
||||
"portuguese", "portuguese", "romanian", "russian", "russian", "samin",
|
||||
"scottish", "serbian", "serbian-latin", "slovak", "slovene", "spanish",
|
||||
"swedish", "thai", "turkish", "ukrainian", "ukrainian", "uppersorbian",
|
||||
"uppersorbian", "english", "english", "vietnamese", "welsh", 0};
|
||||
"swedish", "thai", "turkish", "turkmen", "ukrainian", "ukrainian",
|
||||
"uppersorbian", "uppersorbian", "english", "english", "vietnamese", "welsh",
|
||||
0};
|
||||
|
||||
/// languages with english quotes (.lyx names)
|
||||
const char * const known_english_quotes_languages[] = {"american", "bahasa",
|
||||
"bahasam", "brazilian", "canadian", "chinese-simplified", "english",
|
||||
"esperanto", "hebrew", "irish", "korean", "portuguese", "scottish", "thai", 0};
|
||||
|
||||
//add this to known_french_quotes_languages when updating to
|
||||
//lyxformat 383: "turkmen"
|
||||
/// languages with french quotes (.lyx names)
|
||||
const char * const known_french_quotes_languages[] = {"albanian",
|
||||
"arabic_arabi", "arabic_arabtex", "basque", "canadien", "catalan", "french",
|
||||
"galician", "greek", "italian", "norsk", "nynorsk", "polutonikogreek",
|
||||
"russian", "spanish", "spanish-mexico", "turkish", "ukrainian", "vietnamese", 0};
|
||||
"russian", "spanish", "spanish-mexico", "turkish", "turkmen", "ukrainian",
|
||||
"vietnamese", 0};
|
||||
|
||||
/// languages with german quotes (.lyx names)
|
||||
const char * const known_german_quotes_languages[] = {"austrian", "bulgarian",
|
||||
@ -137,9 +139,11 @@ const char * const known_typewriter_fonts[] = { "beramono", "cmtl", "cmtt",
|
||||
"courier", "lmtt", "luximono", "fourier", "lmodern", "mathpazo", "mathptmx",
|
||||
"newcent", 0};
|
||||
|
||||
const char * const known_paper_sizes[] = { "a3paper", "b3paper", "a4paper",
|
||||
"b4paper", "a5paper", "b5paper", "executivepaper", "legalpaper",
|
||||
"letterpaper", 0};
|
||||
const char * const known_paper_sizes[] = { "a0paper", "b0paper", "c0paper",
|
||||
"a1paper", "b1paper", "c1paper", "a2paper", "b2paper", "c2paper", "a3paper",
|
||||
"b3paper", "c3paper", "a4paper", "b4paper", "c4paper", "a5paper", "b5paper",
|
||||
"c5paper", "a6paper", "b6paper", "c6paper", "executivepaper", "legalpaper",
|
||||
"letterpaper", "b0j", "b1j", "b2j", "b3j", "b4j", "b5j", "b6j", 0};
|
||||
|
||||
const char * const known_class_paper_sizes[] = { "a4paper", "a5paper",
|
||||
"executivepaper", "legalpaper", "letterpaper", 0};
|
||||
@ -166,6 +170,8 @@ string h_textclass = "article";
|
||||
string h_use_default_options = "false";
|
||||
string h_options;
|
||||
string h_language = "english";
|
||||
string h_language_package = "default";
|
||||
string h_fontencoding = "default";
|
||||
string h_font_roman = "default";
|
||||
string h_font_sans = "default";
|
||||
string h_font_typewriter = "default";
|
||||
@ -198,13 +204,16 @@ string h_papersize = "default";
|
||||
string h_use_geometry = "false";
|
||||
string h_use_amsmath = "1";
|
||||
string h_use_esint = "1";
|
||||
string h_use_mhchem = "0";
|
||||
string h_use_mathdots = "0";
|
||||
string h_cite_engine = "basic";
|
||||
string h_use_bibtopic = "false";
|
||||
string h_paperorientation = "portrait";
|
||||
string h_suppress_date = "false";
|
||||
string h_use_refstyle = "0";
|
||||
string h_notefontcolor;
|
||||
string h_secnumdepth = "3";
|
||||
string h_tocdepth = "3";
|
||||
string h_paragraph_separation = "indent";
|
||||
string h_defskip = "medskip";
|
||||
string h_paragraph_indentation = "default";
|
||||
string h_quotes_language = "english";
|
||||
@ -214,6 +223,9 @@ string h_paperpagestyle = "default";
|
||||
string h_listings_params;
|
||||
string h_tracking_changes = "false";
|
||||
string h_output_changes = "false";
|
||||
string h_html_math_output = "0";
|
||||
string h_html_css_as_file = "0";
|
||||
string h_html_be_strict = "false";
|
||||
string h_margins;
|
||||
|
||||
|
||||
@ -500,6 +512,12 @@ void handle_package(Parser &p, string const & name, string const & opts,
|
||||
else if (name == "esint")
|
||||
h_use_esint = "2";
|
||||
|
||||
else if (name == "mhchem")
|
||||
h_use_mhchem = "2";
|
||||
|
||||
else if (name == "mathdots")
|
||||
h_use_mathdots = "2";
|
||||
|
||||
else if (name == "babel" && !opts.empty()) {
|
||||
// check if more than one option was used - used later for inputenc
|
||||
// in case inputenc is parsed before babel, set the encoding to auto
|
||||
@ -514,8 +532,15 @@ void handle_package(Parser &p, string const & name, string const & opts,
|
||||
delete_opt(options, known_languages);
|
||||
}
|
||||
|
||||
else if (name == "fontenc")
|
||||
;// ignore this
|
||||
else if (name == "fontenc") {
|
||||
h_fontencoding = getStringFromVector(options, ",");
|
||||
/* We could do the following for better round trip support,
|
||||
* but this makes the document less portable, so I skip it:
|
||||
if (h_fontencoding == lyxrc.fontenc)
|
||||
h_fontencoding = "global";
|
||||
*/
|
||||
options.clear();
|
||||
}
|
||||
|
||||
else if (name == "inputenc" || name == "luainputenc") {
|
||||
// h_inputencoding is only set when there is not more than one
|
||||
@ -552,7 +577,7 @@ void handle_package(Parser &p, string const & name, string const & opts,
|
||||
else if (name == "url")
|
||||
; // ignore this
|
||||
|
||||
else if (LYX_FORMAT >= 408 && name == "subscript")
|
||||
else if (name == "subscript")
|
||||
; // ignore this
|
||||
|
||||
else if (name == "color") {
|
||||
@ -677,7 +702,9 @@ void end_preamble(ostream & os, TextClass const & /*textclass*/)
|
||||
os << "\\use_default_options " << h_use_default_options << "\n"
|
||||
<< modules_placeholder
|
||||
<< "\\language " << h_language << "\n"
|
||||
<< "\\language_package " << h_language_package << "\n"
|
||||
<< "\\inputencoding " << h_inputencoding << "\n"
|
||||
<< "\\fontencoding " << h_fontencoding << "\n"
|
||||
<< "\\font_roman " << h_font_roman << "\n"
|
||||
<< "\\font_sans " << h_font_sans << "\n"
|
||||
<< "\\font_typewriter " << h_font_typewriter << "\n"
|
||||
@ -719,16 +746,20 @@ void end_preamble(ostream & os, TextClass const & /*textclass*/)
|
||||
<< "\\use_geometry " << h_use_geometry << "\n"
|
||||
<< "\\use_amsmath " << h_use_amsmath << "\n"
|
||||
<< "\\use_esint " << h_use_esint << "\n"
|
||||
<< "\\use_mhchem " << h_use_mhchem << "\n"
|
||||
<< "\\use_mathdots " << h_use_mathdots << "\n"
|
||||
<< "\\cite_engine " << h_cite_engine << "\n"
|
||||
<< "\\use_bibtopic " << h_use_bibtopic << "\n"
|
||||
<< "\\paperorientation " << h_paperorientation << '\n';
|
||||
if (LYX_FORMAT >= 382 && !h_notefontcolor.empty())
|
||||
<< "\\paperorientation " << h_paperorientation << '\n'
|
||||
<< "\\suppress_date " << h_suppress_date << '\n'
|
||||
<< "\\use_refstyle " << h_use_refstyle << '\n';
|
||||
if (!h_notefontcolor.empty())
|
||||
os << "\\notefontcolor " << h_notefontcolor << '\n';
|
||||
os << h_margins
|
||||
<< "\\secnumdepth " << h_secnumdepth << "\n"
|
||||
<< "\\tocdepth " << h_tocdepth << "\n"
|
||||
<< "\\paragraph_separation " << h_paragraph_separation << "\n";
|
||||
if (LYX_FORMAT < 365 || h_paragraph_separation == "skip")
|
||||
if (h_paragraph_separation == "skip")
|
||||
os << "\\defskip " << h_defskip << "\n";
|
||||
else
|
||||
os << "\\paragraph_indentation " << h_paragraph_indentation << "\n";
|
||||
@ -740,6 +771,9 @@ void end_preamble(ostream & os, TextClass const & /*textclass*/)
|
||||
os << "\\listings_params " << h_listings_params << "\n";
|
||||
os << "\\tracking_changes " << h_tracking_changes << "\n"
|
||||
<< "\\output_changes " << h_output_changes << "\n"
|
||||
<< "\\html_math_output " << h_html_math_output << "\n"
|
||||
<< "\\html_css_as_file " << h_html_css_as_file << "\n"
|
||||
<< "\\html_be_strict " << h_html_be_strict << "\n"
|
||||
<< "\\end_header\n\n"
|
||||
<< "\\begin_body\n";
|
||||
// clear preamble for subdocuments
|
||||
@ -1018,11 +1052,8 @@ void parse_preamble(Parser & p, ostream & os,
|
||||
if (name == "\\parindent" && content != "") {
|
||||
if (content[0] == '0')
|
||||
h_paragraph_separation = "skip";
|
||||
else if (LYX_FORMAT >= 365)
|
||||
h_paragraph_indentation = translate_len(content);
|
||||
else
|
||||
h_preamble << "\\setlength{" << name
|
||||
<< "}{" << content << "}";
|
||||
h_paragraph_indentation = translate_len(content);
|
||||
} else if (name == "\\parskip") {
|
||||
if (content == "\\smallskipamount")
|
||||
h_defskip = "smallskip";
|
||||
@ -1085,8 +1116,7 @@ void parse_preamble(Parser & p, ostream & os,
|
||||
string const color = p.getArg('{', '}');
|
||||
string const space = p.getArg('{', '}');
|
||||
string const value = p.getArg('{', '}');
|
||||
if (LYX_FORMAT >= 382 &&
|
||||
color == "note_fontcolor" && space == "rgb") {
|
||||
if (color == "note_fontcolor" && space == "rgb") {
|
||||
RGBColor c(RGBColorFromLaTeX(value));
|
||||
h_notefontcolor = X11hexname(c);
|
||||
} else {
|
||||
|
@ -25,6 +25,7 @@
|
||||
\usepackage{graphicx}
|
||||
\usepackage{longtable}
|
||||
\usepackage{xargs}
|
||||
\usepackage{subscript}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
|
||||
\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
|
||||
@ -35,8 +36,6 @@
|
||||
\newcommand{\lyxarrow}{\leavevmode\,$\triangleright$\,\allowbreak}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
|
||||
\usepackage{subscript} % user specified as long as tex2lyx
|
||||
% produces a format less than 408
|
||||
|
||||
\def\mycommand{\textquestiondown}
|
||||
|
||||
|
@ -53,6 +53,7 @@ extern std::string babel2lyx(std::string const & language);
|
||||
extern std::map<std::string, std::vector<std::string> > used_packages;
|
||||
extern const char * const modules_placeholder;
|
||||
extern std::string h_inputencoding;
|
||||
extern std::string h_paragraph_separation;
|
||||
|
||||
/// in text.cpp
|
||||
std::string translate_len(std::string const &);
|
||||
@ -165,7 +166,7 @@ extern bool noweb_mode;
|
||||
/// Did we recognize any pdflatex-only construct?
|
||||
extern bool pdflatex;
|
||||
/// LyX format that is created by tex2lyx
|
||||
int const LYX_FORMAT = 345;
|
||||
int const LYX_FORMAT = 413;
|
||||
|
||||
/// path of the master .tex file
|
||||
extern std::string getMasterFilePath();
|
||||
|
@ -109,6 +109,9 @@ string parse_text_snippet(Parser & p, unsigned flags, const bool outer,
|
||||
char const * const known_ref_commands[] = { "ref", "pageref", "vref",
|
||||
"vpageref", "prettyref", "eqref", 0 };
|
||||
|
||||
char const * const known_coded_ref_commands[] = { "ref", "pageref", "vref",
|
||||
"vpageref", "formatted", "eqref", 0 };
|
||||
|
||||
/*!
|
||||
* natbib commands.
|
||||
* The starred forms are also known except for "citefullauthor",
|
||||
@ -577,7 +580,7 @@ void output_command_layout(ostream & os, Parser & p, bool outer,
|
||||
p.next_token().character() != '[')
|
||||
break;
|
||||
p.get_token(); // eat '['
|
||||
begin_inset(os, "OptArg\n");
|
||||
begin_inset(os, "Argument\n");
|
||||
os << "status collapsed\n\n";
|
||||
parse_text_in_inset(p, os, FLAG_BRACK_LAST, outer, context);
|
||||
end_inset(os);
|
||||
@ -585,12 +588,12 @@ void output_command_layout(ostream & os, Parser & p, bool outer,
|
||||
++optargs;
|
||||
}
|
||||
unsigned int reqargs = 0;
|
||||
while (LYX_FORMAT >= 392 && reqargs < context.layout->reqargs) {
|
||||
while (reqargs < context.layout->reqargs) {
|
||||
eat_whitespace(p, os, context, false);
|
||||
if (p.next_token().cat() != catBegin)
|
||||
break;
|
||||
p.get_token(); // eat '{'
|
||||
begin_inset(os, "OptArg\n");
|
||||
begin_inset(os, "Argument\n");
|
||||
os << "status collapsed\n\n";
|
||||
parse_text_in_inset(p, os, FLAG_BRACE_LAST, outer, context);
|
||||
end_inset(os);
|
||||
@ -683,7 +686,7 @@ void parse_arguments(string const & command,
|
||||
break;
|
||||
case optional:
|
||||
// true because we must not eat whitespace
|
||||
// if an optional arg follows me must not strip the
|
||||
// if an optional arg follows we must not strip the
|
||||
// brackets from this one
|
||||
if (i < no_arguments - 1 &&
|
||||
template_arguments[i+1] == optional)
|
||||
@ -866,6 +869,7 @@ void parse_box(Parser & p, ostream & os, unsigned outer_flags,
|
||||
os << "has_inner_box " << !inner_type.empty() << "\n";
|
||||
os << "inner_pos \"" << inner_pos << "\"\n";
|
||||
os << "use_parbox " << (inner_type == "parbox") << '\n';
|
||||
os << "use_makebox 0\n";
|
||||
os << "width \"" << width_value << width_unit << "\"\n";
|
||||
os << "special \"none\"\n";
|
||||
os << "height \"" << height_value << height_unit << "\"\n";
|
||||
@ -1201,6 +1205,49 @@ void parse_environment(Parser & p, ostream & os, bool outer,
|
||||
break;
|
||||
}
|
||||
context.check_deeper(os);
|
||||
// handle known optional and required arguments
|
||||
// layouts require all optional arguments before the required ones
|
||||
// Unfortunately LyX can't handle arguments of list arguments (bug 7468):
|
||||
// It is impossible to place anything after the environment name,
|
||||
// but before the first \\item.
|
||||
if (context.layout->latextype == LATEX_ENVIRONMENT) {
|
||||
bool need_layout = true;
|
||||
unsigned int optargs = 0;
|
||||
while (optargs < context.layout->optargs) {
|
||||
eat_whitespace(p, os, context, false);
|
||||
if (p.next_token().cat() == catEscape ||
|
||||
p.next_token().character() != '[')
|
||||
break;
|
||||
p.get_token(); // eat '['
|
||||
if (need_layout) {
|
||||
context.check_layout(os);
|
||||
need_layout = false;
|
||||
}
|
||||
begin_inset(os, "Argument\n");
|
||||
os << "status collapsed\n\n";
|
||||
parse_text_in_inset(p, os, FLAG_BRACK_LAST, outer, context);
|
||||
end_inset(os);
|
||||
eat_whitespace(p, os, context, false);
|
||||
++optargs;
|
||||
}
|
||||
unsigned int reqargs = 0;
|
||||
while (reqargs < context.layout->reqargs) {
|
||||
eat_whitespace(p, os, context, false);
|
||||
if (p.next_token().cat() != catBegin)
|
||||
break;
|
||||
p.get_token(); // eat '{'
|
||||
if (need_layout) {
|
||||
context.check_layout(os);
|
||||
need_layout = false;
|
||||
}
|
||||
begin_inset(os, "Argument\n");
|
||||
os << "status collapsed\n\n";
|
||||
parse_text_in_inset(p, os, FLAG_BRACE_LAST, outer, context);
|
||||
end_inset(os);
|
||||
eat_whitespace(p, os, context, false);
|
||||
++reqargs;
|
||||
}
|
||||
}
|
||||
parse_text(p, os, FLAG_END, outer, context);
|
||||
context.check_end_layout(os);
|
||||
if (parent_context.deeper_paragraph) {
|
||||
@ -1448,8 +1495,10 @@ void parse_noweb(Parser & p, ostream & os, Context & context)
|
||||
os << subst(t.asInput(), "\\", "\n\\backslash\n");
|
||||
else {
|
||||
ostringstream oss;
|
||||
begin_inset(oss, "Newline newline");
|
||||
end_inset(oss);
|
||||
Context tmp(false, context.textclass,
|
||||
&context.textclass[from_ascii("Scrap")]);
|
||||
tmp.need_end_layout = true;
|
||||
tmp.check_layout(oss);
|
||||
os << subst(t.asInput(), "\n", oss.str());
|
||||
}
|
||||
// The scrap chunk is ended by an @ at the beginning of a line.
|
||||
@ -2035,7 +2084,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
||||
if (p.next_token().cat() != catEscape &&
|
||||
p.next_token().character() == '[') {
|
||||
p.get_token(); // eat '['
|
||||
begin_inset(os, "OptArg\n");
|
||||
begin_inset(os, "Argument\n");
|
||||
os << "status collapsed\n";
|
||||
parse_text_in_inset(p, os, FLAG_BRACK_LAST, outer, context);
|
||||
end_inset(os);
|
||||
@ -2361,6 +2410,9 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
||||
}
|
||||
|
||||
else if (t.cs() == "underbar" || t.cs() == "uline") {
|
||||
// \underbar is not 100% correct (LyX outputs \uline
|
||||
// of ulem.sty). The difference is that \ulem allows
|
||||
// line breaks, and \underbar does not.
|
||||
// Do NOT handle \underline.
|
||||
// \underbar cuts through y, g, q, p etc.,
|
||||
// \underline does not.
|
||||
@ -2380,8 +2432,30 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
||||
}
|
||||
|
||||
else if (t.cs() == "lyxline") {
|
||||
// swallow size argument (it is not used anyway)
|
||||
p.getArg('{', '}');
|
||||
if (!context.atParagraphStart()) {
|
||||
// so our line is in the middle of a paragraph
|
||||
// we need to add a new line, lest this line
|
||||
// follow the other content on that line and
|
||||
// run off the side of the page
|
||||
// FIXME: This may create an empty paragraph,
|
||||
// but without that it would not be
|
||||
// possible to set noindent below.
|
||||
// Fortunately LaTeX does not care
|
||||
// about the empty paragraph.
|
||||
context.new_paragraph(os);
|
||||
}
|
||||
if (h_paragraph_separation == "indent") {
|
||||
// we need to unindent, lest the line be too long
|
||||
context.add_par_extra_stuff("\\noindent\n");
|
||||
}
|
||||
context.check_layout(os);
|
||||
os << "\\lyxline";
|
||||
begin_command_inset(os, "line", "rule");
|
||||
os << "offset \"0.5ex\"\n"
|
||||
"width \"100line%\"\n"
|
||||
"height \"1pt\"\n";
|
||||
end_inset(os);
|
||||
}
|
||||
|
||||
else if (is_known(t.cs(), known_phrases) ||
|
||||
@ -2402,7 +2476,10 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
||||
string const opt = p.getOpt();
|
||||
if (opt.empty()) {
|
||||
context.check_layout(os);
|
||||
begin_command_inset(os, "ref", t.cs());
|
||||
char const * const * where = is_known(t.cs(),
|
||||
known_ref_commands);
|
||||
begin_command_inset(os, "ref",
|
||||
known_coded_ref_commands[where - known_ref_commands]);
|
||||
os << "reference \""
|
||||
<< convert_command_inset_arg(p.verbatim_item())
|
||||
<< "\"\n";
|
||||
@ -2540,7 +2617,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
||||
|
||||
else if (t.cs() == "index") {
|
||||
context.check_layout(os);
|
||||
begin_inset(os, "Index\n");
|
||||
begin_inset(os, "Index idx\n");
|
||||
os << "status collapsed\n";
|
||||
parse_text_in_inset(p, os, FLAG_ITEM, false, context, "Index");
|
||||
end_inset(os);
|
||||
@ -2572,6 +2649,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
||||
else if (t.cs() == "printindex") {
|
||||
context.check_layout(os);
|
||||
begin_command_inset(os, "index_print", "printindex");
|
||||
os << "type \"idx\"\n";
|
||||
end_inset(os);
|
||||
skip_spaces_braces(p);
|
||||
}
|
||||
@ -2583,8 +2661,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
||||
skip_spaces_braces(p);
|
||||
}
|
||||
|
||||
else if (LYX_FORMAT >= 408 &&
|
||||
(t.cs() == "textsuperscript" || t.cs() == "textsubscript")) {
|
||||
else if ((t.cs() == "textsuperscript" || t.cs() == "textsubscript")) {
|
||||
context.check_layout(os);
|
||||
begin_inset(os, "script ");
|
||||
os << t.cs().substr(4) << '\n';
|
||||
|
@ -33,6 +33,8 @@ What's new
|
||||
- XHTML export now respects font color and background color from
|
||||
Document->Settings->Colors.
|
||||
|
||||
- tex2lyx produces now the current file format 413.
|
||||
|
||||
|
||||
* USER INTERFACE
|
||||
|
||||
@ -155,6 +157,10 @@ What's new
|
||||
|
||||
- Allow the \nocite LaTeX command when using the basic citation engine.
|
||||
|
||||
- tex2lyx does not produce invalid Flex insets anymore (bug 7780)
|
||||
|
||||
- Fix import of required arguments of standard environments (part of bug 7468)
|
||||
|
||||
|
||||
* ADVANCED FIND AND REPLACE
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user