eric6/ThirdParty/Pygments/pygments/formatters/latex.py

changeset 7701
25f42e208e08
parent 7547
21b0534faebc
child 7983
54c5cfbb1e29
equal deleted inserted replaced
7700:a3cf077a8db3 7701:25f42e208e08
3 pygments.formatters.latex 3 pygments.formatters.latex
4 ~~~~~~~~~~~~~~~~~~~~~~~~~ 4 ~~~~~~~~~~~~~~~~~~~~~~~~~
5 5
6 Formatter for LaTeX fancyvrb output. 6 Formatter for LaTeX fancyvrb output.
7 7
8 :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS. 8 :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
9 :license: BSD, see LICENSE for details. 9 :license: BSD, see LICENSE for details.
10 """ 10 """
11 11
12 from io import StringIO 12 from io import StringIO
13 13
263 if len(self.escapeinside) == 2: 263 if len(self.escapeinside) == 2:
264 self.left = self.escapeinside[0] 264 self.left = self.escapeinside[0]
265 self.right = self.escapeinside[1] 265 self.right = self.escapeinside[1]
266 else: 266 else:
267 self.escapeinside = '' 267 self.escapeinside = ''
268 self.envname = options.get('envname', u'Verbatim') 268 self.envname = options.get('envname', 'Verbatim')
269 269
270 self._create_stylesheet() 270 self._create_stylesheet()
271 271
272 def _create_stylesheet(self): 272 def _create_stylesheet(self):
273 t2n = self.ttype2name = {Token: ''} 273 t2n = self.ttype2name = {Token: ''}
334 334
335 if self.full: 335 if self.full:
336 realoutfile = outfile 336 realoutfile = outfile
337 outfile = StringIO() 337 outfile = StringIO()
338 338
339 outfile.write(u'\\begin{' + self.envname + u'}[commandchars=\\\\\\{\\}') 339 outfile.write('\\begin{' + self.envname + '}[commandchars=\\\\\\{\\}')
340 if self.linenos: 340 if self.linenos:
341 start, step = self.linenostart, self.linenostep 341 start, step = self.linenostart, self.linenostep
342 outfile.write(u',numbers=left' + 342 outfile.write(',numbers=left' +
343 (start and u',firstnumber=%d' % start or u'') + 343 (start and ',firstnumber=%d' % start or '') +
344 (step and u',stepnumber=%d' % step or u'')) 344 (step and ',stepnumber=%d' % step or ''))
345 if self.mathescape or self.texcomments or self.escapeinside: 345 if self.mathescape or self.texcomments or self.escapeinside:
346 outfile.write(u',codes={\\catcode`\\$=3\\catcode`\\^=7\\catcode`\\_=8}') 346 outfile.write(',codes={\\catcode`\\$=3\\catcode`\\^=7\\catcode`\\_=8}')
347 if self.verboptions: 347 if self.verboptions:
348 outfile.write(u',' + self.verboptions) 348 outfile.write(',' + self.verboptions)
349 outfile.write(u']\n') 349 outfile.write(']\n')
350 350
351 for ttype, value in tokensource: 351 for ttype, value in tokensource:
352 if ttype in Token.Comment: 352 if ttype in Token.Comment:
353 if self.texcomments: 353 if self.texcomments:
354 # Try to guess comment starting lexeme and escape it ... 354 # Try to guess comment starting lexeme and escape it ...
407 if spl[-1]: 407 if spl[-1]:
408 outfile.write("\\%s{%s}{%s}" % (cp, styleval, spl[-1])) 408 outfile.write("\\%s{%s}{%s}" % (cp, styleval, spl[-1]))
409 else: 409 else:
410 outfile.write(value) 410 outfile.write(value)
411 411
412 outfile.write(u'\\end{' + self.envname + u'}\n') 412 outfile.write('\\end{' + self.envname + '}\n')
413 413
414 if self.full: 414 if self.full:
415 encoding = self.encoding or 'utf8' 415 encoding = self.encoding or 'utf8'
416 # map known existings encodings from LaTeX distribution 416 # map known existings encodings from LaTeX distribution
417 encoding = { 417 encoding = {
449 buf = '' 449 buf = ''
450 idx = 0 450 idx = 0
451 for i, t, v in self.lang.get_tokens_unprocessed(text): 451 for i, t, v in self.lang.get_tokens_unprocessed(text):
452 if t in Token.Comment or t in Token.String: 452 if t in Token.Comment or t in Token.String:
453 if buf: 453 if buf:
454 for x in self.get_tokens_aux(idx, buf): 454 yield from self.get_tokens_aux(idx, buf)
455 yield x
456 buf = '' 455 buf = ''
457 yield i, t, v 456 yield i, t, v
458 else: 457 else:
459 if not buf: 458 if not buf:
460 idx = i 459 idx = i
461 buf += v 460 buf += v
462 if buf: 461 if buf:
463 for x in self.get_tokens_aux(idx, buf): 462 yield from self.get_tokens_aux(idx, buf)
464 yield x
465 463
466 def get_tokens_aux(self, index, text): 464 def get_tokens_aux(self, index, text):
467 while text: 465 while text:
468 a, sep1, text = text.partition(self.left) 466 a, sep1, text = text.partition(self.left)
469 if a: 467 if a:

eric ide

mercurial