Second step towards a more generic package off/auto/on handling:

File format change


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40563 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Georg Baum 2012-01-03 21:26:09 +00:00
parent 6be6d9a947
commit bf3f3f9816
5 changed files with 52 additions and 36 deletions

View File

@ -11,6 +11,14 @@ adjustments are made to tex2lyx and bugs are fixed in lyx2lyx.
----------------------- -----------------------
2012-01-03 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* Format incremented to 422 (r40563)
\use_amsmath 0/1/2 => \use_package amsmath 0/1/2
\use_esint 0/1/2 => \use_package esint 0/1/2
\use_mhchem 0/1/2 => \use_package mhchem 0/1/2
\use_mathdots 0/1/2 => \use_package mathdots 0/1/2
\use_undertilde 0/1/2 => \use_package undertilde 0/1/2
2011-12-18 Georg Baum <Georg.Baum@post.rwth-aachen.de> 2011-12-18 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* Format incremented to 421 (r40522) * Format incremented to 421 (r40522)
The caption flag of longtable rows is no longer exclusive to the head The caption flag of longtable rows is no longer exclusive to the head

View File

@ -26,12 +26,12 @@ import sys, os
# Uncomment only what you need to import, please. # Uncomment only what you need to import, please.
from parser_tools import del_token, find_token, find_end_of, find_end_of_inset, \ from parser_tools import del_token, find_token, find_end_of, find_end_of_inset, \
get_option_value, get_value, get_quoted_value, set_option_value find_re, get_option_value, get_value, get_quoted_value, set_option_value
#from parser_tools import find_token, find_end_of, find_tokens, \ #from parser_tools import find_token, find_end_of, find_tokens, \
#find_token_exact, find_end_of_inset, find_end_of_layout, \ #find_token_exact, find_end_of_inset, find_end_of_layout, \
#find_token_backwards, is_in_inset, get_value, get_quoted_value, \ #find_token_backwards, is_in_inset, get_value, get_quoted_value, \
#del_token, check_token, get_option_value #del_token, check_token
from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert from lyx2lyx_tools import add_to_preamble, put_cmd_in_ert
@ -332,6 +332,27 @@ def revert_longtable_captions(document):
handle_longtable_captions(document, False) handle_longtable_captions(document, False)
def convert_use_packages(document):
"use_xxx yyy => use_package xxx yyy"
packages = ["amsmath", "esint", "mathdots", "mhchem", "undertilde"]
for p in packages:
i = find_token(document.header, "\\use_%s" % p , 0)
if i != -1:
value = get_value(document.header, "\\use_%s" % p , i)
document.header[i] = "\\use_package %s %s" % (p, value)
def revert_use_packages(document):
"use_package xxx yyy => use_xxx yyy"
packages = ["amsmath", "esint", "mathdots", "mhchem", "undertilde"]
for p in packages:
regexp = re.compile(r'(\\use_package\s+%s)' % p)
i = find_re(document.header, regexp, 0)
if i != -1:
values = get_value(document.header, "\\use_package" , i)
document.header[i] = "\\use_%s" % values
## ##
# Conversion hub # Conversion hub
# #
@ -346,9 +367,11 @@ convert = [
[419, []], [419, []],
[420, [convert_biblio_style]], [420, [convert_biblio_style]],
[421, [convert_longtable_captions]], [421, [convert_longtable_captions]],
[422, [convert_use_packages]],
] ]
revert = [ revert = [
[421, [revert_use_packages]],
[420, [revert_longtable_captions]], [420, [revert_longtable_captions]],
[419, [revert_biblio_style]], [419, [revert_biblio_style]],
[418, [revert_australian]], [418, [revert_australian]],

View File

@ -700,26 +700,12 @@ string BufferParams::readToken(Lexer & lex, string const & token,
papersize = papersizetranslator().find(ppsize); papersize = papersizetranslator().find(ppsize);
} else if (token == "\\use_geometry") { } else if (token == "\\use_geometry") {
lex >> use_geometry; lex >> use_geometry;
} else if (token == "\\use_amsmath") { } else if (token == "\\use_package") {
int use_ams; string package;
lex >> use_ams; int use;
use_package("amsmath", packagetranslator().find(use_ams)); lex >> package;
} else if (token == "\\use_esint") { lex >> use;
int useesint; use_package(package, packagetranslator().find(use));
lex >> useesint;
use_package("esint", packagetranslator().find(useesint));
} else if (token == "\\use_mhchem") {
int usemhchem;
lex >> usemhchem;
use_package("mhchem", packagetranslator().find(usemhchem));
} else if (token == "\\use_mathdots") {
int usemathdots;
lex >> usemathdots;
use_package("mathdots", packagetranslator().find(usemathdots));
} else if (token == "\\use_undertilde") {
int useundertilde;
lex >> useundertilde;
use_package("undertilde", packagetranslator().find(useundertilde));
} else if (token == "\\cite_engine") { } else if (token == "\\cite_engine") {
string engine; string engine;
lex >> engine; lex >> engine;
@ -1023,13 +1009,12 @@ void BufferParams::writeFile(ostream & os) const
pdfoptions().writeFile(os); pdfoptions().writeFile(os);
os << "\\papersize " << string_papersize[papersize] os << "\\papersize " << string_papersize[papersize]
<< "\n\\use_geometry " << convert<string>(use_geometry) << "\n\\use_geometry " << convert<string>(use_geometry);
<< "\n\\use_amsmath " << use_package("amsmath") vector<string> const & packages = auto_packages();
<< "\n\\use_esint " << use_package("esint") for (size_t i = 0; i < packages.size(); ++i)
<< "\n\\use_mhchem " << use_package("mhchem") os << "\n\\use_package " << packages[i] << ' '
<< "\n\\use_mathdots " << use_package("mathdots") << use_package(packages[i]);
<< "\n\\use_undertilde " << use_package("undertilde") os << "\n\\cite_engine " << citeenginetranslator().find(cite_engine_)
<< "\n\\cite_engine " << citeenginetranslator().find(cite_engine_)
<< "\n\\biblio_style " << biblio_style << "\n\\biblio_style " << biblio_style
<< "\n\\use_bibtopic " << convert<string>(use_bibtopic) << "\n\\use_bibtopic " << convert<string>(use_bibtopic)
<< "\n\\use_indices " << convert<string>(use_indices) << "\n\\use_indices " << convert<string>(use_indices)

View File

@ -926,11 +926,11 @@ bool Preamble::writeLyXHeader(ostream & os, bool subdoc)
} }
os << "\\papersize " << h_papersize << "\n" os << "\\papersize " << h_papersize << "\n"
<< "\\use_geometry " << h_use_geometry << "\n" << "\\use_geometry " << h_use_geometry << "\n"
<< "\\use_amsmath " << h_use_amsmath << "\n" << "\\use_package amsmath " << h_use_amsmath << '\n'
<< "\\use_esint " << h_use_esint << "\n" << "\\use_package esint " << h_use_esint << '\n'
<< "\\use_mhchem " << h_use_mhchem << "\n" << "\\use_package mhchem " << h_use_mhchem << '\n'
<< "\\use_mathdots " << h_use_mathdots << "\n" << "\\use_package mathdots " << h_use_mathdots << '\n'
<< "\\use_undertilde " << h_use_undertilde << "\n" << "\\use_package undertilde " << h_use_undertilde << '\n'
<< "\\cite_engine " << h_cite_engine << "\n" << "\\cite_engine " << h_cite_engine << "\n"
<< "\\biblio_style " << h_biblio_style << "\n" << "\\biblio_style " << h_biblio_style << "\n"
<< "\\use_bibtopic " << h_use_bibtopic << "\n" << "\\use_bibtopic " << h_use_bibtopic << "\n"

View File

@ -30,8 +30,8 @@ extern char const * const lyx_version_info;
// Do not remove the comment below, so we get merge conflict in // Do not remove the comment below, so we get merge conflict in
// independent branches. Instead add your own. // independent branches. Instead add your own.
#define LYX_FORMAT_LYX 421 // baum : longtable captions #define LYX_FORMAT_LYX 422 // baum : \\use_package
#define LYX_FORMAT_TEX2LYX 421 #define LYX_FORMAT_TEX2LYX 422
#if LYX_FORMAT_FOR_TEX2LYX != LYX_FORMAT_FOR_LYX #if LYX_FORMAT_FOR_TEX2LYX != LYX_FORMAT_FOR_LYX
#warning "tex2lyx produces an out of date file format." #warning "tex2lyx produces an out of date file format."