@@ -238,6 +238,8 @@ def argparser():
238
238
p.add_argument('outputfile', nargs='?', default=None, help="Output file name")
239
239
p.add_argument('-o', '--overwrite' , action="store_true", default=False,
240
240
help="Overwrite output file if it exists")
241
+ p.add_argument('--no-inline', action="store_true", default=False,
242
+ help="Extract code only from Sage environments")
241
243
return p
242
244
243
245
def run(args):
@@ -249,9 +251,9 @@ def run(args):
249
251
sys.exit(1)
250
252
251
253
src, ext = os.path.splitext(src)
252
- sagecode = SageCodeExtractor(src + '.tex' )
253
- header = ("# This file contains Sage code extracted from % s%s.\n"
254
- "# Processed %s.\n"
254
+ sagecode = SageCodeExtractor(src + '.tex' , inline=not args.no_inline )
255
+ header = ("#> This file contains Sage code extracted from % s%s.\n"
256
+ "#> Processed %s.\n"
255
257
"" % (src, ext, time.strftime('%a %d %b %Y %H:%M:%S', time.localtime())))
256
258
257
259
if dst is not None:
@@ -470,7 +472,7 @@ class DeSageTex():
470
472
% Sage.
471
473
% \begin{macrocode}
472
474
class SageCodeExtractor():
473
- def __init__(self, texfn):
475
+ def __init__(self, texfn, inline=True ):
474
476
smacro = sagemacroparser
475
477
smacro.setParseAction(self.macroout)
476
478
@@ -497,7 +499,10 @@ class SageCodeExtractor():
497
499
sunpause = sagetexunpause
498
500
sunpause.setParseAction(self.unpause)
499
501
500
- doit = smacro | splot | senv | spause | sunpause
502
+ if inline:
503
+ doit = smacro | splot | senv | spause | sunpause
504
+ else:
505
+ doit = senv | spause | sunpause
501
506
doit.ignore('% ' + restOfLine)
502
507
503
508
str = '' .join(open(texfn, 'r' ).readlines())
@@ -506,26 +511,26 @@ class SageCodeExtractor():
506
511
doit.transformString(str)
507
512
508
513
def macroout(self, s, l, t):
509
- self.result += '# \\sage{} from line %s\n' % lineno(l, s)
514
+ self.result += '#> \\sage{} from line %s\n' % lineno(l, s)
510
515
self.result += t.code[1:-1] + '\n\n'
511
516
512
517
def plotout(self, s, l, t):
513
- self.result += '# \\sageplot{} from line %s:\n' % lineno(l, s)
518
+ self.result += '#> \\sageplot{} from line %s:\n' % lineno(l, s)
514
519
if t.format != '' :
515
- self.result += '# format: %s' % t.format[0][1:-1] + '\n'
520
+ self.result += '#> format: %s' % t.format[0][1:-1] + '\n'
516
521
self.result += t.code[1:-1] + '\n\n'
517
522
518
523
def envout(self, s, l, t):
519
- self.result += '# %s environment from line %s:' % (t.env,
524
+ self.result += '#> %s environment from line %s:' % (t.env,
520
525
lineno(l, s))
521
526
self.result += '' .join(t.code) + '\n'
522
527
523
528
def pause(self, s, l, t):
524
- self.result += ('# SageTeX (probably) paused on input line % s.\n\n' %
529
+ self.result += ('#> SageTeX (probably) paused on input line % s.\n\n' %
525
530
(lineno(l, s)))
526
531
527
532
def unpause(self, s, l, t):
528
- self.result += ('# SageTeX (probably) unpaused on input line % s.\n\n' %
533
+ self.result += ('#> SageTeX (probably) unpaused on input line % s.\n\n' %
529
534
(lineno(l, s)))
530
535
% \end{macrocode}
531
536
% \end{macro}
0 commit comments