diff --git a/assets/latex/documenter.sty b/assets/latex/documenter.sty index 35e1a69b68..4c4c30c2a5 100644 --- a/assets/latex/documenter.sty +++ b/assets/latex/documenter.sty @@ -31,14 +31,7 @@ % % listings -\usepackage{minted} -\setminted{ - breaklines = true, - fontsize = \small, - frame = none, - bgcolor = codeblock-background, - rulecolor=codeblock-border, -} + % % tables diff --git a/assets/latex/jlcode.sty b/assets/latex/jlcode.sty new file mode 100644 index 0000000000..6b7be71f05 --- /dev/null +++ b/assets/latex/jlcode.sty @@ -0,0 +1,2247 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% +%%% jlcode.sty +%%% Copyright 2018 Willi Gerbig +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any +%% later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status 'maintained'. +%% +%% The Current Maintainer of this work is Willi Gerbig. +%% +%% This work consists of the files jlcode.sty, createkwlists.jl, +%% createucclist.jl, testfile.jl, testfile2.jl and manual.pdf. +%% +%% +%% +% Keywords, literals, built-ins, macros and functions were created by +% createkwlists.jl, which was inspired by the following script: +% https://github.com/isagalaev/highlight.js/blob/master/src/languages/julia.js +% Colors for the themes come from: +% https://docs.julialang.org/en/v1/assets/themes/documenter-light.css +% https://github.com/dietercastel/jlcode/blob/darktheme/jlcode.sty +% special unicode characters come from: +% https://docs.julialang.org/en/v1/manual/unicode-input/ +% The JuliaMono font approach was inspired by +% https://github.com/mossr/julia-mono-listings +% and the JuliaMono font files were downloaded from: +% https://github.com/mossr/julia-mono-listings + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% defining the jlcode package +\def\fileversion{6.1} +\def\filedate{2022/05/03} + +\typeout{-- Package: `jlcode' \fileversion\space <\filedate> --} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{jlcode}[\filedate\space\fileversion] + + + + + +% loading required packages +\RequirePackage{iftex} + +\RequirePackage{listings} +\RequirePackage{xcolor} % for coloring + +\iftutex % LuaTeX + XeTeX +\RequirePackage{fontspec} +\else % PDFTeX +\RequirePackage{textcomp} % for upright single quotes +\RequirePackage{amssymb} % for the ϰ symbol +\RequirePackage{eurosym} % for the € symbol +\RequirePackage{pmboxdraw} % for the unicode box characters +\PassOptionsToPackage{T1}{fontenc} +\RequirePackage{fontenc} % for the « and » symbols +\fi + +\RequirePackage{calc} % for the creation of the code box +\RequirePackage{relsize} % for scaling the font sizes +\RequirePackage{etoolbox} % for \ifdefstring +\RequirePackage{kvoptions} % for adding options to this package + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% option declarations +\SetupKeyvalOptions{family=jlc, prefix=jlc@} + +% defining package options +\DeclareBoolOption[true]{autoload} +\DeclareBoolOption[true]{defaultmonofont} +\DeclareBoolOption[false]{linenumbers} +\DeclareStringOption[80]{charsperline} +\DeclareStringOption[default]{theme}[default] +\DisableKeyvalOption[action=error,package=jlcode]{jlc}{courierasttdflt} +\DisableKeyvalOption[action=error,package=jlcode]{jlc}{usecourier} +\DisableKeyvalOption[action=error,package=jlcode]{jlc}{usecolors} +\DisableKeyvalOption[action=error,package=jlcode]{jlc}{usebox} +\DisableKeyvalOption[action=error,package=jlcode]{jlc}{usecolors} +\DisableKeyvalOption[action=error,package=jlcode]{jlc}{usebox} + +% default option rule +\DeclareDefaultOption{\@unknownoptionerror} + +% processing options +\ProcessLocalKeyvalOptions* + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% julia language definition +\lstdefinelanguage{julia} +{% +% +% julia's keywords: +% +morekeywords=[1] +{% +abstract type,baremodule,begin,break,catch,ccall,const,continue,do,else,elseif,% +end,export,finally,for,function,global,if,import,in,isa,let,local,macro,module,% +mutable struct,primitive type,quote,return,struct,try,using,where,while% +},% +% +% julia's literals: +% +morekeywords=[2] +{% +ARCH,ARGS,Apr,April,Aug,August,BINDIR,CPU_NAME,CPU_THREADS,C_NULL,DEPOT_PATH,% +DL_LOAD_PATH,Dec,December,ENDIAN_BOM,ENV,Feb,February,Fri,Friday,I,% +ISODateFormat,ISODateTimeFormat,ISOTimeFormat,Inf,Inf16,Inf32,Inf64,% +InsertionSort,JIT,Jan,January,Jul,July,Jun,June,KERNEL,LOAD_PATH,MACHINE,Mar,% +March,May,MergeSort,Mon,Monday,NaN,NaN16,NaN32,NaN64,Nov,November,Oct,October,% +PKGMODE_MANIFEST,PKGMODE_PROJECT,PRESERVE_ALL,PRESERVE_DIRECT,PRESERVE_NONE,% +PRESERVE_SEMVER,PRESERVE_TIERED,PROGRAM_FILE,QuickSort,RFC1123Format,% +RTLD_DEEPBIND,RTLD_FIRST,RTLD_GLOBAL,RTLD_LAZY,RTLD_LOCAL,RTLD_NODELETE,% +RTLD_NOLOAD,RTLD_NOW,RoundDown,RoundFromZero,RoundNearest,RoundNearestTiesAway,% +RoundNearestTiesUp,RoundToZero,RoundUp,STDLIB,Sat,Saturday,Sep,September,Sun,% +Sunday,Thu,Thursday,Tue,Tuesday,UPLEVEL_MAJOR,UPLEVEL_MINOR,UPLEVEL_PATCH,% +VERSION,Vararg,WORD_SIZE,Wed,Wednesday,catalan,devnull,dlext,e,eulergamma,% +false,golden,im,missing,nothing,pi,stderr,stdin,stdout,true,undef,γ,π,φ,ℯ% +},% +% +% julia's built-ins: +% +morekeywords=[3] +{% +AbstractArray,AbstractChannel,AbstractChar,AbstractDict,AbstractDisplay,% +AbstractFloat,AbstractIrrational,AbstractLogger,AbstractMatch,AbstractMatrix,% +AbstractPattern,AbstractREPL,AbstractRNG,AbstractRange,AbstractSerializer,% +AbstractSet,AbstractSparseArray,AbstractSparseMatrix,AbstractSparseVector,% +AbstractString,AbstractUnitRange,AbstractVecOrMat,AbstractVector,% +AbstractWorkerPool,Adjoint,Any,Argument,ArgumentError,Array,AssertionError,% +Atomic,Base64DecodePipe,Base64EncodePipe,BasicREPL,Bidiagonal,BigFloat,BigInt,% +BitArray,BitMatrix,BitSet,BitVector,Bool,BoundsError,BroadcastFunction,% +BroadcastStyle,BunchKaufman,CachingPool,CapturedException,CartesianIndex,% +CartesianIndices,Cchar,Cdouble,Cfloat,Channel,Char,Cholesky,CholeskyPivoted,% +Cint,Cintmax_t,Clong,Clonglong,ClusterManager,Cmd,CodeInfo,CodeInstance,Colon,% +ColumnNorm,Complex,ComplexF16,ComplexF32,ComplexF64,ComposedFunction,% +CompositeException,ConcurrencyViolationError,Condition,ConsoleLogger,Const,% +Cptrdiff_t,Cshort,Csize_t,Cssize_t,Cstring,Cuchar,Cuint,Cuintmax_t,Culong,% +Culonglong,Cushort,Cvoid,Cwchar_t,Cwstring,DataType,Date,DateFormat,DatePeriod,% +DateTime,Day,DenseArray,DenseMatrix,DenseVecOrMat,DenseVector,Diagonal,Dict,% +DimensionMismatch,Dims,DivideError,DomainError,Downloader,EOFError,Eigen,Enum,% +ErrorException,Event,Exception,ExponentialBackOff,Expr,FDWatcher,FILE,% +Factorization,FileMonitor,Float16,Float32,Float64,FolderMonitor,Function,% +Future,GeneralizedEigen,GeneralizedSVD,GeneralizedSchur,GenericArray,% +GenericDict,GenericOrder,GenericSet,GenericString,GitConfig,GitRepo,GlobalRef,% +GotoIfNot,GotoNode,HMAC_CTX,HTML,Hermitian,Hessenberg,Hour,IO,IOBuffer,% +IOContext,IOStream,IPAddr,IPv4,IPv6,IdDict,IndexCartesian,IndexLinear,% +IndexStyle,InexactError,InitError,Int,Int128,Int16,Int32,Int64,Int8,Integer,% +InterruptException,InvalidStateException,Irrational,KeyError,LAPACKException,% +LDLt,LQ,LU,LinRange,LineEditREPL,LineInfoNode,LineNumberNode,LinearIndices,% +LoadError,LogLevel,LowerTriangular,MIME,Matrix,MersenneTwister,Method,% +MethodError,MethodInstance,Microsecond,Millisecond,Minute,Missing,% +MissingException,Module,Month,NTuple,NamedTuple,Nanosecond,NewvarNode,NoPivot,% +Nothing,NullLogger,Number,OrdinalRange,OutOfMemoryError,OverflowError,% +PackageMode,PackageSpec,Pair,PartialQuickSort,PartialStruct,Period,% +PermutedDimsArray,PhiCNode,PhiNode,PiNode,Pipe,PollingFileWatcher,% +PosDefException,PreserveLevel,ProcessExitedException,ProcessFailedException,% +Ptr,QR,QRPivoted,Quarter,QuoteNode,RandomDevice,RankDeficientException,% +Rational,RawFD,ReadOnlyMemoryError,Real,ReentrantLock,Ref,Regex,RegexMatch,% +RegistrySpec,RemoteChannel,RemoteException,RequestError,Response,ReturnNode,% +Returns,RoundingMode,RowMaximum,SHA1_CTX,SHA224_CTX,SHA256_CTX,SHA2_224_CTX,% +SHA2_256_CTX,SHA2_384_CTX,SHA2_512_CTX,SHA384_CTX,SHA3_224_CTX,SHA3_256_CTX,% +SHA3_384_CTX,SHA3_512_CTX,SHA512_CTX,SSAValue,SVD,Schur,Second,% +SegmentationFault,Serializer,Set,SharedArray,SharedMatrix,SharedVector,Signed,% +SimpleLogger,SingularException,Slot,SlotNumber,Some,SparseMatrixCSC,% +SparseVector,SpinLock,StackFrame,StackOverflowError,StackTrace,StepRange,% +StepRangeLen,StreamREPL,StridedArray,StridedMatrix,StridedVecOrMat,% +StridedVector,String,StringIndexError,SubArray,SubString,SubstitutionString,% +SymTridiagonal,Symbol,Symmetric,SystemError,TCPSocket,Task,TaskFailedException,% +TaskLocalRNG,TestSetException,Text,TextDisplay,Time,TimePeriod,TimeType,% +TimeZone,Timer,TmStruct,Transpose,Tridiagonal,Tuple,Type,TypeError,TypeVar,% +TypedSlot,UDPSocket,UInt,UInt128,UInt16,UInt32,UInt64,UInt8,UTC,UUID,% +UndefInitializer,UndefKeywordError,UndefRefError,UndefVarError,UniformScaling,% +Union,UnionAll,UnitLowerTriangular,UnitRange,UnitUpperTriangular,Unsigned,% +UpgradeLevel,UpperHessenberg,UpperTriangular,UpsilonNode,Val,VecElement,% +VecOrMat,Vector,VersionNumber,WeakKeyDict,WeakRef,Week,WorkerConfig,WorkerPool,% +Xoshiro,Year,ZeroPivotException% +},% +% +% julia's macros: +% +morekeywords=[4] +{% +@MIME_str,@NamedTuple,@__DIR__,@__FILE__,@__LINE__,@__MODULE__,@__dot__,% +@allocated,@artifact_str,@assert,@async,@atomic,@atomicreplace,@atomicswap,% +@b_str,@big_str,@boundscheck,@ccall,@cfunction,@cmd,@coalesce,@code_llvm,% +@code_lowered,@code_native,@code_typed,@code_warntype,@dateformat_str,@debug,% +@deprecate,@distributed,@doc,@doc_str,@dump,@edit,@elapsed,@enum,@error,@eval,% +@evalpoly,@everywhere,@fastmath,@fetch,@fetchfrom,@functionloc,@generated,% +@gensym,@goto,@html_str,@inbounds,@inferred,@info,@inline,@int128_str,@ip_str,% +@isdefined,@label,@less,@lock,@logmsg,@macroexpand,@macroexpand1,@md_str,% +@noinline,@nospecialize,@pkg_str,@polly,@printf,@profile,@r_str,@raw_str,% +@s_str,@show,@simd,@something,@spawn,@spawnat,@specialize,@sprintf,@static,% +@sync,@task,@test,@test_broken,@test_deprecated,@test_logs,@test_nowarn,% +@test_skip,@test_throws,@test_warn,@testset,@text_str,@threadcall,@threads,% +@time,@timed,@timev,@uint128_str,@v_str,@var,@view,@views,@warn,@which% +},% +% +% julia's functions: +% +morekeywords=[5] +{% +FormatMessage,GetLastError,PipeBuffer,__precompile__,abs,abs2,abs_float,% +abspath,accept,accumulate,accumulate!,acos,acosd,acosh,acot,acotd,acoth,acsc,% +acscd,acsch,add_float,add_float_fast,add_int,add_ptr,addenv,addprocs,adjoint,% +adjoint!,adjust,all,all!,allunique,and_int,angle,any,any!,append!,applicable,% +apropos,argmax,argmin,arraylen,artifact_exists,artifact_hash,artifact_meta,% +artifact_path,ascii,asec,asecd,asech,ashr_int,asin,asind,asinh,asyncmap,% +asyncmap!,atan,atand,atanh,atexit,atomic_add!,atomic_and!,atomic_cas!,% +atomic_fence,atomic_max!,atomic_min!,atomic_nand!,atomic_or!,% +atomic_pointermodify,atomic_pointerref,atomic_pointerreplace,atomic_pointerset,% +atomic_pointerswap,atomic_sub!,atomic_xchg!,atomic_xor!,atreplinit,axes,axpby!,% +axpy!,backtrace,base64decode,base64encode,basename,big,bind,binomial,bitcast,% +bitrand,bitreverse,bitrotate,bitstring,blockdiag,broadcast,broadcast!,% +broadcast_axes,broadcastable,bswap,bswap_int,bunchkaufman,bunchkaufman!,% +bytes2hex,bytesavailable,calloc,canonicalize,cat,catch_backtrace,cbrt,cd,ceil,% +ceil_llvm,cglobal,channel_from_id,check_same_host,checkbounds,checked_sadd_int,% +checked_sdiv_int,checked_smul_int,checked_srem_int,checked_ssub_int,% +checked_uadd_int,checked_udiv_int,checked_umul_int,checked_urem_int,% +checked_usub_int,checkindex,chmod,cholesky,cholesky!,chomp,chop,chown,% +circcopy!,circshift,circshift!,cis,cispi,clamp,clamp!,cld,clear!,clipboard,% +close,cluster_cookie,cmp,coalesce,code_llvm,code_lowered,code_native,% +code_typed,code_warntype,codepoint,codeunit,codeunits,collect,complex,cond,% +condskeel,conj,conj!,connect,contains,convert,copy,copy!,copy_transpose!,% +copysign,copysign_float,copyto!,cor,cos,cosc,cosd,cosh,cospi,cot,cotd,coth,% +count,count!,count_ones,count_zeros,countfrom,countlines,cov,cp,cpu_info,% +cpu_summary,crc32c,cross,csc,cscd,csch,ctime,ctlz_int,ctpop_int,cttz_int,% +cumprod,cumprod!,cumsum,cumsum!,current_exceptions,current_logger,current_task,% +cycle,datetime2julian,datetime2rata,datetime2unix,day,dayabbr,dayname,% +dayofmonth,dayofquarter,dayofweek,dayofweekofmonth,dayofyear,daysinmonth,% +daysinyear,daysofweekinmonth,deepcopy,default_worker_pool,deg2rad,delete!,% +deleteat!,denominator,deserialize,det,detach,detect_ambiguities,% +detect_unbound_args,diag,diagind,diagm,diff,digest!,digits,digits!,dirname,% +disable_logging,disable_sigint,display,displayable,displaysize,div,div_float,% +div_float_fast,divrem,dlclose,dllist,dlopen,dlopen_e,dlpath,dlsym,dlsym_e,doc,% +dot,dotview,download,drop,dropdims,droptol!,dropwhile,dropzeros,dropzeros!,% +dump,eachcol,eachindex,eachline,eachmatch,eachrow,eachslice,edit,eigen,eigen!,% +eigmax,eigmin,eigvals,eigvals!,eigvecs,eltype,empty,empty!,endswith,enumerate,% +eof,eps,eq_float,eq_float_fast,eq_int,errno,error,errormonitor,esc,% +escape_string,eval,evalfile,evalpoly,exit,exp,exp10,exp2,expanduser,expm1,% +exponent,extrema,factorial,factorize,falses,fd,fdio,fetch,fieldcount,fieldname,% +fieldnames,fieldoffset,fieldtype,fieldtypes,filemode,filesize,fill,fill!,% +filter,filter!,finalize,finalizer,find_artifacts_toml,find_library,findall,% +findfirst,findlast,findmax,findmax!,findmin,findmin!,findnext,findnz,findprev,% +first,firstdayofmonth,firstdayofquarter,firstdayofweek,firstdayofyear,% +firstindex,flatten,fld,fld1,fldmod,fldmod1,flipsign,flipsign_int,float,% +floatmax,floatmin,floor,floor_llvm,flush,flush_cstdio,fma,fma_float,foldl,% +foldr,foreach,fpext,fpiseq,fptosi,fptoui,fptrunc,free,free_memory,frexp,% +fullname,functionloc,gcd,gcdx,gensym,get,get!,get_zero_subnormals,getaddrinfo,% +getalladdrinfo,getfield,gethostname,getindex,getipaddr,getipaddrs,getkey,% +getnameinfo,getpeername,getpid,getproperty,getsockname,givens,global_logger,% +gperm,graphemes,hasfield,hash,haskey,hasmethod,hasproperty,hcat,hessenberg,% +hessenberg!,hex2bytes,hex2bytes!,hmac_sha1,hmac_sha224,hmac_sha256,% +hmac_sha2_224,hmac_sha2_256,hmac_sha2_384,hmac_sha2_512,hmac_sha384,% +hmac_sha3_224,hmac_sha3_256,hmac_sha3_384,hmac_sha3_512,hmac_sha512,homedir,% +hour,html,htol,hton,hvcat,hvncat,hypot,identity,ifelse,ignorestatus,imag,in,% +include_dependency,include_string,indexin,indexpids,init_worker,insert!,% +insorted,instances,interrupt,intersect,intersect!,inv,invmod,invoke,invperm,% +invpermute!,isa,isabspath,isabstracttype,isapple,isapprox,isascii,isassigned,% +isbinaryoperator,isbits,isbitstype,isblockdev,isbsd,ischardev,iscntrl,% +isconcretetype,isconst,isdefined,isdiag,isdigit,isdir,isdirpath,isdisjoint,% +isdispatchtuple,isdragonfly,isempty,isequal,iseven,isexecutable,isexpr,isfifo,% +isfile,isfinite,isfreebsd,ishermitian,isidentifier,isimmutable,isinf,isinteger,% +isinteractive,isjsvm,isleapyear,isless,isletter,islink,islinklocaladdr,islinux,% +islocked,islowercase,ismarked,ismissing,ismount,ismutable,ismutabletype,isnan,% +isnetbsd,isnothing,isnumeric,isodd,isone,isopen,isopenbsd,isoperator,ispath,% +isperm,isposdef,isposdef!,ispostfixoperator,ispow2,isprimitivetype,isprint,% +ispunct,isqrt,isreadable,isreadonly,isready,isreal,issetequal,issetgid,% +issetuid,issocket,issorted,isspace,issparse,issticky,isstructtype,issubnormal,% +issubset,issuccess,issymmetric,istaskdone,istaskfailed,istaskstarted,% +istextmime,istril,istriu,isunaryoperator,isunix,isunordered,isuppercase,% +isvalid,iswindows,iswritable,isxdigit,iszero,iterate,join,join_multicast_group,% +joinpath,julian2datetime,keepat!,keys,keytype,kill,kron,kron!,last,% +lastdayofmonth,lastdayofquarter,lastdayofweek,lastdayofyear,lastindex,latex,% +launch,lcm,ldexp,ldiv!,ldlt,ldlt!,le_float,le_float_fast,leading_ones,% +leading_zeros,leave_multicast_group,length,less,listen,listenany,llvmcall,% +lmul!,loadavg,localindices,lock,log,log10,log1p,log2,logabsdet,logdet,% +lowercase,lowercasefirst,lowrankdowndate,lowrankdowndate!,lowrankupdate,% +lowrankupdate!,lpad,lq,lq!,lshr_int,lstat,lstrip,lt_float,lt_float_fast,ltoh,% +lu,lu!,lyap,macroexpand,malloc,manage,map,map!,mapfoldl,mapfoldr,mapreduce,% +mapslices,mark,match,max,maximum,maximum!,maxintfloat,mean,mean!,median,% +median!,merge,merge!,mergewith,mergewith!,methods,methodswith,microsecond,% +middle,millisecond,min,minimum,minimum!,minmax,minute,mkdir,mkpath,mktemp,% +mktempdir,mmap,mod,mod1,mod2pi,modf,modifyfield!,modifyproperty!,month,% +monthabbr,monthday,monthname,mtime,mul!,mul_float,mul_float_fast,mul_int,% +muladd,muladd_float,mv,myid,nameof,names,nand,nanosecond,ncodeunits,ndigits,% +ndims,ne_float,ne_float_fast,ne_int,neg_float,neg_float_fast,neg_int,nextfloat,% +nextind,nextpow,nextprod,nfields,nnz,nonmissingtype,nonzeros,nor,norm,% +normalize,normalize!,normpath,not_int,notify,now,nprocs,nthreads,ntoh,ntuple,% +nullspace,numerator,nworkers,nzrange,objectid,occursin,oftype,one,ones,oneunit,% +only,open,operm,opnorm,or_int,ordschur,ordschur!,pairs,parent,parentindices,% +parentmodule,parse,partialsort,partialsort!,partialsortperm,partialsortperm!,% +partition,pathof,peakflops,peek,permute,permute!,permutedims,permutedims!,pinv,% +pipeline,pkgdir,pmap,pointer,pointer_from_objref,pointerref,pointerset,poll_fd,% +poll_file,pop!,popat!,popdisplay,popfirst!,position,powermod,precision,% +precompile,prepend!,prevfloat,prevind,prevpow,print,println,printstyled,% +process_exited,process_messages,process_running,procs,prod,prod!,product,% +promote,promote_rule,promote_shape,promote_type,propertynames,push!,% +pushdisplay,pushfirst!,put!,pwd,qr,qr!,quantile,quantile!,quarterofyear,quot,% +rad2deg,rand,rand!,randcycle,randcycle!,randexp,randexp!,randn,randn!,randperm,% +randperm!,randstring,randsubseq,randsubseq!,range,rank,rata2datetime,% +rationalize,rdiv!,read,read!,readavailable,readbytes!,readchomp,readdir,% +readdlm,readeach,readline,readlines,readlink,readuntil,real,realloc,realpath,% +recv,recvfrom,redirect_stderr,redirect_stdin,redirect_stdio,redirect_stdout,% +redisplay,reduce,reenable_sigint,reflect!,reim,reinterpret,relpath,rem,rem2pi,% +rem_float,rem_float_fast,remote,remote_do,remotecall,remotecall_fetch,% +remotecall_wait,remoteref_id,repeat,repeated,replace,replace!,% +replace_sourceloc!,replacefield!,replaceproperty!,repr,request,reset,reshape,% +resize!,rest,rethrow,retry,reverse,reverse!,reverseind,rint_llvm,rm,rmprocs,% +rmul!,rot180,rotate!,rotl90,rotr90,round,rounding,rowvals,rpad,rsplit,rstrip,% +run,schedule,schur,schur!,sdata,sdiv_int,searchsorted,searchsortedfirst,% +searchsortedlast,sec,secd,sech,second,seek,seekend,seekstart,% +select_downloadable_artifacts,selectdim,send,serialize,set_zero_subnormals,% +setdiff,setdiff!,setenv,setfield!,setindex!,setprecision,setproperty!,% +setrounding,sext_int,sha1,sha224,sha256,sha2_224,sha2_256,sha2_384,sha2_512,% +sha384,sha3_224,sha3_256,sha3_384,sha3_512,sha512,shl_int,show,show_sexpr,% +showable,showerror,shuffle,shuffle!,sign,signbit,signed,significand,similar,% +sin,sinc,sincos,sincosd,sincospi,sind,sinh,sinpi,sitofp,size,sizehint!,sizeof,% +skip,skipchars,skipmissing,sle_int,sleep,slt_int,something,sort,sort!,sortperm,% +sortperm!,sortslices,sparse,sparsevec,spdiagm,splice!,split,splitdir,% +splitdrive,splitext,splitpath,sprand,sprandn,sprint,spzeros,sqrt,sqrt_llvm,% +sqrt_llvm_fast,srem_int,stacktrace,start_worker,startswith,stat,std,stdm,step,% +strerror,strftime,stride,strides,string,stringmime,strip,strptime,sub_float,% +sub_float_fast,sub_int,sub_ptr,subtypes,success,sum,sum!,summary,supertype,% +supertypes,svd,svd!,svdvals,svdvals!,swapfield!,swapproperty!,sylvester,% +symdiff,symdiff!,symlink,systemerror,systemsleep,take,take!,takewhile,tan,tand,% +tanh,task_local_storage,tempdir,tempname,textwidth,thisind,threadid,throw,time,% +time_ns,timedwait,titlecase,to_indices,today,tofirst,tolast,tonext,toprev,% +total_memory,touch,tr,trailing_ones,trailing_zeros,transcode,transpose,% +transpose!,tril,tril!,triu,triu!,trues,trunc,trunc_int,trunc_llvm,truncate,% +trylock,tryparse,tuple,typeassert,typeintersect,typejoin,typemax,typemin,% +typeof,udiv_int,uitofp,ule_int,ult_int,unescape_string,union,union!,unique,% +unique!,unix2datetime,unlock,unmark,unsafe_copyto!,unsafe_load,% +unsafe_pointer_to_objref,unsafe_read,unsafe_store!,unsafe_string,unsafe_trunc,% +unsafe_wrap,unsafe_write,unsigned,unwatch_folder,update!,uperm,uppercase,% +uppercasefirst,uptime,urem_int,uuid1,uuid4,uuid5,uuid_version,valtype,values,% +var,varinfo,varm,vcat,vec,versioninfo,view,wait,walkdir,watch_file,% +watch_folder,week,which,widemul,widen,with,with_logger,withenv,% +worker_id_from_socket,workers,write,writedlm,xor,xor_int,year,yearmonth,% +yearmonthday,yield,yieldto,zero,zeros,zext_int,zip% +},% +% +% +sensitive=true,% +% +alsoother={$},%$% +alsodigit={_},% +% +morecomment=[l]{\#},% +morecomment=[n]{\#=}{=\#},% +% +morestring=[b]{"},% +% just activate the next command if you dont use ' as the transposition +% operator! comment out the lines 1341 and 1975 in that case, too! +%morestring=[m]{'},% +morestring=[s]{"""}{"""},% +morestring=[s]{L"}{"},% +morestring=[s]{MIME"}{"},% +morestring=[s]{artifact"}{"},% +morestring=[s]{b"}{"},% +morestring=[s]{big"}{"},% +morestring=[s]{dateformat"}{"},% +morestring=[s]{doc"}{"},% +morestring=[s]{html"}{"},% +morestring=[s]{int128"}{"},% +morestring=[s]{ip"}{"},% +morestring=[s]{md"}{"},% +morestring=[s]{pkg"}{"},% +morestring=[s]{r"}{"},% +morestring=[s]{raw"}{"},% +morestring=[s]{s"}{"},% +morestring=[s]{text"}{"},% +morestring=[s]{uint128"}{"},% +morestring=[s]{v"}{"},% +morestring=[s]{var"}{"},% +% +}[keywords,comments,strings] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% default color theme +\newcommand{\loaddefaultcolors}{% +\definecolor{jlbase}{HTML}{444444}% % julia's base color +\definecolor{jlkeyword}{HTML}{444444}% % julia's keywords +\definecolor{jlliteral}{HTML}{78A960}% % julia's literals +\definecolor{jlbuiltin}{HTML}{397300}% % julia's built-ins +\definecolor{jlmacros}{HTML}{1F7199}% % julia's macros +\definecolor{jlfunctions}{HTML}{444444}% % julia's functions +\definecolor{jlcomment}{HTML}{888888}% % julia's comments +\definecolor{jlstrnum}{HTML}{880000}% % julia's strings or numbers +\definecolor{jlop}{HTML}{444444}% % julia's operators +\definecolor{jlbackground}{HTML}{F2F2F2}% % the background of the code block +\definecolor{jlrule}{HTML}{DDDDDD}% % the rule of the code block +\definecolor{jllinenumbers}{HTML}{000000}% % the line numbers of the code block +} + +\newcommand{\loadthemecolors}{\loaddefaultcolors} + +\ifdefstring{\jlc@theme}{default-plain}{% +\renewcommand{\loadthemecolors}{\loaddefaultcolors}}{} + + + +% black and white color theme +\newcommand{\loadgrayscalecolors}{% +\definecolor{jlbase}{HTML}{000000}% % julia's base color +\definecolor{jlkeyword}{HTML}{000000}% % julia's keywords +\definecolor{jlliteral}{HTML}{000000}% % julia's literals +\definecolor{jlbuiltin}{HTML}{000000}% % julia's built-ins +\definecolor{jlmacros}{HTML}{000000}% % julia's macros +\definecolor{jlfunctions}{HTML}{000000}% % julia's functions +\definecolor{jlcomment}{HTML}{000000}% % julia's comments +\definecolor{jlstrnum}{HTML}{000000}% % julia's strings or numbers +\definecolor{jlop}{HTML}{000000}% % julia's operators +\definecolor{jlbackground}{HTML}{F5F5F5}% % the background of the code block +\definecolor{jlrule}{HTML}{DDDDDD}% % the rule of the code block +\definecolor{jllinenumbers}{HTML}{000000}% % the line numbers of the code block +} + +\ifdefstring{\jlc@theme}{grayscale}{% +\renewcommand{\loadthemecolors}{\loadgrayscalecolors}}{} +\ifdefstring{\jlc@theme}{grayscale-plain}{% +\renewcommand{\loadthemecolors}{\loadgrayscalecolors}}{} + + + +% dark color theme +% big thanks to "dietercastel" who put toegther this awesome dark theme, +% which is designed to be ideally suited for the dark-beamer-theme +\newcommand{\loaddarkbeamercolors}{% +\definecolor{jlbase}{HTML}{66FFCC}% % julia's base color +\definecolor{jlkeyword}{HTML}{F9F2D7}% % julia's keywords +\definecolor{jlliteral}{HTML}{9B9B9B}% % julia's literals +\definecolor{jlbuiltin}{HTML}{F5AB35}% % julia's built-ins +\definecolor{jlmacros}{HTML}{9B9B9B}% % julia's macros +\definecolor{jlfunctions}{HTML}{9455AD}% % julia's functions +\definecolor{jlcomment}{HTML}{455ED3}% % julia's comments +\definecolor{jlstrnum}{HTML}{6BAED6}% % julia's strings or numbers +\definecolor{jlop}{HTML}{FF005A}% % julia's operators +\definecolor{jlbackground}{HTML}{181818}% % the background of the code block +\definecolor{jlrule}{HTML}{DDDDDD}% % the rule of the code block +\definecolor{jllinenumbers}{HTML}{F5AB35}% % the line numbers of the code block +} + +\ifdefstring{\jlc@theme}{darkbeamer}{% +\renewcommand{\loadthemecolors}{\loaddarkbeamercolors}}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% setting the default font +\ifjlc@defaultmonofont +% + \iftutex % LuaTeX + XeTeX + % + % + % use JuliaMono as typewriter font + \setmonofont{JuliaMono}[ + Extension = .ttf, + Path = ./, + Scale = 0.87, + Contextuals = Alternate, + UprightFont = *-Light, + BoldFont = *-SemiBold, + ItalicFont = *-Lightitalic, + BoldItalicFont = *-SemiBolditalic, + ] + % + % + \else % PDFTeX + % + % + % use Courier as typewriter font + \renewcommand{\ttdefault}{pcr} + % + % + \fi +% +\fi + + +% basic font style +\def\jlbasicfont{\ttfamily\relsize{-2}\selectfont} + + +% gerneral style for the code block +\lstdefinestyle{jlcodeblockstyle}{% +basicstyle={\loadthemecolors\color{jlstrnum}\jlbasicfont}, +keywordstyle={[1]\color{jlkeyword}\bfseries}, +keywordstyle={[2]\color{jlliteral}}, +keywordstyle={[3]\color{jlbuiltin}}, +keywordstyle={[4]\color{jlmacros}}, +keywordstyle={[5]\color{jlfunctions}}, +commentstyle={\color{jlcomment}}, +stringstyle={\color{jlstrnum}}, +identifierstyle={\color{jlbase}}, +showstringspaces=false, +upquote=true, +tabsize=4, +aboveskip={1.5\baselineskip}, belowskip={1.5\baselineskip} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% defining required lengths for the code box +\newlength{\bfem} +\newlength{\xmrgn} +\newcommand{\calcboxlengths}{% +\settowidth{\bfem}{\jlbasicfont{m}}% +\setlength{\xmrgn}{(\columnwidth - \jlc@charsperline\bfem)*\real{0.5}}% +} +\calcboxlengths + + +\iftutex % LuaTeX + XeTeX +% +% +% style for the code box of the default theme +\lstdefinestyle{jlcodeboxdfltstyle}{% +backgroundcolor=\color{jlbackground}, rulecolor=\color{jlrule}, +frame=single, frameround=tttt, +columns=fullflexible, +%basewidth=\bfem, +keepspaces=true, +linewidth=\columnwidth, +xleftmargin=\xmrgn, xrightmargin=\xmrgn, +framexleftmargin=0.5\bfem, framexrightmargin=0.5\bfem +} + +% style for the "code box" of the default theme without code box +\lstdefinestyle{jlcodeboxnostyle}{% +columns=fullflexible, +%basewidth=\bfem, +keepspaces=true, +linewidth=\columnwidth, +xleftmargin=\xmrgn, xrightmargin=\xmrgn, +framexleftmargin=0.5\bfem, framexrightmargin=0.5\bfem +} + +% style for the code box of the dark theme +\lstdefinestyle{jlcodeboxdthstyle}{% +backgroundcolor=\color{jlbackground}, rulecolor=\color{jlrule}, +columns=fullflexible, +%basewidth=\bfem, +keepspaces=true, +linewidth=\columnwidth, +xleftmargin=\xmrgn, xrightmargin=\xmrgn, +framexleftmargin=0.5\bfem, framexrightmargin=0.5\bfem +} +% +% +\else % PDFTeX +% +% +% style for the code box of the default theme +\lstdefinestyle{jlcodeboxdfltstyle}{% +backgroundcolor=\color{jlbackground}, rulecolor=\color{jlrule}, +frame=single, frameround=tttt, +columns=fixed, +basewidth=\bfem, +linewidth=\columnwidth, +xleftmargin=\xmrgn, xrightmargin=\xmrgn, +framexleftmargin=0.5\bfem, framexrightmargin=0.5\bfem +} + +% style for the "code box" of the default theme without code box +\lstdefinestyle{jlcodeboxnostyle}{% +columns=fixed, +basewidth=\bfem, +linewidth=\columnwidth, +xleftmargin=\xmrgn, xrightmargin=\xmrgn, +framexleftmargin=0.5\bfem, framexrightmargin=0.5\bfem +} + +% style for the code box of the dark theme +\lstdefinestyle{jlcodeboxdthstyle}{% +backgroundcolor=\color{jlbackground}, rulecolor=\color{jlrule}, +columns=fixed, +basewidth=\bfem, +linewidth=\columnwidth, +xleftmargin=\xmrgn, xrightmargin=\xmrgn, +framexleftmargin=0.5\bfem, framexrightmargin=0.5\bfem +} +% +% +\fi + + +% style for the linenumbers +\ifjlc@linenumbers + \lstdefinestyle{jllinenumbersstyle}{% + numbers=left, + stepnumber=1, + numberstyle=\ttfamily\color{jllinenumbers}, + numbersep = 1.5\bfem, + framexleftmargin=3.5\bfem + } +\else + \lstdefinestyle{jllinenumbersstyle}{} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% defining a new opliterate key +\def\lst@OpLiteratekey#1\@nil@{\let\lst@ifxopliterate\lst@if + \def\lst@opliterate{#1}} +\lst@Key{opliterate}{}{\@ifstar{\lst@true \lst@OpLiteratekey} + {\lst@false\lst@OpLiteratekey}#1\@nil@} +\lst@AddToHook{SelectCharTable} + {\ifx\lst@opliterate\@empty\else + \expandafter\lst@OpLiterate\lst@opliterate{}\relax\z@ + \fi} +\def\lst@OpLiterate#1#2#3{% + \ifx\relax#2\@empty\else + \lst@CArgX #1\relax\lst@CDef + {} + {\let\lst@next\@empty + \lst@ifxopliterate + \lst@ifmode \let\lst@next\lst@CArgEmpty \fi + \fi + \ifx\lst@next\@empty + \ifx\lst@OutputBox\@gobble\else + \lst@XPrintToken \let\lst@scanmode\lst@scan@m + \lst@token{#2}\lst@length#3\relax + \lst@XPrintToken + \fi + \let\lst@next\lst@CArgEmptyGobble + \fi + \lst@next}% + \@empty + \expandafter\lst@OpLiterate + \fi} + + +% defining the opc, the numc and the funcc commands +% for literating operators, numbers anf functions ending with '!' +\newcommand{\opc}[1]{{\color{jlop}#1}} +\newcommand{\numc}[1]{{\color{jlstrnum}#1}} +\newcommand{\funcc}[1]{{\color{jlfunctions}#1}} + + + +\lstdefinestyle{jlcodeopstyle}{% +opliterate=* +% +% julia's operators +% +{\$}{{\opc{\$}}}{1} {!}{{\opc{!}}}{1} {\%}{{\opc{\%}}}{1} {&}{{\opc{\&}}}{1} +{’}{{\opc{’}}}{1} {(}{{\opc{(}}}{1} {)}{{\opc{)}}}{1} {*}{{\opc{*}}}{1} +{+}{{\opc{+}}}{1} {,}{{\opc{,}}}{1} {-}{{\opc{-}}}{1} {.}{{\opc{.}}}{1} +{/}{{\opc{/}}}{1} {:}{{\opc{:}}}{1} {;}{{\opc{;}}}{1} {<}{{\opc{<}}}{1} +{=}{{\opc{=}}}{1} {>}{{\opc{>}}}{1} {?}{{\opc{?}}}{1} {[}{{\opc{[}}}{1} +{\\}{{\opc{\lstum@backslash}}}{1} {]}{{\opc{]}}}{1} {^}{{\opc{\^{}}}}{1} +{\{}{{\opc{\{}}}{1} {|}{{\opc{|}}}{1} {\}}{{\opc{\}}}}{1} +{~}{{\opc{\textasciitilde}}}{1} +%{~}{{\opc{\raisebox{0.5ex}{\texttildelow{}}}}}{1} +% +% julia's numbers +% +{.0}{{\numc{.0}}}{2} {.1}{{\numc{.1}}}{2} {.2}{{\numc{.2}}}{2} +{.3}{{\numc{.3}}}{2} {.4}{{\numc{.4}}}{2} {.5}{{\numc{.5}}}{2} +{.6}{{\numc{.6}}}{2} {.7}{{\numc{.7}}}{2} {.8}{{\numc{.8}}}{2} +{.9}{{\numc{.9}}}{2} +% +{e+0}{{\numc{e+0}}}{3} {e+1}{{\numc{e+1}}}{3} {e+2}{{\numc{e+2}}}{3} +{e+3}{{\numc{e+3}}}{3} {e+4}{{\numc{e+4}}}{3} {e+5}{{\numc{e+5}}}{3} +{e+6}{{\numc{e+6}}}{3} {e+7}{{\numc{e+7}}}{3} {e+8}{{\numc{e+8}}}{3} +{e+9}{{\numc{e+9}}}{3} +% +{0E+}{{\numc{0E+}}}{3} {1E+}{{\numc{1E+}}}{3} {2E+}{{\numc{2E+}}}{3} +{3E+}{{\numc{3E+}}}{3} {4E+}{{\numc{4E+}}}{3} {5E+}{{\numc{5E+}}}{3} +{6E+}{{\numc{6E+}}}{3} {7E+}{{\numc{7E+}}}{3} {8E+}{{\numc{8E+}}}{3} +{9E+}{{\numc{9E+}}}{3} +% +{e-0}{{\numc{e-0}}}{3} {e-1}{{\numc{e-1}}}{3} {e-2}{{\numc{e-2}}}{3} +{e-3}{{\numc{e-3}}}{3} {e-4}{{\numc{e-4}}}{3} {e-5}{{\numc{e-5}}}{3} +{e-6}{{\numc{e-6}}}{3} {e-7}{{\numc{e-7}}}{3} {e-8}{{\numc{e-8}}}{3} +{e-9}{{\numc{e-9}}}{3} +% +{0E-}{{\numc{0E-}}}{3} {1E-}{{\numc{1E-}}}{3} {2E-}{{\numc{2E-}}}{3} +{3E-}{{\numc{3E-}}}{3} {4E-}{{\numc{4E-}}}{3} {5E-}{{\numc{5E-}}}{3} +{6E-}{{\numc{6E-}}}{3} {7E-}{{\numc{7E-}}}{3} {8E-}{{\numc{8E-}}}{3} +{9E-}{{\numc{9E-}}}{3} +% +% julia's functions ending with '!' +% +{accumulate!}{{\funcc{accumulate!}}}{11} {adjoint!}{{\funcc{adjoint!}}}{8} +{all!}{{\funcc{all!}}}{4} {any!}{{\funcc{any!}}}{4} +{append!}{{\funcc{append!}}}{7} {asyncmap!}{{\funcc{asyncmap!}}}{9} +{atomic_add!}{{\funcc{atomic_add!}}}{11} +{atomic_and!}{{\funcc{atomic_and!}}}{11} +{atomic_cas!}{{\funcc{atomic_cas!}}}{11} +{atomic_max!}{{\funcc{atomic_max!}}}{11} +{atomic_min!}{{\funcc{atomic_min!}}}{11} +{atomic_nand!}{{\funcc{atomic_nand!}}}{12} +{atomic_or!}{{\funcc{atomic_or!}}}{10} {atomic_sub!}{{\funcc{atomic_sub!}}}{11} +{atomic_xchg!}{{\funcc{atomic_xchg!}}}{12} +{atomic_xor!}{{\funcc{atomic_xor!}}}{11} {axpby!}{{\funcc{axpby!}}}{6} +{axpy!}{{\funcc{axpy!}}}{5} {broadcast!}{{\funcc{broadcast!}}}{10} +{bunchkaufman!}{{\funcc{bunchkaufman!}}}{13} {cholesky!}{{\funcc{cholesky!}}}{9} +{circcopy!}{{\funcc{circcopy!}}}{9} {circshift!}{{\funcc{circshift!}}}{10} +{clamp!}{{\funcc{clamp!}}}{6} {clear!}{{\funcc{clear!}}}{6} +{conj!}{{\funcc{conj!}}}{5} {copy!}{{\funcc{copy!}}}{5} +{copy_transpose!}{{\funcc{copy_transpose!}}}{15} {copyto!}{{\funcc{copyto!}}}{7} +{count!}{{\funcc{count!}}}{6} {cumprod!}{{\funcc{cumprod!}}}{8} +{cumsum!}{{\funcc{cumsum!}}}{7} {delete!}{{\funcc{delete!}}}{7} +{deleteat!}{{\funcc{deleteat!}}}{9} {digest!}{{\funcc{digest!}}}{7} +{digits!}{{\funcc{digits!}}}{7} {droptol!}{{\funcc{droptol!}}}{8} +{dropzeros!}{{\funcc{dropzeros!}}}{10} {eigen!}{{\funcc{eigen!}}}{6} +{eigvals!}{{\funcc{eigvals!}}}{8} {empty!}{{\funcc{empty!}}}{6} +{fill!}{{\funcc{fill!}}}{5} {filter!}{{\funcc{filter!}}}{7} +{findmax!}{{\funcc{findmax!}}}{8} {findmin!}{{\funcc{findmin!}}}{8} +{get!}{{\funcc{get!}}}{4} {hessenberg!}{{\funcc{hessenberg!}}}{11} +{hex2bytes!}{{\funcc{hex2bytes!}}}{10} {insert!}{{\funcc{insert!}}}{7} +{intersect!}{{\funcc{intersect!}}}{10} {invpermute!}{{\funcc{invpermute!}}}{11} +{isposdef!}{{\funcc{isposdef!}}}{9} {keepat!}{{\funcc{keepat!}}}{7} +{kron!}{{\funcc{kron!}}}{5} {ldiv!}{{\funcc{ldiv!}}}{5} +{ldlt!}{{\funcc{ldlt!}}}{5} {lmul!}{{\funcc{lmul!}}}{5} +{lowrankdowndate!}{{\funcc{lowrankdowndate!}}}{16} +{lowrankupdate!}{{\funcc{lowrankupdate!}}}{14} {lq!}{{\funcc{lq!}}}{3} +{lu!}{{\funcc{lu!}}}{3} {map!}{{\funcc{map!}}}{4} +{maximum!}{{\funcc{maximum!}}}{8} {mean!}{{\funcc{mean!}}}{5} +{median!}{{\funcc{median!}}}{7} {merge!}{{\funcc{merge!}}}{6} +{mergewith!}{{\funcc{mergewith!}}}{10} {minimum!}{{\funcc{minimum!}}}{8} +{modifyfield!}{{\funcc{modifyfield!}}}{12} +{modifyproperty!}{{\funcc{modifyproperty!}}}{15} {mul!}{{\funcc{mul!}}}{4} +{normalize!}{{\funcc{normalize!}}}{10} {ordschur!}{{\funcc{ordschur!}}}{9} +{partialsort!}{{\funcc{partialsort!}}}{12} +{partialsortperm!}{{\funcc{partialsortperm!}}}{16} +{permute!}{{\funcc{permute!}}}{8} {permutedims!}{{\funcc{permutedims!}}}{12} +{pop!}{{\funcc{pop!}}}{4} {popat!}{{\funcc{popat!}}}{6} +{popfirst!}{{\funcc{popfirst!}}}{9} {prepend!}{{\funcc{prepend!}}}{8} +{prod!}{{\funcc{prod!}}}{5} {push!}{{\funcc{push!}}}{5} +{pushfirst!}{{\funcc{pushfirst!}}}{10} {put!}{{\funcc{put!}}}{4} +{qr!}{{\funcc{qr!}}}{3} {quantile!}{{\funcc{quantile!}}}{9} +{rand!}{{\funcc{rand!}}}{5} {randcycle!}{{\funcc{randcycle!}}}{10} +{randexp!}{{\funcc{randexp!}}}{8} {randn!}{{\funcc{randn!}}}{6} +{randperm!}{{\funcc{randperm!}}}{9} {randsubseq!}{{\funcc{randsubseq!}}}{11} +{rdiv!}{{\funcc{rdiv!}}}{5} {read!}{{\funcc{read!}}}{5} +{readbytes!}{{\funcc{readbytes!}}}{10} {reflect!}{{\funcc{reflect!}}}{8} +{replace!}{{\funcc{replace!}}}{8} +{replace_sourceloc!}{{\funcc{replace_sourceloc!}}}{18} +{replacefield!}{{\funcc{replacefield!}}}{13} +{replaceproperty!}{{\funcc{replaceproperty!}}}{16} +{resize!}{{\funcc{resize!}}}{7} {reverse!}{{\funcc{reverse!}}}{8} +{rmul!}{{\funcc{rmul!}}}{5} {rotate!}{{\funcc{rotate!}}}{7} +{schur!}{{\funcc{schur!}}}{6} {setdiff!}{{\funcc{setdiff!}}}{8} +{setfield!}{{\funcc{setfield!}}}{9} {setindex!}{{\funcc{setindex!}}}{9} +{setproperty!}{{\funcc{setproperty!}}}{12} {shuffle!}{{\funcc{shuffle!}}}{8} +{sizehint!}{{\funcc{sizehint!}}}{9} {sort!}{{\funcc{sort!}}}{5} +{sortperm!}{{\funcc{sortperm!}}}{9} {splice!}{{\funcc{splice!}}}{7} +{sum!}{{\funcc{sum!}}}{4} {svd!}{{\funcc{svd!}}}{4} +{svdvals!}{{\funcc{svdvals!}}}{8} {swapfield!}{{\funcc{swapfield!}}}{10} +{swapproperty!}{{\funcc{swapproperty!}}}{13} {symdiff!}{{\funcc{symdiff!}}}{8} +{take!}{{\funcc{take!}}}{5} {transpose!}{{\funcc{transpose!}}}{10} +{tril!}{{\funcc{tril!}}}{5} {triu!}{{\funcc{triu!}}}{5} +{union!}{{\funcc{union!}}}{6} {unique!}{{\funcc{unique!}}}{7} +{unsafe_copyto!}{{\funcc{unsafe_copyto!}}}{14} +{unsafe_store!}{{\funcc{unsafe_store!}}}{13} {update!}{{\funcc{update!}}}{7} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% defining the ucc, the ucclit and uccop command +% for literating special unicode characters +\newcommand{\ucc}[1]{% +\ifnum\lst@mode=\lst@Pmode\relax% +{\color{jlbase}#1}% +\else% +#1% +\fi% +} + +\newcommand{\ucclit}[1]{% +\ifnum\lst@mode=\lst@Pmode\relax% +{\color{jlliteral}#1}% +\else% +#1% +\fi% +} + +\newcommand{\uccop}[1]{% +\ifnum\lst@mode=\lst@Pmode\relax% +{\color{jlop}#1}% +\else% +#1% +\fi% +} + + + +\lst@InputCatcodes +\iftutex % LuaTeX + XeTeX +\def\lst@DefEC{% +\lst@CCECUse \lst@ProcessLetter +^^a1^^a3^^a5^^a6^^a7^^a9^^aa^^ab^^ac^^ae^^af^^b0^^b1^^b2^^b3^^b6^^b7^^b9^^ba% +^^bb^^bc^^bd^^be^^bf^^c0^^c1^^c2^^c4^^c5^^c6^^c7^^c8^^c9^^ca^^cb^^cc^^cd^^ce% +^^cf^^d0^^d1^^d2^^d3^^d4^^d6^^d7^^d8^^d9^^da^^db^^dc^^de^^df^^e0^^e1^^e2^^e4% +^^e5^^e6^^e7^^e8^^e9^^ea^^eb^^ec^^ed^^ee^^ef^^f0^^f1^^f2^^f3^^f4^^f6^^f7^^f8% +^^f9^^fa^^fb^^fc^^fe% +^^^^0110^^^^0111^^^^0127^^^^0131^^^^0141^^^^0142^^^^014a^^^^014b^^^^0150% +^^^^0151^^^^0152^^^^0153^^^^0170^^^^0171^^^^0195^^^^019e^^^^01b5^^^^01c2% +^^^^0237^^^^0250^^^^0252^^^^0254^^^^0256^^^^0259^^^^0263^^^^0264^^^^0265% +^^^^026c^^^^026d^^^^026f^^^^0270^^^^0271^^^^0272^^^^0273^^^^0277^^^^0278% +^^^^0279^^^^027a^^^^027b^^^^027c^^^^027d^^^^027e^^^^0282^^^^0283^^^^0287% +^^^^0288^^^^028a^^^^028b^^^^028c^^^^028d^^^^028e^^^^0290^^^^0292^^^^0294% +^^^^0295^^^^0296^^^^029e^^^^02a4^^^^02a7^^^^02b0^^^^02b2^^^^02b3^^^^02b7% +^^^^02b8^^^^02bc^^^^02c8^^^^02cc^^^^02d0^^^^02d1^^^^02d2^^^^02d3^^^^02d4% +^^^^02d5^^^^02d8^^^^02dc^^^^02e1^^^^02e2^^^^02e3^^^^0300^^^^0301^^^^0302% +^^^^0303^^^^0304^^^^0305^^^^0306^^^^0307^^^^0308^^^^0309^^^^030a^^^^030b% +^^^^030c^^^^0310^^^^0312^^^^0315^^^^031a^^^^0321^^^^0322^^^^0327^^^^0328% +^^^^032a^^^^0330^^^^0332^^^^0336^^^^0338^^^^034d^^^^0391^^^^0392^^^^0393% +^^^^0394^^^^0395^^^^0396^^^^0397^^^^0398^^^^0399^^^^039a^^^^039b^^^^039c% +^^^^039d^^^^039e^^^^039f^^^^03a0^^^^03a1^^^^03a3^^^^03a4^^^^03a5^^^^03a6% +^^^^03a7^^^^03a8^^^^03a9^^^^03b1^^^^03b2^^^^03b3^^^^03b4^^^^03b5^^^^03b6% +^^^^03b7^^^^03b8^^^^03b9^^^^03ba^^^^03bb^^^^03bc^^^^03bd^^^^03be^^^^03bf% +^^^^03c0^^^^03c1^^^^03c2^^^^03c3^^^^03c4^^^^03c5^^^^03c6^^^^03c7^^^^03c8% +^^^^03c9^^^^03d0^^^^03d1^^^^03d5^^^^03d6^^^^03d8^^^^03d9^^^^03da^^^^03db% +^^^^03dc^^^^03dd^^^^03de^^^^03df^^^^03e0^^^^03e1^^^^03f0^^^^03f1^^^^03f4% +^^^^03f5^^^^03f6^^^^1d2c^^^^1d2e^^^^1d30^^^^1d31^^^^1d33^^^^1d34^^^^1d35% +^^^^1d36^^^^1d37^^^^1d38^^^^1d39^^^^1d3a^^^^1d3c^^^^1d3e^^^^1d3f^^^^1d40% +^^^^1d41^^^^1d42^^^^1d43^^^^1d45^^^^1d47^^^^1d48^^^^1d49^^^^1d4b^^^^1d4d% +^^^^1d4f^^^^1d50^^^^1d52^^^^1d56^^^^1d57^^^^1d58^^^^1d5b^^^^1d5d^^^^1d5e% +^^^^1d5f^^^^1d60^^^^1d61^^^^1d62^^^^1d63^^^^1d64^^^^1d65^^^^1d66^^^^1d67% +^^^^1d68^^^^1d69^^^^1d6a^^^^1d9c^^^^1da0^^^^1da5^^^^1db2^^^^1dbb^^^^1dbf% +^^^^2002^^^^2003^^^^2005^^^^2009^^^^200a^^^^2013^^^^2014^^^^2016^^^^2018% +^^^^2019^^^^201b^^^^201c^^^^201d^^^^2020^^^^2021^^^^2022^^^^2026^^^^2030% +^^^^2031^^^^2032^^^^2033^^^^2034^^^^2035^^^^2036^^^^2037^^^^2039^^^^203a% +^^^^203c^^^^2040^^^^2049^^^^2057^^^^205d^^^^2060^^^^2070^^^^2071^^^^2074% +^^^^2075^^^^2076^^^^2077^^^^2078^^^^2079^^^^207a^^^^207b^^^^207c^^^^207d% +^^^^207e^^^^207f^^^^2080^^^^2081^^^^2082^^^^2083^^^^2084^^^^2085^^^^2086% +^^^^2087^^^^2088^^^^2089^^^^208a^^^^208b^^^^208c^^^^208d^^^^208e^^^^2090% +^^^^2091^^^^2092^^^^2093^^^^2094^^^^2095^^^^2096^^^^2097^^^^2098^^^^2099% +^^^^209a^^^^209b^^^^209c^^^^20a7^^^^20ac^^^^20d0^^^^20d1^^^^20d2^^^^20d6% +^^^^20d7^^^^20db^^^^20dc^^^^20dd^^^^20de^^^^20df^^^^20e1^^^^20e4^^^^20e7% +^^^^20e8^^^^20e9^^^^20ec^^^^20ed^^^^20ee^^^^20ef^^^^20f0^^^^2102^^^^2107% +^^^^210a^^^^210b^^^^210c^^^^210d^^^^210e^^^^210f^^^^2110^^^^2111^^^^2112% +^^^^2113^^^^2115^^^^2116^^^^2118^^^^2119^^^^211a^^^^211b^^^^211c^^^^211d% +^^^^211e^^^^2122^^^^2124^^^^2126^^^^2127^^^^2128^^^^2129^^^^212b^^^^212c% +^^^^212d^^^^212f^^^^2130^^^^2131^^^^2132^^^^2133^^^^2134^^^^2135^^^^2136% +^^^^2137^^^^2138^^^^2139^^^^213c^^^^213d^^^^213e^^^^213f^^^^2140^^^^2141% +^^^^2142^^^^2143^^^^2144^^^^2145^^^^2146^^^^2147^^^^2148^^^^2149^^^^214a% +^^^^214b^^^^2150^^^^2151^^^^2152^^^^2153^^^^2154^^^^2155^^^^2156^^^^2157% +^^^^2158^^^^2159^^^^215a^^^^215b^^^^215c^^^^215d^^^^215e^^^^215f^^^^2189% +^^^^2190^^^^2191^^^^2192^^^^2193^^^^2194^^^^2195^^^^2196^^^^2197^^^^2198% +^^^^2199^^^^219a^^^^219b^^^^219c^^^^219d^^^^219e^^^^219f^^^^21a0^^^^21a1% +^^^^21a2^^^^21a3^^^^21a4^^^^21a5^^^^21a6^^^^21a7^^^^21a8^^^^21a9^^^^21aa% +^^^^21ab^^^^21ac^^^^21ad^^^^21ae^^^^21af^^^^21b0^^^^21b1^^^^21b2^^^^21b3% +^^^^21b4^^^^21b5^^^^21b6^^^^21b7^^^^21b8^^^^21b9^^^^21ba^^^^21bb^^^^21bc% +^^^^21bd^^^^21be^^^^21bf^^^^21c0^^^^21c1^^^^21c2^^^^21c3^^^^21c4^^^^21c5% +^^^^21c6^^^^21c7^^^^21c8^^^^21c9^^^^21ca^^^^21cb^^^^21cc^^^^21cd^^^^21ce% +^^^^21cf^^^^21d0^^^^21d1^^^^21d2^^^^21d3^^^^21d4^^^^21d5^^^^21d6^^^^21d7% +^^^^21d8^^^^21d9^^^^21da^^^^21db^^^^21dc^^^^21dd^^^^21de^^^^21df^^^^21e0% +^^^^21e1^^^^21e2^^^^21e3^^^^21e4^^^^21e5^^^^21e6^^^^21e7^^^^21e8^^^^21e9% +^^^^21ea^^^^21f4^^^^21f5^^^^21f6^^^^21f7^^^^21f8^^^^21f9^^^^21fa^^^^21fb% +^^^^21fc^^^^21fd^^^^21fe^^^^21ff^^^^2200^^^^2201^^^^2202^^^^2203^^^^2204% +^^^^2205^^^^2206^^^^2207^^^^2208^^^^2209^^^^220a^^^^220b^^^^220c^^^^220d% +^^^^220e^^^^220f^^^^2210^^^^2211^^^^2212^^^^2213^^^^2214^^^^2216^^^^2217% +^^^^2218^^^^2219^^^^221a^^^^221b^^^^221c^^^^221d^^^^221e^^^^221f^^^^2220% +^^^^2221^^^^2222^^^^2223^^^^2224^^^^2225^^^^2226^^^^2227^^^^2228^^^^2229% +^^^^222a^^^^222b^^^^222c^^^^222d^^^^222e^^^^222f^^^^2230^^^^2231^^^^2232% +^^^^2233^^^^2234^^^^2235^^^^2237^^^^2238^^^^223a^^^^223b^^^^223c^^^^223d% +^^^^223e^^^^223f^^^^2240^^^^2241^^^^2242^^^^2243^^^^2244^^^^2245^^^^2246% +^^^^2247^^^^2248^^^^2249^^^^224a^^^^224b^^^^224c^^^^224d^^^^224e^^^^224f% +^^^^2250^^^^2251^^^^2252^^^^2253^^^^2254^^^^2255^^^^2256^^^^2257^^^^2258% +^^^^2259^^^^225a^^^^225b^^^^225c^^^^225d^^^^225e^^^^225f^^^^2260^^^^2261% +^^^^2262^^^^2263^^^^2264^^^^2265^^^^2266^^^^2267^^^^2268^^^^2269^^^^226a% +^^^^226b^^^^226c^^^^226d^^^^226e^^^^226f^^^^2270^^^^2271^^^^2272^^^^2273% +^^^^2274^^^^2275^^^^2276^^^^2277^^^^2278^^^^2279^^^^227a^^^^227b^^^^227c% +^^^^227d^^^^227e^^^^227f^^^^2280^^^^2281^^^^2282^^^^2283^^^^2284^^^^2285% +^^^^2286^^^^2287^^^^2288^^^^2289^^^^228a^^^^228b^^^^228d^^^^228e^^^^228f% +^^^^2290^^^^2291^^^^2292^^^^2293^^^^2294^^^^2295^^^^2296^^^^2297^^^^2298% +^^^^2299^^^^229a^^^^229b^^^^229c^^^^229d^^^^229e^^^^229f^^^^22a0^^^^22a1% +^^^^22a2^^^^22a3^^^^22a4^^^^22a5^^^^22a7^^^^22a8^^^^22a9^^^^22aa^^^^22ab% +^^^^22ac^^^^22ad^^^^22ae^^^^22af^^^^22b0^^^^22b1^^^^22b2^^^^22b3^^^^22b4% +^^^^22b5^^^^22b6^^^^22b7^^^^22b8^^^^22b9^^^^22ba^^^^22bb^^^^22bc^^^^22bd% +^^^^22be^^^^22bf^^^^22c0^^^^22c1^^^^22c2^^^^22c3^^^^22c4^^^^22c5^^^^22c6% +^^^^22c7^^^^22c8^^^^22c9^^^^22ca^^^^22cb^^^^22cc^^^^22cd^^^^22ce^^^^22cf% +^^^^22d0^^^^22d1^^^^22d2^^^^22d3^^^^22d4^^^^22d5^^^^22d6^^^^22d7^^^^22d8% +^^^^22d9^^^^22da^^^^22db^^^^22dc^^^^22dd^^^^22de^^^^22df^^^^22e0^^^^22e1% +^^^^22e2^^^^22e3^^^^22e4^^^^22e5^^^^22e6^^^^22e7^^^^22e8^^^^22e9^^^^22ea% +^^^^22eb^^^^22ec^^^^22ed^^^^22ee^^^^22ef^^^^22f0^^^^22f1^^^^22f2^^^^22f3% +^^^^22f4^^^^22f5^^^^22f6^^^^22f7^^^^22f8^^^^22f9^^^^22fa^^^^22fb^^^^22fc% +^^^^22fd^^^^22fe^^^^22ff^^^^2300^^^^2302^^^^2305^^^^2306^^^^2308^^^^2309% +^^^^230a^^^^230b^^^^2310^^^^2311^^^^2312^^^^2313^^^^2315^^^^2317^^^^2319% +^^^^231a^^^^231b^^^^231c^^^^231d^^^^231e^^^^231f^^^^2322^^^^2323^^^^232c% +^^^^2332^^^^2336^^^^233d^^^^233f^^^^2340^^^^2353^^^^2370^^^^2394^^^^23a3% +^^^^23b0^^^^23b1^^^^23b4^^^^23b5^^^^23b6^^^^23b7^^^^23b8^^^^23b9^^^^23ce% +^^^^23de^^^^23df^^^^23e2^^^^23e3^^^^23e4^^^^23e5^^^^23e6^^^^23e7^^^^23e9% +^^^^23ea^^^^23eb^^^^23ec^^^^23f0^^^^23f3^^^^2422^^^^2423^^^^24c2^^^^24c8% +^^^^2500^^^^2501^^^^2502^^^^2503^^^^2504^^^^2505^^^^2506^^^^2507^^^^2508% +^^^^2509^^^^250a^^^^250b^^^^250c^^^^250d^^^^250e^^^^250f^^^^2510^^^^2511% +^^^^2512^^^^2513^^^^2514^^^^2515^^^^2516^^^^2517^^^^2518^^^^2519^^^^251a% +^^^^251b^^^^251c^^^^251d^^^^251e^^^^251f^^^^2520^^^^2521^^^^2522^^^^2523% +^^^^2524^^^^2525^^^^2526^^^^2527^^^^2528^^^^2529^^^^252a^^^^252b^^^^252c% +^^^^252d^^^^252e^^^^252f^^^^2530^^^^2531^^^^2532^^^^2533^^^^2534^^^^2535% +^^^^2536^^^^2537^^^^2538^^^^2539^^^^253a^^^^253b^^^^253c^^^^253d^^^^253e% +^^^^253f^^^^2540^^^^2541^^^^2542^^^^2543^^^^2544^^^^2545^^^^2546^^^^2547% +^^^^2548^^^^2549^^^^254a^^^^254b^^^^254c^^^^254d^^^^254e^^^^254f^^^^2550% +^^^^2551^^^^2552^^^^2553^^^^2554^^^^2555^^^^2556^^^^2557^^^^2558^^^^2559% +^^^^255a^^^^255b^^^^255c^^^^255d^^^^255e^^^^255f^^^^2560^^^^2561^^^^2562% +^^^^2563^^^^2564^^^^2565^^^^2566^^^^2567^^^^2568^^^^2569^^^^256a^^^^256b% +^^^^256c^^^^256d^^^^256e^^^^256f^^^^2570^^^^2571^^^^2572^^^^2573^^^^2574% +^^^^2575^^^^2576^^^^2577^^^^2578^^^^2579^^^^257a^^^^257b^^^^257c^^^^257d% +^^^^257e^^^^257f^^^^2580^^^^2584^^^^2588^^^^258c^^^^2590^^^^2591^^^^2592% +^^^^2593^^^^25a0^^^^25a1^^^^25a2^^^^25a3^^^^25a4^^^^25a5^^^^25a6^^^^25a7% +^^^^25a8^^^^25a9^^^^25aa^^^^25ab^^^^25ac^^^^25ad^^^^25ae^^^^25af^^^^25b0% +^^^^25b1^^^^25b2^^^^25b3^^^^25b4^^^^25b5^^^^25b6^^^^25b7^^^^25b8^^^^25b9% +^^^^25ba^^^^25bb^^^^25bc^^^^25bd^^^^25be^^^^25bf^^^^25c0^^^^25c1^^^^25c2% +^^^^25c3^^^^25c4^^^^25c5^^^^25c6^^^^25c7^^^^25c8^^^^25c9^^^^25ca^^^^25cb% +^^^^25cc^^^^25cd^^^^25ce^^^^25cf^^^^25d0^^^^25d1^^^^25d2^^^^25d3^^^^25d4% +^^^^25d5^^^^25d6^^^^25d7^^^^25d8^^^^25d9^^^^25da^^^^25db^^^^25dc^^^^25dd% +^^^^25de^^^^25df^^^^25e0^^^^25e1^^^^25e2^^^^25e3^^^^25e4^^^^25e5^^^^25e6% +^^^^25e7^^^^25e8^^^^25e9^^^^25ea^^^^25eb^^^^25ec^^^^25ed^^^^25ee^^^^25ef% +^^^^25f0^^^^25f1^^^^25f2^^^^25f3^^^^25f4^^^^25f5^^^^25f6^^^^25f7^^^^25f8% +^^^^25f9^^^^25fa^^^^25fb^^^^25fc^^^^25fd^^^^25fe^^^^25ff^^^^2600^^^^2601% +^^^^2605^^^^2606^^^^2609^^^^260e^^^^2611^^^^2614^^^^2615^^^^261d^^^^2621% +^^^^263a^^^^263b^^^^263c^^^^263d^^^^263e^^^^263f^^^^2640^^^^2642^^^^2643% +^^^^2644^^^^2645^^^^2646^^^^2647^^^^2648^^^^2649^^^^264a^^^^264b^^^^264c% +^^^^264d^^^^264e^^^^264f^^^^2650^^^^2651^^^^2652^^^^2653^^^^2660^^^^2661% +^^^^2662^^^^2663^^^^2664^^^^2665^^^^2666^^^^2667^^^^2668^^^^2669^^^^266a% +^^^^266b^^^^266d^^^^266e^^^^266f^^^^267b^^^^267e^^^^267f^^^^2680^^^^2681% +^^^^2682^^^^2683^^^^2684^^^^2685^^^^2686^^^^2687^^^^2688^^^^2689^^^^2693% +^^^^26a0^^^^26a1^^^^26a5^^^^26aa^^^^26ab^^^^26ac^^^^26b2^^^^26bd^^^^26be% +^^^^26c4^^^^26c5^^^^26ce^^^^26d4^^^^26ea^^^^26f2^^^^26f3^^^^26f5^^^^26fa% +^^^^26fd^^^^2702^^^^2705^^^^2708^^^^2709^^^^270a^^^^270b^^^^270c^^^^270f% +^^^^2712^^^^2713^^^^2714^^^^2716^^^^2720^^^^2728^^^^272a^^^^2733^^^^2734% +^^^^2736^^^^273d^^^^2744^^^^2747^^^^274c^^^^274e^^^^2753^^^^2754^^^^2755% +^^^^2757^^^^2764^^^^2795^^^^2796^^^^2797^^^^279b^^^^27a1^^^^27b0^^^^27bf% +^^^^27c0^^^^27c1^^^^27c2^^^^27c8^^^^27c9^^^^27d1^^^^27d2^^^^27d5^^^^27d6% +^^^^27d7^^^^27d8^^^^27d9^^^^27e6^^^^27e7^^^^27e8^^^^27e9^^^^27f0^^^^27f1% +^^^^27f5^^^^27f6^^^^27f7^^^^27f8^^^^27f9^^^^27fa^^^^27fb^^^^27fc^^^^27fd% +^^^^27fe^^^^27ff^^^^2900^^^^2901^^^^2902^^^^2903^^^^2904^^^^2905^^^^2906% +^^^^2907^^^^2908^^^^2909^^^^290a^^^^290b^^^^290c^^^^290d^^^^290e^^^^290f% +^^^^2910^^^^2911^^^^2912^^^^2913^^^^2914^^^^2915^^^^2916^^^^2917^^^^2918% +^^^^291d^^^^291e^^^^291f^^^^2920^^^^2925^^^^2926^^^^2927^^^^2928^^^^2929% +^^^^292a^^^^292b^^^^292c^^^^292d^^^^292e^^^^292f^^^^2930^^^^2931^^^^2932% +^^^^2934^^^^2935^^^^2942^^^^2944^^^^2945^^^^2946^^^^2947^^^^2948^^^^2949% +^^^^294a^^^^294b^^^^294c^^^^294d^^^^294e^^^^294f^^^^2950^^^^2951^^^^2952% +^^^^2953^^^^2954^^^^2955^^^^2956^^^^2957^^^^2958^^^^2959^^^^295a^^^^295b% +^^^^295c^^^^295d^^^^295e^^^^295f^^^^2960^^^^2961^^^^2962^^^^2963^^^^2964% +^^^^2965^^^^2966^^^^2967^^^^2968^^^^2969^^^^296a^^^^296b^^^^296c^^^^296d% +^^^^296e^^^^296f^^^^2970^^^^2980^^^^2986^^^^2999^^^^299b^^^^299c^^^^299d% +^^^^299e^^^^299f^^^^29a0^^^^29a1^^^^29a2^^^^29a3^^^^29a4^^^^29a5^^^^29a6% +^^^^29a7^^^^29a8^^^^29a9^^^^29aa^^^^29ab^^^^29ac^^^^29ad^^^^29ae^^^^29af% +^^^^29b0^^^^29b1^^^^29b2^^^^29b3^^^^29b4^^^^29b7^^^^29b8^^^^29bc^^^^29be% +^^^^29bf^^^^29c0^^^^29c1^^^^29c4^^^^29c5^^^^29c6^^^^29c7^^^^29ca^^^^29cb% +^^^^29cf^^^^29d0^^^^29df^^^^29e1^^^^29e2^^^^29e3^^^^29e4^^^^29e5^^^^29eb% +^^^^29f4^^^^29f6^^^^29f7^^^^29fa^^^^29fb^^^^2a00^^^^2a01^^^^2a02^^^^2a03% +^^^^2a04^^^^2a05^^^^2a06^^^^2a07^^^^2a08^^^^2a09^^^^2a0a^^^^2a0b^^^^2a0c% +^^^^2a0d^^^^2a0e^^^^2a0f^^^^2a10^^^^2a11^^^^2a12^^^^2a13^^^^2a14^^^^2a15% +^^^^2a16^^^^2a18^^^^2a19^^^^2a1a^^^^2a1b^^^^2a1c^^^^2a1d^^^^2a1f^^^^2a22% +^^^^2a23^^^^2a24^^^^2a25^^^^2a26^^^^2a27^^^^2a28^^^^2a29^^^^2a2a^^^^2a2b% +^^^^2a2c^^^^2a2d^^^^2a2e^^^^2a2f^^^^2a30^^^^2a31^^^^2a32^^^^2a33^^^^2a34% +^^^^2a35^^^^2a36^^^^2a37^^^^2a38^^^^2a39^^^^2a3a^^^^2a3b^^^^2a3c^^^^2a3d% +^^^^2a3f^^^^2a40^^^^2a41^^^^2a42^^^^2a43^^^^2a44^^^^2a45^^^^2a4a^^^^2a4b% +^^^^2a4c^^^^2a4d^^^^2a4e^^^^2a4f^^^^2a50^^^^2a51^^^^2a52^^^^2a53^^^^2a54% +^^^^2a55^^^^2a56^^^^2a57^^^^2a58^^^^2a5a^^^^2a5b^^^^2a5c^^^^2a5d^^^^2a5e% +^^^^2a5f^^^^2a60^^^^2a61^^^^2a62^^^^2a63^^^^2a66^^^^2a67^^^^2a6a^^^^2a6b% +^^^^2a6c^^^^2a6d^^^^2a6e^^^^2a6f^^^^2a70^^^^2a71^^^^2a72^^^^2a73^^^^2a74% +^^^^2a75^^^^2a76^^^^2a77^^^^2a78^^^^2a79^^^^2a7a^^^^2a7b^^^^2a7c^^^^2a7d% +^^^^2a7e^^^^2a7f^^^^2a80^^^^2a81^^^^2a82^^^^2a83^^^^2a84^^^^2a85^^^^2a86% +^^^^2a87^^^^2a88^^^^2a89^^^^2a8a^^^^2a8b^^^^2a8c^^^^2a8d^^^^2a8e^^^^2a8f% +^^^^2a90^^^^2a91^^^^2a92^^^^2a93^^^^2a94^^^^2a95^^^^2a96^^^^2a97^^^^2a98% +^^^^2a99^^^^2a9a^^^^2a9b^^^^2a9c^^^^2a9d^^^^2a9e^^^^2a9f^^^^2aa0^^^^2aa1% +^^^^2aa2^^^^2aa3^^^^2aa4^^^^2aa5^^^^2aa6^^^^2aa7^^^^2aa8^^^^2aa9^^^^2aaa% +^^^^2aab^^^^2aac^^^^2aad^^^^2aae^^^^2aaf^^^^2ab0^^^^2ab1^^^^2ab2^^^^2ab3% +^^^^2ab4^^^^2ab5^^^^2ab6^^^^2ab7^^^^2ab8^^^^2ab9^^^^2aba^^^^2abb^^^^2abc% +^^^^2abd^^^^2abe^^^^2abf^^^^2ac0^^^^2ac1^^^^2ac2^^^^2ac3^^^^2ac4^^^^2ac5% +^^^^2ac6^^^^2ac7^^^^2ac8^^^^2ac9^^^^2aca^^^^2acb^^^^2acc^^^^2acd^^^^2ace% +^^^^2acf^^^^2ad0^^^^2ad1^^^^2ad2^^^^2ad3^^^^2ad4^^^^2ad5^^^^2ad6^^^^2ad7% +^^^^2ad8^^^^2ad9^^^^2adb^^^^2adc^^^^2add^^^^2ae3^^^^2ae4^^^^2af4^^^^2af6% +^^^^2af7^^^^2af8^^^^2af9^^^^2afa^^^^2b05^^^^2b06^^^^2b07^^^^2b12^^^^2b13% +^^^^2b14^^^^2b15^^^^2b16^^^^2b17^^^^2b18^^^^2b19^^^^2b1a^^^^2b1b^^^^2b1c% +^^^^2b1d^^^^2b1e^^^^2b1f^^^^2b20^^^^2b21^^^^2b22^^^^2b23^^^^2b24^^^^2b25% +^^^^2b26^^^^2b27^^^^2b28^^^^2b29^^^^2b2a^^^^2b2b^^^^2b2c^^^^2b2d^^^^2b2e% +^^^^2b2f^^^^2b30^^^^2b31^^^^2b32^^^^2b33^^^^2b34^^^^2b35^^^^2b36^^^^2b37% +^^^^2b38^^^^2b39^^^^2b3a^^^^2b3b^^^^2b3c^^^^2b3d^^^^2b3e^^^^2b3f^^^^2b40% +^^^^2b41^^^^2b42^^^^2b43^^^^2b44^^^^2b45^^^^2b46^^^^2b47^^^^2b48^^^^2b49% +^^^^2b4a^^^^2b4b^^^^2b4c^^^^2b50^^^^2b51^^^^2b52^^^^2b53^^^^2b54^^^^2b55% +^^^^2c7c^^^^2c7d^^^^3012^^^^3030^^^^303d^^^^3297^^^^3299^^^^a71b^^^^a71c% +^^^^a71d% +^^^^^^01d400^^^^^^01d401^^^^^^01d402^^^^^^01d403^^^^^^01d404^^^^^^01d405% +^^^^^^01d406^^^^^^01d407^^^^^^01d408^^^^^^01d409^^^^^^01d40a^^^^^^01d40b% +^^^^^^01d40c^^^^^^01d40d^^^^^^01d40e^^^^^^01d40f^^^^^^01d410^^^^^^01d411% +^^^^^^01d412^^^^^^01d413^^^^^^01d414^^^^^^01d415^^^^^^01d416^^^^^^01d417% +^^^^^^01d418^^^^^^01d419^^^^^^01d41a^^^^^^01d41b^^^^^^01d41c^^^^^^01d41d% +^^^^^^01d41e^^^^^^01d41f^^^^^^01d420^^^^^^01d421^^^^^^01d422^^^^^^01d423% +^^^^^^01d424^^^^^^01d425^^^^^^01d426^^^^^^01d427^^^^^^01d428^^^^^^01d429% +^^^^^^01d42a^^^^^^01d42b^^^^^^01d42c^^^^^^01d42d^^^^^^01d42e^^^^^^01d42f% +^^^^^^01d430^^^^^^01d431^^^^^^01d432^^^^^^01d433^^^^^^01d434^^^^^^01d435% +^^^^^^01d436^^^^^^01d437^^^^^^01d438^^^^^^01d439^^^^^^01d43a^^^^^^01d43b% +^^^^^^01d43c^^^^^^01d43d^^^^^^01d43e^^^^^^01d43f^^^^^^01d440^^^^^^01d441% +^^^^^^01d442^^^^^^01d443^^^^^^01d444^^^^^^01d445^^^^^^01d446^^^^^^01d447% +^^^^^^01d448^^^^^^01d449^^^^^^01d44a^^^^^^01d44b^^^^^^01d44c^^^^^^01d44d% +^^^^^^01d44e^^^^^^01d44f^^^^^^01d450^^^^^^01d451^^^^^^01d452^^^^^^01d453% +^^^^^^01d454^^^^^^01d456^^^^^^01d457^^^^^^01d458^^^^^^01d459^^^^^^01d45a% +^^^^^^01d45b^^^^^^01d45c^^^^^^01d45d^^^^^^01d45e^^^^^^01d45f^^^^^^01d460% +^^^^^^01d461^^^^^^01d462^^^^^^01d463^^^^^^01d464^^^^^^01d465^^^^^^01d466% +^^^^^^01d467^^^^^^01d468^^^^^^01d469^^^^^^01d46a^^^^^^01d46b^^^^^^01d46c% +^^^^^^01d46d^^^^^^01d46e^^^^^^01d46f^^^^^^01d470^^^^^^01d471^^^^^^01d472% +^^^^^^01d473^^^^^^01d474^^^^^^01d475^^^^^^01d476^^^^^^01d477^^^^^^01d478% +^^^^^^01d479^^^^^^01d47a^^^^^^01d47b^^^^^^01d47c^^^^^^01d47d^^^^^^01d47e% +^^^^^^01d47f^^^^^^01d480^^^^^^01d481^^^^^^01d482^^^^^^01d483^^^^^^01d484% +^^^^^^01d485^^^^^^01d486^^^^^^01d487^^^^^^01d488^^^^^^01d489^^^^^^01d48a% +^^^^^^01d48b^^^^^^01d48c^^^^^^01d48d^^^^^^01d48e^^^^^^01d48f^^^^^^01d490% +^^^^^^01d491^^^^^^01d492^^^^^^01d493^^^^^^01d494^^^^^^01d495^^^^^^01d496% +^^^^^^01d497^^^^^^01d498^^^^^^01d499^^^^^^01d49a^^^^^^01d49b^^^^^^01d49c% +^^^^^^01d49e^^^^^^01d49f^^^^^^01d4a2^^^^^^01d4a5^^^^^^01d4a6^^^^^^01d4a9% +^^^^^^01d4aa^^^^^^01d4ab^^^^^^01d4ac^^^^^^01d4ae^^^^^^01d4af^^^^^^01d4b0% +^^^^^^01d4b1^^^^^^01d4b2^^^^^^01d4b3^^^^^^01d4b4^^^^^^01d4b5^^^^^^01d4b6% +^^^^^^01d4b7^^^^^^01d4b8^^^^^^01d4b9^^^^^^01d4bb^^^^^^01d4bd^^^^^^01d4be% +^^^^^^01d4bf^^^^^^01d4c0^^^^^^01d4c1^^^^^^01d4c2^^^^^^01d4c3^^^^^^01d4c5% +^^^^^^01d4c6^^^^^^01d4c7^^^^^^01d4c8^^^^^^01d4c9^^^^^^01d4ca^^^^^^01d4cb% +^^^^^^01d4cc^^^^^^01d4cd^^^^^^01d4ce^^^^^^01d4cf^^^^^^01d4d0^^^^^^01d4d1% +^^^^^^01d4d2^^^^^^01d4d3^^^^^^01d4d4^^^^^^01d4d5^^^^^^01d4d6^^^^^^01d4d7% +^^^^^^01d4d8^^^^^^01d4d9^^^^^^01d4da^^^^^^01d4db^^^^^^01d4dc^^^^^^01d4dd% +^^^^^^01d4de^^^^^^01d4df^^^^^^01d4e0^^^^^^01d4e1^^^^^^01d4e2^^^^^^01d4e3% +^^^^^^01d4e4^^^^^^01d4e5^^^^^^01d4e6^^^^^^01d4e7^^^^^^01d4e8^^^^^^01d4e9% +^^^^^^01d4ea^^^^^^01d4eb^^^^^^01d4ec^^^^^^01d4ed^^^^^^01d4ee^^^^^^01d4ef% +^^^^^^01d4f0^^^^^^01d4f1^^^^^^01d4f2^^^^^^01d4f3^^^^^^01d4f4^^^^^^01d4f5% +^^^^^^01d4f6^^^^^^01d4f7^^^^^^01d4f8^^^^^^01d4f9^^^^^^01d4fa^^^^^^01d4fb% +^^^^^^01d4fc^^^^^^01d4fd^^^^^^01d4fe^^^^^^01d4ff^^^^^^01d500^^^^^^01d501% +^^^^^^01d502^^^^^^01d503^^^^^^01d504^^^^^^01d505^^^^^^01d507^^^^^^01d508% +^^^^^^01d509^^^^^^01d50a^^^^^^01d50d^^^^^^01d50e^^^^^^01d50f^^^^^^01d510% +^^^^^^01d511^^^^^^01d512^^^^^^01d513^^^^^^01d514^^^^^^01d516^^^^^^01d517% +^^^^^^01d518^^^^^^01d519^^^^^^01d51a^^^^^^01d51b^^^^^^01d51c^^^^^^01d51e% +^^^^^^01d51f^^^^^^01d520^^^^^^01d521^^^^^^01d522^^^^^^01d523^^^^^^01d524% +^^^^^^01d525^^^^^^01d526^^^^^^01d527^^^^^^01d528^^^^^^01d529^^^^^^01d52a% +^^^^^^01d52b^^^^^^01d52c^^^^^^01d52d^^^^^^01d52e^^^^^^01d52f^^^^^^01d530% +^^^^^^01d531^^^^^^01d532^^^^^^01d533^^^^^^01d534^^^^^^01d535^^^^^^01d536% +^^^^^^01d537^^^^^^01d538^^^^^^01d539^^^^^^01d53b^^^^^^01d53c^^^^^^01d53d% +^^^^^^01d53e^^^^^^01d540^^^^^^01d541^^^^^^01d542^^^^^^01d543^^^^^^01d544% +^^^^^^01d546^^^^^^01d54a^^^^^^01d54b^^^^^^01d54c^^^^^^01d54d^^^^^^01d54e% +^^^^^^01d54f^^^^^^01d550^^^^^^01d552^^^^^^01d553^^^^^^01d554^^^^^^01d555% +^^^^^^01d556^^^^^^01d557^^^^^^01d558^^^^^^01d559^^^^^^01d55a^^^^^^01d55b% +^^^^^^01d55c^^^^^^01d55d^^^^^^01d55e^^^^^^01d55f^^^^^^01d560^^^^^^01d561% +^^^^^^01d562^^^^^^01d563^^^^^^01d564^^^^^^01d565^^^^^^01d566^^^^^^01d567% +^^^^^^01d568^^^^^^01d569^^^^^^01d56a^^^^^^01d56b^^^^^^01d56c^^^^^^01d56d% +^^^^^^01d56e^^^^^^01d56f^^^^^^01d570^^^^^^01d571^^^^^^01d572^^^^^^01d573% +^^^^^^01d574^^^^^^01d575^^^^^^01d576^^^^^^01d577^^^^^^01d578^^^^^^01d579% +^^^^^^01d57a^^^^^^01d57b^^^^^^01d57c^^^^^^01d57d^^^^^^01d57e^^^^^^01d57f% +^^^^^^01d580^^^^^^01d581^^^^^^01d582^^^^^^01d583^^^^^^01d584^^^^^^01d585% +^^^^^^01d586^^^^^^01d587^^^^^^01d588^^^^^^01d589^^^^^^01d58a^^^^^^01d58b% +^^^^^^01d58c^^^^^^01d58d^^^^^^01d58e^^^^^^01d58f^^^^^^01d590^^^^^^01d591% +^^^^^^01d592^^^^^^01d593^^^^^^01d594^^^^^^01d595^^^^^^01d596^^^^^^01d597% +^^^^^^01d598^^^^^^01d599^^^^^^01d59a^^^^^^01d59b^^^^^^01d59c^^^^^^01d59d% +^^^^^^01d59e^^^^^^01d59f^^^^^^01d5a0^^^^^^01d5a1^^^^^^01d5a2^^^^^^01d5a3% +^^^^^^01d5a4^^^^^^01d5a5^^^^^^01d5a6^^^^^^01d5a7^^^^^^01d5a8^^^^^^01d5a9% +^^^^^^01d5aa^^^^^^01d5ab^^^^^^01d5ac^^^^^^01d5ad^^^^^^01d5ae^^^^^^01d5af% +^^^^^^01d5b0^^^^^^01d5b1^^^^^^01d5b2^^^^^^01d5b3^^^^^^01d5b4^^^^^^01d5b5% +^^^^^^01d5b6^^^^^^01d5b7^^^^^^01d5b8^^^^^^01d5b9^^^^^^01d5ba^^^^^^01d5bb% +^^^^^^01d5bc^^^^^^01d5bd^^^^^^01d5be^^^^^^01d5bf^^^^^^01d5c0^^^^^^01d5c1% +^^^^^^01d5c2^^^^^^01d5c3^^^^^^01d5c4^^^^^^01d5c5^^^^^^01d5c6^^^^^^01d5c7% +^^^^^^01d5c8^^^^^^01d5c9^^^^^^01d5ca^^^^^^01d5cb^^^^^^01d5cc^^^^^^01d5cd% +^^^^^^01d5ce^^^^^^01d5cf^^^^^^01d5d0^^^^^^01d5d1^^^^^^01d5d2^^^^^^01d5d3% +^^^^^^01d5d4^^^^^^01d5d5^^^^^^01d5d6^^^^^^01d5d7^^^^^^01d5d8^^^^^^01d5d9% +^^^^^^01d5da^^^^^^01d5db^^^^^^01d5dc^^^^^^01d5dd^^^^^^01d5de^^^^^^01d5df% +^^^^^^01d5e0^^^^^^01d5e1^^^^^^01d5e2^^^^^^01d5e3^^^^^^01d5e4^^^^^^01d5e5% +^^^^^^01d5e6^^^^^^01d5e7^^^^^^01d5e8^^^^^^01d5e9^^^^^^01d5ea^^^^^^01d5eb% +^^^^^^01d5ec^^^^^^01d5ed^^^^^^01d5ee^^^^^^01d5ef^^^^^^01d5f0^^^^^^01d5f1% +^^^^^^01d5f2^^^^^^01d5f3^^^^^^01d5f4^^^^^^01d5f5^^^^^^01d5f6^^^^^^01d5f7% +^^^^^^01d5f8^^^^^^01d5f9^^^^^^01d5fa^^^^^^01d5fb^^^^^^01d5fc^^^^^^01d5fd% +^^^^^^01d5fe^^^^^^01d5ff^^^^^^01d600^^^^^^01d601^^^^^^01d602^^^^^^01d603% +^^^^^^01d604^^^^^^01d605^^^^^^01d606^^^^^^01d607^^^^^^01d608^^^^^^01d609% +^^^^^^01d60a^^^^^^01d60b^^^^^^01d60c^^^^^^01d60d^^^^^^01d60e^^^^^^01d60f% +^^^^^^01d610^^^^^^01d611^^^^^^01d612^^^^^^01d613^^^^^^01d614^^^^^^01d615% +^^^^^^01d616^^^^^^01d617^^^^^^01d618^^^^^^01d619^^^^^^01d61a^^^^^^01d61b% +^^^^^^01d61c^^^^^^01d61d^^^^^^01d61e^^^^^^01d61f^^^^^^01d620^^^^^^01d621% +^^^^^^01d622^^^^^^01d623^^^^^^01d624^^^^^^01d625^^^^^^01d626^^^^^^01d627% +^^^^^^01d628^^^^^^01d629^^^^^^01d62a^^^^^^01d62b^^^^^^01d62c^^^^^^01d62d% +^^^^^^01d62e^^^^^^01d62f^^^^^^01d630^^^^^^01d631^^^^^^01d632^^^^^^01d633% +^^^^^^01d634^^^^^^01d635^^^^^^01d636^^^^^^01d637^^^^^^01d638^^^^^^01d639% +^^^^^^01d63a^^^^^^01d63b^^^^^^01d63c^^^^^^01d63d^^^^^^01d63e^^^^^^01d63f% +^^^^^^01d640^^^^^^01d641^^^^^^01d642^^^^^^01d643^^^^^^01d644^^^^^^01d645% +^^^^^^01d646^^^^^^01d647^^^^^^01d648^^^^^^01d649^^^^^^01d64a^^^^^^01d64b% +^^^^^^01d64c^^^^^^01d64d^^^^^^01d64e^^^^^^01d64f^^^^^^01d650^^^^^^01d651% +^^^^^^01d652^^^^^^01d653^^^^^^01d654^^^^^^01d655^^^^^^01d656^^^^^^01d657% +^^^^^^01d658^^^^^^01d659^^^^^^01d65a^^^^^^01d65b^^^^^^01d65c^^^^^^01d65d% +^^^^^^01d65e^^^^^^01d65f^^^^^^01d660^^^^^^01d661^^^^^^01d662^^^^^^01d663% +^^^^^^01d664^^^^^^01d665^^^^^^01d666^^^^^^01d667^^^^^^01d668^^^^^^01d669% +^^^^^^01d66a^^^^^^01d66b^^^^^^01d66c^^^^^^01d66d^^^^^^01d66e^^^^^^01d66f% +^^^^^^01d670^^^^^^01d671^^^^^^01d672^^^^^^01d673^^^^^^01d674^^^^^^01d675% +^^^^^^01d676^^^^^^01d677^^^^^^01d678^^^^^^01d679^^^^^^01d67a^^^^^^01d67b% +^^^^^^01d67c^^^^^^01d67d^^^^^^01d67e^^^^^^01d67f^^^^^^01d680^^^^^^01d681% +^^^^^^01d682^^^^^^01d683^^^^^^01d684^^^^^^01d685^^^^^^01d686^^^^^^01d687% +^^^^^^01d688^^^^^^01d689^^^^^^01d68a^^^^^^01d68b^^^^^^01d68c^^^^^^01d68d% +^^^^^^01d68e^^^^^^01d68f^^^^^^01d690^^^^^^01d691^^^^^^01d692^^^^^^01d693% +^^^^^^01d694^^^^^^01d695^^^^^^01d696^^^^^^01d697^^^^^^01d698^^^^^^01d699% +^^^^^^01d69a^^^^^^01d69b^^^^^^01d69c^^^^^^01d69d^^^^^^01d69e^^^^^^01d69f% +^^^^^^01d6a0^^^^^^01d6a1^^^^^^01d6a2^^^^^^01d6a3^^^^^^01d6a4^^^^^^01d6a5% +^^^^^^01d6a8^^^^^^01d6a9^^^^^^01d6aa^^^^^^01d6ab^^^^^^01d6ac^^^^^^01d6ad% +^^^^^^01d6ae^^^^^^01d6af^^^^^^01d6b0^^^^^^01d6b1^^^^^^01d6b2^^^^^^01d6b3% +^^^^^^01d6b4^^^^^^01d6b5^^^^^^01d6b6^^^^^^01d6b7^^^^^^01d6b8^^^^^^01d6b9% +^^^^^^01d6ba^^^^^^01d6bb^^^^^^01d6bc^^^^^^01d6bd^^^^^^01d6be^^^^^^01d6bf% +^^^^^^01d6c0^^^^^^01d6c1^^^^^^01d6c2^^^^^^01d6c3^^^^^^01d6c4^^^^^^01d6c5% +^^^^^^01d6c6^^^^^^01d6c7^^^^^^01d6c8^^^^^^01d6c9^^^^^^01d6ca^^^^^^01d6cb% +^^^^^^01d6cc^^^^^^01d6cd^^^^^^01d6ce^^^^^^01d6cf^^^^^^01d6d0^^^^^^01d6d1% +^^^^^^01d6d2^^^^^^01d6d3^^^^^^01d6d4^^^^^^01d6d5^^^^^^01d6d6^^^^^^01d6d7% +^^^^^^01d6d8^^^^^^01d6d9^^^^^^01d6da^^^^^^01d6db^^^^^^01d6dc^^^^^^01d6dd% +^^^^^^01d6de^^^^^^01d6df^^^^^^01d6e0^^^^^^01d6e1^^^^^^01d6e2^^^^^^01d6e3% +^^^^^^01d6e4^^^^^^01d6e5^^^^^^01d6e6^^^^^^01d6e7^^^^^^01d6e8^^^^^^01d6e9% +^^^^^^01d6ea^^^^^^01d6eb^^^^^^01d6ec^^^^^^01d6ed^^^^^^01d6ee^^^^^^01d6ef% +^^^^^^01d6f0^^^^^^01d6f1^^^^^^01d6f2^^^^^^01d6f3^^^^^^01d6f4^^^^^^01d6f5% +^^^^^^01d6f6^^^^^^01d6f7^^^^^^01d6f8^^^^^^01d6f9^^^^^^01d6fa^^^^^^01d6fb% +^^^^^^01d6fc^^^^^^01d6fd^^^^^^01d6fe^^^^^^01d6ff^^^^^^01d700^^^^^^01d701% +^^^^^^01d702^^^^^^01d703^^^^^^01d704^^^^^^01d705^^^^^^01d706^^^^^^01d707% +^^^^^^01d708^^^^^^01d709^^^^^^01d70a^^^^^^01d70b^^^^^^01d70c^^^^^^01d70d% +^^^^^^01d70e^^^^^^01d70f^^^^^^01d710^^^^^^01d711^^^^^^01d712^^^^^^01d713% +^^^^^^01d714^^^^^^01d715^^^^^^01d716^^^^^^01d717^^^^^^01d718^^^^^^01d719% +^^^^^^01d71a^^^^^^01d71b^^^^^^01d71c^^^^^^01d71d^^^^^^01d71e^^^^^^01d71f% +^^^^^^01d720^^^^^^01d721^^^^^^01d722^^^^^^01d723^^^^^^01d724^^^^^^01d725% +^^^^^^01d726^^^^^^01d727^^^^^^01d728^^^^^^01d729^^^^^^01d72a^^^^^^01d72b% +^^^^^^01d72c^^^^^^01d72d^^^^^^01d72e^^^^^^01d72f^^^^^^01d730^^^^^^01d731% +^^^^^^01d732^^^^^^01d733^^^^^^01d734^^^^^^01d735^^^^^^01d736^^^^^^01d737% +^^^^^^01d738^^^^^^01d739^^^^^^01d73a^^^^^^01d73b^^^^^^01d73c^^^^^^01d73d% +^^^^^^01d73e^^^^^^01d73f^^^^^^01d740^^^^^^01d741^^^^^^01d742^^^^^^01d743% +^^^^^^01d744^^^^^^01d745^^^^^^01d746^^^^^^01d747^^^^^^01d748^^^^^^01d749% +^^^^^^01d74a^^^^^^01d74b^^^^^^01d74c^^^^^^01d74d^^^^^^01d74e^^^^^^01d74f% +^^^^^^01d750^^^^^^01d751^^^^^^01d752^^^^^^01d753^^^^^^01d754^^^^^^01d755% +^^^^^^01d756^^^^^^01d757^^^^^^01d758^^^^^^01d759^^^^^^01d75a^^^^^^01d75b% +^^^^^^01d75c^^^^^^01d75d^^^^^^01d75e^^^^^^01d75f^^^^^^01d760^^^^^^01d761% +^^^^^^01d762^^^^^^01d763^^^^^^01d764^^^^^^01d765^^^^^^01d766^^^^^^01d767% +^^^^^^01d768^^^^^^01d769^^^^^^01d76a^^^^^^01d76b^^^^^^01d76c^^^^^^01d76d% +^^^^^^01d76e^^^^^^01d76f^^^^^^01d770^^^^^^01d771^^^^^^01d772^^^^^^01d773% +^^^^^^01d774^^^^^^01d775^^^^^^01d776^^^^^^01d777^^^^^^01d778^^^^^^01d779% +^^^^^^01d77a^^^^^^01d77b^^^^^^01d77c^^^^^^01d77d^^^^^^01d77e^^^^^^01d77f% +^^^^^^01d780^^^^^^01d781^^^^^^01d782^^^^^^01d783^^^^^^01d784^^^^^^01d785% +^^^^^^01d786^^^^^^01d787^^^^^^01d788^^^^^^01d789^^^^^^01d78a^^^^^^01d78b% +^^^^^^01d78c^^^^^^01d78d^^^^^^01d78e^^^^^^01d78f^^^^^^01d790^^^^^^01d791% +^^^^^^01d792^^^^^^01d793^^^^^^01d794^^^^^^01d795^^^^^^01d796^^^^^^01d797% +^^^^^^01d798^^^^^^01d799^^^^^^01d79a^^^^^^01d79b^^^^^^01d79c^^^^^^01d79d% +^^^^^^01d79e^^^^^^01d79f^^^^^^01d7a0^^^^^^01d7a1^^^^^^01d7a2^^^^^^01d7a3% +^^^^^^01d7a4^^^^^^01d7a5^^^^^^01d7a6^^^^^^01d7a7^^^^^^01d7a8^^^^^^01d7a9% +^^^^^^01d7aa^^^^^^01d7ab^^^^^^01d7ac^^^^^^01d7ad^^^^^^01d7ae^^^^^^01d7af% +^^^^^^01d7b0^^^^^^01d7b1^^^^^^01d7b2^^^^^^01d7b3^^^^^^01d7b4^^^^^^01d7b5% +^^^^^^01d7b6^^^^^^01d7b7^^^^^^01d7b8^^^^^^01d7b9^^^^^^01d7ba^^^^^^01d7bb% +^^^^^^01d7bc^^^^^^01d7bd^^^^^^01d7be^^^^^^01d7bf^^^^^^01d7c0^^^^^^01d7c1% +^^^^^^01d7c2^^^^^^01d7c3^^^^^^01d7c4^^^^^^01d7c5^^^^^^01d7c6^^^^^^01d7c7% +^^^^^^01d7c8^^^^^^01d7c9^^^^^^01d7ca^^^^^^01d7cb^^^^^^01d7ce^^^^^^01d7cf% +^^^^^^01d7d0^^^^^^01d7d1^^^^^^01d7d2^^^^^^01d7d3^^^^^^01d7d4^^^^^^01d7d5% +^^^^^^01d7d6^^^^^^01d7d7^^^^^^01d7d8^^^^^^01d7d9^^^^^^01d7da^^^^^^01d7db% +^^^^^^01d7dc^^^^^^01d7dd^^^^^^01d7de^^^^^^01d7df^^^^^^01d7e0^^^^^^01d7e1% +^^^^^^01d7e2^^^^^^01d7e3^^^^^^01d7e4^^^^^^01d7e5^^^^^^01d7e6^^^^^^01d7e7% +^^^^^^01d7e8^^^^^^01d7e9^^^^^^01d7ea^^^^^^01d7eb^^^^^^01d7ec^^^^^^01d7ed% +^^^^^^01d7ee^^^^^^01d7ef^^^^^^01d7f0^^^^^^01d7f1^^^^^^01d7f2^^^^^^01d7f3% +^^^^^^01d7f4^^^^^^01d7f5^^^^^^01d7f6^^^^^^01d7f7^^^^^^01d7f8^^^^^^01d7f9% +^^^^^^01d7fa^^^^^^01d7fb^^^^^^01d7fc^^^^^^01d7fd^^^^^^01d7fe^^^^^^01d7ff% +^^^^^^01f004^^^^^^01f0cf^^^^^^01f170^^^^^^01f171^^^^^^01f17e^^^^^^01f17f% +^^^^^^01f18e^^^^^^01f191^^^^^^01f192^^^^^^01f193^^^^^^01f194^^^^^^01f195% +^^^^^^01f196^^^^^^01f197^^^^^^01f198^^^^^^01f199^^^^^^01f19a^^^^^^01f201% +^^^^^^01f202^^^^^^01f21a^^^^^^01f22f^^^^^^01f232^^^^^^01f233^^^^^^01f234% +^^^^^^01f235^^^^^^01f236^^^^^^01f237^^^^^^01f238^^^^^^01f239^^^^^^01f23a% +^^^^^^01f250^^^^^^01f251^^^^^^01f300^^^^^^01f301^^^^^^01f302^^^^^^01f303% +^^^^^^01f304^^^^^^01f305^^^^^^01f306^^^^^^01f307^^^^^^01f308^^^^^^01f309% +^^^^^^01f30a^^^^^^01f30b^^^^^^01f30c^^^^^^01f30d^^^^^^01f30e^^^^^^01f30f% +^^^^^^01f310^^^^^^01f311^^^^^^01f312^^^^^^01f313^^^^^^01f314^^^^^^01f315% +^^^^^^01f316^^^^^^01f317^^^^^^01f318^^^^^^01f319^^^^^^01f31a^^^^^^01f31b% +^^^^^^01f31c^^^^^^01f31d^^^^^^01f31e^^^^^^01f31f^^^^^^01f320^^^^^^01f330% +^^^^^^01f331^^^^^^01f332^^^^^^01f333^^^^^^01f334^^^^^^01f335^^^^^^01f337% +^^^^^^01f338^^^^^^01f339^^^^^^01f33a^^^^^^01f33b^^^^^^01f33c^^^^^^01f33d% +^^^^^^01f33e^^^^^^01f33f^^^^^^01f340^^^^^^01f341^^^^^^01f342^^^^^^01f343% +^^^^^^01f344^^^^^^01f345^^^^^^01f346^^^^^^01f347^^^^^^01f348^^^^^^01f349% +^^^^^^01f34a^^^^^^01f34b^^^^^^01f34c^^^^^^01f34d^^^^^^01f34e^^^^^^01f34f% +^^^^^^01f350^^^^^^01f351^^^^^^01f352^^^^^^01f353^^^^^^01f354^^^^^^01f355% +^^^^^^01f356^^^^^^01f357^^^^^^01f358^^^^^^01f359^^^^^^01f35a^^^^^^01f35b% +^^^^^^01f35c^^^^^^01f35d^^^^^^01f35e^^^^^^01f35f^^^^^^01f360^^^^^^01f361% +^^^^^^01f362^^^^^^01f363^^^^^^01f364^^^^^^01f365^^^^^^01f366^^^^^^01f367% +^^^^^^01f368^^^^^^01f369^^^^^^01f36a^^^^^^01f36b^^^^^^01f36c^^^^^^01f36d% +^^^^^^01f36e^^^^^^01f36f^^^^^^01f370^^^^^^01f371^^^^^^01f372^^^^^^01f373% +^^^^^^01f374^^^^^^01f375^^^^^^01f376^^^^^^01f377^^^^^^01f378^^^^^^01f379% +^^^^^^01f37a^^^^^^01f37b^^^^^^01f37c^^^^^^01f380^^^^^^01f381^^^^^^01f382% +^^^^^^01f383^^^^^^01f384^^^^^^01f385^^^^^^01f386^^^^^^01f387^^^^^^01f388% +^^^^^^01f389^^^^^^01f38a^^^^^^01f38b^^^^^^01f38c^^^^^^01f38d^^^^^^01f38e% +^^^^^^01f38f^^^^^^01f390^^^^^^01f391^^^^^^01f392^^^^^^01f393^^^^^^01f3a0% +^^^^^^01f3a1^^^^^^01f3a2^^^^^^01f3a3^^^^^^01f3a4^^^^^^01f3a5^^^^^^01f3a6% +^^^^^^01f3a7^^^^^^01f3a8^^^^^^01f3a9^^^^^^01f3aa^^^^^^01f3ab^^^^^^01f3ac% +^^^^^^01f3ad^^^^^^01f3ae^^^^^^01f3af^^^^^^01f3b0^^^^^^01f3b1^^^^^^01f3b2% +^^^^^^01f3b3^^^^^^01f3b4^^^^^^01f3b5^^^^^^01f3b6^^^^^^01f3b7^^^^^^01f3b8% +^^^^^^01f3b9^^^^^^01f3ba^^^^^^01f3bb^^^^^^01f3bc^^^^^^01f3bd^^^^^^01f3be% +^^^^^^01f3bf^^^^^^01f3c0^^^^^^01f3c1^^^^^^01f3c2^^^^^^01f3c3^^^^^^01f3c4% +^^^^^^01f3c6^^^^^^01f3c7^^^^^^01f3c8^^^^^^01f3c9^^^^^^01f3ca^^^^^^01f3e0% +^^^^^^01f3e1^^^^^^01f3e2^^^^^^01f3e3^^^^^^01f3e4^^^^^^01f3e5^^^^^^01f3e6% +^^^^^^01f3e7^^^^^^01f3e8^^^^^^01f3e9^^^^^^01f3ea^^^^^^01f3eb^^^^^^01f3ec% +^^^^^^01f3ed^^^^^^01f3ee^^^^^^01f3ef^^^^^^01f3f0^^^^^^01f3fb^^^^^^01f3fc% +^^^^^^01f3fd^^^^^^01f3fe^^^^^^01f3ff^^^^^^01f400^^^^^^01f401^^^^^^01f402% +^^^^^^01f403^^^^^^01f404^^^^^^01f405^^^^^^01f406^^^^^^01f407^^^^^^01f408% +^^^^^^01f409^^^^^^01f40a^^^^^^01f40b^^^^^^01f40c^^^^^^01f40d^^^^^^01f40e% +^^^^^^01f40f^^^^^^01f410^^^^^^01f411^^^^^^01f412^^^^^^01f413^^^^^^01f414% +^^^^^^01f415^^^^^^01f416^^^^^^01f417^^^^^^01f418^^^^^^01f419^^^^^^01f41a% +^^^^^^01f41b^^^^^^01f41c^^^^^^01f41d^^^^^^01f41e^^^^^^01f41f^^^^^^01f420% +^^^^^^01f421^^^^^^01f422^^^^^^01f423^^^^^^01f424^^^^^^01f425^^^^^^01f426% +^^^^^^01f427^^^^^^01f428^^^^^^01f429^^^^^^01f42a^^^^^^01f42b^^^^^^01f42c% +^^^^^^01f42d^^^^^^01f42e^^^^^^01f42f^^^^^^01f430^^^^^^01f431^^^^^^01f432% +^^^^^^01f433^^^^^^01f434^^^^^^01f435^^^^^^01f436^^^^^^01f437^^^^^^01f438% +^^^^^^01f439^^^^^^01f43a^^^^^^01f43b^^^^^^01f43c^^^^^^01f43d^^^^^^01f43e% +^^^^^^01f440^^^^^^01f442^^^^^^01f443^^^^^^01f444^^^^^^01f445^^^^^^01f446% +^^^^^^01f447^^^^^^01f448^^^^^^01f449^^^^^^01f44a^^^^^^01f44b^^^^^^01f44c% +^^^^^^01f44d^^^^^^01f44e^^^^^^01f44f^^^^^^01f450^^^^^^01f451^^^^^^01f452% +^^^^^^01f453^^^^^^01f454^^^^^^01f455^^^^^^01f456^^^^^^01f457^^^^^^01f458% +^^^^^^01f459^^^^^^01f45a^^^^^^01f45b^^^^^^01f45c^^^^^^01f45d^^^^^^01f45e% +^^^^^^01f45f^^^^^^01f460^^^^^^01f461^^^^^^01f462^^^^^^01f463^^^^^^01f464% +^^^^^^01f465^^^^^^01f466^^^^^^01f467^^^^^^01f468^^^^^^01f469^^^^^^01f46a% +^^^^^^01f46b^^^^^^01f46c^^^^^^01f46d^^^^^^01f46e^^^^^^01f46f^^^^^^01f470% +^^^^^^01f471^^^^^^01f472^^^^^^01f473^^^^^^01f474^^^^^^01f475^^^^^^01f476% +^^^^^^01f477^^^^^^01f478^^^^^^01f479^^^^^^01f47a^^^^^^01f47b^^^^^^01f47c% +^^^^^^01f47d^^^^^^01f47e^^^^^^01f47f^^^^^^01f480^^^^^^01f481^^^^^^01f482% +^^^^^^01f483^^^^^^01f484^^^^^^01f485^^^^^^01f486^^^^^^01f487^^^^^^01f488% +^^^^^^01f489^^^^^^01f48a^^^^^^01f48b^^^^^^01f48c^^^^^^01f48d^^^^^^01f48e% +^^^^^^01f48f^^^^^^01f490^^^^^^01f491^^^^^^01f492^^^^^^01f493^^^^^^01f494% +^^^^^^01f495^^^^^^01f496^^^^^^01f497^^^^^^01f498^^^^^^01f499^^^^^^01f49a% +^^^^^^01f49b^^^^^^01f49c^^^^^^01f49d^^^^^^01f49e^^^^^^01f49f^^^^^^01f4a0% +^^^^^^01f4a1^^^^^^01f4a2^^^^^^01f4a3^^^^^^01f4a4^^^^^^01f4a5^^^^^^01f4a6% +^^^^^^01f4a7^^^^^^01f4a8^^^^^^01f4a9^^^^^^01f4aa^^^^^^01f4ab^^^^^^01f4ac% +^^^^^^01f4ad^^^^^^01f4ae^^^^^^01f4af^^^^^^01f4b0^^^^^^01f4b1^^^^^^01f4b2% +^^^^^^01f4b3^^^^^^01f4b4^^^^^^01f4b5^^^^^^01f4b6^^^^^^01f4b7^^^^^^01f4b8% +^^^^^^01f4b9^^^^^^01f4ba^^^^^^01f4bb^^^^^^01f4bc^^^^^^01f4bd^^^^^^01f4be% +^^^^^^01f4bf^^^^^^01f4c0^^^^^^01f4c1^^^^^^01f4c2^^^^^^01f4c3^^^^^^01f4c4% +^^^^^^01f4c5^^^^^^01f4c6^^^^^^01f4c7^^^^^^01f4c8^^^^^^01f4c9^^^^^^01f4ca% +^^^^^^01f4cb^^^^^^01f4cc^^^^^^01f4cd^^^^^^01f4ce^^^^^^01f4cf^^^^^^01f4d0% +^^^^^^01f4d1^^^^^^01f4d2^^^^^^01f4d3^^^^^^01f4d4^^^^^^01f4d5^^^^^^01f4d6% +^^^^^^01f4d7^^^^^^01f4d8^^^^^^01f4d9^^^^^^01f4da^^^^^^01f4db^^^^^^01f4dc% +^^^^^^01f4dd^^^^^^01f4de^^^^^^01f4df^^^^^^01f4e0^^^^^^01f4e1^^^^^^01f4e2% +^^^^^^01f4e3^^^^^^01f4e4^^^^^^01f4e5^^^^^^01f4e6^^^^^^01f4e7^^^^^^01f4e8% +^^^^^^01f4e9^^^^^^01f4ea^^^^^^01f4eb^^^^^^01f4ec^^^^^^01f4ed^^^^^^01f4ee% +^^^^^^01f4ef^^^^^^01f4f0^^^^^^01f4f1^^^^^^01f4f2^^^^^^01f4f3^^^^^^01f4f4% +^^^^^^01f4f5^^^^^^01f4f6^^^^^^01f4f7^^^^^^01f4f9^^^^^^01f4fa^^^^^^01f4fb% +^^^^^^01f4fc^^^^^^01f500^^^^^^01f501^^^^^^01f502^^^^^^01f503^^^^^^01f504% +^^^^^^01f505^^^^^^01f506^^^^^^01f507^^^^^^01f508^^^^^^01f509^^^^^^01f50a% +^^^^^^01f50b^^^^^^01f50c^^^^^^01f50d^^^^^^01f50e^^^^^^01f50f^^^^^^01f510% +^^^^^^01f511^^^^^^01f512^^^^^^01f513^^^^^^01f514^^^^^^01f515^^^^^^01f516% +^^^^^^01f517^^^^^^01f518^^^^^^01f519^^^^^^01f51a^^^^^^01f51b^^^^^^01f51c% +^^^^^^01f51d^^^^^^01f51e^^^^^^01f51f^^^^^^01f520^^^^^^01f521^^^^^^01f522% +^^^^^^01f523^^^^^^01f524^^^^^^01f525^^^^^^01f526^^^^^^01f527^^^^^^01f528% +^^^^^^01f529^^^^^^01f52a^^^^^^01f52b^^^^^^01f52c^^^^^^01f52d^^^^^^01f52e% +^^^^^^01f52f^^^^^^01f530^^^^^^01f531^^^^^^01f532^^^^^^01f533^^^^^^01f534% +^^^^^^01f535^^^^^^01f536^^^^^^01f537^^^^^^01f538^^^^^^01f539^^^^^^01f53a% +^^^^^^01f53b^^^^^^01f53c^^^^^^01f53d^^^^^^01f550^^^^^^01f551^^^^^^01f552% +^^^^^^01f553^^^^^^01f554^^^^^^01f555^^^^^^01f556^^^^^^01f557^^^^^^01f558% +^^^^^^01f559^^^^^^01f55a^^^^^^01f55b^^^^^^01f55c^^^^^^01f55d^^^^^^01f55e% +^^^^^^01f55f^^^^^^01f560^^^^^^01f561^^^^^^01f562^^^^^^01f563^^^^^^01f564% +^^^^^^01f565^^^^^^01f566^^^^^^01f567^^^^^^01f5fb^^^^^^01f5fc^^^^^^01f5fd% +^^^^^^01f5fe^^^^^^01f5ff^^^^^^01f600^^^^^^01f601^^^^^^01f602^^^^^^01f603% +^^^^^^01f604^^^^^^01f605^^^^^^01f606^^^^^^01f607^^^^^^01f608^^^^^^01f609% +^^^^^^01f60a^^^^^^01f60b^^^^^^01f60c^^^^^^01f60d^^^^^^01f60e^^^^^^01f60f% +^^^^^^01f610^^^^^^01f611^^^^^^01f612^^^^^^01f613^^^^^^01f614^^^^^^01f615% +^^^^^^01f616^^^^^^01f617^^^^^^01f618^^^^^^01f619^^^^^^01f61a^^^^^^01f61b% +^^^^^^01f61c^^^^^^01f61d^^^^^^01f61e^^^^^^01f61f^^^^^^01f620^^^^^^01f621% +^^^^^^01f622^^^^^^01f623^^^^^^01f624^^^^^^01f625^^^^^^01f626^^^^^^01f627% +^^^^^^01f628^^^^^^01f629^^^^^^01f62a^^^^^^01f62b^^^^^^01f62c^^^^^^01f62d% +^^^^^^01f62e^^^^^^01f62f^^^^^^01f630^^^^^^01f631^^^^^^01f632^^^^^^01f633% +^^^^^^01f634^^^^^^01f635^^^^^^01f636^^^^^^01f637^^^^^^01f638^^^^^^01f639% +^^^^^^01f63a^^^^^^01f63b^^^^^^01f63c^^^^^^01f63d^^^^^^01f63e^^^^^^01f63f% +^^^^^^01f640^^^^^^01f645^^^^^^01f646^^^^^^01f647^^^^^^01f648^^^^^^01f649% +^^^^^^01f64a^^^^^^01f64b^^^^^^01f64c^^^^^^01f64d^^^^^^01f64e^^^^^^01f64f% +^^^^^^01f680^^^^^^01f681^^^^^^01f682^^^^^^01f683^^^^^^01f684^^^^^^01f685% +^^^^^^01f686^^^^^^01f687^^^^^^01f688^^^^^^01f689^^^^^^01f68a^^^^^^01f68b% +^^^^^^01f68c^^^^^^01f68d^^^^^^01f68e^^^^^^01f68f^^^^^^01f690^^^^^^01f691% +^^^^^^01f692^^^^^^01f693^^^^^^01f694^^^^^^01f695^^^^^^01f696^^^^^^01f697% +^^^^^^01f698^^^^^^01f699^^^^^^01f69a^^^^^^01f69b^^^^^^01f69c^^^^^^01f69d% +^^^^^^01f69e^^^^^^01f69f^^^^^^01f6a0^^^^^^01f6a1^^^^^^01f6a2^^^^^^01f6a3% +^^^^^^01f6a4^^^^^^01f6a5^^^^^^01f6a6^^^^^^01f6a7^^^^^^01f6a8^^^^^^01f6a9% +^^^^^^01f6aa^^^^^^01f6ab^^^^^^01f6ac^^^^^^01f6ad^^^^^^01f6ae^^^^^^01f6af% +^^^^^^01f6b0^^^^^^01f6b1^^^^^^01f6b2^^^^^^01f6b3^^^^^^01f6b4^^^^^^01f6b5% +^^^^^^01f6b6^^^^^^01f6b7^^^^^^01f6b8^^^^^^01f6b9^^^^^^01f6ba^^^^^^01f6bb% +^^^^^^01f6bc^^^^^^01f6bd^^^^^^01f6be^^^^^^01f6bf^^^^^^01f6c0^^^^^^01f6c1% +^^^^^^01f6c2^^^^^^01f6c3^^^^^^01f6c4^^^^^^01f6c5% +^^00} +\fi +\lst@RestoreCatcodes + + + +\iftutex % LuaTeX + XeTeX +% +% +% special unicode characters +%\DeclareUnicodeCharacter{0391}{A} +\lstdefinestyle{jlcodeuccstyle}{% +%inputencoding=utf8, +extendedchars=true, +literate= +% +% mathematical operators (julia functions) +% +% comment out the next command if you dont use ' as the transposition +% operator! activate the command in line 384 in that case, too! +{'}{{\uccop{'}}}{1} +{×}{{\uccop{×}}}{1} {÷}{{\uccop{÷}}}{1} {∈}{{\uccop{∈}}}{1} {∉}{{\uccop{∉}}}{1} +{∋}{{\uccop{∋}}}{1} {∌}{{\uccop{∌}}}{1} {∘}{{\uccop{∘}}}{1} {√}{{\uccop{√}}}{1} +{∛}{{\uccop{∛}}}{1} {∩}{{\uccop{∩}}}{1} {∪}{{\uccop{∪}}}{1} {≈}{{\uccop{≈}}}{1} +{≉}{{\uccop{≉}}}{1} {≠}{{\uccop{≠}}}{1} {≡}{{\uccop{≡}}}{1} {≢}{{\uccop{≢}}}{1} +{≤}{{\uccop{≤}}}{1} {≥}{{\uccop{≥}}}{1} {⊆}{{\uccop{⊆}}}{1} {⊇}{{\uccop{⊇}}}{1} +{⊈}{{\uccop{⊈}}}{1} {⊉}{{\uccop{⊉}}}{1} {⊊}{{\uccop{⊊}}}{1} {⊋}{{\uccop{⊋}}}{1} +{⊻}{{\uccop{⊻}}}{1} {⋅}{{\uccop{⋅}}}{1} +} +% +% +\else % PDFTeX +% +% +% defining some symbols in such a way that they can be displayed correctly +% \rvdots, \rddots, \riddots +% (slightly modified versions of the commands of the mathdots package): + +\def\MDo@us#1{\@nameuse{#1style}}% + \def\MDo@uf#1{\@nameuse{#1font}0}% + \def\MDo@t{text}\def\MDo@s{script}\def\MDo@ss{scriptscript}% + \newdimen\MDo@unit \MDo@unit\p@ + +\def\MDo@changestyle#1{\relax\MDo@unit0.1\fontdimen6\MDo@uf{#1}% + \everymath\expandafter{\the\everymath\MDo@us{#1}}}% +\def\MDo@dot{$\m@th\ldotp$}% +\def\MDo@palette#1{\mathchoice{#1\MDo@t}{#1\MDo@t}{#1\MDo@s}{#1\MDo@ss}}% + + +\def\MDo@vdots#1{\vbox{\MDo@changestyle{#1}% + \baselineskip4\MDo@unit\lineskiplimit\z@ + \kern-\MDo@unit\hbox{\MDo@dot}\hbox{\MDo@dot}\hbox{\MDo@dot}}}% + +\def\MDo@ddots#1{{\MDo@changestyle{#1}% + \mkern1mu\raise7\MDo@unit\vbox{\kern-\MDo@unit\hbox{\MDo@dot}}% + \mkern2mu\raise4\MDo@unit\hbox{\MDo@dot}% + \mkern2mu\raise \MDo@unit\hbox{\MDo@dot}\mkern1mu}}% + +\def\MDo@iddots#1{{\MDo@changestyle{#1}% + \mkern1mu\raise \MDo@unit\hbox{\MDo@dot}% + \mkern2mu\raise4\MDo@unit\hbox{\MDo@dot}% + \mkern2mu\raise7\MDo@unit\vbox{\kern-\MDo@unit\hbox{\MDo@dot}}}}% + + +\DeclareRobustCommand\rvdots{\mathinner{\MDo@palette\MDo@vdots}}% +\DeclareRobustCommand\rddots{\mathinner{\MDo@palette\MDo@ddots}}% +\DeclareRobustCommand\riddots{\mathinner{\MDo@palette\MDo@iddots}}% + + + +% special unicode characters +%\DeclareUnicodeCharacter{0391}{A} +\lstdefinestyle{jlcodeuccstyle}{% +%inputencoding=utf8, +extendedchars=true, +literate= +% +% special characters that appear in latin languages +% +{á}{{\ucc{\'a}}}{1} {é}{{\ucc{\'e}}}{1} {í}{{\ucc{\'i}}}{1} {ó}{{\ucc{\'o}}}{1} +{ú}{{\ucc{\'u}}}{1} {Á}{{\ucc{\'A}}}{1} {É}{{\ucc{\'E}}}{1} {Í}{{\ucc{\'I}}}{1} +{Ó}{{\ucc{\'O}}}{1} {Ú}{{\ucc{\'U}}}{1} +{à}{{\ucc{\`a}}}{1} {è}{{\ucc{\`e}}}{1} {ì}{{\ucc{\`i}}}{1} {ò}{{\ucc{\`o}}}{1} +{ù}{{\ucc{\`u}}}{1} {À}{{\ucc{\`A}}}{1} {È}{{\ucc{\'E}}}{1} {Ì}{{\ucc{\`I}}}{1} +{Ò}{{\ucc{\`O}}}{1} {Ù}{{\ucc{\`U}}}{1} +{ä}{{\ucc{\"a}}}{1} {ë}{{\ucc{\"e}}}{1} {ï}{{\ucc{\"i}}}{1} {ö}{{\ucc{\"o}}}{1} +{ü}{{\ucc{\"u}}}{1} {Ä}{{\ucc{\"A}}}{1} {Ë}{{\ucc{\"E}}}{1} {Ï}{{\ucc{\"I}}}{1} +{Ö}{{\ucc{\"O}}}{1} {Ü}{{\ucc{\"U}}}{1} +{â}{{\ucc{\^a}}}{1} {ê}{{\ucc{\^e}}}{1} {î}{{\ucc{\^i}}}{1} {ô}{{\ucc{\^o}}}{1} +{û}{{\ucc{\^u}}}{1} {Â}{{\ucc{\^A}}}{1} {Ê}{{\ucc{\^E}}}{1} {Î}{{\ucc{\^I}}}{1} +{Ô}{{\ucc{\^O}}}{1} {Û}{{\ucc{\^U}}}{1} +{œ}{{\ucc{\oe}}}{1} {Œ}{{\ucc{\OE}}}{1} {æ}{{\ucc{\ae}}}{1} {Æ}{{\ucc{\AE}}}{1} +{ß}{\ucc{{\ss}}}{1} +{ű}{{\ucc{\H{u}}}}{1} {Ű}{{\ucc{\H{U}}}}{1} {ő}{{\ucc{\H{o}}}}{1} +{Ő}{{\ucc{\H{O}}}}{1} {ç}{{\ucc{\c c}}}{1} {Ç}{{\ucc{\c C}}}{1} +{ø}{{\ucc{\o}}}{1} {å}{{\ucc{\r a}}}{1} {Å}{{\ucc{\r A}}}{1} +{€}{{\ucc{\euro}}}{1} {£}{{\ucc{\pounds}}}{1} {«}{{\ucc{\guillemotleft}}}{1} +{»}{{\ucc{\guillemotright}}}{1} {ñ}{{\ucc{\~n}}}{1} {Ñ}{{\ucc{\~N}}}{1} +{¿}{{\ucc{?`}}}{1} +% +% greek capital letters +% +{Α}{{\ucc{A}}}{1} {Β}{{\ucc{B}}}{1} {Γ}{{\ucc{$\Gamma$}}}{1} +{Δ}{{\ucc{$\Delta$}}}{1} {Ε}{{\ucc{E}}}{1} {Ζ}{{\ucc{Z}}}{1} +{Η}{{\ucc{H}}}{1} {Θ}{{\ucc{$\Theta$}}}{1} {Ι}{{\ucc{I}}}{1} +{Κ}{{\ucc{K}}}{1} {Λ}{{\ucc{$\Lambda$}}}{1} {Μ}{{\ucc{M}}}{1} +{Ν}{{\ucc{N}}}{1} {Ξ}{{\ucc{$\Xi$}}}{1} {Ο}{{\ucc{O}}}{1} +{Π}{{\ucc{$\Pi$}}}{1} {Ρ}{{\ucc{P}}}{1} {Σ}{{\ucc{$\Sigma$}}}{1} +{Τ}{{\ucc{T}}}{1} {Υ}{{\ucc{$\Upsilon$}}}{1} {Φ}{{\ucc{$\Phi$}}}{1} +{Χ}{{\ucc{X}}}{1} {Ψ}{{\ucc{$\Psi$}}}{1} {Ω}{{\ucc{$\Omega$}}}{1} +% +% micro sign, latin small letter open e, script small e +% +{µ}{{\ucc{$\mu$}}}{1} {ɛ}{{\ucc{$\varepsilon$}}}{1} +{ℯ}{{\ucclit{$e$}}}{1} +% +% greek small letters +% +{α}{{\ucc{$\alpha$}}}{1} {β}{{\ucc{$\beta$}}}{1} {γ}{{\ucclit{$\gamma$}}}{1} +{δ}{{\ucc{$\delta$}}}{1} {ε}{{\ucc{$\varepsilon$}}}{1} +{ϵ}{{\ucc{$\epsilon$}}}{1} {ζ}{{\ucc{$\zeta$}}}{1} {η}{{\ucc{$\eta$}}}{1} +{θ}{{\ucc{$\theta$}}}{1} {ϑ}{{\ucc{$\vartheta$}}}{1} {ι}{{\ucc{$\iota$}}}{1} +{κ}{{\ucc{$\kappa$}}}{1} {ϰ}{{\ucc{$\varkappa$}}}{1} {λ}{{\ucc{$\lambda$}}}{1} +{μ}{{\ucc{$\mu$}}}{1} {ν}{{\ucc{$\nu$}}}{1} {ξ}{{\ucc{$\xi$}}}{1} +{ο}{{\ucc{o}}}{1} {π}{{\ucclit{$\pi$}}}{1} {ϖ}{{\ucc{$\varpi$}}}{1} +{ρ}{{\ucc{$\rho$}}}{1} {ϱ}{{\ucc{$\varrho$}}}{1} {σ}{{\ucc{$\sigma$}}}{1} +{ς}{{\ucc{$\varsigma$}}}{1} {τ}{{\ucc{$\tau$}}}{1} {υ}{{\ucc{$\upsilon$}}}{1} +{φ}{{\ucclit{$\phi$}}}{1} {ϕ}{{\ucc{$\varphi$}}}{1} {χ}{{\ucc{$\chi$}}}{1} +{ψ}{{\ucc{$\psi$}}}{1} {ω}{{\ucc{$\omega$}}}{1} +% +% latin capital letters with dot above +% +{Ȧ}{{\ucc{\.A}}}{1} {Ḃ}{{\ucc{\.B}}}{1} {Ċ}{{\ucc{\.C}}}{1} {Ḋ}{{\ucc{\.D}}}{1} +{Ė}{{\ucc{\.E}}}{1} {Ḟ}{{\ucc{\.F}}}{1} {Ġ}{{\ucc{\.G}}}{1} {Ḣ}{{\ucc{\.H}}}{1} +{İ}{{\ucc{\.I}}}{1} {J̇}{{\ucc{\.J}}}{1} {K̇}{{\ucc{\.K}}}{1} {L̇}{{\ucc{\.L}}}{1} +{Ṁ}{{\ucc{\.M}}}{1} {Ṅ}{{\ucc{\.N}}}{1} {Ȯ}{{\ucc{\.O}}}{1} {Ṗ}{{\ucc{\.P}}}{1} +{Q̇}{{\ucc{\.Q}}}{1} {Ṙ}{{\ucc{\.R}}}{1} {Ṡ}{{\ucc{\.S}}}{1} {Ṫ}{{\ucc{\.T}}}{1} +{U̇}{{\ucc{\.U}}}{1} {V̇}{{\ucc{\.V}}}{1} {Ẇ}{{\ucc{\.W}}}{1} {Ẋ}{{\ucc{\.X}}}{1} +{Ẏ}{{\ucc{\.Y}}}{1} {Ż}{{\ucc{\.Z}}}{1} +% +% latin small letters with dot above +% +{ȧ}{{\ucc{\.a}}}{1} {ḃ}{{\ucc{\.b}}}{1} {ċ}{{\ucc{\.c}}}{1} {ḋ}{{\ucc{\.d}}}{1} +{ė}{{\ucc{\.e}}}{1} {ḟ}{{\ucc{\.f}}}{1} {ġ}{{\ucc{\.g}}}{1} {ḣ}{{\ucc{\.h}}}{1} +{i̇}{{\ucc{\.i}}}{1} {j̇}{{\ucc{\.j}}}{1} {k̇}{{\ucc{\.k}}}{1} {l̇}{{\ucc{\.l}}}{1} +{ṁ}{{\ucc{\.m}}}{1} {ṅ}{{\ucc{\.n}}}{1} {ȯ}{{\ucc{\.o}}}{1} {ṗ}{{\ucc{\.p}}}{1} +{q̇}{{\ucc{\.q}}}{1} {ṙ}{{\ucc{\.r}}}{1} {ṡ}{{\ucc{\.s}}}{1} {ṫ}{{\ucc{\.t}}}{1} +{u̇}{{\ucc{\.u}}}{1} {v̇}{{\ucc{\.v}}}{1} {ẇ}{{\ucc{\.w}}}{1} {ẋ}{{\ucc{\.x}}}{1} +{ẏ}{{\ucc{\.y}}}{1} {ż}{{\ucc{\.z}}}{1} +% +% greek capital letters with dot above +% +{Α̇}{{\ucc{${\scriptstyle \dot{A}}$}}}{1} +{Β̇}{{\ucc{${\scriptstyle \dot{B}}$}}}{1} +{Γ̇}{{\ucc{${\scriptstyle \dot{\Gamma}}$}}}{1} +{Δ̇}{{\ucc{${\scriptstyle \dot{\Delta}}$}}}{1} +{Ε̇}{{\ucc{${\scriptstyle \dot{E}}$}}}{1} +{Ζ̇}{{\ucc{${\scriptstyle \dot{Z}}$}}}{1} +{Η̇}{{\ucc{${\scriptstyle \dot{H}}$}}}{1} +{Θ̇}{{\ucc{${\scriptstyle \dot{\Theta}}$}}}{1} +{Ι̇}{{\ucc{${\scriptstyle \dot{I}}$}}}{1} +{Κ̇}{{\ucc{${\scriptstyle \dot{K}}$}}}{1} +{Λ̇}{{\ucc{${\scriptstyle \dot{\Lambda}}$}}}{1} +{Μ̇}{{\ucc{${\scriptstyle \dot{M}}$}}}{1} +{Ν̇}{{\ucc{${\scriptstyle \dot{N}}$}}}{1} +{Ξ̇}{{\ucc{${\scriptstyle \dot{\Xi}}$}}}{1} +{Ο̇}{{\ucc{${\scriptstyle \dot{O}}$}}}{1} +{Π̇}{{\ucc{${\scriptstyle \dot{\Pi}}$}}}{1} +{Ρ̇}{{\ucc{${\scriptstyle \dot{P}}$}}}{1} +{Σ̇}{{\ucc{${\scriptstyle \dot{\Sigma}}$}}}{1} +{Τ̇}{{\ucc{${\scriptstyle \dot{T}}$}}}{1} +{Υ̇}{{\ucc{${\scriptstyle \dot{\Upsilon}}$}}}{1} +{Φ̇}{{\ucc{${\scriptstyle \dot{\Phi}}$}}}{1} +{Χ̇}{{\ucc{${\scriptstyle \dot{X}}$}}}{1} +{Ψ̇}{{\ucc{${\scriptstyle \dot{\Psi}}$}}}{1} +{Ω̇}{{\ucc{${\scriptstyle \dot{\Omega}}$}}}{1} +% +% greek small letters with dot above +% +{α̇}{{\ucc{${\scriptstyle \dot{\alpha}}$}}}{1} +{β̇}{{\ucc{${\scriptstyle \dot{\beta}}$}}}{1} +{γ̇}{{\ucc{${\scriptstyle \dot{\gamma}}$}}}{1} +{δ̇}{{\ucc{${\scriptstyle \dot{\delta}}$}}}{1} +{ε̇}{{\ucc{${\scriptstyle \dot{\varepsilon}}$}}}{1} +{ϵ̇}{{\ucc{${\scriptstyle \dot{\epsilon}}$}}}{1} +{ζ̇}{{\ucc{${\scriptstyle \dot{\zeta}}$}}}{1} +{η̇}{{\ucc{${\scriptstyle \dot{\eta}}$}}}{1} +{θ̇}{{\ucc{${\scriptstyle \dot{\theta}}$}}}{1} +{ϑ̇}{{\ucc{${\scriptstyle \dot{\vartheta}}$}}}{1} +{ι̇}{{\ucc{${\scriptstyle \dot{\iota}}$}}}{1} +{κ̇}{{\ucc{${\scriptstyle \dot{\kappa}}$}}}{1} +{ϰ̇}{{\ucc{${\scriptstyle \dot{\varkappa}}$}}}{1} +{λ̇}{{\ucc{${\scriptstyle \dot{\lambda}}$}}}{1} +{μ̇}{{\ucc{${\scriptstyle \dot{\mu}}$}}}{1} +{ν̇}{{\ucc{${\scriptstyle \dot{\nu}}$}}}{1} +{ξ̇}{{\ucc{${\scriptstyle \dot{\xi}}$}}}{1} +{ο̇}{{\ucc{${\scriptstyle \dot{o}}$}}}{1} +{π̇}{{\ucc{${\scriptstyle \dot{\pi}}$}}}{1} +{ϖ̇}{{\ucc{${\scriptstyle \dot{\varpi}}$}}}{1} +{ρ̇}{{\ucc{${\scriptstyle \dot{\rho}}$}}}{1} +{ϱ̇}{{\ucc{${\scriptstyle \dot{\varrho}}$}}}{1} +{σ̇}{{\ucc{${\scriptstyle \dot{\sigma}}$}}}{1} +{ς̇}{{\ucc{${\scriptstyle \dot{\varsigma}}$}}}{1} +{τ̇}{{\ucc{${\scriptstyle \dot{\tau}}$}}}{1} +{υ̇}{{\ucc{${\scriptstyle \dot{\upsilon}}$}}}{1} +{ϕ̇}{{\ucc{${\scriptstyle \dot{\phi}}$}}}{1} +{φ̇}{{\ucc{${\scriptstyle \dot{\varphi}}$}}}{1} +{χ̇}{{\ucc{${\scriptstyle \dot{\chi}}$}}}{1} +{ψ̇}{{\ucc{${\scriptstyle \dot{\psi}}$}}}{1} +{ω̇}{{\ucc{${\scriptstyle \dot{\omega}}$}}}{1} +% +% latin capital letters with double dot above +% +{Ä}{{\ucc{\"A}}}{1} {B̈}{{\ucc{\"B}}}{1} {C̈}{{\ucc{\"C}}}{1} {D̈}{{\ucc{\"D}}}{1} +{Ë}{{\ucc{\"E}}}{1} {F̈}{{\ucc{\"F}}}{1} {G̈}{{\ucc{\"G}}}{1} {Ḧ}{{\ucc{\"H}}}{1} +{Ï}{{\ucc{\"I}}}{1} {J̈}{{\ucc{\"J}}}{1} {K̈}{{\ucc{\"K}}}{1} {L̈}{{\ucc{\"L}}}{1} +{M̈}{{\ucc{\"M}}}{1} {N̈}{{\ucc{\"N}}}{1} {Ö}{{\ucc{\"O}}}{1} {P̈}{{\ucc{\"P}}}{1} +{Q̈}{{\ucc{\"Q}}}{1} {R̈}{{\ucc{\"R}}}{1} {S̈}{{\ucc{\"S}}}{1} {T̈}{{\ucc{\"T}}}{1} +{Ü}{{\ucc{\"U}}}{1} {V̈}{{\ucc{\"V}}}{1} {Ẅ}{{\ucc{\"W}}}{1} {Ẍ}{{\ucc{\"X}}}{1} +{Ÿ}{{\ucc{\"Y}}}{1} {Z̈}{{\ucc{\"Z}}}{1} +% +% latin small letters with double dot above +% +{ä}{{\ucc{\"a}}}{1} {b̈}{{\ucc{\"b}}}{1} {c̈}{{\ucc{\"c}}}{1} {d̈}{{\ucc{\"d}}}{1} +{ë}{{\ucc{\"e}}}{1} {f̈}{{\ucc{\"f}}}{1} {g̈}{{\ucc{\"g}}}{1} {ḧ}{{\ucc{\"h}}}{1} +{ï}{{\ucc{\"i}}}{1} {j̈}{{\ucc{\"j}}}{1} {k̈}{{\ucc{\"k}}}{1} {l̈}{{\ucc{\"l}}}{1} +{m̈}{{\ucc{\"m}}}{1} {n̈}{{\ucc{\"n}}}{1} {ö}{{\ucc{\"o}}}{1} {p̈}{{\ucc{\"p}}}{1} +{q̈}{{\ucc{\"q}}}{1} {r̈}{{\ucc{\"r}}}{1} {s̈}{{\ucc{\"s}}}{1} {ẗ}{{\ucc{\"t}}}{1} +{ü}{{\ucc{\"u}}}{1} {v̈}{{\ucc{\"v}}}{1} {ẅ}{{\ucc{\"w}}}{1} {ẍ}{{\ucc{\"x}}}{1} +{ÿ}{{\ucc{\"y}}}{1} {z̈}{{\ucc{\"z}}}{1} +% +% greek capital letters with double dot above +% +{Α̈}{{\ucc{${\scriptstyle \ddot{A}}$}}}{1} +{Β̈}{{\ucc{${\scriptstyle \ddot{B}}$}}}{1} +{Γ̈}{{\ucc{${\scriptstyle \ddot{\Gamma}}$}}}{1} +{Δ̈}{{\ucc{${\scriptstyle \ddot{\Delta}}$}}}{1} +{Ε̈}{{\ucc{${\scriptstyle \ddot{E}}$}}}{1} +{Ζ̈}{{\ucc{${\scriptstyle \ddot{Z}}$}}}{1} +{Η̈}{{\ucc{${\scriptstyle \ddot{H}}$}}}{1} +{Θ̈}{{\ucc{${\scriptstyle \ddot{\Theta}}$}}}{1} +{Ϊ}{{\ucc{${\scriptstyle \ddot{I}}$}}}{1} +{Κ̈}{{\ucc{${\scriptstyle \ddot{K}}$}}}{1} +{Λ̈}{{\ucc{${\scriptstyle \ddot{\Lambda}}$}}}{1} +{Μ̈}{{\ucc{${\scriptstyle \ddot{M}}$}}}{1} +{Ν̈}{{\ucc{${\scriptstyle \ddot{N}}$}}}{1} +{Ξ̈}{{\ucc{${\scriptstyle \ddot{\Xi}}$}}}{1} +{Ο̈}{{\ucc{${\scriptstyle \ddot{O}}$}}}{1} +{Π̈}{{\ucc{${\scriptstyle \ddot{\Pi}}$}}}{1} +{Ρ̈}{{\ucc{${\scriptstyle \ddot{P}}$}}}{1} +{Σ̈}{{\ucc{${\scriptstyle \ddot{\Sigma}}$}}}{1} +{Τ̈}{{\ucc{${\scriptstyle \ddot{T}}$}}}{1} +{Ϋ}{{\ucc{${\scriptstyle \ddot{\Upsilon}}$}}}{1} +{Φ̈}{{\ucc{${\scriptstyle \ddot{\Phi}}$}}}{1} +{Χ̈}{{\ucc{${\scriptstyle \ddot{X}}$}}}{1} +{Ψ̈}{{\ucc{${\scriptstyle \ddot{\Psi}}$}}}{1} +{Ω̈}{{\ucc{${\scriptstyle \ddot{\Omega}}$}}}{1} +% +% greek small letters with double dot above +% +{α̈}{{\ucc{${\scriptstyle \ddot{\alpha}}$}}}{1} +{β̈}{{\ucc{${\scriptstyle \ddot{\beta}}$}}}{1} +{γ̈}{{\ucc{${\scriptstyle \ddot{\gamma}}$}}}{1} +{δ̈}{{\ucc{${\scriptstyle \ddot{\delta}}$}}}{1} +{ε̈}{{\ucc{${\scriptstyle \ddot{\varepsilon}}$}}}{1} +{ϵ̈}{{\ucc{${\scriptstyle \ddot{\epsilon}}$}}}{1} +{ζ̈}{{\ucc{${\scriptstyle \ddot{\zeta}}$}}}{1} +{η̈}{{\ucc{${\scriptstyle \ddot{\eta}}$}}}{1} +{θ̈}{{\ucc{${\scriptstyle \ddot{\theta}}$}}}{1} +{ϑ̈}{{\ucc{${\scriptstyle \ddot{\vartheta}}$}}}{1} +{ϊ}{{\ucc{${\scriptstyle \ddot{\iota}}$}}}{1} +{κ̈}{{\ucc{${\scriptstyle \ddot{\kappa}}$}}}{1} +{ϰ̈}{{\ucc{${\scriptstyle \ddot{\varkappa}}$}}}{1} +{λ̈}{{\ucc{${\scriptstyle \ddot{\lambda}}$}}}{1} +{μ̈}{{\ucc{${\scriptstyle \ddot{\mu}}$}}}{1} +{ν̈}{{\ucc{${\scriptstyle \ddot{\nu}}$}}}{1} +{ξ̈}{{\ucc{${\scriptstyle \ddot{\xi}}$}}}{1} +{ο̈}{{\ucc{${\scriptstyle \ddot{o}}$}}}{1} +{π̈}{{\ucc{${\scriptstyle \ddot{\pi}}$}}}{1} +{ϖ̈}{{\ucc{${\scriptstyle \ddot{\varpi}}$}}}{1} +{ρ̈}{{\ucc{${\scriptstyle \ddot{\rho}}$}}}{1} +{ϱ̈}{{\ucc{${\scriptstyle \ddot{\varrho}}$}}}{1} +{σ̈}{{\ucc{${\scriptstyle \ddot{\sigma}}$}}}{1} +{ς̈}{{\ucc{${\scriptstyle \ddot{\varsigma}}$}}}{1} +{τ̈}{{\ucc{${\scriptstyle \ddot{\tau}}$}}}{1} +{ϋ}{{\ucc{${\scriptstyle \ddot{\upsilon}}$}}}{1} +{φ̈}{{\ucc{${\scriptstyle \ddot{\phi}}$}}}{1} +{ϕ̈}{{\ucc{${\scriptstyle \ddot{\varphi}}$}}}{1} +{χ̈}{{\ucc{${\scriptstyle \ddot{\chi}}$}}}{1} +{ψ̈}{{\ucc{${\scriptstyle \ddot{\psi}}$}}}{1} +{ω̈}{{\ucc{${\scriptstyle \dot{\omega}}$}}}{1} +% +% latin capital letters with tilde above +% +{Ã}{{\ucc{\~A}}}{1} {B̃}{{\ucc{\~B}}}{1} {C̃}{{\ucc{\~C}}}{1} {D̃}{{\ucc{\~D}}}{1} +{Ẽ}{{\ucc{\~E}}}{1} {F̃}{{\ucc{\~F}}}{1} {G̃}{{\ucc{\~G}}}{1} {H̃}{{\ucc{\~H}}}{1} +{Ĩ}{{\ucc{\~I}}}{1} {J̃}{{\ucc{\~J}}}{1} {K̃}{{\ucc{\~K}}}{1} {L̃}{{\ucc{\~L}}}{1} +{M̃}{{\ucc{\~M}}}{1} {Ñ}{{\ucc{\~N}}}{1} {Õ}{{\ucc{\~O}}}{1} {P̃}{{\ucc{\~P}}}{1} +{Q̃}{{\ucc{\~Q}}}{1} {R̃}{{\ucc{\~R}}}{1} {S̃}{{\ucc{\~S}}}{1} {T̃}{{\ucc{\~T}}}{1} +{Ũ}{{\ucc{\~U}}}{1} {Ṽ}{{\ucc{\~V}}}{1} {W̃}{{\ucc{\~W}}}{1} {X̃}{{\ucc{\~X}}}{1} +{Ỹ}{{\ucc{\~Y}}}{1} {Z̃}{{\ucc{\~Z}}}{1} +% +% latin small letters with tilde above +% +{ã}{{\ucc{\~a}}}{1} {b̃}{{\ucc{\~b}}}{1} {c̃}{{\ucc{\~c}}}{1} {d̃}{{\ucc{\~d}}}{1} +{ẽ}{{\ucc{\~e}}}{1} {f̃}{{\ucc{\~f}}}{1} {g̃}{{\ucc{\~g}}}{1} {h̃}{{\ucc{\~h}}}{1} +{ĩ}{{\ucc{\~i}}}{1} {j̃}{{\ucc{\~j}}}{1} {k̃}{{\ucc{\~k}}}{1} {l̃}{{\ucc{\~l}}}{1} +{m̃}{{\ucc{\~m}}}{1} {ñ}{{\ucc{\~n}}}{1} {õ}{{\ucc{\~o}}}{1} {p̃}{{\ucc{\~p}}}{1} +{q̃}{{\ucc{\~q}}}{1} {r̃}{{\ucc{\~r}}}{1} {s̃}{{\ucc{\~s}}}{1} {t̃}{{\ucc{\~t}}}{1} +{ũ}{{\ucc{\~u}}}{1} {ṽ}{{\ucc{\~v}}}{1} {w̃}{{\ucc{\~w}}}{1} {x̃}{{\ucc{\~x}}}{1} +{ỹ}{{\ucc{\~y}}}{1} {z̃}{{\ucc{\~z}}}{1} +% +% greek capital letters with tilde above +% +{Α̃}{{\ucc{${\scriptstyle \tilde{A}}$}}}{1} +{Β̃}{{\ucc{${\scriptstyle \tilde{B}}$}}}{1} +{Γ̃}{{\ucc{${\scriptstyle \tilde{\Gamma}}$}}}{1} +{Δ̃}{{\ucc{${\scriptstyle \tilde{\Delta}}$}}}{1} +{Ε̃}{{\ucc{${\scriptstyle \tilde{E}}$}}}{1} +{Ζ̃}{{\ucc{${\scriptstyle \tilde{Z}}$}}}{1} +{Η̃}{{\ucc{${\scriptstyle \tilde{H}}$}}}{1} +{Θ̃}{{\ucc{${\scriptstyle \tilde{\Theta}}$}}}{1} +{Ι̃}{{\ucc{${\scriptstyle \tilde{I}}$}}}{1} +{Κ̃}{{\ucc{${\scriptstyle \tilde{K}}$}}}{1} +{Λ̃}{{\ucc{${\scriptstyle \tilde{\Lambda}}$}}}{1} +{Μ̃}{{\ucc{${\scriptstyle \tilde{M}}$}}}{1} +{Ν̃}{{\ucc{${\scriptstyle \tilde{N}}$}}}{1} +{Ξ̃}{{\ucc{${\scriptstyle \tilde{\Xi}}$}}}{1} +{Ο̃}{{\ucc{${\scriptstyle \tilde{O}}$}}}{1} +{Π̃}{{\ucc{${\scriptstyle \tilde{\Pi}}$}}}{1} +{Ρ̃}{{\ucc{${\scriptstyle \tilde{P}}$}}}{1} +{Σ̃}{{\ucc{${\scriptstyle \tilde{\Sigma}}$}}}{1} +{Τ̃}{{\ucc{${\scriptstyle \tilde{T}}$}}}{1} +{Υ̃}{{\ucc{${\scriptstyle \tilde{\Upsilon}}$}}}{1} +{Φ̃}{{\ucc{${\scriptstyle \tilde{\Phi}}$}}}{1} +{Χ̃}{{\ucc{${\scriptstyle \tilde{X}}$}}}{1} +{Ψ̃}{{\ucc{${\scriptstyle \tilde{\Psi}}$}}}{1} +{Ω̃}{{\ucc{${\scriptstyle \tilde{\Omega}}$}}}{1} +% +% greek small letters with tilde above +% +{α̃}{{\ucc{${\scriptstyle \tilde{\alpha}}$}}}{1} +{β̃}{{\ucc{${\scriptstyle \tilde{\beta}}$}}}{1} +{γ̃}{{\ucc{${\scriptstyle \tilde{\gamma}}$}}}{1} +{δ̃}{{\ucc{${\scriptstyle \tilde{\delta}}$}}}{1} +{ε̃}{{\ucc{${\scriptstyle \tilde{\varepsilon}}$}}}{1} +{ϵ̃}{{\ucc{${\scriptstyle \tilde{\epsilon}}$}}}{1} +{ζ̃}{{\ucc{${\scriptstyle \tilde{\zeta}}$}}}{1} +{η̃}{{\ucc{${\scriptstyle \tilde{\eta}}$}}}{1} +{θ̃}{{\ucc{${\scriptstyle \tilde{\theta}}$}}}{1} +{ϑ̃}{{\ucc{${\scriptstyle \tilde{\vartheta}}$}}}{1} +{ι̃}{{\ucc{${\scriptstyle \tilde{\iota}}$}}}{1} +{κ̃}{{\ucc{${\scriptstyle \tilde{\kappa}}$}}}{1} +{ϰ̃}{{\ucc{${\scriptstyle \tilde{\varkappa}}$}}}{1} +{λ̃}{{\ucc{${\scriptstyle \tilde{\lambda}}$}}}{1} +{μ̃}{{\ucc{${\scriptstyle \tilde{\mu}}$}}}{1} +{ν̃}{{\ucc{${\scriptstyle \tilde{\nu}}$}}}{1} +{ξ̃}{{\ucc{${\scriptstyle \tilde{\xi}}$}}}{1} +{ο̃}{{\ucc{${\scriptstyle \tilde{o}}$}}}{1} +{π̃}{{\ucc{${\scriptstyle \tilde{\pi}}$}}}{1} +{ϖ̃}{{\ucc{${\scriptstyle \tilde{\varpi}}$}}}{1} +{ρ̃}{{\ucc{${\scriptstyle \tilde{\rho}}$}}}{1} +{ϱ̃}{{\ucc{${\scriptstyle \tilde{\varrho}}$}}}{1} +{σ̃}{{\ucc{${\scriptstyle \tilde{\sigma}}$}}}{1} +{ς̃}{{\ucc{${\scriptstyle \tilde{\varsigma}}$}}}{1} +{τ̃}{{\ucc{${\scriptstyle \tilde{\tau}}$}}}{1} +{υ̃}{{\ucc{${\scriptstyle \tilde{\upsilon}}$}}}{1} +{φ̃}{{\ucc{${\scriptstyle \tilde{\phi}}$}}}{1} +{ϕ̃}{{\ucc{${\scriptstyle \tilde{\varphi}}$}}}{1} +{χ̃}{{\ucc{${\scriptstyle \tilde{\chi}}$}}}{1} +{ψ̃}{{\ucc{${\scriptstyle \tilde{\psi}}$}}}{1} +{ω̃}{{\ucc{${\scriptstyle \tilde{\omega}}$}}}{1} +% +% latin capital letters with hat above +% +{Â}{{\ucc{\^A}}}{1} {B̂}{{\ucc{\^B}}}{1} {Ĉ}{{\ucc{\^C}}}{1} {D̂}{{\ucc{\^D}}}{1} +{Ê}{{\ucc{\^E}}}{1} {F̂}{{\ucc{\^F}}}{1} {Ĝ}{{\ucc{\^G}}}{1} {Ĥ}{{\ucc{\^H}}}{1} +{Î}{{\ucc{\^I}}}{1} {Ĵ}{{\ucc{\^J}}}{1} {K̂}{{\ucc{\^K}}}{1} {L̂}{{\ucc{\^L}}}{1} +{M̂}{{\ucc{\^M}}}{1} {N̂}{{\ucc{\^N}}}{1} {Ô}{{\ucc{\^O}}}{1} {P̂}{{\ucc{\^P}}}{1} +{Q̂}{{\ucc{\^Q}}}{1} {R̂}{{\ucc{\^R}}}{1} {Ŝ}{{\ucc{\^S}}}{1} {T̂}{{\ucc{\^T}}}{1} +{Û}{{\ucc{\^U}}}{1} {V̂}{{\ucc{\^V}}}{1} {Ŵ}{{\ucc{\^W}}}{1} {X̂}{{\ucc{\^X}}}{1} +{Ŷ}{{\ucc{\^Y}}}{1} {Ẑ}{{\ucc{\^Z}}}{1} +% +% latin small letters with hat above +% +{â}{{\ucc{\^a}}}{1} {b̂}{{\ucc{\^b}}}{1} {ĉ}{{\ucc{\^c}}}{1} {d̂}{{\ucc{\^d}}}{1} +{ê}{{\ucc{\^e}}}{1} {f̂}{{\ucc{\^f}}}{1} {ĝ}{{\ucc{\^g}}}{1} {ĥ}{{\ucc{\^h}}}{1} +{î}{{\ucc{\^i}}}{1} {ĵ}{{\ucc{\^j}}}{1} {k̂}{{\ucc{\^k}}}{1} {l̂}{{\ucc{\^l}}}{1} +{m̂}{{\ucc{\^m}}}{1} {n̂}{{\ucc{\^n}}}{1} {ô}{{\ucc{\^o}}}{1} {p̂}{{\ucc{\^p}}}{1} +{q̂}{{\ucc{\^q}}}{1} {r̂}{{\ucc{\^r}}}{1} {ŝ}{{\ucc{\^s}}}{1} {t̂}{{\ucc{\^t}}}{1} +{û}{{\ucc{\^u}}}{1} {v̂}{{\ucc{\^v}}}{1} {ŵ}{{\ucc{\^w}}}{1} {x̂}{{\ucc{\^x}}}{1} +{ŷ}{{\ucc{\^y}}}{1} {ẑ}{{\ucc{\^z}}}{1} +% +% greek capital letters with hat above +% +{Α̂}{{\ucc{${\scriptstyle \hat{A}}$}}}{1} +{Β̂}{{\ucc{${\scriptstyle \hat{B}}$}}}{1} +{Γ̂}{{\ucc{${\scriptstyle \hat{\Gamma}}$}}}{1} +{Δ̂}{{\ucc{${\scriptstyle \hat{\Delta}}$}}}{1} +{Ε̂}{{\ucc{${\scriptstyle \hat{E}}$}}}{1} +{Ζ̂}{{\ucc{${\scriptstyle \hat{Z}}$}}}{1} +{Η̂}{{\ucc{${\scriptstyle \hat{H}}$}}}{1} +{Θ̂}{{\ucc{${\scriptstyle \hat{\Theta}}$}}}{1} +{Ι̂}{{\ucc{${\scriptstyle \hat{I}}$}}}{1} +{Κ̂}{{\ucc{${\scriptstyle \hat{K}}$}}}{1} +{Λ̂}{{\ucc{${\scriptstyle \hat{\Lambda}}$}}}{1} +{Μ̂}{{\ucc{${\scriptstyle \hat{M}}$}}}{1} +{Ν̂}{{\ucc{${\scriptstyle \hat{N}}$}}}{1} +{Ξ̂}{{\ucc{${\scriptstyle \hat{\Xi}}$}}}{1} +{Ο̂}{{\ucc{${\scriptstyle \hat{O}}$}}}{1} +{Π̂}{{\ucc{${\scriptstyle \hat{\Pi}}$}}}{1} +{Ρ̂}{{\ucc{${\scriptstyle \hat{P}}$}}}{1} +{Σ̂}{{\ucc{${\scriptstyle \hat{\Sigma}}$}}}{1} +{Τ̂}{{\ucc{${\scriptstyle \hat{T}}$}}}{1} +{Υ̂}{{\ucc{${\scriptstyle \hat{\Upsilon}}$}}}{1} +{Φ̂}{{\ucc{${\scriptstyle \hat{\Phi}}$}}}{1} +{Χ̂}{{\ucc{${\scriptstyle \hat{X}}$}}}{1} +{Ψ̂}{{\ucc{${\scriptstyle \hat{\Psi}}$}}}{1} +{Ω̂}{{\ucc{${\scriptstyle \hat{\Omega}}$}}}{1} +% +% greek small letters with hat above +% +{α̂}{{\ucc{${\scriptstyle \hat{\alpha}}$}}}{1} +{β̂}{{\ucc{${\scriptstyle \hat{\beta}}$}}}{1} +{γ̂}{{\ucc{${\scriptstyle \hat{\gamma}}$}}}{1} +{δ̂}{{\ucc{${\scriptstyle \hat{\delta}}$}}}{1} +{ε̂}{{\ucc{${\scriptstyle \hat{\varepsilon}}$}}}{1} +{ϵ̂}{{\ucc{${\scriptstyle \hat{\epsilon}}$}}}{1} +{ζ̂}{{\ucc{${\scriptstyle \hat{\zeta}}$}}}{1} +{η̂}{{\ucc{${\scriptstyle \hat{\eta}}$}}}{1} +{θ̂}{{\ucc{${\scriptstyle \hat{\theta}}$}}}{1} +{ϑ̂}{{\ucc{${\scriptstyle \hat{\vartheta}}$}}}{1} +{ι̂}{{\ucc{${\scriptstyle \hat{\iota}}$}}}{1} +{κ̂}{{\ucc{${\scriptstyle \hat{\kappa}}$}}}{1} +{ϰ̂}{{\ucc{${\scriptstyle \hat{\varkappa}}$}}}{1} +{λ̂}{{\ucc{${\scriptstyle \hat{\lambda}}$}}}{1} +{μ̂}{{\ucc{${\scriptstyle \hat{\mu}}$}}}{1} +{ν̂}{{\ucc{${\scriptstyle \hat{\nu}}$}}}{1} +{ξ̂}{{\ucc{${\scriptstyle \hat{\xi}}$}}}{1} +{ο̂}{{\ucc{${\scriptstyle \hat{o}}$}}}{1} +{π̂}{{\ucc{${\scriptstyle \hat{\pi}}$}}}{1} +{ϖ̂}{{\ucc{${\scriptstyle \hat{\varpi}}$}}}{1} +{ρ̂}{{\ucc{${\scriptstyle \hat{\rho}}$}}}{1} +{ϱ̂}{{\ucc{${\scriptstyle \hat{\varrho}}$}}}{1} +{σ̂}{{\ucc{${\scriptstyle \hat{\sigma}}$}}}{1} +{ς̂}{{\ucc{${\scriptstyle \hat{\varsigma}}$}}}{1} +{τ̂}{{\ucc{${\scriptstyle \hat{\tau}}$}}}{1} +{υ̂}{{\ucc{${\scriptstyle \hat{\upsilon}}$}}}{1} +{φ̂}{{\ucc{${\scriptstyle \hat{\phi}}$}}}{1} +{ϕ̂}{{\ucc{${\scriptstyle \hat{\varphi}}$}}}{1} +{χ̂}{{\ucc{${\scriptstyle \hat{\chi}}$}}}{1} +{ψ̂}{{\ucc{${\scriptstyle \hat{\psi}}$}}}{1} +{ω̂}{{\ucc{${\scriptstyle \hat{\omega}}$}}}{1} +% +% latin capital letters with bar above +% +{Ā}{{\ucc{\=A}}}{1} {B̄}{{\ucc{\=B}}}{1} {C̄}{{\ucc{\=C}}}{1} {D̄}{{\ucc{\=D}}}{1} +{Ē}{{\ucc{\=E}}}{1} {F̄}{{\ucc{\=F}}}{1} {Ḡ}{{\ucc{\=G}}}{1} {H̄}{{\ucc{\=H}}}{1} +{Ī}{{\ucc{\=I}}}{1} {J̄}{{\ucc{\=J}}}{1} {K̄}{{\ucc{\=K}}}{1} {L̄}{{\ucc{\=L}}}{1} +{M̄}{{\ucc{\=M}}}{1} {N̄}{{\ucc{\=N}}}{1} {Ō}{{\ucc{\=O}}}{1} {P̄}{{\ucc{\=P}}}{1} +{Q̄}{{\ucc{\=Q}}}{1} {R̄}{{\ucc{\=R}}}{1} {S̄}{{\ucc{\=S}}}{1} {T̄}{{\ucc{\=T}}}{1} +{Ū}{{\ucc{\=U}}}{1} {V̄}{{\ucc{\=V}}}{1} {W̄}{{\ucc{\=W}}}{1} {X̄}{{\ucc{\=X}}}{1} +{Ȳ}{{\ucc{\=Y}}}{1} {Z̄}{{\ucc{\=Z}}}{1} +% +% latin small letters with bar above +% +{ā}{{\ucc{\=a}}}{1} {b̄}{{\ucc{\=b}}}{1} {c̄}{{\ucc{\=c}}}{1} {d̄}{{\ucc{\=d}}}{1} +{ē}{{\ucc{\=e}}}{1} {f̄}{{\ucc{\=f}}}{1} {ḡ}{{\ucc{\=g}}}{1} {h̄}{{\ucc{\=h}}}{1} +{ī}{{\ucc{\=i}}}{1} {j̄}{{\ucc{\=j}}}{1} {k̄}{{\ucc{\=k}}}{1} {l̄}{{\ucc{\=l}}}{1} +{m̄}{{\ucc{\=m}}}{1} {n̄}{{\ucc{\=n}}}{1} {ō}{{\ucc{\=o}}}{1} {p̄}{{\ucc{\=p}}}{1} +{q̄}{{\ucc{\=q}}}{1} {r̄}{{\ucc{\=r}}}{1} {s̄}{{\ucc{\=s}}}{1} {t̄}{{\ucc{\=t}}}{1} +{ū}{{\ucc{\=u}}}{1} {v̄}{{\ucc{\=v}}}{1} {w̄}{{\ucc{\=w}}}{1} {x̄}{{\ucc{\=x}}}{1} +{ȳ}{{\ucc{\=y}}}{1} {z̄}{{\ucc{\=z}}}{1} +% +% greek capital letters with bar above +% +{Ᾱ}{{\ucc{${\scriptstyle \bar{A}}$}}}{1} +{Β̄}{{\ucc{${\scriptstyle \bar{B}}$}}}{1} +{Γ̄}{{\ucc{${\scriptstyle \bar{\Gamma}}$}}}{1} +{Δ̄}{{\ucc{${\scriptstyle \bar{\Delta}}$}}}{1} +{Ε̄}{{\ucc{${\scriptstyle \bar{E}}$}}}{1} +{Ζ̄}{{\ucc{${\scriptstyle \bar{Z}}$}}}{1} +{Η̄}{{\ucc{${\scriptstyle \bar{H}}$}}}{1} +{Θ̄}{{\ucc{${\scriptstyle \bar{\Theta}}$}}}{1} +{Ῑ}{{\ucc{${\scriptstyle \bar{I}}$}}}{1} +{Κ̄}{{\ucc{${\scriptstyle \bar{K}}$}}}{1} +{Λ̄}{{\ucc{${\scriptstyle \bar{\Lambda}}$}}}{1} +{Μ̄}{{\ucc{${\scriptstyle \bar{M}}$}}}{1} +{Ν̄}{{\ucc{${\scriptstyle \bar{N}}$}}}{1} +{Ξ̄}{{\ucc{${\scriptstyle \bar{\Xi}}$}}}{1} +{Ο̄}{{\ucc{${\scriptstyle \bar{O}}$}}}{1} +{Π̄}{{\ucc{${\scriptstyle \bar{\Pi}}$}}}{1} +{Ρ̄}{{\ucc{${\scriptstyle \bar{P}}$}}}{1} +{Σ̄}{{\ucc{${\scriptstyle \bar{\Sigma}}$}}}{1} +{Τ̄}{{\ucc{${\scriptstyle \bar{T}}$}}}{1} +{Ῡ}{{\ucc{${\scriptstyle \bar{\Upsilon}}$}}}{1} +{Φ̄}{{\ucc{${\scriptstyle \bar{\Phi}}$}}}{1} +{Χ̄}{{\ucc{${\scriptstyle \bar{X}}$}}}{1} +{Ψ̄}{{\ucc{${\scriptstyle \bar{\Psi}}$}}}{1} +{Ω̄}{{\ucc{${\scriptstyle \bar{\Omega}}$}}}{1} +% +% greek small letters with bar above +% +{ᾱ}{{\ucc{${\scriptstyle \bar{\alpha}}$}}}{1} +{β̄}{{\ucc{${\scriptstyle \bar{\beta}}$}}}{1} +{γ̄}{{\ucc{${\scriptstyle \bar{\gamma}}$}}}{1} +{δ̄}{{\ucc{${\scriptstyle \bar{\delta}}$}}}{1} +{ε̄}{{\ucc{${\scriptstyle \bar{\varepsilon}}$}}}{1} +{ϵ̄}{{\ucc{${\scriptstyle \bar{\epsilon}}$}}}{1} +{ζ̄}{{\ucc{${\scriptstyle \bar{\zeta}}$}}}{1} +{η̄}{{\ucc{${\scriptstyle \bar{\eta}}$}}}{1} +{θ̄}{{\ucc{${\scriptstyle \bar{\theta}}$}}}{1} +{ϑ̄}{{\ucc{${\scriptstyle \bar{\vartheta}}$}}}{1} +{ῑ}{{\ucc{${\scriptstyle \bar{\iota}}$}}}{1} +{κ̄}{{\ucc{${\scriptstyle \bar{\kappa}}$}}}{1} +{ϰ̄}{{\ucc{${\scriptstyle \bar{\varkappa}}$}}}{1} +{λ̄}{{\ucc{${\scriptstyle \bar{\lambda}}$}}}{1} +{μ̄}{{\ucc{${\scriptstyle \bar{\mu}}$}}}{1} +{ν̄}{{\ucc{${\scriptstyle \bar{\nu}}$}}}{1} +{ξ̄}{{\ucc{${\scriptstyle \bar{\xi}}$}}}{1} +{ο̄}{{\ucc{${\scriptstyle \bar{o}}$}}}{1} +{π̄}{{\ucc{${\scriptstyle \bar{\pi}}$}}}{1} +{ϖ̄}{{\ucc{${\scriptstyle \bar{\varpi}}$}}}{1} +{ρ̄}{{\ucc{${\scriptstyle \bar{\rho}}$}}}{1} +{ϱ̄}{{\ucc{${\scriptstyle \bar{\varrho}}$}}}{1} +{σ̄}{{\ucc{${\scriptstyle \bar{\sigma}}$}}}{1} +{ς̄}{{\ucc{${\scriptstyle \bar{\varsigma}}$}}}{1} +{τ̄}{{\ucc{${\scriptstyle \bar{\tau}}$}}}{1} +{ῡ}{{\ucc{${\scriptstyle \bar{\upsilon}}$}}}{1} +{φ̄}{{\ucc{${\scriptstyle \bar{\phi}}$}}}{1} +{ϕ̄}{{\ucc{${\scriptstyle \bar{\varphi}}$}}}{1} +{χ̄}{{\ucc{${\scriptstyle \bar{\chi}}$}}}{1} +{ψ̄}{{\ucc{${\scriptstyle \bar{\psi}}$}}}{1} +{ω̄}{{\ucc{${\scriptstyle \bar{\omega}}$}}}{1} +% +% latin double-struck capital letters +% +{𝔸}{{\ucc{$\mathbb{A}$}}}{1} {𝔹}{{\ucc{$\mathbb{B}$}}}{1} +{ℂ}{{\ucc{$\mathbb{C}$}}}{1} {𝔻}{{\ucc{$\mathbb{D}$}}}{1} +{𝔼}{{\ucc{$\mathbb{E}$}}}{1} {𝔽}{{\ucc{$\mathbb{F}$}}}{1} +{𝔾}{{\ucc{$\mathbb{G}$}}}{1} {ℍ}{{\ucc{$\mathbb{H}$}}}{1} +{𝕀}{{\ucc{$\mathbb{I}$}}}{1} {𝕁}{{\ucc{$\mathbb{J}$}}}{1} +{𝕂}{{\ucc{$\mathbb{K}$}}}{1} {𝕃}{{\ucc{$\mathbb{L}$}}}{1} +{𝕄}{{\ucc{$\mathbb{M}$}}}{1} {ℕ}{{\ucc{$\mathbb{N}$}}}{1} +{𝕆}{{\ucc{$\mathbb{O}$}}}{1} {ℙ}{{\ucc{$\mathbb{P}$}}}{1} +{ℚ}{{\ucc{$\mathbb{Q}$}}}{1} {ℝ}{{\ucc{$\mathbb{R}$}}}{1} +{𝕊}{{\ucc{$\mathbb{S}$}}}{1} {𝕋}{{\ucc{$\mathbb{T}$}}}{1} +{𝕌}{{\ucc{$\mathbb{U}$}}}{1} {𝕍}{{\ucc{$\mathbb{V}$}}}{1} +{𝕎}{{\ucc{$\mathbb{W}$}}}{1} {𝕏}{{\ucc{$\mathbb{X}$}}}{1} +{𝕐}{{\ucc{$\mathbb{Y}$}}}{1} {ℤ}{{\ucc{$\mathbb{Z}$}}}{1} +% +% latin script capital letters +% +{𝒜}{{\ucc{$\mathcal{A}$}}}{1} {ℬ}{{\ucc{$\mathcal{B}$}}}{1} +{𝒞}{{\ucc{$\mathcal{C}$}}}{1} {𝒟}{{\ucc{$\mathcal{D}$}}}{1} +{ℰ}{{\ucc{$\mathcal{E}$}}}{1} {ℱ}{{\ucc{$\mathcal{F}$}}}{1} +{𝒢}{{\ucc{$\mathcal{G}$}}}{1} {ℋ}{{\ucc{$\mathcal{H}$}}}{1} +{ℐ}{{\ucc{$\mathcal{I}$}}}{1} {𝒥}{{\ucc{$\mathcal{J}$}}}{1} +{𝒦}{{\ucc{$\mathcal{K}$}}}{1} {ℒ}{{\ucc{$\mathcal{L}$}}}{1} +{ℳ}{{\ucc{$\mathcal{M}$}}}{1} {𝒩}{{\ucc{$\mathcal{N}$}}}{1} +{𝒪}{{\ucc{$\mathcal{O}$}}}{1} {𝒫}{{\ucc{$\mathcal{P}$}}}{1} +{𝒬}{{\ucc{$\mathcal{Q}$}}}{1} {ℛ}{{\ucc{$\mathcal{R}$}}}{1} +{𝒮}{{\ucc{$\mathcal{S}$}}}{1} {𝒯}{{\ucc{$\mathcal{T}$}}}{1} +{𝒰}{{\ucc{$\mathcal{U}$}}}{1} {𝒱}{{\ucc{$\mathcal{V}$}}}{1} +{𝒲}{{\ucc{$\mathcal{W}$}}}{1} {𝒳}{{\ucc{$\mathcal{X}$}}}{1} +{𝒴}{{\ucc{$\mathcal{Y}$}}}{1} {𝒵}{{\ucc{$\mathcal{Z}$}}}{1} +% +% latin fraktur capital letters +% +{𝔄}{{\ucc{$\mathfrak{A}$}}}{1} {𝔅}{{\ucc{$\mathfrak{B}$}}}{1} +{ℭ}{{\ucc{$\mathfrak{C}$}}}{1} {𝔇}{{\ucc{$\mathfrak{D}$}}}{1} +{𝔈}{{\ucc{$\mathfrak{E}$}}}{1} {𝔉}{{\ucc{$\mathfrak{F}$}}}{1} +{𝔊}{{\ucc{$\mathfrak{G}$}}}{1} {ℌ}{{\ucc{$\mathfrak{H}$}}}{1} +{ℑ}{{\ucc{$\Im$}}}{1} {𝔍}{{\ucc{$\mathfrak{J}$}}}{1} +{𝔎}{{\ucc{$\mathfrak{K}$}}}{1} {𝔏}{{\ucc{$\mathfrak{L}$}}}{1} +{𝔐}{{\ucc{$\mathfrak{M}$}}}{1} {𝔑}{{\ucc{$\mathfrak{N}$}}}{1} +{𝔒}{{\ucc{$\mathfrak{O}$}}}{1} {𝔓}{{\ucc{$\mathfrak{P}$}}}{1} +{𝔔}{{\ucc{$\mathfrak{Q}$}}}{1} {ℜ}{{\ucc{$\Re$}}}{1} +{𝔖}{{\ucc{$\mathfrak{S}$}}}{1} {𝔗}{{\ucc{$\mathfrak{T}$}}}{1} +{𝔘}{{\ucc{$\mathfrak{U}$}}}{1} {𝔙}{{\ucc{$\mathfrak{V}$}}}{1} +{𝔚}{{\ucc{$\mathfrak{W}$}}}{1} {𝔛}{{\ucc{$\mathfrak{X}$}}}{1} +{𝔜}{{\ucc{$\mathfrak{Y}$}}}{1} {ℨ}{{\ucc{$\mathfrak{Z}$}}}{1} +% +% superscripts +% +{⁽}{{\ucc{${\scriptstyle {}^{(}}$}}}{1} {⁾}{{\ucc{${\scriptstyle {}^{)}}$}}}{1} +{⁺}{{\ucc{${\scriptstyle {}^{+}}$}}}{1} {⁻}{{\ucc{${\scriptstyle {}^{-}}$}}}{1} +{⁰}{{\ucc{${\scriptstyle {}^{0}}$}}}{1} {¹}{{\ucc{${\scriptstyle {}^{1}}$}}}{1} +{²}{{\ucc{${\scriptstyle {}^{2}}$}}}{1} {³}{{\ucc{${\scriptstyle {}^{3}}$}}}{1} +{⁴}{{\ucc{${\scriptstyle {}^{4}}$}}}{1} {⁵}{{\ucc{${\scriptstyle {}^{5}}$}}}{1} +{⁶}{{\ucc{${\scriptstyle {}^{6}}$}}}{1} {⁷}{{\ucc{${\scriptstyle {}^{7}}$}}}{1} +{⁸}{{\ucc{${\scriptstyle {}^{8}}$}}}{1} {⁹}{{\ucc{${\scriptstyle {}^{9}}$}}}{1} +{⁼}{{\ucc{${\scriptstyle {}^{=}}$}}}{1} {ᴬ}{{\ucc{${\scriptstyle {}^{A}}$}}}{1} +{ᴮ}{{\ucc{${\scriptstyle {}^{B}}$}}}{1} {ᴰ}{{\ucc{${\scriptstyle {}^{D}}$}}}{1} +{ᴱ}{{\ucc{${\scriptstyle {}^{E}}$}}}{1} {ᴳ}{{\ucc{${\scriptstyle {}^{G}}$}}}{1} +{ᴴ}{{\ucc{${\scriptstyle {}^{H}}$}}}{1} {ᴵ}{{\ucc{${\scriptstyle {}^{I}}$}}}{1} +{ᴶ}{{\ucc{${\scriptstyle {}^{J}}$}}}{1} {ᴷ}{{\ucc{${\scriptstyle {}^{K}}$}}}{1} +{ᴸ}{{\ucc{${\scriptstyle {}^{L}}$}}}{1} {ᴹ}{{\ucc{${\scriptstyle {}^{M}}$}}}{1} +{ᴺ}{{\ucc{${\scriptstyle {}^{N}}$}}}{1} {ᴼ}{{\ucc{${\scriptstyle {}^{O}}$}}}{1} +{ᴾ}{{\ucc{${\scriptstyle {}^{P}}$}}}{1} {ᴿ}{{\ucc{${\scriptstyle {}^{R}}$}}}{1} +{ᵀ}{{\ucc{${\scriptstyle {}^{T}}$}}}{1} {ᵁ}{{\ucc{${\scriptstyle {}^{U}}$}}}{1} +{ⱽ}{{\ucc{${\scriptstyle {}^{V}}$}}}{1} {ᵂ}{{\ucc{${\scriptstyle {}^{W}}$}}}{1} +{ᵃ}{{\ucc{${\scriptstyle {}^{a}}$}}}{1} {ᵇ}{{\ucc{${\scriptstyle {}^{b}}$}}}{1} +{ᶜ}{{\ucc{${\scriptstyle {}^{c}}$}}}{1} {ᵈ}{{\ucc{${\scriptstyle {}^{d}}$}}}{1} +{ᵉ}{{\ucc{${\scriptstyle {}^{e}}$}}}{1} {ᶠ}{{\ucc{${\scriptstyle {}^{f}}$}}}{1} +{ᵍ}{{\ucc{${\scriptstyle {}^{g}}$}}}{1} {ʰ}{{\ucc{${\scriptstyle {}^{h}}$}}}{1} +{ⁱ}{{\ucc{${\scriptstyle {}^{i}}$}}}{1} {ʲ}{{\ucc{${\scriptstyle {}^{j}}$}}}{1} +{ᵏ}{{\ucc{${\scriptstyle {}^{k}}$}}}{1} {ˡ}{{\ucc{${\scriptstyle {}^{l}}$}}}{1} +{ᵐ}{{\ucc{${\scriptstyle {}^{m}}$}}}{1} {ⁿ}{{\ucc{${\scriptstyle {}^{n}}$}}}{1} +{ᵒ}{{\ucc{${\scriptstyle {}^{o}}$}}}{1} {ᵖ}{{\ucc{${\scriptstyle {}^{p}}$}}}{1} +{ʳ}{{\ucc{${\scriptstyle {}^{r}}$}}}{1} {ˢ}{{\ucc{${\scriptstyle {}^{s}}$}}}{1} +{ᵗ}{{\ucc{${\scriptstyle {}^{t}}$}}}{1} {ᵘ}{{\ucc{${\scriptstyle {}^{u}}$}}}{1} +{ᵛ}{{\ucc{${\scriptstyle {}^{v}}$}}}{1} {ʷ}{{\ucc{${\scriptstyle {}^{w}}$}}}{1} +{ˣ}{{\ucc{${\scriptstyle {}^{x}}$}}}{1} {ʸ}{{\ucc{${\scriptstyle {}^{y}}$}}}{1} +{ᶻ}{{\ucc{${\scriptstyle {}^{z}}$}}}{1} +{ᵅ}{{\ucc{${\scriptstyle {}^{\alpha}}$}}}{1} +{ᵝ}{{\ucc{${\scriptstyle {}^{\beta}}$}}}{1} +{ᵞ}{{\ucc{${\scriptstyle {}^{\gamma}}$}}}{1} +{ᵟ}{{\ucc{${\scriptstyle {}^{\delta}}$}}}{1} +{ᵋ}{{\ucc{${\scriptstyle {}^{\varepsilon}}$}}}{1} +{ᶿ}{{\ucc{${\scriptstyle {}^{\theta}}$}}}{1} +{ᶥ}{{\ucc{${\scriptstyle {}^{\iota}}$}}}{1} +{ᶲ}{{\ucc{${\scriptstyle {}^{\phi}}$}}}{1} +{ᵡ}{{\ucc{${\scriptstyle {}^{\chi}}$}}}{1} +{ᵠ}{{\ucc{${\scriptstyle {}^{\psi}}$}}}{1} +% +% subscripts +% +{₍}{{\ucc{${\scriptstyle {}_{(}}$}}}{1} {₎}{{\ucc{${\scriptstyle {}_{)}}$}}}{1} +{₊}{{\ucc{${\scriptstyle {}_{+}}$}}}{1} {₋}{{\ucc{${\scriptstyle {}_{-}}$}}}{1} +{₀}{{\ucc{${\scriptstyle {}_{0}}$}}}{1} {₁}{{\ucc{${\scriptstyle {}_{1}}$}}}{1} +{₂}{{\ucc{${\scriptstyle {}_{2}}$}}}{1} {₃}{{\ucc{${\scriptstyle {}_{3}}$}}}{1} +{₄}{{\ucc{${\scriptstyle {}_{4}}$}}}{1} {₅}{{\ucc{${\scriptstyle {}_{5}}$}}}{1} +{₆}{{\ucc{${\scriptstyle {}_{6}}$}}}{1} {₇}{{\ucc{${\scriptstyle {}_{7}}$}}}{1} +{₈}{{\ucc{${\scriptstyle {}_{8}}$}}}{1} {₉}{{\ucc{${\scriptstyle {}_{9}}$}}}{1} +{₌}{{\ucc{${\scriptstyle {}_{=}}$}}}{1} {ₐ}{{\ucc{${\scriptstyle {}_{a}}$}}}{1} +{ₑ}{{\ucc{${\scriptstyle {}_{e}}$}}}{1} {ₕ}{{\ucc{${\scriptstyle {}_{h}}$}}}{1} +{ᵢ}{{\ucc{${\scriptstyle {}_{i}}$}}}{1} {ⱼ}{{\ucc{${\scriptstyle {}_{j}}$}}}{1} +{ₖ}{{\ucc{${\scriptstyle {}_{k}}$}}}{1} {ₗ}{{\ucc{${\scriptstyle {}_{l}}$}}}{1} +{ₘ}{{\ucc{${\scriptstyle {}_{m}}$}}}{1} {ₙ}{{\ucc{${\scriptstyle {}_{n}}$}}}{1} +{ₒ}{{\ucc{${\scriptstyle {}_{o}}$}}}{1} {ₚ}{{\ucc{${\scriptstyle {}_{p}}$}}}{1} +{ᵣ}{{\ucc{${\scriptstyle {}_{r}}$}}}{1} {ₛ}{{\ucc{${\scriptstyle {}_{s}}$}}}{1} +{ₜ}{{\ucc{${\scriptstyle {}_{t}}$}}}{1} {ᵤ}{{\ucc{${\scriptstyle {}_{u}}$}}}{1} +{ᵥ}{{\ucc{${\scriptstyle {}_{v}}$}}}{1} {ₓ}{{\ucc{${\scriptstyle {}_{x}}$}}}{1} +{ᵦ}{{\ucc{${\scriptstyle {}_{\beta}}$}}}{1} +{ᵧ}{{\ucc{${\scriptstyle {}_{\gamma}}$}}}{1} +{ᵨ}{{\ucc{${\scriptstyle {}_{\rho}}$}}}{1} +{ᵪ}{{\ucc{${\scriptstyle {}_{\chi}}$}}}{1} +{ᵩ}{{\ucc{${\scriptstyle {}_{\psi}}$}}}{1} +% +% mathematical operators (julia functions) +% +% comment out the next command if you dont use ' as the transposition +% operator! activate the command in line 384 in that case, too! +{'}{{\uccop{\textquotesingle}}}{1} +{×}{{\uccop{${\scriptstyle \times}$}}}{1} +{÷}{{\uccop{${\scriptstyle \div}$}}}{1} +{∈}{{\uccop{${\scriptstyle \in}$}}}{1} +{∉}{{\uccop{${\scriptstyle \notin}$}}}{1} +{∋}{{\uccop{${\scriptstyle \ni}$}}}{1} +{∌}{{\uccop{${\scriptstyle \not\ni}$}}}{1} +{∘}{{\uccop{${\scriptstyle \circ}$}}}{1} +{√}{{\uccop{$\surd$}}}{1} +{∛}{{\uccop{$\sqrt[3]{\vphantom{x}}$}}}{1} +{∩}{{\uccop{${\scriptstyle \cap}$}}}{1} +{∪}{{\uccop{${\scriptstyle \cup}$}}}{1} +{≈}{{\uccop{${\scriptstyle \approx}$}}}{1} +{≉}{{\uccop{${\scriptstyle \not\approx}$}}}{1} +{≠}{{\uccop{${\scriptstyle \neq}$}}}{1} +{≡}{{\uccop{${\scriptstyle \equiv}$}}}{1} +{≢}{{\uccop{${\scriptstyle \not\equiv}$}}}{1} +{≤}{{\uccop{${\scriptstyle \leq}$}}}{1} +{≥}{{\uccop{${\scriptstyle \geq}$}}}{1} +{⊆}{{\uccop{${\scriptstyle \subseteq}$}}}{1} +{⊇}{{\uccop{${\scriptstyle \supseteq}$}}}{1} +{⊈}{{\uccop{${\scriptstyle \not\subseteq}$}}}{1} +{⊉}{{\uccop{${\scriptstyle \not\supseteq}$}}}{1} +{⊊}{{\uccop{${\scriptstyle \subsetneq}$}}}{1} +{⊋}{{\uccop{${\scriptstyle \supsetneq}$}}}{1} +{⊻}{{\uccop{${\scriptstyle \veebar}$}}}{1} +{⋅}{{\uccop{${\scriptstyle \cdot}$}}}{1} +% +% other mathematical symbols +% +{∇}{{\ucc{${\scriptstyle \nabla}$}}}{1} +{⊗}{{\ucc{${\scriptstyle \otimes}$}}}{1} +{⊕}{{\ucc{${\scriptstyle \oplus}$}}}{1} +{‖}{{\ucc{${\scriptstyle \Vert}$}}}{1} +{⊥}{{\ucc{${\scriptstyle \bot}$}}}{1} +{ℓ}{{\ucc{${\scriptstyle \ell}$}}}{1} +{∃}{{\ucc{${\scriptstyle \exists}$}}}{1} +{∀}{{\ucc{${\scriptstyle \forall}$}}}{1} +{ħ}{{\ucc{${\scriptstyle \hbar}$}}}{1} +{ı}{{\ucc{${\scriptstyle \imath}$}}}{1} +{ȷ}{{\ucc{${\scriptstyle \jmath}$}}}{1} +{∄}{{\ucc{${\scriptstyle \exists}$}}}{1} +{∂}{{\ucc{${\scriptstyle \partial}$}}}{1} +{⊤}{{\ucc{${\scriptstyle \top}$}}}{1} +{℘}{{\ucc{${\scriptstyle \wp}$}}}{1} +{…}{{\ucc{${\scriptstyle \ldots}$}}}{3} +{⋯}{{\ucc{${\scriptstyle \cdots}$}}}{3} +{⋮}{{\ucc{${\scriptstyle \rvdots}$}}}{1} +{⋱}{{\ucc{${\scriptstyle \rddots}$}}}{3} +{⋰}{{\ucc{${\scriptstyle \riddots}$}}}{3} +{§}{{\ucc{\S}}}{1} +{⟨}{{\ucc{${\langle}$}}}{1} +{⟩}{{\ucc{${\rangle}$}}}{1} +{→}{{\ucc{${\rightarrow}$}}}{2} +{←}{{\ucc{${\leftarrow}$}}}{2} +{⤳}{{\ucc{${\leadsto}$}}}{2} +{′}{{\ucc{${{}^\prime}$}}}{1} +% +% unicode box characters +% +{─}{{\ucc{\textSFx}}}{1} {━}{{\ucc{\pmboxdrawuni{2501}}}}{1} +{│}{{\ucc{\textSFxi}}}{1} {┃}{{\ucc{\pmboxdrawuni{2503}}}}{1} +% the follwing four lines are just improvised solutions +{┄}{{\ucc{\textSFx}}}{1} {┅}{{\ucc{\textSFx}}}{1} +{┆}{{\ucc{\textSFxi}}}{1} {┇}{{\ucc{\pmboxdrawuni{2503}}}}{1} +{┈}{{\ucc{\textSFx}}}{1} {┉}{{\ucc{\textSFx}}}{1} +{┊}{{\ucc{\textSFxi}}}{1} {┋}{{\ucc{\pmboxdrawuni{2503}}}}{1} +{┌}{{\ucc{\textSFi}}}{1} {┍}{{\ucc{\pmboxdrawuni{250D}}}}{1} +{┎}{{\ucc{\pmboxdrawuni{250E}}}}{1} {┏}{{\ucc{\pmboxdrawuni{250F}}}}{1} +{┐}{{\ucc{\textSFiii}}}{1} {┑}{{\ucc{\pmboxdrawuni{2511}}}}{1} +{┒}{{\ucc{\pmboxdrawuni{2512}}}}{1} {┓}{{\ucc{\pmboxdrawuni{2513}}}}{1} +{└}{{\ucc{\textSFii}}}{1} {┕}{{\ucc{\pmboxdrawuni{2515}}}}{1} +{┖}{{\ucc{\pmboxdrawuni{2516}}}}{1} {┗}{{\ucc{\pmboxdrawuni{2517}}}}{1} +{┘}{{\ucc{\textSFiv}}}{1} {┙}{{\ucc{\pmboxdrawuni{2519}}}}{1} +{┚}{{\ucc{\pmboxdrawuni{251A}}}}{1} {┛}{{\ucc{\pmboxdrawuni{251B}}}}{1} +{├}{{\ucc{\textSFviii}}}{1} {┝}{{\ucc{\pmboxdrawuni{251D}}}}{1} +{┞}{{\ucc{\pmboxdrawuni{251E}}}}{1} {┟}{{\ucc{\pmboxdrawuni{251F}}}}{1} +{┠}{{\ucc{\pmboxdrawuni{2520}}}}{1} {┡}{{\ucc{\pmboxdrawuni{2521}}}}{1} +{┢}{{\ucc{\pmboxdrawuni{2522}}}}{1} {┣}{{\ucc{\pmboxdrawuni{2523}}}}{1} +{┤}{{\ucc{\textSFix}}}{1} {┥}{{\ucc{\pmboxdrawuni{2525}}}}{1} +{┦}{{\ucc{\pmboxdrawuni{2526}}}}{1} {┧}{{\ucc{\pmboxdrawuni{2527}}}}{1} +{┨}{{\ucc{\pmboxdrawuni{2528}}}}{1} {┩}{{\ucc{\pmboxdrawuni{2529}}}}{1} +{┪}{{\ucc{\pmboxdrawuni{252A}}}}{1} {┫}{{\ucc{\pmboxdrawuni{252B}}}}{1} +{┬}{{\ucc{\textSFvi}}}{1} {┭}{{\ucc{\pmboxdrawuni{252D}}}}{1} +{┮}{{\ucc{\pmboxdrawuni{252E}}}}{1} {┯}{{\ucc{\pmboxdrawuni{252F}}}}{1} +{┰}{{\ucc{\pmboxdrawuni{2530}}}}{1} {┱}{{\ucc{\pmboxdrawuni{2531}}}}{1} +{┲}{{\ucc{\pmboxdrawuni{2532}}}}{1} {┳}{{\ucc{\pmboxdrawuni{2533}}}}{1} +{┴}{{\ucc{\textSFvii}}}{1} {┵}{{\ucc{\pmboxdrawuni{2535}}}}{1} +{┶}{{\ucc{\pmboxdrawuni{2536}}}}{1} {┷}{{\ucc{\pmboxdrawuni{2537}}}}{1} +{┸}{{\ucc{\pmboxdrawuni{2538}}}}{1} {┹}{{\ucc{\pmboxdrawuni{2539}}}}{1} +{┺}{{\ucc{\pmboxdrawuni{253A}}}}{1} {┻}{{\ucc{\pmboxdrawuni{253B}}}}{1} +{┼}{{\ucc{\textSFv}}}{1} {┽}{{\ucc{\pmboxdrawuni{253D}}}}{1} +{┾}{{\ucc{\pmboxdrawuni{253E}}}}{1} {┿}{{\ucc{\pmboxdrawuni{253F}}}}{1} +{╀}{{\ucc{\pmboxdrawuni{2540}}}}{1} {╁}{{\ucc{\pmboxdrawuni{2541}}}}{1} +{╂}{{\ucc{\pmboxdrawuni{2542}}}}{1} {╃}{{\ucc{\pmboxdrawuni{2543}}}}{1} +{╄}{{\ucc{\pmboxdrawuni{2544}}}}{1} {╅}{{\ucc{\pmboxdrawuni{2545}}}}{1} +{╆}{{\ucc{\pmboxdrawuni{2546}}}}{1} {╇}{{\ucc{\pmboxdrawuni{2547}}}}{1} +{╈}{{\ucc{\pmboxdrawuni{2548}}}}{1} {╉}{{\ucc{\pmboxdrawuni{2549}}}}{1} +{╊}{{\ucc{\pmboxdrawuni{254A}}}}{1} {╋}{{\ucc{\pmboxdrawuni{254B}}}}{1} +% the following characters don't have a good solution yet +%{╌}{{\ucc{}}}{1} {╍}{{\ucc{}}}{1} {╎}{{\ucc{}}}{1} {╏}{{\ucc{}}}{1} +{═}{{\ucc{\textSFxliii}}}{1} {║}{{\ucc{\textSFxxiv}}}{1} +{╒}{{\ucc{\textSFli}}}{1} {╓}{{\ucc{\textSFlii}}}{1} +{╔}{{\ucc{\textSFxxxix}}}{1} {╕}{{\ucc{\textSFxxii}}}{1} +{╖}{{\ucc{\textSFxxi}}}{1} {╗}{{\ucc{\textSFxxv}}}{1} +{╘}{{\ucc{\textSFl}}}{1} {╙}{{\ucc{\textSFxlix}}}{1} +{╚}{{\ucc{\textSFxxxviii}}}{1} {╛}{{\ucc{\textSFxxviii}}}{1} +{╜}{{\ucc{\textSFxxvii}}}{1} {╝}{{\ucc{\textSFxxvi}}}{1} +{╞}{{\ucc{\textSFxxxvi}}}{1} {╟}{{\ucc{\textSFxxxvii}}}{1} +{╠}{{\ucc{\textSFxlii}}}{1} {╡}{{\ucc{\textSFxix}}}{1} +{╢}{{\ucc{\textSFxx}}}{1} {╣}{{\ucc{\textSFxxiii}}}{1} +{╤}{{\ucc{\textSFxlvii}}}{1} {╥}{{\ucc{\textSFxlviii}}}{1} +{╦}{{\ucc{\textSFxli}}}{1} {╧}{{\ucc{\textSFxlv}}}{1} +{╨}{{\ucc{\textSFxlvi}}}{1} {╩}{{\ucc{\textSFxl}}}{1} +{╪}{{\ucc{\textSFliv}}}{1} {╫}{{\ucc{\textSFliii}}}{1} +{╬}{{\ucc{\textSFxliv}}}{1} +% the following characters don't have a good solution yet +%{╭}{{\ucc{}}}{1} {╮}{{\ucc{}}}{1} {╯}{{\ucc{}}}{1} +%{╰}{{\ucc{}}}{1} {╱}{{\ucc{}}}{1} {╲}{{\ucc{}}}{1} {╳}{{\ucc{}}}{1} +{╴}{{\ucc{\pmboxdrawuni{2574}}}}{1} {╵}{{\ucc{\pmboxdrawuni{2575}}}}{1} +{╶}{{\ucc{\pmboxdrawuni{2576}}}}{1} {╷}{{\ucc{\pmboxdrawuni{2577}}}}{1} +{╸}{{\ucc{\pmboxdrawuni{2578}}}}{1} {╹}{{\ucc{\pmboxdrawuni{2579}}}}{1} +{╺}{{\ucc{\pmboxdrawuni{257A}}}}{1} {╻}{{\ucc{\pmboxdrawuni{257B}}}}{1} +{╼}{{\ucc{\pmboxdrawuni{257C}}}}{1} {╽}{{\ucc{\pmboxdrawuni{257D}}}}{1} +{╾}{{\ucc{\pmboxdrawuni{257E}}}}{1} {╿}{{\ucc{\pmboxdrawuni{257F}}}}{1} +} +% +% +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% defining the expandliterate key +\def\addToLiterate#1{% +\protected@edef\lst@literate{% +\unexpanded\expandafter{\lst@literate}\unexpanded{#1}}} +\lst@Key{expandliterate}{}{\addToLiterate{#1}} + +% defining the \addlitjlbase, \addlitjlstrnum, \addlitjlmacros and +% \addlitjlfunctions commands, which help a user to fix some of the known +% managable issues +\newcommand{\addlitjlbase}[3]{% +\lstset{style=jlcodeuccstyle} +\lstdefinestyle{jlcodeuccstyle}{expandliterate={#1}{{{\color{jlbase}#2}}}{#3}} +\ifjlc@autoload + \lstset{language=julia, style=jlcodestyle} +\fi +} +\newcommand{\addlitjlstrnum}[3]{% +\lstset{style=jlcodeuccstyle} +\lstdefinestyle{jlcodeuccstyle}{expandliterate={#1}{{{\color{jlstrnum}#2}}}{#3}} +\ifjlc@autoload + \lstset{language=julia, style=jlcodestyle} +\fi +} +\newcommand{\addlitjlmacros}[3]{% +\lstset{style=jlcodeuccstyle} +\lstdefinestyle{jlcodeuccstyle}{expandliterate={#1}{{{\color{jlmacros}#2}}}{#3}} +\ifjlc@autoload + \lstset{language=julia, style=jlcodestyle} +\fi +} +\newcommand{\addlitjlfunctions}[3]{% +\lstset{style=jlcodeuccstyle} +\lstdefinestyle{jlcodeuccstyle}{expandliterate={#1}{{{\color{jlfunctions}#2}}}{#3}} +\ifjlc@autoload + \lstset{language=julia, style=jlcodestyle} +\fi +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% commands for inserting code + +% defining the \jlinputlisting command for listing standalone files +\newcommand{\jlinputlisting}[2][]{% +\calcboxlengths% +\lstinputlisting[language=julia, style=jlcodestyle, breaklines=true, #1]{#2}} + + +% defining the \jllisting for displaying code directly +\lstnewenvironment{jllisting}[2][]{% + \calcboxlengths% + \lst@TestEOLChar{#2}% + \lstset{breaklines=true, #1}% + \csname\@lst @SetFirstNumber\endcsname% +}{% + \@nobreakfalse + \csname\@lst @SaveFirstNumber\endcsname% +} + + +% defining the font for the inline code +\def\jlinlfont{\loadthemecolors\color{jlstrnum}\ttfamily\relsize{-0.5}\selectfont} + +% defining the \jlinl for dispalying in-line code snippets +\newlength{\jlinlem} +\newcommand{\jlinl}[1]{% +\settowidth{\jlinlem}{\jlinlfont{m}}% +\lstinline[language=julia, style=jlcodestyle ,breaklines=true, +basicstyle=\jlinlfont, basewidth=\jlinlem]^^a7#1^^a7} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\lstdefinestyle{jlcodestyle}{% + style=jlcodeblockstyle, + style=jlcodeboxdfltstyle, + style=jllinenumbersstyle, + style=jlcodeopstyle, + style=jlcodeuccstyle} + +\ifdefstring{\jlc@theme}{default-plain}{% + \lstdefinestyle{jlcodestyle}{% + style=jlcodeblockstyle, + style=jlcodeboxnostyle, + style=jllinenumbersstyle, + style=jlcodeopstyle, + style=jlcodeuccstyle} +}{} + +\ifdefstring{\jlc@theme}{grayscale}{% + \lstdefinestyle{jlcodestyle}{% + style=jlcodeblockstyle, + style=jlcodeboxdfltstyle, + style=jllinenumbersstyle, + style=jlcodeopstyle, + style=jlcodeuccstyle} +}{} + +\ifdefstring{\jlc@theme}{grayscale-plain}{% + \lstdefinestyle{jlcodestyle}{% + style=jlcodeblockstyle, + style=jlcodeboxnostyle, + style=jllinenumbersstyle, + style=jlcodeopstyle, + style=jlcodeuccstyle} +}{} + +\ifdefstring{\jlc@theme}{darkbeamer}{% + \lstdefinestyle{jlcodestyle}{% + style=jlcodeblockstyle, + style=jlcodeboxdthstyle, + style=jllinenumbersstyle, + style=jlcodeopstyle, + style=jlcodeuccstyle} +}{} + + +% activating the julia style +\ifjlc@autoload + \lstset{language=julia, style=jlcodestyle} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/assets/latex/listings.sty b/assets/latex/listings.sty new file mode 100644 index 0000000000..d7cf3eaa09 --- /dev/null +++ b/assets/latex/listings.sty @@ -0,0 +1,9 @@ +\usepackage{listings} +\lstset{ + breaklines = true, + % fontsize = \small, + frame = none, + backgroundcolor = codeblock-background, + rulecolor= codeblock-border, + } +\usepackage{jlcode} \ No newline at end of file diff --git a/assets/latex/minted.sty b/assets/latex/minted.sty new file mode 100644 index 0000000000..b3fd48e554 --- /dev/null +++ b/assets/latex/minted.sty @@ -0,0 +1,8 @@ +\usepackage{minted} +\setminted{ + breaklines = true, + fontsize = \small, + frame = none, + bgcolor = codeblock-background, + rulecolor=codeblock-border, +} \ No newline at end of file diff --git a/assets/latex/preamble.tex b/assets/latex/preamble.tex index 5f383dc1bb..f2331db792 100644 --- a/assets/latex/preamble.tex +++ b/assets/latex/preamble.tex @@ -2,6 +2,7 @@ \documentclass[oneside]{memoir} \usepackage{./documenter} +\usepackage{./code_listings} \usepackage{./custom} %% Title Page diff --git a/src/latex/LaTeXWriter.jl b/src/latex/LaTeXWriter.jl index 8a88411796..b682c7cede 100644 --- a/src/latex/LaTeXWriter.jl +++ b/src/latex/LaTeXWriter.jl @@ -52,12 +52,15 @@ struct LaTeX <: Documenter.Writer platform::String version::String tectonic::Union{Cmd,String,Nothing} + code_listings::String function LaTeX(; - platform = "native", - version = get(ENV, "TRAVIS_TAG", ""), - tectonic = nothing) + platform="native", + version=get(ENV, "TRAVIS_TAG", ""), + tectonic=nothing, + code_listings="minted") + code_listings ∈ ("minted", "listings") || throw(ArgumentError("unknown code formatting package: $platform")) platform ∈ ("native", "tectonic", "docker", "none") || throw(ArgumentError("unknown platform: $platform")) - return new(platform, string(version), tectonic) + return new(platform, string(version), tectonic, code_listings) end end @@ -65,10 +68,10 @@ import ..Documenter import Markdown import ANSIColoredPrinters -mutable struct Context{I <: IO} <: IO +mutable struct Context{I<:IO} <: IO io::I in_header::Bool - footnotes::Dict{String, Int} + footnotes::Dict{String,Int} depth::Int filename::String # currently active source file doc::Documenter.Document @@ -86,8 +89,17 @@ _hash(x) = string(hash(x)) const STYLE = joinpath(dirname(@__FILE__), "..", "..", "assets", "latex", "documenter.sty") const DEFAULT_PREAMBLE_PATH = joinpath(dirname(@__FILE__), "..", "..", "assets", "latex", "preamble.tex") +const JLCODE_PATH = joinpath(dirname(@__FILE__), "..", "..", "assets", "latex", "jlcode.sty") +const LISTINGS_PATH = joinpath(dirname(@__FILE__), "..", "..", "assets", "latex", "listings.sty") +const MINTED_PATH = joinpath(dirname(@__FILE__), "..", "..", "assets", "latex", "minted.sty") -hastex() = (try; success(`latexmk -version`); catch; false; end) +hastex() = ( + try + success(`pdflatex --version`) + catch + false + end +) const DOCUMENT_STRUCTURE = ( "part", @@ -123,7 +135,7 @@ function render(doc::Documenter.Document, settings::LaTeX=LaTeX()) if get(page.globals.meta, :IgnorePage, :none) !== :latex context.depth = depth + (isempty(title) ? 0 : 1) context.depth > depth && _println(context, header_text) - latex(context, page.mdast.children; toplevel=true) + latex(context, page.mdast.children; toplevel=true, settings=settings) end end end @@ -131,6 +143,7 @@ function render(doc::Documenter.Document, settings::LaTeX=LaTeX()) writefooter(context, doc) end cp(STYLE, "documenter.sty") + settings.code_listings == "listings" && cp(JLCODE_PATH, "jlcode.sty") # compile .tex status = compile_tex(doc, settings, fileprefix) @@ -236,6 +249,9 @@ function writeheader(io::IO, doc::Documenter.Document, settings::LaTeX) custom = joinpath(doc.user.root, doc.user.source, "assets", "custom.sty") isfile(custom) ? cp(custom, "custom.sty"; force = true) : touch("custom.sty") + cp(settings.code_listings == "minted" ? MINTED_PATH : LISTINGS_PATH, "code_listings.sty") + + custom_preamble_file = joinpath(doc.user.root, doc.user.source, "assets", "preamble.tex") if isfile(custom_preamble_file) # copy custom preamble. @@ -266,15 +282,15 @@ end # as the top-level blocks of a page, or somewhere deeper in the AST. istoplevel(n::Node) = !isnothing(n.parent) && isa(n.parent.element, MarkdownAST.Document) -latex(io::Context, node::Node) = latex(io, node, node.element) -latex(io::Context, node::Node, e) = error("$(typeof(e)) not implemented: $e") +latex(io::Context, node::Node; settings::LaTeX=LaTeX()) = latex(io, node, node.element; settings=settings) +latex(io::Context, node::Node, e; settings::LaTeX=LaTeX()) = error("$(typeof(e)) not implemented: $e") -function latex(io::Context, children; toplevel = false) +function latex(io::Context, children; toplevel=false, settings::LaTeX=LaTeX()) @assert eltype(children) <: MarkdownAST.Node for node in children otherelement = !isa(node.element, NoExtraTopLevelNewlines) toplevel && otherelement && _println(io) - latex(io, node) + latex(io, node; settings=settings) toplevel && otherelement && _println(io) end end @@ -288,21 +304,21 @@ const NoExtraTopLevelNewlines = Union{ Documenter.MetaNode, } -function latex(io::Context, node::Node, ah::Documenter.AnchoredHeader) +function latex(io::Context, node::Node, ah::Documenter.AnchoredHeader; settings::LaTeX=LaTeX()) anchor = ah.anchor # latex(io::IO, anchor::Anchor, page, doc) id = _hash(Documenter.anchor_label(anchor)) - latex(io, node.children; toplevel = istoplevel(node)) + latex(io, node.children; toplevel=istoplevel(node), settings=settings) _println(io, "\n\\label{", id, "}{}\n") end ## Documentation Nodes. -function latex(io::Context, node::Node, ::Documenter.DocsNodesBlock) - latex(io, node.children; toplevel = istoplevel(node)) +function latex(io::Context, node::Node, ::Documenter.DocsNodesBlock; settings::LaTeX=LaTeX()) + latex(io, node.children; toplevel=istoplevel(node), settings=settings) end -function latex(io::Context, node::Node, docs::Documenter.DocsNode) +function latex(io::Context, node::Node, docs::Documenter.DocsNode; settings::LaTeX=LaTeX()) node, ast = docs, node # latex(io::IO, node::Documenter.DocsNode, page, doc) id = _hash(Documenter.anchor_label(node.anchor)) @@ -313,18 +329,18 @@ function latex(io::Context, node::Node, docs::Documenter.DocsNode) _println(io, " -- {", Documenter.doccat(node.object), ".}\n") # # Body. May contain several concatenated docstrings. _println(io, "\\begin{adjustwidth}{2em}{0pt}") - latexdoc(io, ast) + latexdoc(io, ast; settings=settings) _println(io, "\n\\end{adjustwidth}") end -function latexdoc(io::IO, node::Node) +function latexdoc(io::IO, node::Node; settings::LaTeX=LaTeX()) @assert node.element isa Documenter.DocsNode # The `:results` field contains a vector of `Docs.DocStr` objects associated with # each markdown object. The `DocStr` contains data such as file and line info that # we need for generating correct source links. for (docstringast, result) in zip(node.element.mdasts, node.element.results) _println(io) - latex(io, docstringast.children) + latex(io, docstringast.children; settings=settings) _println(io) # When a source link is available then print the link. url = Documenter.source_url(io.doc, result) @@ -337,7 +353,7 @@ end ## Index, Contents, and Eval Nodes. -function latex(io::Context, node::Node, index::Documenter.IndexNode) +function latex(io::Context, node::Node, index::Documenter.IndexNode; settings::LaTeX=LaTeX()) # Having an empty itemize block in LaTeX throws an error, so we bail early # in that situation: isempty(index.elements) && (_println(io); return) @@ -354,7 +370,7 @@ function latex(io::Context, node::Node, index::Documenter.IndexNode) _println(io, "\\end{itemize}\n") end -function latex(io::Context, node::Node, contents::Documenter.ContentsNode) +function latex(io::Context, node::Node, contents::Documenter.ContentsNode; settings::LaTeX=LaTeX()) # Having an empty itemize block in LaTeX throws an error, so we bail early # in that situation: isempty(contents.elements) && (_println(io); return) @@ -387,7 +403,7 @@ function latex(io::Context, node::Node, contents::Documenter.ContentsNode) # Print the corresponding \item statement id = _hash(Documenter.anchor_label(anchor)) _print(io, "\\item \\hyperlinkref{", id, "}{") - latex(io, header.children) + latex(io, header.children; settings=settings) _println(io, "}") end # print any remaining missing \end{itemize} statements @@ -395,19 +411,19 @@ function latex(io::Context, node::Node, contents::Documenter.ContentsNode) _println(io) end -function latex(io::Context, node::Node, evalnode::Documenter.EvalNode) +function latex(io::Context, node::Node, evalnode::Documenter.EvalNode; settings::LaTeX=LaTeX()) if evalnode.result !== nothing - latex(io, evalnode.result.children, toplevel = true) + latex(io, evalnode.result.children; toplevel=true, settings=settings) end end # Select the "best" representation for LaTeX output. using Base64: base64decode -latex(io::Context, node::Node, ::Documenter.MultiOutput) = latex(io, node.children) -function latex(io::Context, node::Node, moe::Documenter.MultiOutputElement) - Base.invokelatest(latex, io, node, moe.element) +latex(io::Context, node::Node, ::Documenter.MultiOutput; settings::LaTeX=LaTeX()) = latex(io, node.children; settings=settings) +function latex(io::Context, node::Node, moe::Documenter.MultiOutputElement; settings::LaTeX=LaTeX()) + Base.invokelatest(latex, io, node, moe.element; settings=settings) end -function latex(io::Context, ::Node, d::Dict{MIME,Any}) +function latex(io::Context, ::Node, d::Dict{MIME,Any}; settings::LaTeX=LaTeX()) filename = String(rand('a':'z', 7)) if haskey(d, MIME"image/png"()) write("$(filename).png", base64decode(d[MIME"image/png"()])) @@ -446,14 +462,14 @@ function latex(io::Context, ::Node, d::Dict{MIME,Any}) elseif haskey(d, MIME"text/markdown"()) md = Markdown.parse(d[MIME"text/markdown"()]) ast = MarkdownAST.convert(MarkdownAST.Node, md) - latex(io, ast.children) + latex(io, ast.children; settings=settings) elseif haskey(d, MIME"text/plain"()) text = d[MIME"text/plain"()] out = repr(MIME"text/plain"(), ANSIColoredPrinters.PlainTextPrinter(IOBuffer(text))) # We set a "fake" language as text/plain so that the writer knows how to # deal with it. codeblock = MarkdownAST.CodeBlock("text/plain", out) - latex(io, MarkdownAST.Node(codeblock)) + latex(io, MarkdownAST.Node(codeblock); settings=settings) else error("this should never happen.") end @@ -463,13 +479,13 @@ end ## Basic Nodes. AKA: any other content that hasn't been handled yet. -function latex(io::Context, node::Node, heading::MarkdownAST.Heading) +function latex(io::Context, node::Node, heading::MarkdownAST.Heading; settings::LaTeX=LaTeX()) N = heading.level # latex(io::IO, h::Markdown.Header{N}) where N tag = DOCUMENT_STRUCTURE[min(io.depth + N - 1, length(DOCUMENT_STRUCTURE))] _print(io, "\\", tag, "{") io.in_header = true - latex(io, node.children) + latex(io, node.children; settings=settings) io.in_header = false # {sub}pagragraphs need an explicit `\indent` after them # to ensure the following text is on a new line. Others @@ -487,7 +503,7 @@ const LEXER = Set([ "text", ]) -function latex(io::Context, node::Node, code::MarkdownAST.CodeBlock) +function latex(io::Context, node::Node, code::MarkdownAST.CodeBlock; settings::LaTeX=LaTeX()) language = Documenter.codelang(code.info) if language == "julia-repl" language = "jlcon" # the julia-repl is called "jlcon" in Pygments @@ -498,6 +514,7 @@ function latex(io::Context, node::Node, code::MarkdownAST.CodeBlock) text = IOBuffer(code.code) code_code = repr(MIME"text/plain"(), ANSIColoredPrinters.PlainTextPrinter(text)) escape = '⊻' ∈ code_code + if settings.code_listings == "minted" _print(io, "\n\\begin{minted}") if escape _print(io, "[escapeinside=\\#\\%") @@ -515,10 +532,29 @@ function latex(io::Context, node::Node, code::MarkdownAST.CodeBlock) _print(io, code_code) end _println(io, "\n\\end{minted}\n") + elseif settings.code_listings == "listings" + _print(io, "\n\\begin{lstlisting}") + _print(io, escape ? "[escapeinside=\\#\\%," : "[") + if language == "text/plain" + # _print(io, escape ? "," : "[") + # Special-case the formatting of code outputs from Julia. + _println(io, "]") + elseif language == "jlcon" + _println(io,"language=julia, style=jlcodestyle]") + else + _println(io, "]") + end + if escape + _print_code_escapes_minted(io, code_code) + else + _print(io, code_code) + end + _println(io, "\n\\end{lstlisting}\n") + end return end -latex(io::Context, node::Node, mcb::Documenter.MultiCodeBlock) = latex(io, node, join_multiblock(node)) +latex(io::Context, node::Node, mcb::Documenter.MultiCodeBlock; settings::LaTeX=LaTeX()) = latex(io, node, join_multiblock(node); settings=settings) function join_multiblock(node::Node) @assert node.element isa Documenter.MultiCodeBlock io = IOBuffer() @@ -544,7 +580,7 @@ function _print_code_escapes_minted(io, s::AbstractString) end end -function latex(io::Context, node::Node, code::MarkdownAST.Code) +function latex(io::Context, node::Node, code::MarkdownAST.Code; settings::LaTeX=LaTeX()) _print(io, "\\texttt{") _print_code_escapes_inline(io, code.code) _print(io, "}") @@ -557,18 +593,18 @@ function _print_code_escapes_inline(io, s::AbstractString) end end -function latex(io::Context, node::Node, ::MarkdownAST.Paragraph) - latex(io, node.children) +function latex(io::Context, node::Node, ::MarkdownAST.Paragraph; settings::LaTeX=LaTeX()) + latex(io, node.children; settings=settings) _println(io, "\n") end -function latex(io::Context, node::Node, ::MarkdownAST.BlockQuote) +function latex(io::Context, node::Node, ::MarkdownAST.BlockQuote; settings::LaTeX=LaTeX()) wrapblock(io, "quote") do - latex(io, node.children) + latex(io, node.children; settings=settings) end end -function latex(io::Context, node::Node, md::MarkdownAST.Admonition) +function latex(io::Context, node::Node, md::MarkdownAST.Admonition; settings::LaTeX=LaTeX()) color = "admonition-default" if md.category in ("danger", "warning", "note", "info", "tip", "compat") color = "admonition-$(md.category)" @@ -578,19 +614,19 @@ function latex(io::Context, node::Node, md::MarkdownAST.Admonition) _print(io, "title=\\textbf{") latexesc(io, md.title) _println(io, "}]") - latex(io, node.children) + latex(io, node.children; settings=settings) _println(io, "\\end{tcolorbox}") return end -function latex(io::Context, node::Node, f::MarkdownAST.FootnoteDefinition) +function latex(io::Context, node::Node, f::MarkdownAST.FootnoteDefinition; settings::LaTeX=LaTeX()) id = get(io.footnotes, f.id, 1) _print(io, "\\footnotetext[", id, "]{") - latex(io, node.children) + latex(io, node.children; settings=settings) _println(io, "}") end -function latex(io::Context, node::Node, list::MarkdownAST.List) +function latex(io::Context, node::Node, list::MarkdownAST.List; settings::LaTeX=LaTeX()) # TODO: MarkdownAST doesn't support lists starting at arbitrary numbers isordered = (list.type === :ordered) ordered = (list.type === :bullet) ? -1 : 1 @@ -611,20 +647,20 @@ function latex(io::Context, node::Node, list::MarkdownAST.List) wrapblock(io, "itemize") do for (n, item) in enumerate(node.children) _print(io, "\\item$(fmt(n)) ") - latex(io, item.children) + latex(io, item.children; settings=settings) n < length(node.children) && _println(io) end end end -function latex(io::Context, node::Node, e::MarkdownAST.ThematicBreak) +function latex(io::Context, node::Node, e::MarkdownAST.ThematicBreak; settings::LaTeX=LaTeX()) _println(io, "{\\rule{\\textwidth}{1pt}}") end # This (equation*, split) math env seems to be the only way to correctly render all the # equations in the Julia manual. However, if the equation is already wrapped in # align/align*, then there is no need to further wrap it (in fact, it will break). -function latex(io::Context, node::Node, math::MarkdownAST.DisplayMath) +function latex(io::Context, node::Node, math::MarkdownAST.DisplayMath; settings::LaTeX=LaTeX()) if occursin(r"^\\begin\{align\*?\}", math.math) _print(io, math.math) else @@ -634,7 +670,7 @@ function latex(io::Context, node::Node, math::MarkdownAST.DisplayMath) end end -function latex(io::Context, node::Node, table::MarkdownAST.Table) +function latex(io::Context, node::Node, table::MarkdownAST.Table; settings::LaTeX=LaTeX()) rows = MarkdownAST.tablerows(node) _println(io, "\n\\begin{table}[h]\n\\centering") _print(io, "\\begin{tabulary}{\\linewidth}") @@ -643,7 +679,7 @@ function latex(io::Context, node::Node, table::MarkdownAST.Table) for (i, row) in enumerate(rows) for (j, cell) in enumerate(row.children) j === 1 || _print(io, " & ") - latex(io, cell.children) + latex(io, cell.children; settings=settings) end _println(io, " \\\\") if i === 1 @@ -656,29 +692,29 @@ function latex(io::Context, node::Node, table::MarkdownAST.Table) end spec_to_align(spec::Symbol) = Symbol(first(String(spec))) -function latex(io::Context, node::Node, raw::Documenter.RawNode) +function latex(io::Context, node::Node, raw::Documenter.RawNode; settings::LaTeX=LaTeX()) raw.name === :latex ? _println(io, "\n", raw.text, "\n") : nothing end # Inline Elements. -function latex(io::Context, node::Node, e::MarkdownAST.Text) +function latex(io::Context, node::Node, e::MarkdownAST.Text; settings::LaTeX=LaTeX()) latexesc(io, e.text) end -function latex(io::Context, node::Node, e::MarkdownAST.Strong) +function latex(io::Context, node::Node, e::MarkdownAST.Strong; settings::LaTeX=LaTeX()) wrapinline(io, "textbf") do - latex(io, node.children) + latex(io, node.children; settings=settings) end end -function latex(io::Context, node::Node, e::MarkdownAST.Emph) +function latex(io::Context, node::Node, e::MarkdownAST.Emph; settings::LaTeX=LaTeX()) wrapinline(io, "emph") do - latex(io, node.children) + latex(io, node.children; settings=settings) end end -function latex(io::Context, node::Node, image::Documenter.LocalImage) +function latex(io::Context, node::Node, image::Documenter.LocalImage; settings::LaTeX=LaTeX()) # TODO: also print the .title field somehow wrapblock(io, "figure") do _println(io, "\\centering") @@ -687,13 +723,13 @@ function latex(io::Context, node::Node, image::Documenter.LocalImage) end _println(io) wrapinline(io, "caption") do - latex(io, node.children) + latex(io, node.children; settings=settings) end _println(io) end end -function latex(io::Context, node::Node, image::MarkdownAST.Image) +function latex(io::Context, node::Node, image::MarkdownAST.Image; settings::LaTeX=LaTeX()) # TODO: also print the .title field somehow wrapblock(io, "figure") do _println(io, "\\centering") @@ -706,22 +742,22 @@ function latex(io::Context, node::Node, image::MarkdownAST.Image) end _println(io) wrapinline(io, "caption") do - latex(io, node.children) + latex(io, node.children; settings=settings) end _println(io) end end -function latex(io::Context, node::Node, f::MarkdownAST.FootnoteLink) +function latex(io::Context, node::Node, f::MarkdownAST.FootnoteLink; settings::LaTeX=LaTeX()) id = get!(io.footnotes, f.id, length(io.footnotes) + 1) _print(io, "\\footnotemark[", id, "]") end -function latex(io::Context, node::Node, link::Documenter.PageLink) +function latex(io::Context, node::Node, link::Documenter.PageLink; settings::LaTeX=LaTeX()) # If we're in a header, we don't want to print any \hyperlinkref commands, # so we handle this here. if io.in_header - latex(io, node.children) + latex(io, node.children; settings=settings) return end # This branch is the normal case, when we're not in a header. @@ -738,15 +774,15 @@ function latex(io::Context, node::Node, link::Documenter.PageLink) end end _print(io, "{") - latex(io, node.children) + latex(io, node.children; settings=settings) _print(io, "}") end -function latex(io::Context, node::Node, link::Documenter.LocalLink) +function latex(io::Context, node::Node, link::Documenter.LocalLink; settings::LaTeX=LaTeX()) # If we're in a header, we don't want to print any \hyperlinkref commands, # so we handle this here. if io.in_header - latex(io, node.children) + latex(io, node.children; settings=settings) return end # This branch is the normal case, when we're not in a header. @@ -756,15 +792,15 @@ function latex(io::Context, node::Node, link::Documenter.LocalLink) latexesc(io, href) end _print(io, "{") - latex(io, node.children) + latex(io, node.children; settings=settings) _print(io, "}") end -function latex(io::Context, node::Node, link::MarkdownAST.Link) +function latex(io::Context, node::Node, link::MarkdownAST.Link; settings::LaTeX=LaTeX()) # If we're in a header, we don't want to print any \hyperlinkref commands, # so we handle this here. if io.in_header - latex(io, node.children) + latex(io, node.children; settings=settings) return end # This branch is the normal case, when we're not in a header. @@ -773,11 +809,11 @@ function latex(io::Context, node::Node, link::MarkdownAST.Link) latexesc(io, link.destination) end _print(io, "{") - latex(io, node.children) + latex(io, node.children; settings=settings) _print(io, "}") end -function latex(io::Context, node::Node, math::MarkdownAST.InlineMath) +function latex(io::Context, node::Node, math::MarkdownAST.InlineMath; settings::LaTeX=LaTeX()) # Handle MathJax and TeX inconsistency since the first wants `\LaTeX` wrapped # in math delims, whereas actual TeX fails when that is done. math.math == "\\LaTeX" ? _print(io, math.math) : _print(io, "\\(", math.math, "\\)") @@ -785,12 +821,12 @@ end # Metadata Nodes get dropped from the final output for every format but are needed throughout # rest of the build and so we just leave them in place and print a blank line in their place. -latex(io::Context, node::Node, ::Documenter.MetaNode) = _println(io, "\n") +latex(io::Context, node::Node, ::Documenter.MetaNode; settings::LaTeX=LaTeX()) = _println(io, "\n") # In the original AST, SetupNodes were just mapped to empty Markdown.MD() objects. -latex(io::Context, node::Node, ::Documenter.SetupNode) = nothing +latex(io::Context, node::Node, ::Documenter.SetupNode; settings::LaTeX=LaTeX()) = nothing -function latex(io::Context, node::Node, value::MarkdownAST.JuliaValue) +function latex(io::Context, node::Node, value::MarkdownAST.JuliaValue; settings::LaTeX=LaTeX()) @warn(""" Unexpected Julia interpolation in the Markdown. This probably means that you have an unbalanced or un-escaped \$ in the text. @@ -805,7 +841,7 @@ function latex(io::Context, node::Node, value::MarkdownAST.JuliaValue) end # TODO: Implement SoftBreak, Backslash (but they don't appear in standard library Markdown conversions) -latex(io::Context, node::Node, ::MarkdownAST.LineBreak) = _println(io, "\\\\") +latex(io::Context, node::Node, ::MarkdownAST.LineBreak; settings::LaTeX=LaTeX()) = _println(io, "\\\\") # Documenter. @@ -873,6 +909,6 @@ function files!(out, p::Pair{<:AbstractString,<:Any}, depth) return out end -files(v::Vector) = files!(Tuple{String, String, Int}[], v, 0) +files(v::Vector) = files!(Tuple{String,String,Int}[], v, 0) end diff --git a/test/examples/make.jl b/test/examples/make.jl index c1e64d7af5..984b7e977a 100644 --- a/test/examples/make.jl +++ b/test/examples/make.jl @@ -20,7 +20,7 @@ else ["html", "html-meta-custom", "html-mathjax2-custom", "html-mathjax3", "html-mathjax3-custom", "html-local", "html-draft", "html-repo-git", "html-repo-nothing", "html-repo-error", "html-sizethreshold-defaults-fail", "html-sizethreshold-success", "html-sizethreshold-ignore-success", "html-sizethreshold-override-fail", "html-sizethreshold-ignore-success", "html-sizethreshold-ignore-fail", - "latex_texonly", "latex_simple_texonly", "latex_showcase_texonly", "html-pagesonly"] + "latex_texonly", "latex_simple_texonly","latex_listings_texonly", "latex_showcase_texonly", "html-pagesonly"] end # Modules `Mod` and `AutoDocs` @@ -706,7 +706,7 @@ end examples_latex_texonly_doc = if "latex_texonly" in EXAMPLE_BUILDS @info("Building mock package docs: LaTeXWriter/latex_texonly") - @quietly makedocs( + makedocs( format = Documenter.LaTeX(platform = "none"), sitename = "Documenter LaTeX", root = examples_root, @@ -750,6 +750,52 @@ else nothing end +examples_latex_listings_texonly_doc = if "latex_listings_texonly" in EXAMPLE_BUILDS + @info("Building mock package docs: LaTeXWriter/latex_listings_texonly") + makedocs( + format=Documenter.LaTeX(platform="none", code_listings="listings"), + sitename="Documenter LaTeX", + root=examples_root, + build="builds/latex_listings_texonly", + pages=Any[ + "General"=>[ + "index.md", + "latex.md", + "unicode.md", + hide("hidden.md"), + "example-output.md", + "linenumbers.md", + ], + # SVG images nor code blocks in footnotes are allowed in LaTeX + # "Manual" => [ + # "man/tutorial.md", + # "man/style.md", + # ], + hide("Hidden Pages" => "hidden/index.md", Any[ + "Page X"=>"hidden/x.md", + "hidden/y.md", + "hidden/z.md", + ]), + "Library"=>[ + "lib/functions.md", + "lib/autodocs.md", + ], + "Expandorder"=>[ + "expandorder/00.md", + "expandorder/01.md", + "expandorder/AA.md", + ], + ], + doctest=false, + debug=true, + warnonly=[:footnote, :cross_references, :example_block, :eval_block], + ) +else + @info "Skipping build: LaTeXWriter/latex_listings_texonly" + @debug "Controlling variables:" EXAMPLE_BUILDS get(ENV, "DOCUMENTER_TEST_EXAMPLES", nothing) + nothing +end + examples_latex_simple_texonly_doc = if "latex_simple_texonly" in EXAMPLE_BUILDS @info("Building mock package docs: LaTeXWriter/latex_simple_texonly") @quietly makedocs( @@ -826,6 +872,26 @@ else nothing end +examples_latex_showcase_doc = if "latex_showcase_listings" in EXAMPLE_BUILDS + @info("Building mock package docs: LaTeXWriter/latex_showcase_listings") + @quietly makedocs( + format = Documenter.LaTeX(platform = "docker", version = v"1.2.3", code_listings="listings"), + sitename = "Documenter LaTeX Showcase", + root = examples_root, + build = "builds/latex_showcase_listingslatex_showcase", + source = "src.latex_showcase", + pages = ["Showcase" => ["showcase.md", "docstrings.md"]], + remotes = Dict(@__DIR__() => (TestRemote(), "6ef16754bc5da93f67a4323fb204c5bd3e64f336")), + doctest = false, + debug = true, + warnonly = [:docs_block, :cross_references], + ) +else + @info "Skipping build: LaTeXWriter/latex_showcase" + @debug "Controlling variables:" EXAMPLE_BUILDS get(ENV, "DOCUMENTER_TEST_EXAMPLES", nothing) + nothing +end + examples_latex_showcase_texonly_doc = if "latex_showcase_texonly" in EXAMPLE_BUILDS @info("Building mock package docs: LaTeXWriter/latex_showcase_texonly") @quietly makedocs( diff --git a/test/examples/references/latex_simple_listings.tex b/test/examples/references/latex_simple_listings.tex new file mode 100644 index 0000000000..07e2463e96 --- /dev/null +++ b/test/examples/references/latex_simple_listings.tex @@ -0,0 +1,3562 @@ +% Useful variables +\newcommand{\DocMainTitle}{Documenter LaTeX} +\newcommand{\DocVersion}{} +\newcommand{\DocAuthors}{} +\newcommand{\JuliaVersion}{1.9.0} + +% ---- Insert preamble +\input{preamble.tex} + + +\part{General} + + +\chapter{Documentation} + + + +\label{15370268649601208206}{} + + +\section{Index Page} + + + +\label{717217368905959711}{} + +\begin{itemize} +\item \hyperlinkref{15370268649601208206}{Documentation} +\begin{itemize} +\item \hyperlinkref{717217368905959711}{Index Page} +\item \hyperlinkref{10013362338599846780}{Functions Contents} +\item \hyperlinkref{408188879749078986}{Tutorial Contents} +\item \hyperlinkref{6663683553518785561}{Index} +\begin{itemize} +\item \hyperlinkref{6314011214927757498}{Embedded \texttt{@ref} links headers: \hyperlinkref{14245046751182637566}{\texttt{ccall}}} +\end{itemize} +\item \hyperlinkref{13874303023969489032}{Raw Blocks} +\end{itemize} +\item \hyperlinkref{3875383913997789590}{Symbols in doctests} +\item \hyperlinkref{11490516876546290289}{Named doctests} +\item \hyperlinkref{8183647306788600377}{Filtered doctests} +\begin{itemize} +\item \hyperlinkref{17096412050555070472}{Global} +\item \hyperlinkref{2476711236624669647}{Local} +\item \hyperlinkref{2821521703884307412}{Errors} +\end{itemize} +\item \hyperlinkref{6180046600625199060}{Doctest keyword arguments} +\begin{itemize} +\item \hyperlinkref{11517531047354431104}{World age issue for show} +\end{itemize} +\item \hyperlinkref{10742780047906711446}{Sanitise module names} +\item \hyperlinkref{2549498190252584856}{Issue398} +\item \hyperlinkref{1744747689002493869}{Issue653} +\item \hyperlinkref{12101809483198928652}{Issue418} +\item \hyperlinkref{142823677432440190}{Issue \#793} +\begin{itemize} +\item \hyperlinkref{15766399429363808344}{Issue \#1148} +\end{itemize} +\item \hyperlinkref{18320015255820629047}{Issue513} +\item \hyperlinkref{11837074900083153011}{Filtering of \texttt{Main.}} +\item \hyperlinkref{14560696320878109942}{Anonymous function declaration} +\item \hyperlinkref{2704106513432579326}{Assigning symbols example} +\item \hyperlinkref{4891343357159032293}{Bad links (Windows)} +\item \hyperlinkref{6848322038670609146}{Rendering text/markdown} +\item \hyperlinkref{12121464878615854585}{Empty heading} +\begin{itemize} +\item \hyperlinkref{13633231208144796923}{} +\end{itemize} +\item \hyperlinkref{987107409634109244}{Issue 1392} +\item \hyperlinkref{16901975118583039516}{Issue 890} +\item \hyperlinkref{12500314249427487157}{Module scrubbing from \texttt{@repl} and \texttt{@example}} +\begin{itemize} +\item \hyperlinkref{10276939801399720769}{Headings in block context} +\end{itemize} +\item \hyperlinkref{8207632397694604507}{JuliaValue} +\item \hyperlinkref{1916796393499649241}{Admonitions} +\begin{itemize} +\item \hyperlinkref{16032070393363005082}{\texttt{@example} outputs to file} +\end{itemize} +\end{itemize} + + +\section{Functions Contents} + + + +\label{10013362338599846780}{} + + + +\section{Tutorial Contents} + + + +\label{408188879749078986}{} + + + +\section{Index} + + + +\label{6663683553518785561}{} + +\begin{itemize} +\item \hyperlinkref{11302554442225637105}{\texttt{AutoDocs}} +\item \hyperlinkref{14171230956575570013}{\texttt{Main.AutoDocs.A}} +\item \hyperlinkref{11339106303250130801}{\texttt{Main.AutoDocs.B}} +\item \hyperlinkref{17379154232303623334}{\texttt{Main.AutoDocs.A.K}} +\item \hyperlinkref{3291598769099158785}{\texttt{Main.AutoDocs.B.K}} +\item \hyperlinkref{15441025252371609530}{\texttt{Main.AutoDocs.K}} +\item \hyperlinkref{1070558433006397272}{\texttt{Main.AutoDocs.A.T}} +\item \hyperlinkref{16943270388934614325}{\texttt{Main.AutoDocs.B.T}} +\item \hyperlinkref{6785702989282266947}{\texttt{Main.AutoDocs.Filter.Major}} +\item \hyperlinkref{11704274081303557511}{\texttt{Main.AutoDocs.Filter.Minor1}} +\item \hyperlinkref{4245242374026494985}{\texttt{Main.AutoDocs.Filter.Minor2}} +\item \hyperlinkref{14143981418775697458}{\texttt{Main.AutoDocs.Pages.E.T\_1}} +\item \hyperlinkref{4871421601485935264}{\texttt{Main.AutoDocs.Pages.E.T\_2}} +\item \hyperlinkref{3237252152661731042}{\texttt{Main.AutoDocs.Pages.E.T\_3}} +\item \hyperlinkref{14050452459487205641}{\texttt{Main.AutoDocs.Pages.T}} +\item \hyperlinkref{17100384742613090383}{\texttt{Main.AutoDocs.Pages.T}} +\item \hyperlinkref{5246990970960098088}{\texttt{Main.AutoDocs.Pages.T}} +\item \hyperlinkref{12338358314596597808}{\texttt{Main.AutoDocs.T}} +\item \hyperlinkref{1885743281855441478}{\texttt{Main.Mod.T}} +\item \hyperlinkref{12333874902364664348}{\texttt{Documenter.hide}} +\item \hyperlinkref{8047994080897963665}{\texttt{Main.AutoDocs.A.f}} +\item \hyperlinkref{1354818346142581698}{\texttt{Main.AutoDocs.B.f}} +\item \hyperlinkref{2996493907818938116}{\texttt{Main.AutoDocs.Pages.E.f\_1}} +\item \hyperlinkref{6076055157300971596}{\texttt{Main.AutoDocs.Pages.E.f\_2}} +\item \hyperlinkref{3503352570886681808}{\texttt{Main.AutoDocs.Pages.E.f\_3}} +\item \hyperlinkref{18335012651218585665}{\texttt{Main.AutoDocs.Pages.E.g\_1}} +\item \hyperlinkref{12590794246865857269}{\texttt{Main.AutoDocs.Pages.E.g\_2}} +\item \hyperlinkref{3152146771453799051}{\texttt{Main.AutoDocs.Pages.E.g\_3}} +\item \hyperlinkref{18287295168891819021}{\texttt{Main.AutoDocs.Pages.f}} +\item \hyperlinkref{9950366858879376632}{\texttt{Main.AutoDocs.Pages.f}} +\item \hyperlinkref{16694402067483188119}{\texttt{Main.AutoDocs.Pages.f}} +\item \hyperlinkref{14053004641171891989}{\texttt{Main.AutoDocs.f}} +\item \hyperlinkref{16791148087951682840}{\texttt{Main.Mod.func}} +\item \hyperlinkref{15818938160560313688}{\texttt{Main.Mod.long\_equations\_in\_docstrings}} +\item \hyperlinkref{4796942656392369899}{\texttt{Base.@assert}} +\item \hyperlinkref{8029752041511656628}{\texttt{Base.@time}} +\item \hyperlinkref{7256264955516068825}{\texttt{Main.AutoDocs.@m}} +\item \hyperlinkref{1819148365468180190}{\texttt{Main.AutoDocs.A.@m}} +\item \hyperlinkref{10335956018691630658}{\texttt{Main.AutoDocs.B.@m}} +\end{itemize} + + +\subsection{Embedded \texttt{@ref} links headers: \texttt{ccall}} + + + +\label{6314011214927757498}{} + + +\href{https://github.com/BambOoxX/Documenter.jl/issues/60}{\#60} \href{https://github.com/BambOoxX/Documenter.jl/issues/61}{\#61} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> zeros(5, 5) +5×5 Matrix{Float64}: + 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 + +julia> zeros(50, 50) +50×50 Matrix{Float64}: + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + ⋮ ⋮ ⋱ ⋮ + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 … 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +\end{lstlisting} + + + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> [1.0, 2.0, 3.0] +3-element Array{Float64,1}: + 1.0 + 2.0 + 3.0 + +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> println(" "^5) + +julia> "\nfoo\n\nbar\n\n\nbaz" +"\nfoo\n\nbar\n\n\nbaz" + +julia> println(ans) + +foo + +bar + + +baz +\end{lstlisting} + + + +\begin{itemize} +\item \texttt{one} two three + + +\item four \texttt{five} six + + +\item +\begin{lstlisting}[] +one +\end{lstlisting} + +\end{itemize} + + +\section{Raw Blocks} + + + +\label{13874303023969489032}{} + + + + + +\begin{verbatim} + + + + +\end{verbatim} + + + +\chapter{Symbols in doctests} + + + +\label{3875383913997789590}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> a = :undefined +:undefined + +julia> a +:undefined +\end{lstlisting} + + + +\chapter{Named doctests} + + + +\label{11490516876546290289}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> a = 1 +1 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> a + 1 +2 +\end{lstlisting} + + + +\chapter{Filtered doctests} + + + +\label{8183647306788600377}{} + + +\section{Global} + + + +\label{17096412050555070472}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> print("Ptr{0x123456}") +Ptr{0x654321} +\end{lstlisting} + + + +\section{Local} + + + +\label{2476711236624669647}{} + + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> print("foobar") +foobuu +\end{lstlisting} + + + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> print("foobar123") +foobuu456 +\end{lstlisting} + + + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> print("foobar") +foobuu +\end{lstlisting} + + + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> print("foobar") +foobar +\end{lstlisting} + + + + + +\section{Errors} + + + +\label{2821521703884307412}{} + + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> error() +ERROR: +Stacktrace: + [1] error() at ./thisfiledoesnotexist.jl:123456789 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> error() +ERROR: +Stacktrace: +[...] +\end{lstlisting} + + + + + +\chapter{Doctest keyword arguments} + + + +\label{6180046600625199060}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> f(2) +4 + +julia> g(2) +2 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> f(2) +ERROR: UndefVarError: f not defined +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> f(2) +4 + +julia> g(2) +2 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> f(2) +4 + +julia> g(2) +2 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> print("foobar") +foobuu +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> print("foobar123") +foobuu456 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> print("foobar") +foobuu +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> f() +foobuu +\end{lstlisting} + + + + +\begin{lstlisting}[] +foo(a, b) = a * b +foo(2, 3) +\end{lstlisting} + + + +\section{World age issue for show} + + + +\label{11517531047354431104}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> @enum Color red blue green + +julia> instances(Color) +(red, blue, green) +\end{lstlisting} + + + +\chapter{Sanitise module names} + + + +\label{10742780047906711446}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> struct T end + +julia> t = T() +T() + +julia> fullname(@__MODULE__) +(:Main,) + +julia> fullname(Base.Broadcast) +(:Base, :Broadcast) + +julia> @__MODULE__ +Main +\end{lstlisting} + + + +\chapter{Issue398} + + + +\label{2549498190252584856}{} + + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> @define_show_and_make_object q "abcd" +abcd +\end{lstlisting} + + + + + +\chapter{Issue653} + + + +\label{1744747689002493869}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> struct MyException <: Exception + msg::AbstractString + end + +julia> function Base.showerror(io::IO, err::MyException) + print(io, "MyException: ") + print(io, err.msg) + end + +julia> err = MyException("test exception") +MyException("test exception") + +julia> sprint(showerror, err) +"MyException: test exception" + +julia> throw(MyException("test exception")) +ERROR: MyException: test exception +\end{lstlisting} + + + +\chapter{Issue418} + + + +\label{12101809483198928652}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> f(x::Float64) = x +f (generic function with 1 method) + +julia> f("") +ERROR: MethodError: no method matching f(::String) +Closest candidates are: + f(!Matched::Float64) at none:1 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> a = 1 +1 + +julia> b = 2 +2 + +julia> ex = :(a + b) +:(a + b) + +julia> eval(ex) +3 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> ex = :(1 + 5) +:(1 + 5) + +julia> eval(ex) +6 +\end{lstlisting} + + + + +\begin{lstlisting}[] +ex = :(1 + 5) +eval(ex) +\end{lstlisting} + + +\begin{lstlisting}[] +6 +\end{lstlisting} + + + + +\begin{lstlisting}[] +a = 1 +:(a + 1) +\end{lstlisting} + + +\begin{lstlisting}[] +:(a + 1) +\end{lstlisting} + + + +\chapter{Issue \#793} + + + +\label{142823677432440190}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> write("issue793.jl", "\"Hello!\""); + +julia> include("issue793.jl") +"Hello!" + +julia> rm("issue793.jl"); +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> write("issue793.jl", "\"Hello!\"") +8 + +julia> include("issue793.jl") +"Hello!" + +julia> rm("issue793.jl") + +\end{lstlisting} + + + + +\begin{lstlisting}[] +write("issue793.jl", "\"Hello!\"") +r = include("issue793.jl") +rm("issue793.jl") +r +\end{lstlisting} + + +\begin{lstlisting}[] +"Hello!" +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> a = 1 +1 + +julia> ans +1 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> "hello"; "world" +"world" + +julia> ans +"world" +\end{lstlisting} + + + +\section{Issue \#1148} + + + +\label{15766399429363808344}{} + + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> x +1148 + +julia> @assert x == 1148 + +\end{lstlisting} + + + +\chapter{Issue513} + + + +\label{18320015255820629047}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> a = 1 +1 + +julia> ans +1 +\end{lstlisting} + + + +\chapter{Filtering of \texttt{Main.}} + + + +\label{11837074900083153011}{} + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> struct Point end; + +julia> println(Point) +Point + +julia> sqrt(100) +10.0 + +julia> sqrt = 4 +ERROR: cannot assign variable Base.sqrt from module Main +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> g(x::Float64, y) = 2x + y +g (generic function with 1 method) + +julia> g(x, y::Float64) = x + 2y +g (generic function with 2 methods) + +julia> g(2.0, 3) +7.0 + +julia> g(2, 3.0) +8.0 + +julia> g(2.0, 3.0) +ERROR: MethodError: g(::Float64, ::Float64) is ambiguous. Candidates: + g(x, y::Float64) in Main at none:1 + g(x::Float64, y) in Main at none:1 +Possible fix, define + g(::Float64, ::Float64) +\end{lstlisting} + + + +\chapter{Anonymous function declaration} + + + +\label{14560696320878109942}{} + + + +\begin{lstlisting}[] +julia> x->x # ignore error on 0.7 +#1 (generic function with 1 method) +\end{lstlisting} + + + +\chapter{Assigning symbols example} + + + +\label{2704106513432579326}{} + + + +\begin{lstlisting}[] +r = :a +\end{lstlisting} + + +\begin{lstlisting}[] +:a +\end{lstlisting} + + + +\chapter{Bad links (Windows)} + + + +\label{4891343357159032293}{} + + +\begin{itemize} +\item \href{some:path}{Colons not allowed on Windows – \texttt{some:path}} + + +\item \href{:path}{No {\textquotedbl}drive{\textquotedbl} – \texttt{:path}} + + +\item \href{X:{\textbackslash}some{\textbackslash}path}{Absolute Windows paths – \texttt{X:{\textbackslash}some{\textbackslash}path}} + +\end{itemize} + + +\chapter{Rendering text/markdown} + + + +\label{6848322038670609146}{} + + + +\begin{lstlisting}[] +struct MarkdownOnly + value::String +end +Base.show(io::IO, ::MIME"text/markdown", mo::MarkdownOnly) = print(io, mo.value) + +MarkdownOnly(""" +**bold** output from MarkdownOnly +""") +\end{lstlisting} + +\textbf{bold} output from MarkdownOnly + + + +\chapter{Empty heading} + + + +\label{12121464878615854585}{} + + +\section{} + + + +\label{13633231208144796923}{} + + +\chapter{Issue 1392} + + + +\label{987107409634109244}{} + + + +\begin{lstlisting}[] +julia> function foo end; +\end{lstlisting} + + + +\chapter{Issue 890} + + + +\label{16901975118583039516}{} + + +I will pay \$1 if \(x^2\) is displayed correctly. People may also write \$s or even money bag\$\$. + + + +\chapter{Module scrubbing from \texttt{@repl} and \texttt{@example}} + + + +\label{12500314249427487157}{} + + +None of these expressions should result in the gensym{\textquotesingle}d module in the output + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> @__MODULE__ +Main + +julia> println("@__MODULE__ is ", @__MODULE__) # sandbox printed to stdout +@__MODULE__ is Main + +julia> function f() + println("@__MODULE__ is ", @__MODULE__) + @warn "Main as the module for this log message" + @__MODULE__ + end +f (generic function with 1 method) + +julia> f() +@__MODULE__ is Main +┌ Warning: Main as the module for this log message +└ @ Main REPL[3]:3 +Main + +julia> @warn "Main as the module for this log message" +┌ Warning: Main as the module for this log message +└ @ Main REPL[5]:1 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> module A + function f() + println("@__MODULE__ is ", @__MODULE__) + @warn "Main.A as the module for this log message" + @__MODULE__ + end + end +Main.A + +julia> A.f() +@__MODULE__ is Main.A +┌ Warning: Main.A as the module for this log message +└ @ Main.A REPL[1]:4 +Main.A +\end{lstlisting} + + + + +\begin{lstlisting}[] +@__MODULE__ # sandbox as return value +\end{lstlisting} + + +\begin{lstlisting}[] +Main +\end{lstlisting} + + + + +\begin{lstlisting}[] +println("@__MODULE__ is ", @__MODULE__) # sandbox printed to stdout +\end{lstlisting} + + +\begin{lstlisting}[] +@__MODULE__ is Main +\end{lstlisting} + + + + +\begin{lstlisting}[] +function f() + println("@__MODULE__ is ", @__MODULE__) +end +f() +\end{lstlisting} + + +\begin{lstlisting}[] +@__MODULE__ is Main +\end{lstlisting} + + + + +\begin{lstlisting}[] +function f() + @__MODULE__ +end +f() +\end{lstlisting} + + +\begin{lstlisting}[] +Main +\end{lstlisting} + + + + +\begin{lstlisting}[] +@warn "Main as the module for this log message" +\end{lstlisting} + + +\begin{lstlisting}[] +┌ Warning: Main as the module for this log message +└ @ Main index.md:528 +\end{lstlisting} + + + + +\begin{lstlisting}[] +module A + function f() + println("@__MODULE__ is ", @__MODULE__) + @warn "Main.A as the module for this log message" + @__MODULE__ + end +end +\end{lstlisting} + + +\begin{lstlisting}[] +Main.A +\end{lstlisting} + + + + +\begin{lstlisting}[] +A.f() +\end{lstlisting} + + +\begin{lstlisting}[] +Main.A +\end{lstlisting} + + + +\section{Headings in block context} + + + +\label{10276939801399720769}{} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-default!50!white,colframe=admonition-default,title=\textbf{Blocks in block context}] + +\begin{lstlisting}[] +x^2 +\end{lstlisting} + +Headings: + +\chapter{Heading 1} + +\section{Heading 2} + +\subsection{Heading 3} + +\subsubsection{Heading 4} + +\paragraph{Heading 5}\indent + +\subparagraph{Heading 6}\indent + +\end{tcolorbox} + + +Also in block quotes: + + + +\begin{quote} + +\begin{lstlisting}[] +x^2 +\end{lstlisting} + +Headings: + +\chapter{Heading 1} + +\section{Heading 2} + +\subsection{Heading 3} + +\subsubsection{Heading 4} + +\paragraph{Heading 5}\indent + +\subparagraph{Heading 6}\indent + +\end{quote} + + +\chapter{JuliaValue} + + + +\label{8207632397694604507}{} + + +It is possible to create pseudo-interpolations with the \texttt{Markdown} parser: foo. + + + +[1 2 3; 4 5 6] + + + +They do not get evaluated. + + + +\chapter{Admonitions} + + + +\label{1916796393499649241}{} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-note!50!white,colframe=admonition-note,title=\textbf{{\textquotesingle}note{\textquotesingle} admonition}] +Admonitions look like this. This is a \texttt{!!! note}-type admonition. + +Note that admonitions themselves can contain other block-level elements too, such as code blocks. E.g. + + +\begin{lstlisting}[] +f(x) = x^2 +\end{lstlisting} + +However, you \textbf{can not} have at-blocks, docstrings, doctests etc. in an admonition. + +Headings are OK though: + +\chapter{Heading 1} + +\section{Heading 2} + +\subsection{Heading 3} + +\subsubsection{Heading 4} + +\paragraph{Heading 5}\indent + +\subparagraph{Heading 6}\indent + +\end{tcolorbox} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-info!50!white,colframe=admonition-info,title=\textbf{{\textquotesingle}info{\textquotesingle} admonition}] +This is a \texttt{!!! info}-type admonition. + +\end{tcolorbox} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-tip!50!white,colframe=admonition-tip,title=\textbf{{\textquotesingle}tip{\textquotesingle} admonition}] +This is a \texttt{!!! tip}-type admonition. + +\end{tcolorbox} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-warning!50!white,colframe=admonition-warning,title=\textbf{{\textquotesingle}warning{\textquotesingle} admonition}] +This is a \texttt{!!! warning}-type admonition. + +\end{tcolorbox} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-danger!50!white,colframe=admonition-danger,title=\textbf{{\textquotesingle}danger{\textquotesingle} admonition}] +This is a \texttt{!!! danger}-type admonition. + +\end{tcolorbox} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-compat!50!white,colframe=admonition-compat,title=\textbf{{\textquotesingle}compat{\textquotesingle} admonition}] +This is a \texttt{!!! compat}-type admonition. + +\end{tcolorbox} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-default!50!white,colframe=admonition-default,title=\textbf{{\textquotesingle}details{\textquotesingle} admonition}] +This is a \texttt{!!! details}-type admonition. + +\end{tcolorbox} + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-default!50!white,colframe=admonition-default,title=\textbf{Unknown admonition class}] +Admonition with an unknown admonition class. + +\end{tcolorbox} + + +\section{\texttt{@example} outputs to file} + + + +\label{16032070393363005082}{} + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("png", :big)] +\end{lstlisting} + +\begin{figure}[H] +\centering +\includegraphics[max width=\linewidth]{kihvxeu} +\end{figure} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("png", :tiny)] +\end{lstlisting} + +\begin{figure}[H] +\centering +\includegraphics[max width=\linewidth]{rorjzav} +\end{figure} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("webp", :big)] +\end{lstlisting} + + +\begin{lstlisting}[] +MIMEBytes{MIME{Symbol("image/webp")}}(UInt8[0x52, 0x49, 0x46, 0x46, 0x98, 0x51, 0x00, 0x00, 0x57, 0x45 … 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], "d3d30ae9") +\end{lstlisting} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("webp", :tiny)] +\end{lstlisting} + + +\begin{lstlisting}[] +MIMEBytes{MIME{Symbol("image/webp")}}(UInt8[0x52, 0x49, 0x46, 0x46, 0xc8, 0x01, 0x00, 0x00, 0x57, 0x45 … 0xe8, 0xe4, 0x31, 0x47, 0x66, 0xd0, 0x11, 0xd4, 0x00, 0x00], "d0a50f8a") +\end{lstlisting} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("gif", :big)] +\end{lstlisting} + + +\begin{lstlisting}[] +MIMEBytes{MIME{Symbol("image/gif")}}(UInt8[0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x20, 0x03, 0xb5, 0x02 … 0xcd, 0xd7, 0x7d, 0xed, 0xd7, 0x23, 0x11, 0x10, 0x00, 0x3b], "02bbc9de") +\end{lstlisting} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("jpeg", :tiny)] +\end{lstlisting} + +\begin{figure}[H] +\centering +\includegraphics[max width=\linewidth]{ucljeiy} +\end{figure} + + + +\chapter{LaTeX MWEs} + + + +\label{1925292743794655301}{} + + +\section{\texttt{ContentsNode} level jumps} + + + +\label{15118955462992457116}{} + +\begin{itemize} +\item \hyperlinkref{1925292743794655301}{LaTeX MWEs} +\begin{itemize} +\item \hyperlinkref{15118955462992457116}{\texttt{ContentsNode} level jumps} +\begin{itemize} +\item ~ +\begin{itemize} +\item \hyperlinkref{16707865978221737672}{Level 4} +\end{itemize} +\end{itemize} +\item \hyperlinkref{16667177169392038189}{Level 2 again} +\begin{itemize} +\item \hyperlinkref{1607357897553791978}{Level 3} +\end{itemize} +\item \hyperlinkref{8268966452746558956}{Empty \texttt{ContentsNode} and \texttt{IndexNode}} +\end{itemize} +\end{itemize} + + +\subsubsection{Level 4} + + + +\label{16707865978221737672}{} + + +\section{Level 2 again} + + + +\label{16667177169392038189}{} + + +\subsection{Level 3} + + + +\label{1607357897553791978}{} + + +\section{Empty \texttt{ContentsNode} and \texttt{IndexNode}} + + + +\label{8268966452746558956}{} + + + + +\chapter{Unicode} + + + +\label{14828929048168676331}{} + + +Some unicode tests here. + + + +In main sans-serif font: + + + +\begin{itemize} +\item Checkmark: {\textquotedbl}✓{\textquotedbl} + + +\item Cicled plus: {\textquotedbl}⊕{\textquotedbl} + + +\item XOR: {\textquotedbl}⊻{\textquotedbl} + + +\item Exists: {\textquotedbl}∀{\textquotedbl}, forall: {\textquotedbl}∃{\textquotedbl} + +\end{itemize} + + +\texttt{{\textbackslash}begin\{lstlisting\}} is used for non-highlighted blocks: + + + + +\begin{lstlisting}[escapeinside=\#\%,] +xor: #\unicodeveebar% +forall: ∀ +exists: ∃ +check: ✓ +oplus: ⊕ + +What about the other edge cases: \ #%% \#%% #%%\ #%%#%% #%%\#%%#%% +\end{lstlisting} + + + +\texttt{{\textbackslash}begin\{minted\}} is used for highlighted blocks: + + + + +\begin{lstlisting}[escapeinside=\#\%,] +xor: #\unicodeveebar% +forall: ∀ +exists: ∃ +check: ✓ +oplus: ⊕ +\end{lstlisting} + + + +Inlines: + + + +\texttt{xor: \unicodeveebar{} -> \%{\textbackslash}unicodeveebar\% <-} + + + +\texttt{forall: ∀, exists: ∃, check: ✓} + + + +\texttt{\%{\textbackslash}\%\%{\textbackslash}unicodeveebar, oplus: ⊕} + + + +\section{Drawings etc} + + + +\label{4569512277787935494}{} + + + +\begin{lstlisting}[] +┌────────────────────────────────────────────────────────────────────────────┐ +│ ┌───────────────┐ │ +│ HTTP.request(method, uri, headers, body) -> │ HTTP.Response ├──────────────┼┐ +│ │ └───────────────┘ ││ +│ │ ││ +│ │ ┌──────────────────────────────────────┐ ┌──────────────────┐ ││ +│ └───▶│ request(RedirectLayer, ...) │ │ HTTP.StatusError │ ││ +│ └─┬────────────────────────────────────┴─┐ └─────────▲────────┘ ││ +│ │ request(BasicAuthLayer, ...) │ │ ││ +│ └─┬────────────────────────────────────┴─┐ │ ││ +│ │ request(CookieLayer, ...) │ │ ││ +│ └─┬────────────────────────────────────┴─┐ │ ││ +│ │ request(CanonicalizeLayer, ...) │ │ ││ +│ └─┬────────────────────────────────────┴─┐ │ ││ +│ │ request(MessageLayer, ...) ├─────────┼──────┐ ││ +\end{lstlisting} + + + + +\begin{lstlisting}[] + ┌──────────────────────────────────────────────────────────────────────┐ +1 │ ▗▄▞▀▀▀▀▀▀▀▄▄ │ + │ ▄▞▘ ▀▄▖ │ + │ ▄▀ ▝▚▖ │ + │ ▗▞ ▝▄ │ + │ ▞▘ ▝▚▖ │ + │ ▗▀ ▝▚ │ + │ ▞▘ ▀▖ │ + │ ▗▞ ▝▄ │ + │ ▄▘ ▚▖ │ + │ ▗▞ ▝▄ │ + │ ▄▘ ▚▖ │ + │ ▗▀ ▝▚ │ + │ ▗▞▘ ▀▄ │ + │ ▄▀▘ ▀▚▖ │ +0 │ ▄▄▄▄▀▀ ▝▀▚▄▄▄▖│ + └──────────────────────────────────────────────────────────────────────┘ + 0 70 +\end{lstlisting} + + + + +\begin{lstlisting}[] +2×4 DataFrames.DataFrame +│ Row │ a │ b │ c │ d │ +│ │ Int64 │ Float64 │ Int64 │ String │ +├─────┼───────┼─────────┼───────┼────────┤ +│ 1 │ 2 │ 2.0 │ 2 │ John │ +│ 2 │ 2 │ 2.0 │ 2 │ Sally │ +\end{lstlisting} + + + + +\begin{lstlisting}[] +function map_filter_iterators(xs, init) + ret = iterate(xs) + ret === nothing && return + acc = init + @goto filter + local state, x + while true + while true # input + ret = iterate(xs, state) # + ret === nothing && return acc # + @label filter # + x, state = ret # + iseven(x) && break # filter : + end # : + y = 2x # imap : : + acc += y # + : : : + end # : : : : + # + <-- imap <-------- filter <-- input + return acc +end +\end{lstlisting} + + + +\chapter{Hidden (toplevel)} + + + +\label{6313475699066143527}{} + + +\section{Section} + + + +\label{17839007067547789498}{} + + +\chapter{Example stdout} + + + +\label{5127638645760162431}{} + + +Checking that \texttt{@example} output is contained in a specific HTML class. + + + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-warning!50!white,colframe=admonition-warning,title=\textbf{Warning}] +This file should contain exactly one \texttt{@example} for the test to work. + +\end{tcolorbox} + + + +\begin{lstlisting}[] +println("hello") +\end{lstlisting} + + +\begin{lstlisting}[] +hello +\end{lstlisting} + + + +\section{\texttt{@example} outputs to file} + + + +\label{16032070393363005082}{} + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("png", :big)] +\end{lstlisting} + +\begin{figure}[H] +\centering +\includegraphics[max width=\linewidth]{bygqpeb} +\end{figure} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("png", :tiny)] +\end{lstlisting} + +\begin{figure}[H] +\centering +\includegraphics[max width=\linewidth]{cpvoych} +\end{figure} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("webp", :big)] +\end{lstlisting} + + +\begin{lstlisting}[] +MIMEBytes{MIME{Symbol("image/webp")}}(UInt8[0x52, 0x49, 0x46, 0x46, 0x98, 0x51, 0x00, 0x00, 0x57, 0x45 … 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], "d3d30ae9") +\end{lstlisting} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("webp", :tiny)] +\end{lstlisting} + + +\begin{lstlisting}[] +MIMEBytes{MIME{Symbol("image/webp")}}(UInt8[0x52, 0x49, 0x46, 0x46, 0xc8, 0x01, 0x00, 0x00, 0x57, 0x45 … 0xe8, 0xe4, 0x31, 0x47, 0x66, 0xd0, 0x11, 0xd4, 0x00, 0x00], "d0a50f8a") +\end{lstlisting} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("gif", :big)] +\end{lstlisting} + + +\begin{lstlisting}[] +MIMEBytes{MIME{Symbol("image/gif")}}(UInt8[0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x20, 0x03, 0xb5, 0x02 … 0xcd, 0xd7, 0x7d, 0xed, 0xd7, 0x23, 0x11, 0x10, 0x00, 0x3b], "02bbc9de") +\end{lstlisting} + + + + +\begin{lstlisting}[] +Main.AT_EXAMPLE_FILES[("jpeg", :tiny)] +\end{lstlisting} + +\begin{figure}[H] +\centering +\includegraphics[max width=\linewidth]{rzsrxiu} +\end{figure} + + + +\subsection{SVG output} + + + +\label{7074750330941949804}{} + + + +\begin{lstlisting}[] +Main.SVG_BIG +\end{lstlisting} + + +\begin{lstlisting}[] +MIMEBytes{MIME{Symbol("image/svg+xml")}}(UInt8[0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73 … 0x0d, 0x0a, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x0d, 0x0a], "e162f65e") +\end{lstlisting} + + + +\subsection{\texttt{text/html} fallbacks} + + + +\label{8096659708007340917}{} + + +SVG with just \texttt{text/html} output (in practice, \texttt{DataFrame}s and such would fall into this category): + + + + +\begin{lstlisting}[] +Main.SVG_HTML +\end{lstlisting} + + +\begin{lstlisting}[] +MIMEBytes{MIME{Symbol("text/html")}}(UInt8[0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73 … 0x0d, 0x0a, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x0d, 0x0a], "e162f65e") +\end{lstlisting} + + + +SVG with both \texttt{text/html} and \texttt{image/svg+xml} MIME, in which case we expect to pick the image one (because text is too big) and write it to a file. + + + + +\begin{lstlisting}[] +Main.SVG_MULTI +\end{lstlisting} + + +\begin{lstlisting}[] +MultiMIMESVG(UInt8[0x3c, 0x3f, 0x78, 0x6d, 0x6c, 0x20, 0x76, 0x65, 0x72, 0x73 … 0x0d, 0x0a, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x0d, 0x0a], "e162f65e") +\end{lstlisting} + + + +\chapter{\texttt{@repl}, \texttt{@example}, and \texttt{@eval} have correct \texttt{LineNumberNode}s inserted} + + + +\label{14177920617661754068}{} + + +Add new things at the bottom!! + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> println("@__FILE__ should be REPL[1]: ", @__FILE__) +@__FILE__ should be REPL[1]: REPL[1] + +julia> println("@__FILE__ should be REPL[2]: ", @__FILE__) +@__FILE__ should be REPL[2]: REPL[2] + +julia> println("@__LINE__ should be 1: ", @__LINE__) +@__LINE__ should be 1: 1 + +julia> @warn "@__FILE__ should be REPL[4] and @__LINE__ 1" +┌ Warning: @__FILE__ should be REPL[4] and @__LINE__ 1 +└ @ Main REPL[4]:1 + +julia> begin + println("@__FILE__ should be REPL[5]: ", @__FILE__) + println("@__FILE__ should be REPL[5]: ", @__FILE__) + println("@__LINE__ should be 4: ", @__LINE__) + @warn "@__FILE__ should be REPL[5] and @__LINE__ 5" + end +@__FILE__ should be REPL[5]: REPL[5] +@__FILE__ should be REPL[5]: REPL[5] +@__LINE__ should be 4: 4 +┌ Warning: @__FILE__ should be REPL[5] and @__LINE__ 5 +└ @ Main REPL[5]:5 +\end{lstlisting} + + + + +\begin{lstlisting}[] +println("@__FILE__ should be linenumbers.md: ", @__FILE__) +println("@__LINE__ should be 20: ", @__LINE__) +@warn "@__FILE__ should be linenumbers.md and @__LINE__ 21" +begin + println("@__FILE__ should be linenumbers.md: ", @__FILE__) + println("@__LINE__ should be 24: ", @__LINE__) + @warn "@__FILE__ should be linenumbers.md and @__LINE__ 25" +end +\end{lstlisting} + + +\begin{lstlisting}[] +@__FILE__ should be linenumbers.md: linenumbers.md +@__LINE__ should be 20: 20 +┌ Warning: @__FILE__ should be linenumbers.md and @__LINE__ 21 +└ @ Main linenumbers.md:21 +@__FILE__ should be linenumbers.md: linenumbers.md +@__LINE__ should be 24: 24 +┌ Warning: @__FILE__ should be linenumbers.md and @__LINE__ 25 +└ @ Main linenumbers.md:25 +\end{lstlisting} + + + + +\begin{lstlisting}[] +$(@__FILE__):$(@__LINE__) should be linenumbers.md:32: linenumbers.md:32 +$(@__FILE__):$(@__LINE__) should be linenumbers.md:33: linenumbers.md:33 +\end{lstlisting} + + + +\part{Hidden Pages} + + +\chapter{Hidden pages} + + + +\label{17674588485938683954}{} + + +Pages can be hidden with the \hyperlinkref{12333874902364664348}{\texttt{hide}} function. + + + +\section{List of hidden pages} + + + +\label{11617838668139858457}{} + + +\begin{itemize} +\item \href{hidden{\textbackslash}x.md}{Hidden page 1} + + +\item \href{hidden{\textbackslash}y.md}{Hidden page 2} + + +\item \href{hidden{\textbackslash}z.md}{Hidden page 3} + +\end{itemize} + + +\section{Docs for \texttt{hide}} + + + +\label{1400566111489432392}{} + +\hypertarget{12333874902364664348}{\texttt{Documenter.hide}} -- {Function.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +hide(page) + +\end{lstlisting} + +Allows a page to be hidden in the navigation menu. It will only show up if it happens to be the current page. The hidden page will still be present in the linear page list that can be accessed via the previous and next page links. The title of the hidden page can be overridden using the \texttt{=>} operator as usual. + +\textbf{Usage} + + +\begin{lstlisting}[] +makedocs( + ..., + pages = [ + ..., + hide("page1.md"), + hide("Title" => "page2.md") + ] +) +\end{lstlisting} + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/src/makedocs.jl#L282}{\texttt{source}} + + + +\begin{lstlisting}[] +hide(root, children) + +\end{lstlisting} + +Allows a subsection of pages to be hidden from the navigation menu. \texttt{root} will be linked to in the navigation menu, with the title determined as usual. \texttt{children} should be a list of pages (note that it \textbf{can not} be hierarchical). + +\textbf{Usage} + + +\begin{lstlisting}[] +makedocs( + ..., + pages = [ + ..., + hide("Hidden section" => "hidden_index.md", [ + "hidden1.md", + "Hidden 2" => "hidden2.md" + ]), + hide("hidden_index.md", [...]) + ] +) +\end{lstlisting} + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/src/makedocs.jl#L306}{\texttt{source}} + + +\end{adjustwidth} + +\chapter{Page X} + + +\section{Hidden 1} + + + +\label{1027738413916218921}{} + + +\subsection{First heading} + + + +\label{15441515940141321147}{} + + +\subsection{Second heading} + + + +\label{4961812884660315121}{} + + +\chapter{Hidden 2} + + + +\label{14698839771105993437}{} + + +\chapter{Hidden 3} + + + +\label{4462048914964654574}{} + + +\part{Library} + + + + +\chapter{Function Index} + + + +\label{9596384704859398879}{} + + + +\chapter{Functions} + + + +\label{13536066633202303496}{} + + +\hyperlinkref{14245046751182637566}{\texttt{ccall}}, \hyperlinkref{16791148087951682840}{\texttt{func(x)}}, \hyperlinkref{1885743281855441478}{\texttt{T}}, \hyperlinkref{9105224580875818383}{\texttt{for}}, and \hyperlinkref{15133348314455964692}{\texttt{while}}. + + +\hypertarget{16791148087951682840}{\texttt{Main.Mod.func}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +func(x) +\end{lstlisting} + +\hyperlinkref{1885743281855441478}{\texttt{T}} + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L28-L32}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{1885743281855441478}{\texttt{Main.Mod.T}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +T +\end{lstlisting} + +\hyperlinkref{16791148087951682840}{\texttt{func(x)}} + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L35-L39}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{14245046751182637566}{\texttt{ccall}} -- {Keyword.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +ccall((function_name, library), returntype, (argtype1, ...), argvalue1, ...) +ccall(function_name, returntype, (argtype1, ...), argvalue1, ...) +ccall(function_pointer, returntype, (argtype1, ...), argvalue1, ...) +\end{lstlisting} + +Call a function in a C-exported shared library, specified by the tuple \texttt{(function\_name, library)}, where each component is either a string or symbol. Instead of specifying a library, one can also use a \texttt{function\_name} symbol or string, which is resolved in the current process. Alternatively, \texttt{ccall} may also be used to call a function pointer \texttt{function\_pointer}, such as one returned by \texttt{dlsym}. + +Note that the argument type tuple must be a literal tuple, and not a tuple-valued variable or expression. + +Each \texttt{argvalue} to the \texttt{ccall} will be converted to the corresponding \texttt{argtype}, by automatic insertion of calls to \texttt{unsafe\_convert(argtype, cconvert(argtype, argvalue))}. (See also the documentation for \href{@ref Base.unsafe\_convert}{\texttt{unsafe\_convert}} and \href{@ref Base.cconvert}{\texttt{cconvert}} for further details.) In most cases, this simply results in a call to \texttt{convert(argtype, argvalue)}. + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/docs/basedocs.jl#L1219-L1237}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{9105224580875818383}{\texttt{for}} -- {Keyword.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +for +\end{lstlisting} + +\texttt{for} loops repeatedly evaluate a block of statements while iterating over a sequence of values. + +The iteration variable is always a new variable, even if a variable of the same name exists in the enclosing scope. Use \href{@ref}{\texttt{outer}} to reuse an existing local variable for iteration. + +\textbf{Examples} + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> for i in [1, 4, 0] + println(i) + end +1 +4 +0 +\end{lstlisting} + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/docs/basedocs.jl#L906-L925}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{15133348314455964692}{\texttt{while}} -- {Keyword.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +while +\end{lstlisting} + +\texttt{while} loops repeatedly evaluate a conditional expression, and continue evaluating the body of the while loop as long as the expression remains true. If the condition expression is false when the while loop is first reached, the body is never evaluated. + +\textbf{Examples} + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> i = 1 +1 + +julia> while i < 5 + println(i) + global i += 1 + end +1 +2 +3 +4 +\end{lstlisting} + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/docs/basedocs.jl#L928-L949}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{8029752041511656628}{\texttt{Base.@time}} -- {Macro.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +@time expr +@time "description" expr +\end{lstlisting} + +A macro to execute an expression, printing the time it took to execute, the number of allocations, and the total number of bytes its execution caused to be allocated, before returning the value of the expression. Any time spent garbage collecting (gc), compiling new code, or recompiling invalidated code is shown as a percentage. + +Optionally provide a description string to print before the time report. + +In some cases the system will look inside the \texttt{@time} expression and compile some of the called code before execution of the top-level expression begins. When that happens, some compilation time will not be counted. To include this time you can run \texttt{@time @eval ...}. + +See also \href{@ref}{\texttt{@showtime}}, \href{@ref}{\texttt{@timev}}, \href{@ref}{\texttt{@timed}}, \href{@ref}{\texttt{@elapsed}}, \href{@ref}{\texttt{@allocated}}, and \href{@ref}{\texttt{@allocations}}. + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-note!50!white,colframe=admonition-note,title=\textbf{Note}] +For more serious benchmarking, consider the \texttt{@btime} macro from the BenchmarkTools.jl package which among other things evaluates the function multiple times in order to reduce noise. + +\end{tcolorbox} +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-compat!50!white,colframe=admonition-compat,title=\textbf{Julia 1.8}] +The option to add a description was introduced in Julia 1.8. + +Recompilation time being shown separately from compilation time was introduced in Julia 1.8 + +\end{tcolorbox} + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> x = rand(10,10); + +julia> @time x * x; + 0.606588 seconds (2.19 M allocations: 116.555 MiB, 3.75% gc time, 99.94% compilation time) + +julia> @time x * x; + 0.000009 seconds (1 allocation: 896 bytes) + +julia> @time begin + sleep(0.3) + 1+1 + end + 0.301395 seconds (8 allocations: 336 bytes) +2 + +julia> @time "A one second sleep" sleep(1) +A one second sleep: 1.005750 seconds (5 allocations: 144 bytes) + +julia> for loop in 1:3 + @time loop sleep(1) + end +1: 1.006760 seconds (5 allocations: 144 bytes) +2: 1.001263 seconds (5 allocations: 144 bytes) +3: 1.003676 seconds (5 allocations: 144 bytes) +\end{lstlisting} + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/timing.jl#L206-L260}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{4796942656392369899}{\texttt{Base.@assert}} -- {Macro.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +@assert cond [text] +\end{lstlisting} + +Throw an \href{@ref}{\texttt{AssertionError}} if \texttt{cond} is \texttt{false}. Preferred syntax for writing assertions. Message \texttt{text} is optionally displayed upon assertion failure. + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-warning!50!white,colframe=admonition-warning,title=\textbf{Warning}] +An assert might be disabled at various optimization levels. Assert should therefore only be used as a debugging tool and not used for authentication verification (e.g., verifying passwords), nor should side effects needed for the function to work correctly be used inside of asserts. + +\end{tcolorbox} +\textbf{Examples} + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> @assert iseven(3) "3 is an odd number!" +ERROR: AssertionError: 3 is an odd number! + +julia> @assert isodd(3) "What even are numbers?" +\end{lstlisting} + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/error.jl#L197-L217}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{6220747639501087335}{\texttt{Main.Mod.func}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +func(x) +\end{lstlisting} + +\hyperlinkref{1885743281855441478}{\texttt{T}} + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L28-L32}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{1083418990168050645}{\texttt{Main.Mod.T}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +T +\end{lstlisting} + +\hyperlinkref{16791148087951682840}{\texttt{func(x)}} + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L35-L39}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{2479356769239817337}{\texttt{ccall}} -- {Keyword.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +ccall((function_name, library), returntype, (argtype1, ...), argvalue1, ...) +ccall(function_name, returntype, (argtype1, ...), argvalue1, ...) +ccall(function_pointer, returntype, (argtype1, ...), argvalue1, ...) +\end{lstlisting} + +Call a function in a C-exported shared library, specified by the tuple \texttt{(function\_name, library)}, where each component is either a string or symbol. Instead of specifying a library, one can also use a \texttt{function\_name} symbol or string, which is resolved in the current process. Alternatively, \texttt{ccall} may also be used to call a function pointer \texttt{function\_pointer}, such as one returned by \texttt{dlsym}. + +Note that the argument type tuple must be a literal tuple, and not a tuple-valued variable or expression. + +Each \texttt{argvalue} to the \texttt{ccall} will be converted to the corresponding \texttt{argtype}, by automatic insertion of calls to \texttt{unsafe\_convert(argtype, cconvert(argtype, argvalue))}. (See also the documentation for \href{@ref Base.unsafe\_convert}{\texttt{unsafe\_convert}} and \href{@ref Base.cconvert}{\texttt{cconvert}} for further details.) In most cases, this simply results in a call to \texttt{convert(argtype, argvalue)}. + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/docs/basedocs.jl#L1219-L1237}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{12962926564300866742}{\texttt{for}} -- {Keyword.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +for +\end{lstlisting} + +\texttt{for} loops repeatedly evaluate a block of statements while iterating over a sequence of values. + +The iteration variable is always a new variable, even if a variable of the same name exists in the enclosing scope. Use \href{@ref}{\texttt{outer}} to reuse an existing local variable for iteration. + +\textbf{Examples} + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> for i in [1, 4, 0] + println(i) + end +1 +4 +0 +\end{lstlisting} + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/docs/basedocs.jl#L906-L925}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{4254378774946180703}{\texttt{while}} -- {Keyword.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +while +\end{lstlisting} + +\texttt{while} loops repeatedly evaluate a conditional expression, and continue evaluating the body of the while loop as long as the expression remains true. If the condition expression is false when the while loop is first reached, the body is never evaluated. + +\textbf{Examples} + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> i = 1 +1 + +julia> while i < 5 + println(i) + global i += 1 + end +1 +2 +3 +4 +\end{lstlisting} + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/docs/basedocs.jl#L928-L949}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{16039636267419312856}{\texttt{Base.@time}} -- {Macro.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +@time expr +@time "description" expr +\end{lstlisting} + +A macro to execute an expression, printing the time it took to execute, the number of allocations, and the total number of bytes its execution caused to be allocated, before returning the value of the expression. Any time spent garbage collecting (gc), compiling new code, or recompiling invalidated code is shown as a percentage. + +Optionally provide a description string to print before the time report. + +In some cases the system will look inside the \texttt{@time} expression and compile some of the called code before execution of the top-level expression begins. When that happens, some compilation time will not be counted. To include this time you can run \texttt{@time @eval ...}. + +See also \href{@ref}{\texttt{@showtime}}, \href{@ref}{\texttt{@timev}}, \href{@ref}{\texttt{@timed}}, \href{@ref}{\texttt{@elapsed}}, \href{@ref}{\texttt{@allocated}}, and \href{@ref}{\texttt{@allocations}}. + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-note!50!white,colframe=admonition-note,title=\textbf{Note}] +For more serious benchmarking, consider the \texttt{@btime} macro from the BenchmarkTools.jl package which among other things evaluates the function multiple times in order to reduce noise. + +\end{tcolorbox} +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-compat!50!white,colframe=admonition-compat,title=\textbf{Julia 1.8}] +The option to add a description was introduced in Julia 1.8. + +Recompilation time being shown separately from compilation time was introduced in Julia 1.8 + +\end{tcolorbox} + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> x = rand(10,10); + +julia> @time x * x; + 0.606588 seconds (2.19 M allocations: 116.555 MiB, 3.75% gc time, 99.94% compilation time) + +julia> @time x * x; + 0.000009 seconds (1 allocation: 896 bytes) + +julia> @time begin + sleep(0.3) + 1+1 + end + 0.301395 seconds (8 allocations: 336 bytes) +2 + +julia> @time "A one second sleep" sleep(1) +A one second sleep: 1.005750 seconds (5 allocations: 144 bytes) + +julia> for loop in 1:3 + @time loop sleep(1) + end +1: 1.006760 seconds (5 allocations: 144 bytes) +2: 1.001263 seconds (5 allocations: 144 bytes) +3: 1.003676 seconds (5 allocations: 144 bytes) +\end{lstlisting} + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/timing.jl#L206-L260}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{1046448939276307341}{\texttt{Base.@assert}} -- {Macro.} + +\begin{adjustwidth}{2em}{0pt} + + +\begin{lstlisting}[] +@assert cond [text] +\end{lstlisting} + +Throw an \href{@ref}{\texttt{AssertionError}} if \texttt{cond} is \texttt{false}. Preferred syntax for writing assertions. Message \texttt{text} is optionally displayed upon assertion failure. + +\begin{tcolorbox}[toptitle=-1mm,bottomtitle=1mm,colback=admonition-warning!50!white,colframe=admonition-warning,title=\textbf{Warning}] +An assert might be disabled at various optimization levels. Assert should therefore only be used as a debugging tool and not used for authentication verification (e.g., verifying passwords), nor should side effects needed for the function to work correctly be used inside of asserts. + +\end{tcolorbox} +\textbf{Examples} + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> @assert iseven(3) "3 is an odd number!" +ERROR: AssertionError: 3 is an odd number! + +julia> @assert isodd(3) "What even are numbers?" +\end{lstlisting} + + + +\href{https://github.com/JuliaLang/julia/blob/8e630552924eac54c809aa7bc30871c7df1582d3/base/error.jl#L197-L217}{\texttt{source}} + + +\end{adjustwidth} + +\chapter{Foo} + + + +\label{374450266380008264}{} + + + +\begin{lstlisting}[] +@show pwd() +a = 1 +\end{lstlisting} + + +\begin{lstlisting}[] +1 +\end{lstlisting} + + + +... + + + + +\begin{lstlisting}[] +@isdefined a +\end{lstlisting} + + +\begin{lstlisting}[] +false +\end{lstlisting} + + + + +\begin{lstlisting}[] +f(x) = 2x +g(x) = 3x +\end{lstlisting} + + + + +\begin{lstlisting}[] +x, y = 1, 2 +println(x, y) +\end{lstlisting} + + +\begin{lstlisting}[] +12 +\end{lstlisting} + + + + +\begin{lstlisting}[] +struct T end +t = T() +\end{lstlisting} + + +\begin{lstlisting}[] +Main.T() +\end{lstlisting} + + + + +\begin{lstlisting}[] +a + b + c + d + e + f +\end{lstlisting} + + +\begin{lstlisting}[] +21 +\end{lstlisting} + + + +\section{Foo} + + + +\label{17415245328842318541}{} + + + +\begin{lstlisting}[] +@isdefined T +@show typeof(T) +\end{lstlisting} + + +\begin{lstlisting}[] +Main.T +\end{lstlisting} + + + + +\begin{lstlisting}[] +x + y +\end{lstlisting} + + +\begin{lstlisting}[] +3 +\end{lstlisting} + + + + +\begin{lstlisting}[] +f(2), g(2) +\end{lstlisting} + + +\begin{lstlisting}[] +(4, 6) +\end{lstlisting} + + + +\subsection{Foo} + + + +\label{17607918834103512029}{} + + + +\begin{lstlisting}[] +x - y +\end{lstlisting} + + +\begin{lstlisting}[] +-1 +\end{lstlisting} + + + + +\begin{lstlisting}[] +f(1), g(1) +\end{lstlisting} + + +\begin{lstlisting}[] +(2, 3) +\end{lstlisting} + + + + +\begin{lstlisting}[] +using InteractiveUtils +@which T() +\end{lstlisting} + + +\begin{lstlisting}[] +Main.T() + @ Main functions.md:61 +\end{lstlisting} + + + + +\begin{lstlisting}[] +A = 1 +\end{lstlisting} + + +\begin{lstlisting}[] +1 +\end{lstlisting} + + + + +\begin{lstlisting}[] +for i in 1:3 +\end{lstlisting} + + + + +\begin{lstlisting}[] +A = 2 +\end{lstlisting} + + +\begin{lstlisting}[] +2 +\end{lstlisting} + + + + +\begin{lstlisting}[] + println(A + i) +\end{lstlisting} + + + + +\begin{lstlisting}[] +end +\end{lstlisting} + + +\begin{lstlisting}[] +2 +3 +4 +\end{lstlisting} + + + + +\begin{lstlisting}[] +A + 1 +\end{lstlisting} + + +\begin{lstlisting}[] +2 +\end{lstlisting} + + + +\subsubsection{Foo} + + + +\label{12217055824246208395}{} + + + +\begin{lstlisting}[] +a = 1 +b = ans +@assert a === b +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] + + + +julia> nothing + + +julia> rand() +0.07336635446929285 + +julia> a = 1 +1 + +julia> println(a) +1 + +julia> b = 2 +2 + +julia> a + b +3 + +julia> struct T + x :: Int + y :: Vector + end + + +julia> x = T(1, [1]) +Main.T(1, [1]) + +julia> x.y +1-element Vector{Int64}: + 1 + +julia> x.x +1 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> d = 1 +1 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> println(d) +1 +\end{lstlisting} + + + +Test setup function + + + + + + +\begin{lstlisting}[] +@assert w === 5 +\end{lstlisting} + + + + +\begin{lstlisting}[language=julia, style=jlcodestyle] +julia> @assert w === 5 + +\end{lstlisting} + + + +\chapter{Autodocs} + + + +\label{13360040930512514124}{} + + + + +\section{AutoDocs Module} + + + +\label{14974050576722623319}{} + +\hypertarget{11302554442225637105}{\texttt{AutoDocs}} -- {Module.} + +\begin{adjustwidth}{2em}{0pt} + +\texttt{AutoDocs} module. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L76}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{15441025252371609530}{\texttt{Main.AutoDocs.K}} -- {Constant.} + +\begin{adjustwidth}{2em}{0pt} + +Constant \texttt{K}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L89}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{12338358314596597808}{\texttt{Main.AutoDocs.T}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +Type \texttt{T}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L92}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{14053004641171891989}{\texttt{Main.AutoDocs.f}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +Function \texttt{f}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L86}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{7256264955516068825}{\texttt{Main.AutoDocs.@m}} -- {Macro.} + +\begin{adjustwidth}{2em}{0pt} + +Macro \texttt{@m}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L95}{\texttt{source}} + + +\end{adjustwidth} + +\section{Functions, Modules, and Macros} + + + +\label{3338605747262022226}{} + +\hypertarget{8047994080897963665}{\texttt{Main.AutoDocs.A.f}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +Function \texttt{A.f}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L100}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{14171230956575570013}{\texttt{Main.AutoDocs.A}} -- {Module.} + +\begin{adjustwidth}{2em}{0pt} + +Module \texttt{A}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L98}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{1819148365468180190}{\texttt{Main.AutoDocs.A.@m}} -- {Macro.} + +\begin{adjustwidth}{2em}{0pt} + +Macro \texttt{B.@m}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L109}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{1354818346142581698}{\texttt{Main.AutoDocs.B.f}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +Function \texttt{B.f}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L115}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{11339106303250130801}{\texttt{Main.AutoDocs.B}} -- {Module.} + +\begin{adjustwidth}{2em}{0pt} + +Module \texttt{B}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L113}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{10335956018691630658}{\texttt{Main.AutoDocs.B.@m}} -- {Macro.} + +\begin{adjustwidth}{2em}{0pt} + +Macro \texttt{B.@m}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L124}{\texttt{source}} + + +\end{adjustwidth} + +\section{Constants and Types} + + + +\label{18297180183977969663}{} + +\hypertarget{17379154232303623334}{\texttt{Main.AutoDocs.A.K}} -- {Constant.} + +\begin{adjustwidth}{2em}{0pt} + +Constant \texttt{A.K}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L103}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{1070558433006397272}{\texttt{Main.AutoDocs.A.T}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +Type \texttt{B.T}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L106}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{3291598769099158785}{\texttt{Main.AutoDocs.B.K}} -- {Constant.} + +\begin{adjustwidth}{2em}{0pt} + +Constant \texttt{B.K}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L118}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{16943270388934614325}{\texttt{Main.AutoDocs.B.T}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +Type \texttt{B.T}. + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L121}{\texttt{source}} + + +\end{adjustwidth} + +\section{Autodocs by Page} + + + +\label{17012311511907355869}{} + +\hypertarget{16694402067483188119}{\texttt{Main.AutoDocs.Pages.f}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +\texttt{f} from page \texttt{a.jl}. + +Links: + +\begin{itemize} +\item \hyperlinkref{14245046751182637566}{\texttt{ccall}} + + +\item \hyperlinkref{15133348314455964692}{\texttt{while}} + + +\item \hyperlinkref{8029752041511656628}{\texttt{@time(x)}} + + +\item \hyperlinkref{17100384742613090383}{\texttt{T(x)}} + + +\item \hyperlinkref{14050452459487205641}{\texttt{T(x, y)}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f(::Integer)}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f(::Any)}} + + +\item \hyperlinkref{9950366858879376632}{\texttt{f(::Any, ::Any)}} + + +\item \hyperlinkref{18287295168891819021}{\texttt{f(x, y, z)}} + +\end{itemize} +\footnotetext[1]{Footnote contents. \footnotemark[1] + +} + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/a.jl#L2-L21}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{9950366858879376632}{\texttt{Main.AutoDocs.Pages.f}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +\texttt{f} from page \texttt{b.jl}. + +Links: + +\begin{itemize} +\item \hyperlinkref{14245046751182637566}{\texttt{ccall}} + + +\item \hyperlinkref{15133348314455964692}{\texttt{while}} + + +\item \hyperlinkref{8029752041511656628}{\texttt{@time}} + + +\item \hyperlinkref{5246990970960098088}{\texttt{T}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f(::Any)}} + + +\item \hyperlinkref{9950366858879376632}{\texttt{f(::Any, ::Any)}} + + +\item \hyperlinkref{18287295168891819021}{\texttt{f(::Any, ::Any, ::Any)}} + +\end{itemize} + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/b.jl#L2-L16}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{18287295168891819021}{\texttt{Main.AutoDocs.Pages.f}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +\texttt{f} from page \texttt{c.jl}. + +Links: + +\begin{itemize} +\item \hyperlinkref{14245046751182637566}{\texttt{ccall}} + + +\item \hyperlinkref{15133348314455964692}{\texttt{while}} + + +\item \hyperlinkref{8029752041511656628}{\texttt{@time}} + + +\item \hyperlinkref{5246990970960098088}{\texttt{T}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f(::Any)}} + + +\item \hyperlinkref{9950366858879376632}{\texttt{f(::Any, ::Any)}} + + +\item \hyperlinkref{18287295168891819021}{\texttt{f(::Any, ::Any, ::Any)}} + +\end{itemize} + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/c.jl#L2-L16}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{5246990970960098088}{\texttt{Main.AutoDocs.Pages.T}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +\texttt{T} from page \texttt{d.jl}. + +Links: + +\begin{itemize} +\item \hyperlinkref{14245046751182637566}{\texttt{ccall}} + + +\item \hyperlinkref{15133348314455964692}{\texttt{while}} + + +\item \hyperlinkref{8029752041511656628}{\texttt{@time}} + + +\item \hyperlinkref{5246990970960098088}{\texttt{T}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f(x)}} + + +\item \hyperlinkref{9950366858879376632}{\texttt{f(x, y)}} + + +\item \hyperlinkref{18287295168891819021}{\texttt{f(::Any, ::Any, ::Any)}} + +\end{itemize} + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/d.jl#L2-L16}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{14050452459487205641}{\texttt{Main.AutoDocs.Pages.T}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +\texttt{T} from page \texttt{d.jl}. + +Links: + +\begin{itemize} +\item \hyperlinkref{14245046751182637566}{\texttt{ccall}} + + +\item \hyperlinkref{15133348314455964692}{\texttt{while}} + + +\item \hyperlinkref{8029752041511656628}{\texttt{@time}} + + +\item \hyperlinkref{5246990970960098088}{\texttt{T()}} + + +\item \hyperlinkref{17100384742613090383}{\texttt{T(x)}} + + +\item \hyperlinkref{14050452459487205641}{\texttt{T(x, y)}} + + +\item \hyperlinkref{5246990970960098088}{\texttt{T(x, y, z)}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f(x)}} + + +\item \hyperlinkref{9950366858879376632}{\texttt{f(x, y)}} + + +\item \hyperlinkref{18287295168891819021}{\texttt{f(::Any, ::Any, ::Any)}} + +\end{itemize} + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/d.jl#L39-L56}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{17100384742613090383}{\texttt{Main.AutoDocs.Pages.T}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +\texttt{T} from page \texttt{d.jl}. + +Links: + +\begin{itemize} +\item \hyperlinkref{14245046751182637566}{\texttt{ccall}} + + +\item \hyperlinkref{15133348314455964692}{\texttt{while}} + + +\item \hyperlinkref{8029752041511656628}{\texttt{@time}} + + +\item \hyperlinkref{17100384742613090383}{\texttt{T(x)}} + + +\item \hyperlinkref{14050452459487205641}{\texttt{T(x, y)}} + + +\item \hyperlinkref{5246990970960098088}{\texttt{T(x, y, z)}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f}} + + +\item \hyperlinkref{16694402067483188119}{\texttt{f(x)}} + + +\item \hyperlinkref{9950366858879376632}{\texttt{f(x, y)}} + + +\item \hyperlinkref{18287295168891819021}{\texttt{f(::Any, ::Any, ::Any)}} + +\end{itemize} + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/d.jl#L20-L36}{\texttt{source}} + + +\end{adjustwidth} + +A footnote reference \footnotemark[1]. + + + +\chapter{Named docstring \texttt{@ref}s} + + + +\label{8597286521325026101}{} + + +\begin{itemize} +\item a normal docstring \texttt{@ref} link: \hyperlinkref{16694402067483188119}{\texttt{AutoDocs.Pages.f}}; + + +\item a named docstring \texttt{@ref} link: \hyperlinkref{16694402067483188119}{\texttt{f}}; + + +\item and a link with custom text: \hyperlinkref{8029752041511656628}{\texttt{@time 1 + 2}}; + + +\item some invalid syntax: \hyperlinkref{9105224580875818383}{\texttt{for i = 1:10; ...}}. + +\end{itemize} + + +\chapter{\texttt{@autodocs} tests} + + + +\label{11910521728371484862}{} + + + + +\section{Public} + + + +\label{1292728206705221544}{} + + +Should include docs for + + + +\begin{itemize} +\item \hyperlinkref{2996493907818938116}{\texttt{AutoDocs.Pages.E.f\_1}} + + +\item \hyperlinkref{6076055157300971596}{\texttt{AutoDocs.Pages.E.f\_2}} + + +\item \hyperlinkref{3503352570886681808}{\texttt{AutoDocs.Pages.E.f\_3}} + +\end{itemize} + + +in that order. + + +\hypertarget{2996493907818938116}{\texttt{Main.AutoDocs.Pages.E.f\_1}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +f\_1 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L5}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{6076055157300971596}{\texttt{Main.AutoDocs.Pages.E.f\_2}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +f\_2 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L8}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{3503352570886681808}{\texttt{Main.AutoDocs.Pages.E.f\_3}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +f\_3 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L11}{\texttt{source}} + + +\end{adjustwidth} + +\section{Private} + + + +\label{11979819337618326564}{} + + +Should include docs for + + + +\begin{itemize} +\item \hyperlinkref{18335012651218585665}{\texttt{AutoDocs.Pages.E.g\_1}} + + +\item \hyperlinkref{12590794246865857269}{\texttt{AutoDocs.Pages.E.g\_2}} + + +\item \hyperlinkref{3152146771453799051}{\texttt{AutoDocs.Pages.E.g\_3}} + +\end{itemize} + + +in that order. + + +\hypertarget{18335012651218585665}{\texttt{Main.AutoDocs.Pages.E.g\_1}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +g\_1 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L15}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{12590794246865857269}{\texttt{Main.AutoDocs.Pages.E.g\_2}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +g\_2 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L18}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{3152146771453799051}{\texttt{Main.AutoDocs.Pages.E.g\_3}} -- {Method.} + +\begin{adjustwidth}{2em}{0pt} + +g\_3 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L21}{\texttt{source}} + + +\end{adjustwidth} + +\section{Ordering of Public and Private} + + + +\label{3913788247092433451}{} + + +Should include docs for + + + +\begin{itemize} +\item \hyperlinkref{14143981418775697458}{\texttt{AutoDocs.Pages.E.T\_1}} + + +\item \hyperlinkref{4871421601485935264}{\texttt{AutoDocs.Pages.E.T\_2}} + +\end{itemize} + + +in that order. + + +\hypertarget{14143981418775697458}{\texttt{Main.AutoDocs.Pages.E.T\_1}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +T\_1 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L26}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{4871421601485935264}{\texttt{Main.AutoDocs.Pages.E.T\_2}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +T\_2 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L29}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{3237252152661731042}{\texttt{Main.AutoDocs.Pages.E.T\_3}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +T\_3 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/pages/e.jl#L32}{\texttt{source}} + + +\end{adjustwidth} + +\section{Filtering} + + + +\label{6391929926972855801}{} + + +Should include docs for + + + +\begin{itemize} +\item \hyperlinkref{6785702989282266947}{\texttt{AutoDocs.Filter.Major}} + + +\item \hyperlinkref{11704274081303557511}{\texttt{AutoDocs.Filter.Minor1}} + + +\item \hyperlinkref{4245242374026494985}{\texttt{AutoDocs.Filter.Minor2}} + +\end{itemize} + + +in that order. + + +\hypertarget{6785702989282266947}{\texttt{Main.AutoDocs.Filter.Major}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +abstract super type + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L129}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{11704274081303557511}{\texttt{Main.AutoDocs.Filter.Minor1}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +abstract sub type 1 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L132}{\texttt{source}} + + +\end{adjustwidth} +\hypertarget{4245242374026494985}{\texttt{Main.AutoDocs.Filter.Minor2}} -- {Type.} + +\begin{adjustwidth}{2em}{0pt} + +abstract sub type 2 + + + +\href{https://github.com/BambOoxX/Documenter.jl/blob/d157febde213549ed0d45c894f0651560da477d3/test/examples/make.jl#L135}{\texttt{source}} + + +\end{adjustwidth} + +\part{Expandorder} + + +\chapter{Expand order test 00} + + + +\label{6834115470379416000}{} + + +Filename suggest that this will be expanded before \texttt{01.md}. + + + + +\begin{lstlisting}[] +touch("00.txt") +\end{lstlisting} + + +\begin{lstlisting}[] +"00.txt" +\end{lstlisting} + + + +\chapter{Expand order test 01} + + + +\label{16473237151146092639}{} + + +This should be expanded after \texttt{00.md} and \texttt{AA.md}. + + + + +\begin{lstlisting}[] +isfile("00.txt") || error("00.txt missing") +\end{lstlisting} + + +\begin{lstlisting}[] +true +\end{lstlisting} + + + + +\begin{lstlisting}[] +isfile("AA.txt") || error("AA.txt missing") +\end{lstlisting} + + + +\chapter{Expand order test AA} + + + +\label{7343046884903966924}{} + + +Filename suggest that this will be expanded after \texttt{00.md} and \texttt{01.md}. Hence we use \texttt{expandfirst} to force this to be expanded first. + + + + +\begin{lstlisting}[] +touch("AA.txt") +\end{lstlisting} + + +\begin{lstlisting}[] +"AA.txt" +\end{lstlisting} + + + +\end{document} diff --git a/test/examples/tests.jl b/test/examples/tests.jl index b01201f4b5..0a0e95ea9c 100644 --- a/test/examples/tests.jl +++ b/test/examples/tests.jl @@ -337,6 +337,17 @@ end end end + @testset "PDF/LaTeX: simple listings (TeX only)" begin + doc = Main.examples_latex_listings_texonly_doc + @test isa(doc, Documenter.Documenter.Document) + let build_dir = joinpath(examples_root, "builds", "latex_listings_texonly") + @test joinpath(build_dir, "documenter.sty") |> isfile + texfile = joinpath(build_dir, latex_filename(doc)) + @test isfile(texfile) + @test compare_files(texfile, joinpath(@__DIR__, "references", "latex_simple_listings.tex")) + end + end + @testset "PDF/LaTeX: showcase (TeX only)" begin doc = Main.examples_latex_showcase_texonly_doc @test isa(doc, Documenter.Documenter.Document) diff --git a/test/examples/tests_latex.jl b/test/examples/tests_latex.jl index f088a73bb6..06c16fac99 100644 --- a/test/examples/tests_latex.jl +++ b/test/examples/tests_latex.jl @@ -4,7 +4,7 @@ using Test # make.jl, and we need to set it to the relevant LaTeX builds. ENV["DOCUMENTER_TEST_EXAMPLES"] = "latex latex_simple latex_cover_page latex_toc_style latex_simple_tectonic " * - "latex_showcase" + "latex_showcase latex_showcase_listings" # When the file is run separately we need to include make.jl which actually builds # the docs and defines a few modules that are referred to in the docs. The make.jl