''' Check latex, return lyx_check_config '''
path, LATEX = checkProg('a Latex2e program', ['latex $$i', 'platex $$i', 'latex2e $$i'])
path, PPLATEX = checkProg('a DVI postprocessing program', ['pplatex $$i'])
+ #-----------------------------------------------------------------
+ path, PLATEX = checkProg('pLaTeX, the Japanese LaTeX', ['platex $$i'])
+ # check if PLATEX is pLaTeX2e
+ writeToFile('chklatex.ltx', '''
+\\nonstopmode
+\\@@end
+''')
+ # run platex on chklatex.ltx and check result
+ if cmdOutput(PLATEX + ' chklatex.ltx').find('pLaTeX2e') != -1:
+ # We have the Japanese pLaTeX2e
+ addToRC(r'\converter platex dvi "%s" "latex"' % PLATEX)
+ LATEX = PLATEX
+ else:
+ PLATEX = ''
+ removeFiles(['chklatex.ltx', 'chklatex.log'])
+ #-----------------------------------------------------------------
# use LATEX to convert from latex to dvi if PPLATEX is not available
if PPLATEX == '':
PPLATEX = LATEX
checkViewer('a Tgif viewer and editor', ['tgif'],
rc_entry = [r'\Format tgif obj Tgif "" "%%" "%%" "vector"'])
#
- checkViewer('a FIG viewer and editor', ['xfig'],
+ checkViewer('a FIG viewer and editor', ['xfig', 'jfig3-itext.jar', 'jfig3.jar'],
rc_entry = [r'\Format fig fig FIG "" "%%" "%%" "vector"'])
#
checkViewer('a Grace viewer and editor', ['xmgrace'],
\Format dateout tmp "date (output)" "" "" "%%" ""
\Format docbook sgml DocBook B "" "%%" "document"
\Format docbook-xml xml "Docbook (XML)" "" "" "%%" "document"
+\Format dot dot "Graphviz Dot" "" "" "%%" "vector"
+\Format platex tex "LaTeX (pLaTeX)" "" "" "%%" "document"
\Format literate nw NoWeb N "" "%%" "document"
\Format lilypond ly "LilyPond music" "" "" "%%" "vector"
\Format latex tex "LaTeX (plain)" L "" "%%" "document"
-\Format linuxdoc sgml LinuxDoc x "" "%%" "document"
\Format pdflatex tex "LaTeX (pdflatex)" "" "" "%%" "document"
\Format text txt "Plain text" a "" "%%" "document"
\Format text2 txt "Plain text (pstotext)" "" "" "%%" "document"
checkViewer('Noteedit', ['noteedit'],
rc_entry = [r'\Format noteedit not Noteedit "" "%%" "%%" "vector"'])
#
- checkViewer('an OpenDocument viewer', ['oowriter'],
+ checkViewer('an OpenDocument viewer', ['swriter', 'oowriter'],
rc_entry = [r'\Format odt odt OpenDocument "" "%%" "%%" "document,vector"'])
#
# entried that do not need checkProg
addToRC(r'''\Format date "" "date command" "" "" "" ""
-\Format csv csv "Comma-separated values" "" "" "" "document"
+\Format csv csv "Table (CSV)" "" "" "" "document"
\Format fax "" Fax "" "" "" "document"
\Format lyx lyx LyX "" "" "" ""
\Format lyx13x lyx13 "LyX 1.3.x" "" "" "" "document"
\Format jlyx cjklyx "CJK LyX 1.4.x (euc-jp)" "" "" "" "document"
\Format klyx cjklyx "CJK LyX 1.4.x (euc-kr)" "" "" "" "document"
\Format lyxpreview lyxpreview "LyX Preview" "" "" "" ""
+\Format lyxpreview-platex lyxpreview-platex "LyX Preview (pLaTeX)" "" "" "" ""
\Format pdftex pdftex_t PDFTEX "" "" "" ""
\Format program "" Program "" "" "" ""
\Format pstex pstex_t PSTEX "" "" "" ""
#
checkProg('a Noweb -> LaTeX converter', ['noweave -delay -index $$i > $$o'],
- rc_entry = [ r'\converter literate latex "%%" ""' ])
+ rc_entry = [r'''\converter literate latex "%%" ""
+\converter literate pdflatex "%%" ""'''])
#
checkProg('an HTML -> LaTeX converter', ['html2latex $$i', 'gnuhtml2latex $$i', \
'htmltolatex -input $$i -output $$o', 'java -jar htmltolatex.jar -input $$i -output $$o'],
#
checkProg('an OpenDocument -> LaTeX converter', ['w2l -clean $$i'],
rc_entry = [ r'\converter odt latex "%%" ""' ])
+ # According to http://www.tug.org/applications/tex4ht/mn-commands.html
+ # the command mk4ht oolatex $$i has to be used as default,
+ # but as this would require to have Perl installed, in MiKTeX oolatex is
+ # directly available as application.
# On SuSE the scripts have a .sh suffix, and on debian they are in /usr/share/tex4ht/
# Both SuSE and debian have oolatex
checkProg('a LaTeX -> Open Document converter', [
- 'htlatex $$i \'xhtml,ooffice\' \'ooffice/! -cmozhtf\' \'-coo\' \'-cvalidate\'', \
- 'oolatex $$i', 'oolatex.sh $$i', \
- '/usr/share/tex4ht/oolatex $$i'],
+ 'oolatex $$i', 'mk4ht oolatex $$i', 'oolatex.sh $$i', '/usr/share/tex4ht/oolatex $$i',
+ 'htlatex $$i \'xhtml,ooffice\' \'ooffice/! -cmozhtf\' \'-coo\' \'-cvalidate\''],
rc_entry = [ r'\converter latex odt "%%" "needaux"' ])
# On windows it is called latex2rt.exe
checkProg('a LaTeX -> RTF converter', ['latex2rtf -p -S -o $$o $$i', 'latex2rt -p -S -o $$o $$i'],
\converter agr ppm "gracebat -hardcopy -printfile $$o -hdevice PNM $$i 2>/dev/null" ""''',
''])
#
+ checkProg('a Dot -> PDF converter', ['dot -Tpdf $$i -o $$o'],
+ rc_entry = [ r'\converter dot pdf "%%" ""'])
+ #
#
path, lilypond = checkProg('a LilyPond -> EPS/PDF/PNG converter', ['lilypond'])
if (lilypond != ''):
#
# Entries that do not need checkProg
addToRC(r'''\converter lyxpreview ppm "python -tt $$s/scripts/lyxpreview2bitmap.py" ""
+\converter lyxpreview-platex ppm "python -tt $$s/scripts/lyxpreview-platex2bitmap.py" ""
\converter csv lyx "python -tt $$s/scripts/csv2lyx.py $$i $$o" ""
\converter date dateout "python -tt $$s/scripts/date.py %d-%m-%Y > $$o" ""
\converter docbook docbook-xml "cp $$i $$o" "xml"
''')
-def checkLinuxDoc():
- ''' Check linuxdoc '''
- #
- path, LINUXDOC = checkProg('SGML-tools 1.x (LinuxDoc)', ['sgml2lyx'],
- rc_entry = [
- r'''\converter linuxdoc lyx "sgml2lyx $$i" ""
-\converter linuxdoc latex "sgml2latex $$i" ""
-\converter linuxdoc dvi "sgml2latex -o dvi $$i" ""
-\converter linuxdoc html "sgml2html $$i" ""''',
- r'''\converter linuxdoc lyx "" ""
-\converter linuxdoc latex "" ""
-\converter linuxdoc dvi "" ""
-\converter linuxdoc html "" ""''' ])
- if LINUXDOC != '':
- return ('yes', 'true', '\\def\\haslinuxdoc{yes}')
- else:
- return ('no', 'false', '')
-
-
def checkDocBook():
''' Check docbook '''
path, DOCBOOK = checkProg('SGML-tools 2.x (DocBook) or db2x scripts', ['sgmltools', 'db2dvi'],
rc_entry = [ r'\chktex_command "%%"' ])
checkProg('BibTeX', ['jbibtex', 'bibtex'],
rc_entry = [ r'\bibtex_command "%%"' ])
+ checkProg('an index processor', ['texindy', 'makeindex -c -q'],
+ rc_entry = [ r'\index_command "%%"' ])
+ checkProg('a nomenclature processor', ['makeindex'],
+ rc_entry = [ r'\nomencl_command "makeindex -s nomencl.ist"' ])
checkProg('a spellchecker', ['ispell'],
rc_entry = [ r'\spell_command "%%"' ])
## FIXME: OCTAVE is not used anywhere
''')
-def processLayoutFile(file, bool_docbook, bool_linuxdoc):
+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)
'''
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|LinuxDoc)Class\s*(\[([^,]*)(,.*)*\])*\s*{(.*)}')
+ p = re.compile(r'\Declare(LaTeX|DocBook)Class\s*(\[([^,]*)(,.*)*\])*\s*{(.*)}')
for line in open(file).readlines():
res = p.search(line)
if res != None:
(classtype, optAll, opt, opt1, desc) = res.groups()
- avai = {'LaTeX':'false', 'DocBook':bool_docbook, 'LinuxDoc':bool_linuxdoc}[classtype]
+ avai = {'LaTeX':'false', 'DocBook':bool_docbook}[classtype]
if opt == None:
opt = classname
return '"%s" "%s" "%s" "%s"\n' % (classname, opt, desc, avai)
- print "Layout file without \DeclareXXClass line. "
+ print "Layout file " + file + " has no \DeclareXXClass line. "
sys.exit(2)
-def checkLatexConfig(check_config, bool_docbook, bool_linuxdoc):
+def checkLatexConfig(check_config, bool_docbook):
''' Explore the LaTeX configuration
Return None (will be passed to sys.exit()) for success.
'''
# make sure the same class is not considered twice
if foundClasses.count(cleanclass) == 0: # not found before
foundClasses.append(cleanclass)
- tx.write(processLayoutFile(file, bool_docbook, bool_linuxdoc))
+ tx.write(processLayoutFile(file, bool_docbook))
tx.close()
print '\tdone'
if not check_config:
if not os.path.isfile( 'chkconfig.ltx' ):
shutil.copyfile( os.path.join(srcdir, 'chkconfig.ltx'), 'chkconfig.ltx' )
rmcopy = True
- writeToFile('wrap_chkconfig.ltx', '%s\n%s\n\\input{chkconfig.ltx}\n' \
- % (linuxdoc_cmd, docbook_cmd) )
+ writeToFile('wrap_chkconfig.ltx', '%s\n%s\n\\input{chkconfig.ltx}\n',
+ docbook_cmd)
# Construct the list of classes to test for.
# build the list of available layout files and convert it to commands
# for chkconfig.ltx
print file
if not os.path.isfile(file):
continue
- tx.write(processModuleFile(file, bool_docbook, bool_linuxdoc))
+ tx.write(processModuleFile(file, bool_docbook))
tx.close()
print '\tdone'
-def processModuleFile(file, bool_docbook, bool_linuxdoc):
+def processModuleFile(file, bool_docbook):
''' process module file and get a line of result
The top of a module file should look like this:
LATEX = checkLatex(dtl_tools)
checkFormatEntries(dtl_tools)
checkConverterEntries()
- (chk_linuxdoc, bool_linuxdoc, linuxdoc_cmd) = checkLinuxDoc()
(chk_docbook, bool_docbook, docbook_cmd) = checkDocBook()
checkTeXAllowSpaces()
if windows_style_tex_paths != '':
addToRC(r'\tex_expects_windows_paths %s' % windows_style_tex_paths)
checkOtherEntries()
# --without-latex-config can disable lyx_check_config
- ret = checkLatexConfig(lyx_check_config and LATEX != '',
- bool_docbook, bool_linuxdoc)
+ ret = checkLatexConfig(lyx_check_config and LATEX != '', bool_docbook)
checkModulesConfig() #lyx_check_config and LATEX != '')
removeTempFiles()
# The return error code can be 256. Because most systems expect an error code