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