]> git.lyx.org Git - lyx.git/blobdiff - lib/scripts/include_bib.py
Merge branch 'master' of git.lyx.org:lyx
[lyx.git] / lib / scripts / include_bib.py
index 1e34d1e394b402ea683c8765c9bf5d83133368b1..d9c0e83c8a11348f0b8fd7c4bd6bb2903ae9c753 100644 (file)
@@ -9,6 +9,25 @@
 
 # Full author contact details are available in file CREDITS
 
+# This script is intended to include a BibTeX-generated biblography 
+# in a LaTeX file, as publishers often want. It can be run manually
+# on an exported LaTeX file, though it needs to be compiled first,
+# so the bbl file will exist.
+#
+# It should also be possible to create a LyX converter to run this
+# automatically. To set it up, create a format "ltxbbl"; make sure to 
+# check it as a document format. Then create a LaTeX-->ltxbbl converter, 
+# with the command:
+#   python -tt $$s/scripts/include_bib.py $$i $$o
+# and give it the flags:
+#   needaux,nice
+# You'll then have it in the export menu.
+# 
+# We do not activate this converter by default, because there are problems
+# when one tries to use multiple bibliographies.
+#
+# Please report any problems on the devel list.
+
 import sys, os
 
 class secbib:
@@ -41,8 +60,6 @@ def InsertBib(fil, out):
     elif "\\begin{btSect}" in line:
       raise BibError("Cannot export sectioned bibliographies")
   
-  filenew = fil[:-4] + "-bibinc.tex" #The new .tex file
-
   if len(biblist) > 1:
     raise BibError("Cannot export multiple bibliographies.")
   if not biblist:
@@ -58,9 +75,35 @@ def InsertBib(fil, out):
   outfile = open(out, 'w')
   outfile.write("".join(newlist))
   outfile.close()
-  return filenew
+  return out
     
 
+def usage():
+  print r'''
+Usage: python include_bib.py file.tex [outfile.tex]
+  Includes the contents of file.bbl, which must exist in the
+  same directory as file.tex, in place of the \bibliography
+  command, and creates the new file outfile.tex. If no name
+  for that file is given, we create: file-bbl.tex.
+'''  
+
 if __name__ == "__main__":
-  newfile = InsertBib(sys.argv[1], sys.argv[2])
-  print "Wrote " + newfile
+  args = len(sys.argv)
+  if args <= 1 or args > 3:
+    usage()
+    sys.exit(0)
+
+  # we might should make sure this is a tex file....
+  infile = sys.argv[1]
+  if infile[-4:] != ".tex":
+    print "Error: " + infile + " is not a TeX file"
+    usage()
+    sys.exit(1)
+
+  if args == 3:
+    outfile = sys.argv[2]
+  else:
+    outfile = infile[:-4] + "-bbl.tex"
+
+  newfile = InsertBib(infile, outfile)
+  print "Wrote " + outfile