'pybliographic', 'bibdesk', 'gbib', 'kbib', \
'kbibtex', 'sixpack', 'bibedit', 'tkbibtex' \
'xemacs', 'gvim', 'kedit', 'kwrite', 'kate', \
+ 'jedit', 'TeXnicCenter', 'WinEdt', 'WinShell', 'PSPad', \
'nedit', 'gedit', 'notepad', 'geany', 'leafpad', 'mousepad'],
rc_entry = [r'''\Format bibtex bib "BibTeX" "" "" "%%" "" "text/x-bibtex"''' ])
#
\Format eps2 eps "EPS (uncropped)" "" "%%" "" "vector" ""
\Format ps ps Postscript t "%%" "" "document,vector,menu=export" "application/postscript"'''])
# for xdg-open issues look here: http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg151818.html
- checkViewer('a PDF previewer', ['kpdf', 'okular', 'evince', 'kghostview', 'xpdf', 'acrobat', 'acroread', \
+ checkViewer('a PDF previewer', ['pdfview', 'kpdf', 'okular', 'evince', 'kghostview', 'xpdf', 'acrobat', 'acroread', \
'gv', 'ghostview'],
rc_entry = [r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" "" "document,vector,menu=export" "application/pdf"
\Format pdf2 pdf "PDF (pdflatex)" F "%%" "" "document,vector,menu=export" ""
path, t2l = checkProg('a LaTeX/Noweb -> LyX converter', [in_place, 'tex2lyx' + version_suffix, 'tex2lyx'],
rc_entry = [r'''\converter latex lyx "%% -f $$i $$o" ""
-\converter literate lyx "%% -n -f $$i $$o" ""'''], not_found = 'tex2lyx')
+\converter literate lyx "%% -n -m noweb -f $$i $$o" ""'''], not_found = 'tex2lyx')
if path == '':
logger.warning("Failed to find tex2lyx on your system.")
def processLayoutFile(file, bool_docbook):
''' process layout file and get a line of result
- Declare lines look like this: (article.layout, scrbook.layout, svjog.layout)
+ Declare lines look like this:
+ \DeclareLaTeXClass[<requirements>]{<description>}
+
+ Optionally, a \DeclareCategory line follows:
+
+ \DeclareCategory{<category>}
+
+ So for example (article.layout, scrbook.layout, svjog.layout)
+
\DeclareLaTeXClass{article}
+ \DeclareCategory{Articles}
+
\DeclareLaTeXClass[scrbook]{book (koma-script)}
+ \DeclareCategory{Books}
+
\DeclareLaTeXClass[svjour,svjog.clo]{article (Springer - svjour/jog)}
- we expect output:
+ we'd expect this output:
- "article" "article" "article" "false" "article.cls"
- "scrbook" "scrbook" "book (koma-script)" "false" "scrbook.cls"
- "svjog" "svjour" "article (Springer - svjour/jog)" "false" "svjour.cls,svjog.clo"
+ "article" "article" "article" "false" "article.cls" "Articles"
+ "scrbook" "scrbook" "book (koma-script)" "false" "scrbook.cls" "Books"
+ "svjog" "svjour" "article (Springer - svjour/jog)" "false" "svjour.cls,svjog.clo" ""
'''
def checkForClassExtension(x):
'''if the extension for a latex class is not
classname = file.split(os.sep)[-1].split('.')[0]
# return ('LaTeX', '[a,b]', 'a', ',b,c', 'article') for \DeclareLaTeXClass[a,b,c]{article}
p = re.compile(r'\Declare(LaTeX|DocBook)Class\s*(\[([^,]*)(,.*)*\])*\s*{(.*)}')
+ q = re.compile(r'\DeclareCategory{(.*)}')
+ classdeclaration = ""
+ categorydeclaration = '""'
for line in open(file).readlines():
res = p.search(line)
+ qres = q.search(line)
if res != None:
(classtype, optAll, opt, opt1, desc) = res.groups()
avai = {'LaTeX':'false', 'DocBook':bool_docbook}[classtype]
prereq_latex = ','.join(prereq_list)
prereq_docbook = {'true':'', 'false':'docbook'}[bool_docbook]
prereq = {'LaTeX':prereq_latex, 'DocBook':prereq_docbook}[classtype]
- return '"%s" "%s" "%s" "%s" "%s"\n' % (classname, opt, desc, avai, prereq)
+ classdeclaration = '"%s" "%s" "%s" "%s" "%s"' % (classname, opt, desc, avai, prereq)
+ if categorydeclaration != '""':
+ return classdeclaration + " " + categorydeclaration
+ if qres != None:
+ categorydeclaration = '"%s"' % (qres.groups()[0])
+ if classdeclaration != "":
+ return classdeclaration + " " + categorydeclaration
+ if classdeclaration != "":
+ return classdeclaration + " " + categorydeclaration
logger.warning("Layout file " + file + " has no \DeclareXXClass line. ")
return ""
# build the list of available layout files and convert it to commands
# for chkconfig.ltx
declare = re.compile(r'\Declare(LaTeX|DocBook)Class\s*(\[([^,]*)(,.*)*\])*\s*{(.*)}')
+ category = re.compile(r'\DeclareCategory{(.*)}')
empty = re.compile(r'^\s*$')
testclasses = list()
for file in glob.glob( os.path.join('layouts', '*.layout') ) + \
if not os.path.isfile(file):
continue
classname = file.split(os.sep)[-1].split('.')[0]
+ decline = ""
+ catline = ""
for line in open(file).readlines():
if not empty.match(line) and line[0] != '#':
- logger.warning("Failed to find valid \Declare line for layout file `" + file + "'.\n\t=> Skipping this file!")
- nodeclaration = True
+ if decline == "":
+ logger.warning("Failed to find valid \Declare line for layout file `" + file + "'.\n\t=> Skipping this file!")
+ nodeclaration = True
+ # A class, but no category declaration. Just break.
break
- if declare.search(line) == None:
+ if declare.search(line) != None:
+ decline = "\\TestDocClass{%s}{%s}" % (classname, line[1:].strip())
+ testclasses.append(decline)
+ elif category.search(line) != None:
+ catline = "\\DeclareCategory{%s}{%s}" % (classname, category.search(line).groups()[0])
+ testclasses.append(catline)
+ if catline == "" or decline == "":
continue
- testclasses.append("\\TestDocClass{%s}{%s}" % (classname, line[1:].strip()))
break
if nodeclaration:
continue
if rmcopy:
removeFiles( [ 'chkconfig.ltx' ] )
#
- # currently, values in chhkconfig are only used to set
+ # currently, values in chkconfig are only used to set
# \font_encoding
values = {}
for line in open('chkconfig.vars').readlines():
removeFiles( [ 'a b.tex', 'a b.log', 'texput.log' ])
+def rescanTeXFiles():
+ ''' Run kpsewhich to update information about TeX files '''
+ logger.info("+Indexing TeX files... ")
+ if not os.path.isfile( os.path.join(srcdir, 'scripts', 'TeXFiles.py') ):
+ logger.error("configure: error: cannot find TeXFiles.py script")
+ sys.exit(1)
+ tfp = cmdOutput("python -tt " + os.path.join(srcdir, 'scripts', 'TeXFiles.py'))
+ logger.info(tfp)
+ logger.info("\tdone")
+
+
def removeTempFiles():
# Final clean-up
if not lyx_keep_temps:
if __name__ == '__main__':
lyx_check_config = True
+ lyx_kpsewhich = True
outfile = 'lyxrc.defaults'
lyxrc_fileformat = 7
rc_entries = ''
Options:
--help show this help lines
--keep-temps keep temporary files (for debug. purposes)
+ --without-kpsewhich do not update TeX files information via kpsewhich
--without-latex-config do not run LaTeX to determine configuration
--with-version-suffix=suffix suffix of binary installed files
'''
sys.exit(0)
+ elif op == '--without-kpsewhich':
+ lyx_kpsewhich = False
elif op == '--without-latex-config':
lyx_check_config = False
elif op == '--keep-temps':
if windows_style_tex_paths != '':
addToRC(r'\tex_expects_windows_paths %s' % windows_style_tex_paths)
checkOtherEntries()
+ if lyx_kpsewhich:
+ rescanTeXFiles()
checkModulesConfig()
# --without-latex-config can disable lyx_check_config
ret = checkLatexConfig(lyx_check_config and LATEX != '', bool_docbook)