% Asymptote 1.79 listings syntex support % 2008-07-06 \usepackage[hyperref]{xcolor} \definecolor{bg-color}{rgb}{0.96,1,0.95} \definecolor{shadecolor}{rgb}{0.96,1,0.95} \definecolor{txt-color}{HTML}{000000} \definecolor{builtin}{HTML}{DA70D6} \definecolor{comment}{HTML}{B22222} \definecolor{comment-delimiter}{HTML}{B22222} \definecolor{constant}{HTML}{5F9EA0} \definecolor{function-name}{HTML}{0000FF} \definecolor{keyword}{HTML}{a020F0} \definecolor{string}{HTML}{BC8F8F} \definecolor{type}{HTML}{228B22} \definecolor{variable-name}{HTML}{B8860B} \definecolor{brick}{HTML}{7B0C00} % keywords 对应 asy-keyword-name % keywords=[2] 对应 asy-type-name % keywords=[3] 对应 asy-function-name % keywords=[4] 对应 asy-variable-name \usepackage{listings} % 语言定义 \lstdefinelanguage{Asymptote}{alsoletter={}, sensitive=true,% 大小写 keywords={and, controls, tension, atleast, curl, if, else, while, for, do, return, break, continue, struct, typedef, new, access, import, unravel, from, include, quote, static, public, private, restricted, this, explicit, true, false, null, cycle, newframe, operator}, keywords=[2]{Braid, FitResult, Label, Legend, Rmf, TreeNode, abscissa, arc, arrowhead, binarytree, binarytreeNode, block, bool, bool3, bounds, bqe, circle, conic, coord, coordsys, cputime, ellipse, file, filltype, frame, grid3, guide, horner, hsv, hyperbola, indexedTransform, int, inversion, key, line, linefit, marginT, marker, mass, object, pair, parabola, path, path3, pen, picture, point, position, projection, real, revolution, scaleT, scientific, segment, side, slice, splitface, string, surface, tensionSpecifier, ticklocate, ticksgridT, tickvalues, transform, transformation, tree, triangle, trilinear, triple, vector, vertex, void}, keywords=[3]{AND, Arc, ArcArrow, ArcArrows, Arrow, Arrows, Automatic, AvantGarde, BBox, BWRainbow, BWRainbow2, Bar, Bars, BeginArcArrow, BeginArrow, BeginBar, BeginDotMargin, BeginMargin, BeginPenMargin, Blank, Bookman, Bottom, BottomTop, Bounds, Break, Broken, BrokenLog, Ceil, Circle, CircleBarIntervalMarker, Cos, Courier, CrossIntervalMarker, DefaultFormat, DefaultLogFormat, Degrees, Dir, DotMargin, DotMargins, Dotted, Draw, Drawline, Embed, EndArcArrow, EndArrow, EndBar, EndDotMargin, EndMargin, EndPenMargin, Fill, FillDraw, Floor, Format, Full, Gaussian, Gaussrand, Gaussrandpair, Gradient, Grayscale, Helvetica, Hermite, HookHead, InOutTicks, InTicks, J, Label, Landscape, Left, LeftRight, LeftTicks, Legend, Linear, Link, Log, LogFormat, Margin, Margins, Mark, MidArcArrow, MidArrow, NOT, NewCenturySchoolBook, NoBox, NoMargin, NoModifier, NoTicks, NoTicks3, NoZero, NoZeroFormat, None, OR, OmitFormat, OmitTick, OutTicks, Ox, Oy, Palatino, PaletteTicks, Pen, PenMargin, PenMargins, Pentype, Portrait, RadialShade, Rainbow, Range, Relative, Right, RightTicks, Rotate, Round, SQR, Scale, ScaleX, ScaleY, ScaleZ, Seascape, Shift, Sin, Slant, Spline, StickIntervalMarker, Straight, Symbol, Tan, TeXify, Ticks, Ticks3, TildeIntervalMarker, TimesRoman, Top, TrueMargin, UnFill, UpsideDown, Wheel, X, XEquals, XOR, XY, XYEquals, XYZero, XYgrid, XZEquals, XZZero, XZero, XZgrid, Y, YEquals, YXgrid, YZ, YZEquals, YZZero, YZero, YZgrid, Z, ZX, ZXgrid, ZYgrid, ZapfChancery, ZapfDingbats, _cputime, _draw, _eval, _image, _labelpath, _strokepath, _texpath, aCos, aSin, aTan, abort, abs, accel, acos, acosh, acot, acsc, add, addArrow, addMargins, addSaveFunction, addnode, addnodes, addpenarc, addpenline, addseg, adjust, alias, align, all, altitude, angabscissa, angle, angpoint, animate, annotate, anticomplementary, antipedal, apply, approximate, arc, arcarrowsize, arccircle, arcdir, arcfromcenter, arcfromfocus, arclength, arcnodesnumber, arcpoint, arcsubtended, arcsubtendedcenter, arctime, arctopath, array, arrow, arrow2, arrowbase, arrowbasepoints, arrowsize, asec, asin, asinh, ask, assert, asy, asycode, asydir, asyfigure, asyfilecode, asyinclude, asywrite, atan, atan2, atanh, atbreakpoint, atexit, atime, attach, attract, atupdate, autoformat, autoscale, autoscale3, axes, axes3, axialshade, axis, axiscoverage, azimuth, babel, background, bangles, bar, barmarksize, barsize, basealign, baseline, bbox, beep, begin, beginclip, begingroup, beginpoint, between, bevel, bezier, bezierP, bezierPP, bezierPPP, bezulate, bibliography, bibliographystyle, binarytree, binarytreeNode, binomial, binput, bins, bisector, bisectorpoint, bispline, blend, boutput, box, bqe, breakpoint, breakpoints, brick, buildRestoreDefaults, buildRestoreThunk, buildcycle, bulletcolor, canonical, canonicalcartesiansystem, cartesiansystem, case1, case2, case3, cbrt, cd, ceil, center, centerToFocus, centroid, cevian, change2, changecoordsys, checkSegment, checkconditionlength, checker, checklengths, checkposition, checktriangle, choose, circle, circlebarframe, circlemarkradius, circlenodesnumber, circumcenter, circumcircle, clamped, clear, clip, clipdraw, close, cmyk, code, colatitude, collect, collinear, color, colorless, colors, colorspace, comma, compassmark, complement, complementary, concat, concurrent, cone, conic, conicnodesnumber, conictype, conj, connect, containmentTree, contains, contour, contour3, controlSpecifier, convert, coordinates, coordsys, copy, cos, cosh, cot, countIntersections, cputime, crop, cropcode, cross, crossframe, crosshatch, crossmarksize, csc, csv, cubicroots, curabscissa, curlSpecifier, curpoint, currentarrow, currentexitfunction, currentmomarrow, currentpolarconicroutine, curve, cut, cutafter, cutbefore, cyclic, cylinder, debugger, deconstruct, defaultdir, defaultformat, defaultpen, defaultspline, defined, degenerate, degrees, delete, deletepreamble, determinant, diagonal, diamond, diffdiv, dimension, dir, dirSpecifier, dirtime, display, distance, divisors, do_overpaint, dot, dotframe, dotsize, downcase, draw, drawAll, drawDoubleLine, drawFermion, drawGhost, drawGluon, drawMomArrow, drawPhoton, drawScalar, drawVertex, drawVertexBox, drawVertexBoxO, drawVertexBoxX, drawVertexO, drawVertexOX, drawVertexTriangle, drawVertexTriangleO, drawVertexX, drawarrow, drawarrow2, drawline, drawtick, duplicate, elle, ellipse, ellipsenodesnumber, embed, embed3, empty, enclose, end, endScript, endclip, endgroup, endl, endpoint, endpoints, eof, eol, equation, equations, erase, erf, erfc, error, errorbar, errorbars, eval, excenter, excircle, exit, exitXasyMode, exitfunction, exp, expfactors, expi, expm1, exradius, extend, extension, extouch, fabs, factorial, fermat, fft, fhorner, figure, file, filecode, fill, filldraw, filloutside, fillrule, filltype, find, finite, finiteDifferenceJacobian, firstcut, firstframe, fit, fixedscaling, floor, flush, fmdefaults, fmod, focusToCenter, font, fontcommand, fontsize, foot, format, frac, frequency, fromCenter, fromFocus, fspline, functionshade, gamma, generate_random_backtrace, generateticks, gergonne, getc, getint, getpair, getreal, getstring, gettriple, gluon, gouraudshade, graph, graphic, gray, grestore, grid, grid3, gsave, halfbox, hatch, hdiffdiv, hermite, hex, histogram, history, hline, hprojection, hsv, hyperbola, hyperbolanodesnumber, hyperlink, hypot, identity, image, incenter, incentral, incircle, increasing, incrementposition, indexedTransform, initXasyMode, initdefaults, input, inradius, insert, inside, integrate, interactive, interior, interp, interpolate, intersect, intersection, intersectionpoint, intersectionpoints, intersections, intouch, inverse, inversion, invisible, is3D, isDuplicate, isogonal, isogonalconjugate, isotomic, isotomicconjugate, isparabola, italic, item, key, kurtosis, kurtosisexcess, label, labelaxis, labelmargin, labelpath, labels, labeltick, labelx, labelx3, labely, labely3, labelz, labelz3, lastcut, latex, latitude, latticeshade, layer, layout, ldexp, leastsquares, legend, legenditem, length, lift, limits, line, linear, linecap, linejoin, linemargin, lineskip, linetype, linewidth, link, list, lm_enorm, lm_evaluate_default, lm_lmdif, lm_lmpar, lm_minimize, lm_print_default, lm_print_quiet, lm_qrfac, lm_qrsolv, locale, locate, locatefile, location, log, log10, log1p, logaxiscoverage, longitude, lookup, magnetize, makeNode, makedraw, makepen, map, margin, markangle, markangleradius, markanglespace, markarc, marker, markinterval, marknodes, markrightangle, markuniform, mass, masscenter, massformat, math, max, max3, maxbound, maxcoords, maxlength, maxratio, maxtimes, mean, medial, median, midpoint, min, min3, minbound, minipage, minratio, mintimes, miterlimit, momArrowPath, momarrowsize, monotonic, nativeformat, natural, needshipout, newl, newpage, newslide, newton, newtree, nextframe, nextnormal, nextpage, nib, nodabscissa, none, normalvideo, notaknot, numberpage, nurb, object, offset, onpath, opacity, opposite, orientation, orig_circlenodesnumber, orig_circlenodesnumber1, orig_draw, orig_ellipsenodesnumber, orig_ellipsenodesnumber1, orig_hyperbolanodesnumber, orig_parabolanodesnumber, origin, orthic, orthocentercenter, outformat, outline, outprefix, output, overwrite, pack, pad, pairs, palette, parabola, parabolanodesnumber, parallel, partialsum, path, path3, pattern, pause, pdf, pedal, periodic, perp, perpendicular, perpendicularmark, phantom, phi1, phi2, phi3, photon, piecewisestraight, point, polar, polarconicroutine, polargraph, polygon, postcontrol, postscript, pow10, ppoint, prc, prc0, precision, precontrol, prepend, print_random_addresses, project, projection, purge, pwhermite, quadrant, quadraticroots, quantize, quarticroots, quotient, radialshade, radians, radicalcenter, radicalline, radius, rand, randompath, rd, read1, read2, read3, readline, realmult, realquarticroots, rectangle, rectangular, rectify, reflect, relabscissa, relative, relativedistance, reldir, relpoint, reltime, remainder, remark, removeDuplicates, rename, replace, report, rescale, rescale2, resetdefaultpen, restore, restoredefaults, reverse, reversevideo, rf, rfind, rgb, rgba, rgbint, rmf, rms, rotate, rotateO, rotation, round, roundbox, roundedpath, roundrectangle, samecoordsys, sameside, sample, save, savedefaults, saveline, scale, scale3, scaleO, scaleT, scaleless, scientific, search, searchtree, sec, secondaryX, secondaryY, seconds, section, sector, seek, seekeof, segment, sequence, setpens, sgn, sgnd, sharpangle, sharpdegrees, shift, shiftless, shipout, shipout3, show, side, simeq, simpson, sin, single, sinh, size, size3, skewness, skip, slant, sleep, slope, slopefield, solve, solveBVP, sort, sourceline, sphere, split, sqrt, square, srand, standardizecoordsys, startScript, startTrembling, stdev, step, stickframe, stickmarksize, stickmarkspace, stop, straight, straightness, string, stripdirectory, stripextension, stripfile, strokepath, subdivide, subitem, subpath, substr, sum, surface, symmedial, symmedian, system, tab, tableau, tan, tangent, tangential, tangents, tanh, tell, tensionSpecifier, tensorshade, tex, texcolor, texify, texpath, texpreamble, texreset, texshipout, texsize, textpath, thick, thin, tick, tickMax, tickMax3, tickMin, tickMin3, ticklabelshift, ticklocate, tildeframe, tildemarksize, tile, tiling, time, times, title, titlepage, topbox, transform, transformation, transpose, tremble, trembleFuzz, tremble_circlenodesnumber, tremble_circlenodesnumber1, tremble_draw, tremble_ellipsenodesnumber, tremble_ellipsenodesnumber1, tremble_hyperbolanodesnumber, tremble_marknodes, tremble_markuniform, tremble_parabolanodesnumber, triangle, triangleAbc, triangleabc, triangulate, tricoef, tridiagonal, trilinear, trim, trueMagnetize, truepoint, tube, uncycle, unfill, uniform, unit, unitrand, unitsize, unityroot, unstraighten, upcase, updatefunction, upscale, uptodate, usepackage, usersetting, usetypescript, usleep, value, variance, variancebiased, vbox, vector, vectorfield, verbatim, view, vline, vprojection, windingnumber, word, write, xaxis, xaxis3, xaxis3At, xaxisAt, xequals, xinput, xlimits, xoutput, xpart, xscale, xscaleO, xtick, xtick3, xtrans, yaxis, yaxis3, yaxis3At, yaxisAt, yequals, ylimits, ypart, yscale, yscaleO, ytick, ytick3, ytrans, zaxis3, zaxis3At, zero, zero3, zlimits, zpart, ztick, ztick3, ztrans}, keywords=[4]{AliceBlue, Align, Allow, AntiqueWhite, Apricot, Aqua, Aquamarine, Aspect, Azure, BeginPoint, Beige, Bisque, Bittersweet, Black, BlanchedAlmond, Blue, BlueGreen, BlueViolet, Both, Break, BrickRed, Brown, BurlyWood, BurntOrange, CCW, CW, CadetBlue, CarnationPink, Center, Centered, Cerulean, Chartreuse, Chocolate, Coeff, Coral, CornflowerBlue, Cornsilk, Crimson, Crop, Cyan, Dandelion, DarkBlue, DarkCyan, DarkGoldenrod, DarkGray, DarkGreen, DarkKhaki, DarkMagenta, DarkOliveGreen, DarkOrange, DarkOrchid, DarkRed, DarkSalmon, DarkSeaGreen, DarkSlateBlue, DarkSlateGray, DarkTurquoise, DarkViolet, DeepPink, DeepSkyBlue, DefaultHead, DimGray, DodgerBlue, Dotted, Draw, E, ENE, EPS, ESE, E_Euler, E_PC, E_RK2, E_RK3BS, Emerald, EndPoint, Euler, Fill, FillDraw, FireBrick, FloralWhite, ForestGreen, Fuchsia, Gainsboro, GhostWhite, Gold, Goldenrod, Gray, Green, GreenYellow, Honeydew, HookHead, Horizontal, HotPink, I, IgnoreAspect, IndianRed, Indigo, Ivory, JOIN_IN, JOIN_OUT, JungleGreen, Khaki, LM_DWARF, LM_MACHEP, LM_SQRT_DWARF, LM_SQRT_GIANT, LM_USERTOL, Label, Lavender, LavenderBlush, LawnGreen, LeftJustified, LeftSide, LemonChiffon, LightBlue, LightCoral, LightCyan, LightGoldenrodYellow, LightGreen, LightGrey, LightPink, LightSalmon, LightSeaGreen, LightSkyBlue, LightSlateGray, LightSteelBlue, LightYellow, Lime, LimeGreen, Linear, Linen, Log, Logarithmic, Magenta, Mahogany, Mark, MarkFill, Maroon, Max, MediumAquamarine, MediumBlue, MediumOrchid, MediumPurple, MediumSeaGreen, MediumSlateBlue, MediumSpringGreen, MediumTurquoise, MediumVioletRed, Melon, MidPoint, MidnightBlue, Min, MintCream, MistyRose, Moccasin, Move, MoveQuiet, Mulberry, N, NE, NNE, NNW, NW, NavajoWhite, Navy, NavyBlue, NoAlign, NoCrop, NoFill, NoSide, OldLace, Olive, OliveDrab, OliveGreen, Orange, OrangeRed, Orchid, Ox, Oy, PC, PaleGoldenrod, PaleGreen, PaleTurquoise, PaleVioletRed, PapayaWhip, Peach, PeachPuff, Periwinkle, Peru, PineGreen, Pink, Plum, PowderBlue, ProcessBlue, Purple, RK2, RK3, RK3BS, RK4, RK5, RK5DP, RK5F, RawSienna, Red, RedOrange, RedViolet, Rhodamine, RightJustified, RightSide, RosyBrown, RoyalBlue, RoyalPurple, RubineRed, S, SE, SSE, SSW, SW, SaddleBrown, Salmon, SandyBrown, SeaGreen, Seashell, Sepia, Sienna, Silver, SimpleHead, SkyBlue, SlateBlue, SlateGray, Snow, SpringGreen, SteelBlue, Suppress, SuppressQuiet, Tan, TeXHead, Teal, TealBlue, Thistle, Ticksize, Tomato, Turquoise, UnFill, VERSION, Value, Vertical, Violet, VioletRed, W, WNW, WSW, Wheat, White, WhiteSmoke, WildStrawberry, XYAlign, YAlign, Yellow, YellowGreen, YellowOrange, addpenarc, addpenline, align, allowstepping, angularsystem, animationdelay, appendsuffix, arcarrowangle, arcarrowfactor, arrow2sizelimit, arrowangle, arrowbarb, arrowdir, arrowfactor, arrowhookfactor, arrowlength, arrowsizelimit, arrowtexfactor, authorpen, axis, axiscoverage, axislabelfactor, background, backgroundcolor, backgroundpen, barfactor, barmarksizefactor, basealign, baselinetemplate, beveljoin, bigvertexpen, bigvertexsize, black, blue, bm, bottom, bp, brown, bullet, byfoci, byvertices, camerafactor, chartreuse, circlemarkradiusfactor, circlenodesnumberfactor, circleprecision, circlescale, cm, codefile, codepen, codeskip, colorPen, coloredNodes, coloredSegments, conditionlength, conicnodesfactor, count, cputimeformat, crossmarksizefactor, currentcoordsys, currentpatterns, currentpen, currentpicture, currentposition, currentprojection, curvilinearsystem, cuttings, cyan, darkblue, darkbrown, darkcyan, darkgray, darkgreen, darkgrey, darkmagenta, darkolive, darkred, dashdotted, dashed, datepen, dateskip, debuggerlines, debugging, deepblue, deepcyan, deepgray, deepgreen, deepgrey, deepmagenta, deepred, default, defaultControl, defaultS, defaultbackpen, defaultcoordsys, defaultfilename, defaultformat, defaultmassformat, defaultpen, diagnostics, differentlengths, dot, dotfactor, dotframe, dotted, doublelinepen, doublelinespacing, down, duplicateFuzz, ellipsenodesnumberfactor, eps, epsgeo, epsilon, evenodd, extendcap, fermionpen, figureborder, figuremattpen, firstnode, firststep, foregroundcolor, fuchsia, fuzz, gapfactor, ghostpen, gluonamplitude, gluonpen, gluonratio, gray, green, grey, hatchepsilon, havepagenumber, heavyblue, heavycyan, heavygray, heavygreen, heavygrey, heavymagenta, heavyred, hline, hwratio, hyperbolanodesnumberfactor, identity4, ignore, inXasyMode, inch, inches, includegraphicscommand, inf, infinity, institutionpen, intMax, intMin, invert, invisible, itempen, itemskip, itemstep, labelmargin, landscape, lastnode, left, legendhskip, legendlinelength, legendmargin, legendmarkersize, legendmaxrelativewidth, legendvskip, lightblue, lightcyan, lightgray, lightgreen, lightgrey, lightmagenta, lightolive, lightred, lightyellow, linemargin, lm_infmsg, lm_shortmsg, longdashdotted, longdashed, magenta, magneticPoints, magneticRadius, mantissaBits, markangleradius, markangleradiusfactor, markanglespace, markanglespacefactor, mediumblue, mediumcyan, mediumgray, mediumgreen, mediumgrey, mediummagenta, mediumred, mediumyellow, middle, minDistDefault, minblockheight, minblockwidth, mincirclediameter, minipagemargin, minipagewidth, minvertexangle, miterjoin, mm, momarrowfactor, momarrowlength, momarrowmargin, momarrowoffset, momarrowpen, monoPen, morepoints, nCircle, newbulletcolor, ngraph, nil, nmesh, nobasealign, nodeMarginDefault, nodesystem, nomarker, nopoint, noprimary, nullpath, nullpen, numarray, ocgindex, oldbulletcolor, olive, orange, origin, overpaint, page, pageheight, pagemargin, pagenumberalign, pagenumberpen, pagenumberposition, pagewidth, paleblue, palecyan, palegray, palegreen, palegrey, palemagenta, palered, paleyellow, parabolanodesnumberfactor, perpfactor, phi, photonamplitude, photonpen, photonratio, pi, pink, plain, plus, preamblenodes, pt, purple, r3, r4a, r4b, randMax, realDigits, realEpsilon, realMax, realMin, red, relativesystem, reverse, right, roundcap, roundjoin, royalblue, salmon, saveFunctions, scalarpen, sequencereal, settings, shipped, signedtrailingzero, solid, springgreen, sqrtEpsilon, squarecap, squarepen, startposition, stdin, stdout, stepfactor, stepfraction, steppagenumberpen, stepping, stickframe, stickmarksizefactor, stickmarkspacefactor, textpen, ticksize, tildeframe, tildemarksizefactor, tinv, titlealign, titlepagepen, titlepageposition, titlepen, titleskip, top, trailingzero, treeLevelStep, treeMinNodeWidth, treeNodeStep, trembleAngle, trembleFrequency, trembleRandom, tremblingMode, undefined, unitcircle, unitsquare, up, urlpen, urlskip, version, vertexpen, vertexsize, viewportmargin, viewportsize, vline, white, wye, xformStack, yellow, ylabelwidth, zerotickfuzz, zerowinding}, % otherkeywords={!,@,\$,\%,+,-,^,=,>,<,->, % --,..,**,::,\@\@,\$\$,---,...},% 运算符等,但小心会与注释冲突 morecomment=[l]{//},% 注释 morecomment=[s]{/*}{*/},% 注释 morestring=[b]",% 字符串 morestring=[b]',% 字符串 } % 定义别名 \lstalias{asy}{Asymptote} \lstset{%extendedchars=false,% 解决中文跨页出错的问题;对 xetex 无用 language={Asymptote}, basewidth={.5em}, basicstyle={\ttfamily}, keywordstyle={\color{keyword}}, keywordstyle=[2]{\color{type}}, keywordstyle=[3]{\color{function-name}}, keywordstyle=[4]{\color{variable-name}}, commentstyle={\color{comment}}, stringstyle={\color{string}}, xleftmargin={2em}, xrightmargin={2em}, tabsize=8, backgroundcolor={\color{shadecolor}}, % numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt} % \lstdefinestyle{lesscolor}{keywordstyle={\color{keyword!50!black}}, keywordstyle=[2]{\color{type!50!black}}, keywordstyle=[3]{\color{function-name!50!black}}, keywordstyle=[4]{\color{variable-name!50!black}}, commentstyle={\color{comment!50!black}}, stringstyle={\color{string!50!black}}} % \def\oldvert{|} % 保存字符 | 的旧定义(其 catcode 在此定义读入时已确定) \lstMakeShortInline[style=lesscolor]\| \def\inlinecode{\expandafter\lstinline[style=lesscolor]} \endinput % vim:tw=77: