亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? __init__.py

?? Requirement =====================================================================================
?? PY
?? 第 1 頁 / 共 2 頁
字號:
# Author: Felix Wiemann# Contact: Felix_Wiemann@ososo.de# Revision: $Revision: 4242 $# Date: $Date: 2006-01-06 00:28:53 +0100 (Fri, 06 Jan 2006) $# Copyright: This module has been placed in the public domain."""LaTeX2e document tree Writer."""# Thanks to Engelbert Gruber and various contributors for the original# LaTeX writer, some code and many ideas of which have been used for# this writer.__docformat__ = 'reStructuredText'import reimport os.pathfrom types import ListTypeimport docutilsfrom docutils import nodes, writers, utilsfrom docutils.writers.newlatex2e import unicode_mapfrom docutils.transforms import writer_auxclass Writer(writers.Writer):    supported = ('newlatex', 'newlatex2e')    """Formats this writer supports."""    default_stylesheet = 'base.tex'    default_stylesheet_path = utils.relative_path(        os.path.join(os.getcwd(), 'dummy'),        os.path.join(os.path.dirname(__file__), default_stylesheet))    settings_spec = (        'LaTeX-Specific Options',        'Note that this LaTeX writer is still EXPERIMENTAL. '        'You must specify the location of the tools/stylesheets/latex.tex '        'stylesheet file contained in the Docutils distribution tarball to '        'make the LaTeX output work.',        (('Specify a stylesheet file.  The path is used verbatim to include '          'the file.  Overrides --stylesheet-path.',          ['--stylesheet'],          {'default': '', 'metavar': '<file>',           'overrides': 'stylesheet_path'}),         ('Specify a stylesheet file, relative to the current working '          'directory.  Overrides --stylesheet.  Default: "%s"'          % default_stylesheet_path,          ['--stylesheet-path'],          {'metavar': '<file>', 'overrides': 'stylesheet',           'default': default_stylesheet_path}),         ('Specify a user stylesheet file.  See --stylesheet.',          ['--user-stylesheet'],          {'default': '', 'metavar': '<file>',           'overrides': 'user_stylesheet_path'}),         ('Specify a user stylesheet file.  See --stylesheet-path.',          ['--user-stylesheet-path'],          {'metavar': '<file>', 'overrides': 'user_stylesheet'})         ),)    settings_defaults = {        # Many Unicode characters are provided by unicode_map.py.        'output_encoding': 'ascii',        'output_encoding_error_handler': 'strict',        # Since we are using superscript footnotes, it is necessary to        # trim whitespace in front of footnote references.        'trim_footnote_reference_space': 1,        # Currently unsupported:        'docinfo_xform': 0,        # During development:        'traceback': 1        }    relative_path_settings = ('stylesheet_path', 'user_stylesheet_path')    config_section = 'newlatex2e writer'    config_section_dependencies = ('writers',)    output = None    """Final translated form of `document`."""    def get_transforms(self):        return writers.Writer.get_transforms(self) + [writer_aux.Compound]    def __init__(self):        writers.Writer.__init__(self)        self.translator_class = LaTeXTranslator    def translate(self):        visitor = self.translator_class(self.document)        self.document.walkabout(visitor)        assert not visitor.context, 'context not empty: %s' % visitor.context        self.output = visitor.astext()        self.head = visitor.header        self.body = visitor.bodyclass LaTeXException(Exception):    """    Exception base class to for exceptions which influence the    automatic generation of LaTeX code.    """class SkipAttrParentLaTeX(LaTeXException):    """    Do not generate ``\Dattr`` and ``\renewcommand{\Dparent}{...}`` for this    node.    To be raised from ``before_...`` methods.    """class SkipParentLaTeX(LaTeXException):    """    Do not generate ``\renewcommand{\DNparent}{...}`` for this node.    To be raised from ``before_...`` methods.    """class LaTeXTranslator(nodes.SparseNodeVisitor):    # Country code by a.schlock.    # Partly manually converted from iso and babel stuff.    iso639_to_babel = {        'no': 'norsk',     # added by hand        'gd': 'scottish',  # added by hand        'sl': 'slovenian',        'af': 'afrikaans',        'bg': 'bulgarian',        'br': 'breton',        'ca': 'catalan',        'cs': 'czech',        'cy': 'welsh',        'da': 'danish',        'fr': 'french',        # french, francais, canadien, acadian        'de': 'ngerman',        # ngerman, naustrian, german, germanb, austrian        'el': 'greek',        'en': 'english',        # english, USenglish, american, UKenglish, british, canadian        'eo': 'esperanto',        'es': 'spanish',        'et': 'estonian',        'eu': 'basque',        'fi': 'finnish',        'ga': 'irish',        'gl': 'galician',        'he': 'hebrew',        'hr': 'croatian',        'hu': 'hungarian',        'is': 'icelandic',        'it': 'italian',        'la': 'latin',        'nl': 'dutch',        'pl': 'polish',        'pt': 'portuguese',        'ro': 'romanian',        'ru': 'russian',        'sk': 'slovak',        'sr': 'serbian',        'sv': 'swedish',        'tr': 'turkish',        'uk': 'ukrainian'    }    # Start with left double quote.    left_quote = 1    def __init__(self, document):        nodes.NodeVisitor.__init__(self, document)        self.settings = document.settings        self.header = []        self.body = []        self.context = []        self.stylesheet_path = utils.get_stylesheet_reference(            self.settings, os.path.join(os.getcwd(), 'dummy'))        if self.stylesheet_path:            self.settings.record_dependencies.add(self.stylesheet_path)        # This ugly hack will be cleaned up when refactoring the        # stylesheet mess.        self.settings.stylesheet = self.settings.user_stylesheet        self.settings.stylesheet_path = self.settings.user_stylesheet_path        self.user_stylesheet_path = utils.get_stylesheet_reference(            self.settings, os.path.join(os.getcwd(), 'dummy'))        if self.user_stylesheet_path:            self.settings.record_dependencies.add(self.user_stylesheet_path)        self.write_header()    def write_header(self):        a = self.header.append        a('%% Generated by Docutils %s <http://docutils.sourceforge.net>.'          % docutils.__version__)        a('')        a('% Docutils settings:')        lang = self.settings.language_code or ''        a(r'\providecommand{\Dlanguageiso}{%s}' % lang)        a(r'\providecommand{\Dlanguagebabel}{%s}' % self.iso639_to_babel.get(            lang, self.iso639_to_babel.get(lang.split('_')[0], '')))        a('')        if self.user_stylesheet_path:            a('% User stylesheet:')            a(r'\input{%s}' % self.user_stylesheet_path)        a('% Docutils stylesheet:')        a(r'\input{%s}' % self.stylesheet_path)        a('')        a('% Default definitions for Docutils nodes:')        for node_name in nodes.node_class_names:            a(r'\providecommand{\DN%s}[1]{#1}' % node_name.replace('_', ''))        a('')        a('% Auxiliary definitions:')        a(r'\providecommand{\Dsetattr}[2]{}')        a(r'\providecommand{\Dparent}{} % variable')        a(r'\providecommand{\Dattr}[5]{#5}')        a(r'\providecommand{\Dattrlen}{} % variable')        a(r'\providecommand{\Dtitleastext}{x} % variable')        a(r'\providecommand{\Dsinglebackref}{} % variable')        a(r'\providecommand{\Dmultiplebackrefs}{} % variable')        a(r'\providecommand{\Dparagraphindented}{false} % variable')        a('\n\n')    unicode_map = unicode_map.unicode_map # comprehensive Unicode map    # Fix problems with unimap.py.    unicode_map.update({        # We have AE or T1 encoding, so "``" etc. work.  The macros        # from unimap.py may *not* work.        u'\u201C': '{``}',        u'\u201D': "{''}",        u'\u201E': '{,,}',        })    character_map = {        '\\': r'{\textbackslash}',        '{': r'{\{}',        '}': r'{\}}',        '$': r'{\$}',        '&': r'{\&}',        '%': r'{\%}',        '#': r'{\#}',        '[': r'{[}',        ']': r'{]}',        '-': r'{-}',        '`': r'{`}',        "'": r"{'}",        ',': r'{,}',        '"': r'{"}',        '|': r'{\textbar}',        '<': r'{\textless}',        '>': r'{\textgreater}',        '^': r'{\textasciicircum}',        '~': r'{\textasciitilde}',        '_': r'{\Dtextunderscore}',        }    character_map.update(unicode_map)    #character_map.update(special_map)        # `att_map` is for encoding attributes.  According to    # <http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/teTeX/latex/latex2e-html/ltx-164.html>,    # the following characters are special: # $ % & ~ _ ^ \ { }    # These work without special treatment in macro parameters:    # $, &, ~, _, ^    att_map = {'#': '\\#',               '%': '\\%',               # We cannot do anything about backslashes.               '\\': '',               '{': '\\{',               '}': '\\}',               # The quotation mark may be redefined by babel.               '"': '"{}',               }    att_map.update(unicode_map)    def encode(self, text, attval=None):        """        Encode special characters in ``text`` and return it.        If attval is true, preserve as much as possible verbatim (used        in attribute value encoding).  If attval is 'width' or        'height', `text` is interpreted as a length value.        """        if attval in ('width', 'height'):            match = re.match(r'([0-9.]+)(\S*)$', text)            assert match, '%s="%s" must be a length' % (attval, text)            value, unit = match.groups()            if unit == '%':                value = str(float(value) / 100)                unit = r'\Drelativeunit'            elif unit in ('', 'px'):                # If \Dpixelunit is "pt", this gives the same notion                # of pixels as graphicx.                value = str(float(value) * 0.75)                unit = '\Dpixelunit'            return '%s%s' % (value, unit)        if attval:            get = self.att_map.get        else:            get = self.character_map.get        text = ''.join([get(c, c) for c in text])        if (self.literal_block or self.inline_literal) and not attval:            # NB: We can have inline literals within literal blocks.            # Shrink '\r\n'.            text = text.replace('\r\n', '\n')            # Convert space.  If "{ }~~~~~" is wrapped (at the            # brace-enclosed space "{ }"), the following non-breaking            # spaces ("~~~~") do *not* wind up at the beginning of the            # next line.  Also note that, for some not-so-obvious            # reason, no hyphenation is done if the breaking space ("{            # }") comes *after* the non-breaking spaces.            if self.literal_block:                # Replace newlines with real newlines.                text = text.replace('\n', '\mbox{}\\\\')                replace_fn = self.encode_replace_for_literal_block_spaces            else:                replace_fn = self.encode_replace_for_inline_literal_spaces            text = re.sub(r'\s+', replace_fn, text)            # Protect hyphens; if we don't, line breaks will be            # possible at the hyphens and even the \textnhtt macro            # from the hyphenat package won't change that.            text = text.replace('-', r'\mbox{-}')            text = text.replace("'", r'{\Dtextliteralsinglequote}')            return text        else:            if not attval:                # Replace space with single protected space.                text = re.sub(r'\s+', '{ }', text)                # Replace double quotes with macro calls.                L = []                for part in text.split(self.character_map['"']):                    if L:                        # Insert quote.                        L.append(self.left_quote and r'{\Dtextleftdblquote}'                                 or r'{\Dtextrightdblquote}')                        self.left_quote = not self.left_quote                    L.append(part)                return ''.join(L)            else:                return text    def encode_replace_for_literal_block_spaces(self, match):        return '~' * len(match.group())    def encode_replace_for_inline_literal_spaces(self, match):        return '{ }' + '~' * (len(match.group()) - 1)    def astext(self):        return '\n'.join(self.header) + (''.join(self.body))    def append(self, text, newline='%\n'):        """        Append text, stripping newlines, producing nice LaTeX code.        """        lines = ['  ' * self.indentation_level + line + newline                 for line in text.splitlines(0)]        self.body.append(''.join(lines))    def visit_Text(self, node):        self.append(self.encode(node.astext()))    def depart_Text(self, node):        pass    def is_indented(self, paragraph):        """Return true if `paragraph` should be first-line-indented."""        assert isinstance(paragraph, nodes.paragraph)        siblings = [n for n in paragraph.parent if                    self.is_visible(n) and not isinstance(n, nodes.Titular)]        index = siblings.index(paragraph)        if ('continued' in paragraph['classes'] or            index > 0 and isinstance(siblings[index-1], nodes.transition)):            return 0        # Indent all but the first paragraphs.        return index > 0    def before_paragraph(self, node):        self.append(r'\renewcommand{\Dparagraphindented}{%s}'                    % (self.is_indented(node) and 'true' or 'false'))    def before_title(self, node):        self.append(r'\renewcommand{\Dtitleastext}{%s}'                    % self.encode(node.astext()))        self.append(r'\renewcommand{\Dhassubtitle}{%s}'                    % ((len(node.parent) > 2 and                        isinstance(node.parent[1], nodes.subtitle))                       and 'true' or 'false'))    def before_generated(self, node):        if 'sectnum' in node['classes']:            node[0] = node[0].strip()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久av麻豆果冻| 午夜国产不卡在线观看视频| 亚洲精品少妇30p| 久久99精品久久久久久久久久久久 | 久久久99精品免费观看| 亚洲精品欧美二区三区中文字幕| 久久国产人妖系列| 精品视频一区二区三区免费| 国产精品网站一区| 九九国产精品视频| 欧美日韩国产综合久久 | 成人动漫中文字幕| 日韩欧美成人一区二区| 夜夜精品视频一区二区| 成人高清在线视频| 国产三级欧美三级日产三级99| 三级不卡在线观看| 欧美日韩在线直播| 亚洲日本va午夜在线影院| 国产成人综合网站| 久久精品人人爽人人爽| 黄一区二区三区| 日韩免费视频线观看| 日韩激情一区二区| 9191成人精品久久| 三级欧美韩日大片在线看| 欧美日韩中文字幕精品| 亚洲综合视频网| 色成年激情久久综合| 亚洲三级在线看| 91小视频在线免费看| 国产精品高潮呻吟久久| 成人a区在线观看| 中文字幕一区二区在线播放| 成人精品视频一区| 日韩一区中文字幕| 色综合天天在线| 亚洲精品日韩一| 欧美日本乱大交xxxxx| 日韩制服丝袜先锋影音| 欧美丰满嫩嫩电影| 琪琪久久久久日韩精品| 精品国产区一区| 成熟亚洲日本毛茸茸凸凹| 日本一区二区免费在线| 99国产精品国产精品毛片| 日韩一区欧美一区| 欧美午夜精品一区二区三区| 日韩av一区二区在线影视| 日韩欧美国产成人一区二区| 国产呦萝稀缺另类资源| 国产精品久久夜| 欧美午夜电影一区| 精品一区二区三区香蕉蜜桃| 久久久噜噜噜久久人人看 | 欧美在线一区二区| 日本中文在线一区| 国产视频一区二区在线观看| hitomi一区二区三区精品| 亚洲国产综合视频在线观看| 日韩美女主播在线视频一区二区三区| 紧缚捆绑精品一区二区| 国产精品毛片a∨一区二区三区| 色8久久人人97超碰香蕉987| 热久久久久久久| 国产精品理论片在线观看| 欧美视频你懂的| 国产99久久久久| 一级女性全黄久久生活片免费| 日韩视频免费观看高清完整版| 床上的激情91.| 日韩电影在线免费看| 国产精品天干天干在线综合| 欧美日韩国产一级二级| 成人黄色小视频在线观看| 五月婷婷久久综合| 国产精品美女久久久久久久| 制服丝袜成人动漫| 成人18精品视频| 日韩精品福利网| 亚洲天堂成人在线观看| 精品久久久久一区二区国产| 91国在线观看| 成人av在线电影| 久久精品国产久精国产| 亚洲一区二区3| ●精品国产综合乱码久久久久| 欧美一区中文字幕| 色一区在线观看| 国产成人免费网站| 久久精品久久久精品美女| 亚洲精品国产精品乱码不99| 久久久不卡影院| 欧美一区午夜视频在线观看| 欧美三级蜜桃2在线观看| av一区二区三区| 国产乱子轮精品视频| 蜜桃视频一区二区三区| 午夜电影网一区| 一区二区三区久久| **性色生活片久久毛片| 亚洲国产精品v| 久久久久国产精品麻豆| 日韩欧美色综合| 91精品国产综合久久香蕉麻豆| 91成人网在线| 欧美亚洲动漫制服丝袜| 色噜噜夜夜夜综合网| 91小视频在线免费看| av激情综合网| 99久久久精品| 成人av在线一区二区三区| 成人国产精品免费网站| av不卡在线观看| 91色在线porny| 91免费观看视频在线| 色哟哟亚洲精品| 欧美亚男人的天堂| 欧美日韩亚洲综合一区| 欧美日韩国产成人在线91| 欧美欧美午夜aⅴ在线观看| 欧美年轻男男videosbes| 欧美日本在线视频| 欧美一区二区三区四区五区| 91麻豆精品国产自产在线 | 91国内精品野花午夜精品 | 国产日韩欧美麻豆| 日本一区二区动态图| 国产日产欧美一区二区三区| 国产精品午夜久久| 亚洲欧美一区二区不卡| 亚洲一区二区三区精品在线| 日韩精品电影一区亚洲| 激情图片小说一区| 成人午夜在线播放| 色播五月激情综合网| 91精品国产手机| 久久久久久久久99精品| 中文字幕欧美国产| 亚洲精品视频自拍| 日本欧美韩国一区三区| 国产中文字幕一区| 91理论电影在线观看| 欧美久久一二三四区| 久久色.com| 亚洲欧美二区三区| 免费观看在线色综合| 成人激情小说网站| 欧洲另类一二三四区| 日韩精品专区在线| 国产精品久久福利| 日日夜夜免费精品| 国产精品一区二区视频| 色婷婷综合久久久中文一区二区 | 99麻豆久久久国产精品免费| 欧美三级欧美一级| 中文字幕av资源一区| 亚洲国产视频一区| 国产精品99精品久久免费| 欧美视频一区二区三区在线观看| 26uuu精品一区二区| 亚洲自拍偷拍九九九| 国产福利一区二区三区| 欧美在线观看禁18| 国产丝袜美腿一区二区三区| 午夜精品视频一区| 成人做爰69片免费看网站| 4438成人网| 一区二区三区久久久| 国产suv一区二区三区88区| 欧美日本免费一区二区三区| 国产精品国产三级国产普通话99 | 国产一区999| 538在线一区二区精品国产| 国产精品久久久久久久久动漫 | 一本大道av伊人久久综合| 欧美精品一区二区在线观看| 亚洲第一久久影院| 成人小视频在线| 久久久久久久综合| 奇米888四色在线精品| 欧洲另类一二三四区| 成人免费在线观看入口| 高潮精品一区videoshd| 日韩女优视频免费观看| 亚洲成人av福利| 91色视频在线| 中文字幕永久在线不卡| 国产成a人亚洲精| 精品成人在线观看| 麻豆精品视频在线| 欧美一区二区三区爱爱| 午夜国产精品影院在线观看| 欧美性视频一区二区三区| 一区二区三区丝袜| 91老司机福利 在线| 一区二区在线观看视频在线观看| 色综合久久久久综合体| 亚洲欧洲99久久| 色婷婷综合久久久|