123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518 |
- This is org, produced by makeinfo version 4.8 from org.texi.
- INFO-DIR-SECTION Emacs
- START-INFO-DIR-ENTRY
- * Org Mode: (org). Outline-based notes management and organizer
- END-INFO-DIR-ENTRY
- This manual is for Org-mode (version 4.77).
- Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.1 or any later version published by the Free Software
- Foundation; with no Invariant Sections, with the Front-Cover texts
- being "A GNU Manual," and with the Back-Cover Texts as in (a)
- below. A copy of the license is included in the section entitled
- "GNU Free Documentation License."
- (a) The FSF's Back-Cover Text is: "You have freedom to copy and
- modify this GNU Manual, like GNU software. Copies published by
- the Free Software Foundation raise funds for GNU development."
- File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
- Org Mode Manual
- ***************
- This manual is for Org-mode (version 4.77).
- Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.1 or any later version published by the Free Software
- Foundation; with no Invariant Sections, with the Front-Cover texts
- being "A GNU Manual," and with the Back-Cover Texts as in (a)
- below. A copy of the license is included in the section entitled
- "GNU Free Documentation License."
- (a) The FSF's Back-Cover Text is: "You have freedom to copy and
- modify this GNU Manual, like GNU software. Copies published by
- the Free Software Foundation raise funds for GNU development."
- * Menu:
- * Introduction:: Getting started
- * Document structure:: A tree works like your brain
- * Tables:: Pure magic for quick formatting
- * Hyperlinks:: Notes in context
- * TODO items:: Every tree branch can be a TODO item
- * Timestamps:: Assign date and time to items
- * Tags:: Tagging headlines and matching sets of tags
- * Agenda views:: Collecting information into views
- * Embedded LaTeX:: LaTeX fragments and formulas
- * Exporting:: Sharing and publishing of notes
- * Publishing:: Create a web site of linked Org-mode files
- * Miscellaneous:: All the rest which did not fit elsewhere
- * Extensions and Hacking:: It is possible to write add-on code
- * History and Acknowledgments:: How Org-mode came into being
- * Index:: The fast road to specific information
- * Key Index:: Key bindings and where they are described
- --- The Detailed Node Listing ---
- Introduction
- * Summary:: Brief summary of what Org-mode does
- * Installation:: How to install a downloaded version of Org-mode
- * Activation:: How to activate Org-mode for certain buffers.
- * Feedback:: Bug reports, ideas, patches etc.
- Document Structure
- * Outlines:: Org-mode is based on outline-mode
- * Headlines:: How to typeset org-tree headlines
- * Visibility cycling:: Show and hide, much simplified
- * Motion:: Jumping to other headlines
- * Structure editing:: Changing sequence and level of headlines
- * Archiving:: Move done task trees to a different place
- * Sparse trees:: Matches embedded in context
- * Plain lists:: Additional structure within an entry
- Archiving
- * ARCHIVE tag:: Marking a tree as inactive
- * Moving subtrees:: Moving a tree to an archive file
- Tables
- * Built-in table editor:: Simple tables
- * Narrow columns:: Stop wasting space in tables
- * Column groups:: Grouping to trigger vertical lines
- * orgtbl-mode:: The table editor as minor mode
- * The spreadsheet:: The table editor has spreadsheet capabilities.
- The spreadsheet
- * References:: How to refer to another field or range
- * Formula syntax for Calc:: Using Calc to compute stuff
- * Formula syntax for Lisp:: Writing formulas in Emacs Lisp
- * Field formulas:: Formulas valid for a single field
- * Column formulas:: Formulas valid for an entire column
- * Editing and debugging formulas:: Fixing formulas
- * Updating the table:: Recomputing all dependent fields
- * Advanced features:: Field names, parameters and automatic recalc
- Hyperlinks
- * Link format:: How links in Org-mode are formatted
- * Internal links:: Links to other places in the current file
- * External links:: URL-like links to the world
- * Handling links:: Creating, inserting and following
- * Link abbreviations:: Shortcuts for writing complex links
- * Search options:: Linking to a specific location
- * Custom searches:: When the default search is not enough
- * Remember:: Org-trees store quick notes
- Internal links
- * Radio targets:: Make targets trigger links in plain text.
- Remember
- * Setting up remember:: Some code for .emacs to get things going
- * Remember templates:: Define the outline of different note types
- * Storing notes:: Directly get the note to where it belongs
- TODO items
- * TODO basics:: Marking and displaying TODO entries
- * TODO extensions:: Workflow and assignments
- * Priorities:: Some things are more important than others
- * Breaking down tasks:: Splitting a task into manageable pieces
- * Checkboxes:: Tick-off lists
- Extended use of TODO keywords
- * Workflow states:: From TODO to DONE in steps
- * TODO types:: I do this, Fred the rest
- * Multiple sets in one file:: Mixing it all, and still finding your way
- * Per file keywords:: Different files, different requirements
- Timestamps
- * Time stamps:: Assigning a time to a tree entry
- * Creating timestamps:: Commands which insert timestamps
- * Deadlines and scheduling:: Planning your work
- * Progress logging:: Documenting when what work was done.
- Creating timestamps
- * The date/time prompt:: How org-mode helps you entering date and time
- * Custom time format:: Making dates look differently
- Deadlines and Scheduling
- * Inserting deadline/schedule::
- * Repeated tasks::
- Progress Logging
- * Closing items:: When was this entry marked DONE?
- * Tracking TODO state changes:: When did the status change?
- * Clocking work time:: When exactly did you work on this item?
- Tags
- * Tag inheritance:: Tags use the tree structure of the outline
- * Setting tags:: How to assign tags to a headline
- * Tag searches:: Searching for combinations of tags
- Agenda Views
- * Agenda files:: Files being searched for agenda information
- * Agenda dispatcher:: Keyboard access to agenda views
- * Built-in agenda views:: What is available out of the box?
- * Presentation and sorting:: How agenda items are prepared for display
- * Agenda commands:: Remote editing of org trees
- * Custom agenda views:: Defining special searches and views
- The built-in agenda views
- * Weekly/Daily agenda:: The calendar page with current tasks
- * Global TODO list:: All unfinished action items
- * Matching headline tags:: Structured information with fine-tuned search
- * Timeline:: Time-sorted view for single file
- * Stuck projects:: Find projects you need to review
- Presentation and sorting
- * Categories:: Not all tasks are equal
- * Time-of-day specifications:: How the agenda knows the time
- * Sorting of agenda items:: The order of things
- Custom agenda views
- * Storing searches:: Type once, use often
- * Block agenda:: All the stuff you need in a single buffer
- * Setting Options:: Changing the rules
- * Exporting Agenda Views:: Writing agendas to files.
- * Extracting Agenda Information for other programs::
- Embedded LaTeX
- * Math symbols:: TeX macros for symbols and Greek letters
- * Subscripts and Superscripts:: Simple syntax for raising/lowering text
- * LaTeX fragments:: Complex formulas made easy
- * Processing LaTeX fragments:: Previewing LaTeX processing
- * CDLaTeX mode:: Speed up entering of formulas
- Exporting
- * ASCII export:: Exporting to plain ASCII
- * HTML export:: Exporting to HTML
- * XOXO export:: Exporting to XOXO
- * iCalendar export:: Exporting in iCalendar format
- * Text interpretation:: How the exporter looks at the file
- HTML export
- * Export commands:: How to invoke HTML export
- * Quoting HTML tags:: Using direct HTML in Org-mode
- * Links:: How hyperlinks get transferred to HTML
- * Images:: To inline or not to inline?
- * CSS support:: Style specifications
- Text interpretation by the exporter
- * Comment lines:: Some lines will not be exported
- * Initial text:: Text before the first headline
- * Footnotes:: Numbers like [1]
- * Enhancing text:: Subscripts, symbols and more
- * Export options:: How to influence the export settings
- Publishing
- * Configuration:: Defining projects
- * Sample configuration:: Example projects
- * Triggering publication:: Publication commands
- Configuration
- * Project alist:: The central configuration variable
- * Sources and destinations:: From here to there
- * Selecting files:: What files are part of the project?
- * Publishing action:: Setting the function doing the publishing
- * Publishing options:: Tweaking HTML export
- * Publishing links:: Which links keep working after publishing?
- * Project page index:: Publishing a list of project files
- Sample configuration
- * Simple example:: One-component publishing
- * Complex example:: A multi-component publishing example
- Miscellaneous
- * Completion:: M-TAB knows what you need
- * Customization:: Adapting Org-mode to your taste
- * In-buffer settings:: Overview of the #+KEYWORDS
- * The very busy C-c C-c key:: When in doubt, press C-c C-c
- * Clean view:: Getting rid of leading stars in the outline
- * TTY keys:: Using Org-mode on a tty
- * Interaction:: Other Emacs packages
- * Bugs:: Things which do not work perfectly
- Interaction with other packages
- * Cooperation:: Packages Org-mode cooperates with
- * Conflicts:: Packages that lead to conflicts
- Extensions, Hooks and Hacking
- * Extensions:: Existing 3rd-part extensions
- * Tables in arbitrary syntax:: Orgtbl for LaTeX and other programs
- * Dynamic blocks:: Automatically filled blocks
- * Special agenda views:: Customized views
- Tables in arbitrary syntax
- * Radio tables:: Sending and receiving
- * A LaTeX example:: Step by step, almost a tutorial
- * Translator functions:: Copy and modify
- File: org, Node: Introduction, Next: Document structure, Prev: Top, Up: Top
- 1 Introduction
- **************
- * Menu:
- * Summary:: Brief summary of what Org-mode does
- * Installation:: How to install a downloaded version of Org-mode
- * Activation:: How to activate Org-mode for certain buffers.
- * Feedback:: Bug reports, ideas, patches etc.
- File: org, Node: Summary, Next: Installation, Prev: Introduction, Up: Introduction
- 1.1 Summary
- ===========
- Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
- project planning with a fast and effective plain-text system.
- Org-mode develops organizational tasks around NOTES files that
- contain lists or information about projects as plain text. Org-mode is
- implemented on top of outline-mode, which makes it possible to keep the
- content of large files well structured. Visibility cycling and
- structure editing help to work with the tree. Tables are easily created
- with a built-in table editor. Org-mode supports ToDo items, deadlines,
- time stamps, and scheduling. It dynamically compiles entries into an
- agenda that utilizes and smoothly integrates much of the Emacs calendar
- and diary. Plain text URL-like links connect to websites, emails,
- Usenet messages, BBDB entries, and any files related to the projects.
- For printing and sharing of notes, an Org-mode file can be exported as a
- structured ASCII file, as HTML, or (todo and agenda items only) as an
- iCalendar file. It can also serve as a publishing tool for a set of
- linked webpages.
- An important design aspect that distinguishes Org-mode from for
- example Planner/Muse is that it encourages to store every piece of
- information only once. In Planner, you have project pages, day pages
- and possibly other files, duplicating some information such as tasks.
- In Org-mode, you only have notes files. In your notes you mark entries
- as tasks, label them with tags and timestamps. All necessary lists
- like a schedule for the day, the agenda for a meeting, tasks lists
- selected by tags etc are created dynamically when you need them.
- Org-mode keeps simple things simple. When first fired up, it should
- feel like a straightforward, easy to use outliner. Complexity is not
- imposed, but a large amount of functionality is available when you need
- it. Org-mode can be used on different levels and in different ways, for
- example as:
- * outline extension with visibility cycling and structure editing
- * ASCII system and table editor for taking structured notes
- * ASCII table editor with spreadsheet-like capabilities
- * TODO list editor
- * full agenda and planner with deadlines and work scheduling
- * environment to implement David Allen's GTD system
- * simple hypertext system, with HTML export
- * publishing tool to create a set of interlinked webpages
- Org-mode's automatic, context sensitive table editor with spreadsheet
- capabilities can be integrated into any major mode by activating the
- minor Orgtbl-mode. Using a translation step, it can be used to maintain
- tables in arbitrary file types, for example in LaTeX.
- There is a website for Org-mode which provides links to the newest
- version of Org-mode, as well as additional information, frequently asked
- questions (FAQ), links to tutorials etc. This page is located at
- `http://www.astro.uva.nl/~dominik/Tools/org/'.
- File: org, Node: Installation, Next: Activation, Prev: Summary, Up: Introduction
- 1.2 Installation
- ================
- Important: If Org-mode is part of the Emacs distribution or an XEmacs
- package, please skip this section and go directly to *Note Activation::.
- If you have downloaded Org-mode from the Web, you must take the
- following steps to install it: Go into the Org-mode distribution
- directory and edit the top section of the file `Makefile'. You must
- set the name of the Emacs binary (likely either `emacs' or `xemacs'),
- and the paths to the directories where local Lisp and Info files are
- kept. If you don't have access to the system-wide directories, create
- your own two directories for these files, enter them into the Makefile,
- and make sure Emacs finds the Lisp files by adding the following line
- to `.emacs':
- (setq load-path (cons "~/path/to/lispdir" load-path))
- XEmacs users now need to install the file `noutline.el' from the
- `xemacs' subdirectory of the Org-mode distribution. Use the command:
- make install-noutline
- Now byte-compile and install the Lisp files with the shell commands:
- make
- make install
- If you want to install the info documentation, use this command:
- make install-info
- Then add to `.emacs':
- ;; This line only if org-mode is not part of the X/Emacs distribution.
- (require 'org-install)
- File: org, Node: Activation, Next: Feedback, Prev: Installation, Up: Introduction
- 1.3 Activation
- ==============
- Add the following lines to your `.emacs' file. The last two lines
- define _global_ keys for the commands `org-store-link' and `org-agenda'
- - please choose suitable keys yourself.
- ;; The following lines are always needed. Choose your own keys.
- (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
- (define-key global-map "\C-cl" 'org-store-link)
- (define-key global-map "\C-ca" 'org-agenda)
- Furthermore, you must activate `font-lock-mode' in org-mode buffers,
- because significant functionality depends on font-locking being active.
- You can do this with either one of the following two lines (XEmacs
- user must use the second option):
- (global-font-lock-mode 1) ; for all buffers
- (add-hook 'org-mode-hook 'turn-on-font-lock) ; org-mode buffers only
- With this setup, all files with extension `.org' will be put into
- Org-mode. As an alternative, make the first line of a file look like
- this:
- MY PROJECTS -*- mode: org; -*-
- which will select Org-mode for this buffer no matter what the file's
- name is. See also the variable `org-insert-mode-line-in-empty-file'.
- File: org, Node: Feedback, Prev: Activation, Up: Introduction
- 1.4 Feedback
- ============
- If you find problems with Org-mode, or if you have questions, remarks,
- or ideas about it, please contact the maintainer Carsten Dominik at
- <dominik at science dot uva dot nl>.
- For bug reports, please provide as much information as possible,
- including the version information of Emacs (`C-h v emacs-version
- <RET>') and Org-mode (`C-h v org-version <RET>'), as well as the
- Org-mode related setup in `.emacs'. If an error occurs, a backtrace
- can be very useful (see below on how to create one). Often a small
- example file helps, along with clear information about:
- 1. What exactly did you do?
- 2. What did you expect to happen?
- 3. What happened instead?
- Thank you for helping to improve this mode.
- How to create a useful backtrace
- ................................
- If working with Org-mode produces an error with a message you don't
- understand, you may have hit a bug. The best way to report this is by
- providing, in addition to what was mentioned above, a _Backtrace_.
- This is information from the built-in debugger about where and how the
- error occurred. Here is how to produce a useful backtrace:
- 1. Start a fresh Emacs or XEmacs, and make sure that it will load the
- original Lisp code in `org.el' instead of the compiled version in
- `org.elc'. The backtrace contains much more information if it is
- produced with uncompiled code. To do this, either rename `org.elc'
- to something else before starting Emacs, or ask Emacs explicitly
- to load `org.el' by using the command line
- emacs -l /path/to/org.el
- 2. Go to the `Options' menu and select `Enter Debugger on Error'
- (XEmacs has this option in the `Troubleshooting' sub-menu).
- 3. Do whatever you have to do to hit the error. Don't forget to
- document the steps you take.
- 4. When you hit the error, a `*Backtrace*' buffer will appear on the
- screen. Save this buffer to a file (for example using `C-x C-w')
- and attach it to your bug report.
- File: org, Node: Document structure, Next: Tables, Prev: Introduction, Up: Top
- 2 Document Structure
- ********************
- Org-mode is based on outline mode and provides flexible commands to
- edit the structure of the document.
- * Menu:
- * Outlines:: Org-mode is based on outline-mode
- * Headlines:: How to typeset org-tree headlines
- * Visibility cycling:: Show and hide, much simplified
- * Motion:: Jumping to other headlines
- * Structure editing:: Changing sequence and level of headlines
- * Archiving:: Move done task trees to a different place
- * Sparse trees:: Matches embedded in context
- * Plain lists:: Additional structure within an entry
- File: org, Node: Outlines, Next: Headlines, Prev: Document structure, Up: Document structure
- 2.1 Outlines
- ============
- Org-mode is implemented on top of outline-mode. Outlines allow to
- organize a document in a hierarchical structure, which (at least for
- me) is the best representation of notes and thoughts. Overview over
- this structure is achieved by folding (hiding) large parts of the
- document to show only the general document structure and the parts
- currently being worked on. Org-mode greatly simplifies the use of
- outlines by compressing the entire show/hide functionality into a
- single command `org-cycle', which is bound to the <TAB> key.
- File: org, Node: Headlines, Next: Visibility cycling, Prev: Outlines, Up: Document structure
- 2.2 Headlines
- =============
- Headlines define the structure of an outline tree. The headlines in
- Org-mode start with one or more stars, on the left margin(1). For
- example:
- * Top level headline
- ** Second level
- *** 3rd level
- some text
- *** 3rd level
- more text
- * Another top level headline
- Some people find the many stars too noisy and would prefer an outline
- that has whitespace followed by a single star as headline starters.
- *Note Clean view:: describes a setup to realize this.
- An empty line after the end of a subtree is considered part of it and
- will be hidden when the subtree is folded. However, if you leave at
- least two empty lines, one empty line will remain visible after folding
- the subtree, in order to structure the collapsed view. See the
- variable `org-cycle-separator-lines' for modifying this behavior.
- ---------- Footnotes ----------
- (1) See the variable `org-special-ctrl-a' to configure special
- behavior of `C-a' in headlines.
- File: org, Node: Visibility cycling, Next: Motion, Prev: Headlines, Up: Document structure
- 2.3 Visibility cycling
- ======================
- Outlines make it possible to hide parts of the text in the buffer.
- Org-mode uses just two commands, bound to <TAB> and `S-<TAB>' to change
- the visibility in the buffer.
- `<TAB>'
- _Subtree cycling_: Rotate current subtree among the states
- ,-> FOLDED -> CHILDREN -> SUBTREE --.
- '-----------------------------------'
- The cursor must be on a headline for this to work(1). When the
- cursor is at the beginning of the buffer and the first line is not
- a headline, then <TAB> actually runs global cycling (see
- below)(2). Also when called with a prefix argument (`C-u <TAB>'),
- global cycling is invoked.
- `S-<TAB>'
- `C-u <TAB>'
- _Global cycling_: Rotate the entire buffer among the states
- ,-> OVERVIEW -> CONTENTS -> SHOW ALL --.
- '--------------------------------------'
- When `S-<TAB>' is called with a numerical prefix N, the CONTENTS
- view up to headlines of level N will be shown. Note that inside
- tables, `S-<TAB>' jumps to the previous field.
- `C-c C-a'
- Show all.
- `C-c C-r'
- Reveal context around point, showing the current entry, the
- following heading and the hierarchy above. Useful for working
- near a location exposed by a sparse tree command (*note Sparse
- trees::) or an agenda command (*note Agenda commands::). With
- prefix arg show, on each level, all sibling headings.
- `C-c C-x b'
- Show the current subtree in an indirect buffer(3). With numerical
- prefix ARG, go up to this level and then take that tree. If ARG is
- negative, go up that many levels. With `C-u' prefix, do not remove
- the previously used indirect buffer.
- When Emacs first visits an Org-mode file, the global state is set to
- OVERVIEW, i.e. only the top level headlines are visible. This can be
- configured through the variable `org-startup-folded', or on a per-file
- basis by adding one of the following lines anywhere in the buffer:
- #+STARTUP: overview
- #+STARTUP: content
- #+STARTUP: showall
- ---------- Footnotes ----------
- (1) see, however, the option `org-cycle-emulate-tab'.
- (2) see the option `org-cycle-global-at-bob'.
- (3) The indirect buffer (*note Indirect Buffers: (emacs)Indirect
- Buffers.) will contain the entire buffer, but will be narrowed to the
- current tree. Editing the indirect buffer will also change the
- original buffer, but without affecting visibility in that buffer.
- File: org, Node: Motion, Next: Structure editing, Prev: Visibility cycling, Up: Document structure
- 2.4 Motion
- ==========
- The following commands jump to other headlines in the buffer.
- `C-c C-n'
- Next heading.
- `C-c C-p'
- Previous heading.
- `C-c C-f'
- Next heading same level.
- `C-c C-b'
- Previous heading same level.
- `C-c C-u'
- Backward to higher level heading.
- `C-c C-j'
- Jump to a different place without changing the current outline
- visibility. Shows the document structure in a temporary buffer,
- where you can use the following keys to find your destination:
- <TAB> Cycle visibility.
- <down> / <up> Next/previous visible headline.
- n / p Next/previous visible headline.
- f / b Next/previous headline same level.
- u One level up.
- 0-9 Digit argument.
- <RET> Select this location.
- File: org, Node: Structure editing, Next: Archiving, Prev: Motion, Up: Document structure
- 2.5 Structure editing
- =====================
- `M-<RET>'
- Insert new heading with same level as current. If the cursor is
- in a plain list item, a new item is created (*note Plain lists::).
- To force creation of a new headline, use a prefix arg, or first
- press <RET> to get to the beginning of the next line. When this
- command is used in the middle of a line, the line is split and the
- rest of the line becomes the new headline. If the command is used
- at the beginning of a headline, the new headline is created before
- the current line. If at the beginning of any other line, the
- content of that line is made the new heading. If the command is
- used at the end of a folded subtree (i.e. behind the ellipses at
- the end of a headline), then a headline like the current one will
- be inserted after the end of the subtree.
- `M-S-<RET>'
- Insert new TODO entry with same level as current heading.
- `M-<left>'
- Promote current heading by one level.
- `M-<right>'
- Demote current heading by one level.
- `M-S-<left>'
- Promote the current subtree by one level.
- `M-S-<right>'
- Demote the current subtree by one level.
- `M-S-<up>'
- Move subtree up (swap with previous subtree of same level).
- `M-S-<down>'
- Move subtree down (swap with next subtree of same level).
- `C-c C-x C-w'
- `C-c C-x C-k'
- Kill subtree, i.e. remove it from buffer but save in kill ring.
- `C-c C-x M-w'
- Copy subtree to kill ring.
- `C-c C-x C-y'
- Yank subtree from kill ring. This does modify the level of the
- subtree to make sure the tree fits in nicely at the yank position.
- The yank level can also be specified with a prefix arg, or by
- yanking after a headline marker like `****'.
- `C-c ^'
- Sort same-level entries. When there is an active region, all
- entries in the region will be sorted. Otherwise the children of
- the current headline are sorted. The command prompts for the
- sorting method, which can be alphabetically, numerically, by time
- (using the first time stamp in each entry), and each of these in
- reverse order. With a `C-u' prefix, sorting will be
- case-sensitive. With two `C-u C-u' prefixes, duplicate entries
- will also be removed.
- When there is an active region (transient-mark-mode), promotion and
- demotion work on all headlines in the region. To select a region of
- headlines, it is best to place both point and mark at the beginning of a
- line, mark at the beginning of the first headline, and point at the line
- just after the last headline to change. Note that when the cursor is
- inside a table (*note Tables::), the Meta-Cursor keys have different
- functionality.
- File: org, Node: Archiving, Next: Sparse trees, Prev: Structure editing, Up: Document structure
- 2.6 Archiving
- =============
- When a project represented by a (sub)tree is finished, you may want to
- move the tree out of the way and to stop it from contributing to the
- agenda. Org-mode knows two ways of archiving. You can mark a tree with
- the ARCHIVE tag, or you can move an entire (sub)tree to a different
- location.
- * Menu:
- * ARCHIVE tag:: Marking a tree as inactive
- * Moving subtrees:: Moving a tree to an archive file
- File: org, Node: ARCHIVE tag, Next: Moving subtrees, Prev: Archiving, Up: Archiving
- 2.6.1 The ARCHIVE tag
- ---------------------
- A headline that is marked with the ARCHIVE tag (*note Tags::) stays at
- its location in the outline tree, but behaves in the following way:
- - It does not open when you attempt to do so with a visibility
- cycling command (*note Visibility cycling::). You can force
- cycling archived subtrees with `C-<TAB>', or by setting the option
- `org-cycle-open-archived-trees'. Also normal outline commands like
- `show-all' will open archived subtrees.
- - During sparse tree construction (*note Sparse trees::), matches in
- archived subtrees are not exposed, unless you configure the option
- `org-sparse-tree-open-archived-trees'.
- - During agenda view construction (*note Agenda views::), the
- content of archived trees is ignored unless you configure the
- option `org-agenda-skip-archived-trees'.
- - Archived trees are not exported (*note Exporting::), only the
- headline is. Configure the details using the variable
- `org-export-with-archived-trees'.
- The following commands help managing the ARCHIVE tag:
- `C-c C-x C-a'
- Toggle the ARCHIVE tag for the current headline. When the tag is
- set, the headline changes to a shadowish face, and the subtree
- below it is hidden.
- `C-u C-c C-x C-a'
- Check if any direct children of the current headline should be
- archived. To do this, each subtree is checked for open TODO
- entries. If none are found, the command offers to set the ARCHIVE
- tag for the child. If the cursor is _not_ on a headline when this
- command is invoked, the level 1 trees will be checked.
- `C-TAB'
- Cycle a tree even if it is tagged with ARCHIVE.
- File: org, Node: Moving subtrees, Prev: ARCHIVE tag, Up: Archiving
- 2.6.2 Moving subtrees
- ---------------------
- Once an entire project is finished, you may want to move it to a
- different location, either in the current file, or even in a different
- file, the archive file.
- `C-c C-x C-s'
- Archive the subtree starting at the cursor position to the location
- given by `org-archive-location'.
- `C-u C-c C-x C-s'
- Check if any direct children of the current headline could be
- moved to the archive. To do this, each subtree is checked for
- open TODO entries. If none are found, the command offers to move
- it to the archive location. If the cursor is _not_ on a headline
- when this command is invoked, the level 1 trees will be checked.
- The default archive location is a file in the same directory as the
- current file, with the name derived by appending `_archive' to the
- current file name. For information and examples on how to change this,
- see the documentation string of the variable `org-archive-location'.
- There is also an in-buffer option for setting this variable, for example
- #+ARCHIVE: %s_done::
- You may have several such lines in the buffer, they will then be valid
- for the entries following the line (the first will also apply to any
- text before it).
- File: org, Node: Sparse trees, Next: Plain lists, Prev: Archiving, Up: Document structure
- 2.7 Sparse trees
- ================
- An important feature of Org-mode is the ability to construct _sparse
- trees_ for selected information in an outline tree. A sparse tree
- means that the entire document is folded as much as possible, but the
- selected information is made visible along with the headline structure
- above it(1). Just try it out and you will see immediately how it works.
- Org-mode contains several commands creating such trees. The most
- basic one is `org-occur':
- `C-c /'
- Occur. Prompts for a regexp and shows a sparse tree with all
- matches. If the match is in a headline, the headline is made
- visible. If the match is in the body of an entry, headline and
- body are made visible. In order to provide minimal context, also
- the full hierarchy of headlines above the match is shown, as well
- as the headline following the match. Each match is also
- highlighted; the highlights disappear when the buffer is changes
- an editing command, or by pressing `C-c C-c'. When called with a
- `C-u' prefix argument, previous highlights are kept, so several
- calls to this command can be stacked.
- For frequently used sparse trees of specific search strings, you can
- use the variable `org-agenda-custom-commands' to define fast keyboard
- access to specific sparse trees. These commands will then be
- accessible through the agenda dispatcher (*note Agenda dispatcher::).
- For example:
- (setq org-agenda-custom-commands
- '(("f" occur-tree "FIXME")))
- will define the key `C-c a f' as a shortcut for creating a sparse tree
- matching the string `FIXME'.
- Other commands use sparse trees as well. For example `C-c C-v'
- creates a sparse TODO tree (*note TODO basics::).
- To print a sparse tree, you can use the Emacs command
- `ps-print-buffer-with-faces' which does not print invisible parts of
- the document (2). Or you can use the command `C-c C-e v' to export
- only the visible part of the document and print the resulting file.
- ---------- Footnotes ----------
- (1) See also the variables `org-show-hierarchy-above',
- `org-show-following-heading', and `org-show-siblings' for detailed
- control on how much context is shown around each match.
- (2) This does not work under XEmacs, because XEmacs uses selective
- display for outlining, not text properties.
- File: org, Node: Plain lists, Prev: Sparse trees, Up: Document structure
- 2.8 Plain lists
- ===============
- Within an entry of the outline tree, hand-formatted lists can provide
- additional structure. They also provide a way to create lists of
- checkboxes (*note Checkboxes::). Org-mode supports editing such lists,
- and the HTML exporter (*note Exporting::) does parse and format them.
- Org-mode knows ordered and unordered lists. Unordered list items
- start with `-', `+', or `*'(1) as bullets. Ordered list items start
- with `1.' or `1)'. Items belonging to the same list must have the same
- indentation on the first line. In particular, if an ordered list
- reaches number `10.', then the 2-digit numbers must be written
- left-aligned with the other numbers in the list. Indentation also
- determines the end of a list item. It ends before the next line that
- is indented like the bullet/number, or less. Empty lines are part of
- the previous item, so you can have several paragraphs in one item. If
- you would like an emtpy line to terminate all currently open plain
- lists, configure the variable `org-empty-line-terminates-plain-lists'.
- Here is an for example:
- ** Lord of the Rings
- My favorite scenes are (in this order)
- 1. The attack of the Rohirrim
- 2. Eowyns fight with the witch king
- + this was already my favorite scene in the book
- + I really like Miranda Otto.
- 3. Peter Jackson being shot by Legolas
- - on DVD only
- He makes a really funny face when it happens.
- But in the end, not individual scenes matter but the film as a whole.
- Org-mode supports these lists by tuning filling and wrapping
- commands to deal with them correctly(2).
- The following commands act on items when the cursor is in the first
- line of an item (the line with the bullet or number).
- `<TAB>'
- Items can be folded just like headline levels if you set the
- variable `org-cycle-include-plain-lists'. The level of an item is
- then given by the indentation of the bullet/number. Items are
- always subordinate to real headlines, however; the hierarchies
- remain completely separated.
- `M-<RET>'
- Insert new item at current level. With prefix arg, force a new
- heading (*note Structure editing::). If this command is used in
- the middle of a line, the line is _split_ and the rest of the line
- becomes the new item. If this command is executed in the
- _whitespace before a bullet or number_, the new item is created
- _before_ the current item. If the command is executed in the
- white space before the text that is part of an item but does not
- contain the bullet, a bullet is added to the current line.
- `M-S-<RET>'
- Insert a new item with a checkbox (*note Checkboxes::).
- `S-<up>'
- `S-<down>'
- Jump to the previous/next item in the current list.
- `M-S-<up>'
- `M-S-<down>'
- Move the item including subitems up/down (swap with previous/next
- item of same indentation). If the list is ordered, renumbering is
- automatic.
- `M-S-<left>'
- `M-S-<right>'
- Decrease/increase the indentation of the item, including subitems.
- Initially, the item tree is selected based on current indentation.
- When these commands are executed several times in direct
- succession, the initially selected region is used, even if the new
- indentation would imply a different hierarchy. To use the new
- hierarchy, break the command chain with a cursor motion or so.
- `C-c C-c'
- If there is a checkbox (*note Checkboxes::) in the item line,
- toggle the state of the checkbox. Otherwise, if this is an
- ordered list, renumber the ordered list at the cursor.
- ---------- Footnotes ----------
- (1) When using `*' as a bullet, lines must be indented or they will
- be seen as top-level headlines. Also, when you are hiding leading
- stars to get a clean outline view, plain list items starting with a
- star are visually indistinguishable from true headlines. In short:
- even though `*' is supported, it may be better not to use it for plain
- list items.
- (2) Org-mode only changes the filling settings for Emacs. For
- XEmacs, you should use Kyle E. Jones' `filladapt.el'. To turn this on,
- put into `.emacs':
- (require 'filladapt)
- File: org, Node: Tables, Next: Hyperlinks, Prev: Document structure, Up: Top
- 3 Tables
- ********
- Org-mode has a very fast and intuitive table editor built-in.
- Spreadsheet-like calculations are supported in connection with the
- Emacs `calc' package.
- * Menu:
- * Built-in table editor:: Simple tables
- * Narrow columns:: Stop wasting space in tables
- * Column groups:: Grouping to trigger vertical lines
- * orgtbl-mode:: The table editor as minor mode
- * The spreadsheet:: The table editor has spreadsheet capabilities.
- File: org, Node: Built-in table editor, Next: Narrow columns, Prev: Tables, Up: Tables
- 3.1 The built-in table editor
- =============================
- Org-mode makes it easy to format tables in plain ASCII. Any line with
- `|' as the first non-white character is considered part of a table.
- `|' is also the column separator. A table might look like this:
- | Name | Phone | Age |
- |-------+-------+-----|
- | Peter | 1234 | 17 |
- | Anna | 4321 | 25 |
- A table is re-aligned automatically each time you press <TAB> or
- <RET> or `C-c C-c' inside the table. <TAB> also moves to the next
- field (<RET> to the next row) and creates new table rows at the end of
- the table or before horizontal lines. The indentation of the table is
- set by the first line. Any line starting with `|-' is considered as a
- horizontal separator line and will be expanded on the next re-align to
- span the whole table width. So, to create the above table, you would
- only type
- |Name|Phone|Age|
- |-
- and then press <TAB> to align the table and start filling in fields.
- When typing text into a field, Org-mode treats <DEL>, <Backspace>,
- and all character keys in a special way, so that inserting and deleting
- avoids shifting other fields. Also, when typing _immediately after the
- cursor was moved into a new field with `<TAB>', `S-<TAB>' or `<RET>'_,
- the field is automatically made blank. If this behavior is too
- unpredictable for you, configure the variables
- `org-enable-table-editor' and `org-table-auto-blank-field'.
- Creation and conversion
- .......................
- `C-c |'
- Convert the active region to table. If every line contains at
- least one TAB character, the function assumes that the material is
- tab separated. If not, lines are split at whitespace into fields.
- You can use a prefix argument to indicate the minimum number of
- consecutive spaces required to identify a field separator
- (default: just one).
- If there is no active region, this command creates an empty
- Org-mode table. But it's easier just to start typing, like
- `|Name|Phone|Age <RET> |- <TAB>'.
- Re-aligning and field motion
- ............................
- `C-c C-c'
- Re-align the table without moving the cursor.
- `<TAB>'
- Re-align the table, move to the next field. Creates a new row if
- necessary.
- `S-<TAB>'
- Re-align, move to previous field.
- `<RET>'
- Re-align the table and move down to next row. Creates a new row if
- necessary. At the beginning or end of a line, <RET> still does
- NEWLINE, so it can be used to split a table.
- Column and row editing
- ......................
- `M-<left>'
- `M-<right>'
- Move the current column left/right.
- `M-S-<left>'
- Kill the current column.
- `M-S-<right>'
- Insert a new column to the left of the cursor position.
- `M-<up>'
- `M-<down>'
- Move the current row up/down.
- `M-S-<up>'
- Kill the current row or horizontal line.
- `M-S-<down>'
- Insert a new row above (with arg: below) the current row.
- `C-c -'
- Insert a horizontal line below current row. With prefix arg, the
- line is created above the current line.
- `C-c ^'
- Sort the table lines in the region. The position of point
- indicates the column to be used for sorting, and the range of
- lines is the range between the nearest horizontal separator lines,
- or the entire table. If point is before the first column, you
- will be prompted for the sorting column. If there is an active
- region, the mark specifies the first line and the sorting column,
- while point should be in the last line to be included into the
- sorting. The command prompts for the sorting type
- (alphabetically, numerically, or by time). When called with a
- prefix argument, alphabetic sorting will be case-sensitive.
- Regions
- .......
- `C-c C-x M-w'
- Copy a rectangular region from a table to a special clipboard.
- Point and mark determine edge fields of the rectangle. The
- process ignores horizontal separator lines.
- `C-c C-x C-w'
- Copy a rectangular region from a table to a special clipboard, and
- blank all fields in the rectangle. So this is the "cut" operation.
- `C-c C-x C-y'
- Paste a rectangular region into a table. The upper right corner
- ends up in the current field. All involved fields will be
- overwritten. If the rectangle does not fit into the present table,
- the table is enlarged as needed. The process ignores horizontal
- separator lines.
- `C-c C-q'
- Wrap several fields in a column like a paragraph. If there is an
- active region, and both point and mark are in the same column, the
- text in the column is wrapped to minimum width for the given
- number of lines. A prefix ARG may be used to change the number of
- desired lines. If there is no region, the current field is split
- at the cursor position and the text fragment to the right of the
- cursor is prepended to the field one line down. If there is no
- region, but you specify a prefix ARG, the current field is made
- blank, and the content is appended to the field above.
- Calculations
- ............
- `C-c +'
- Sum the numbers in the current column, or in the rectangle defined
- by the active region. The result is shown in the echo area and can
- be inserted with `C-y'.
- `S-<RET>'
- When current field is empty, copy from first non-empty field above.
- When not empty, copy current field down to next row and move cursor
- along with it. Depending on the variable
- `org-table-copy-increment', integer field values will be
- incremented during copy. This key is also used by CUA-mode (*note
- Cooperation::).
- Miscellaneous
- .............
- `C-c `'
- Edit the current field in a separate window. This is useful for
- fields that are not fully visible (*note Narrow columns::). When
- called with a `C-u' prefix, just make the full field visible, so
- that it can be edited in place.
- `C-c <TAB>'
- This is an alias for `C-u C-c `' to make the current field fully
- visible.
- `M-x org-table-import'
- Import a file as a table. The table should be TAB- or whitespace
- separated. Useful, for example, to import an Excel table or data
- from a database, because these programs generally can write
- TAB-separated text files. This command works by inserting the
- file into the buffer and then converting the region to a table.
- Any prefix argument is passed on to the converter, which uses it
- to determine the separator.
- `C-c |'
- Tables can also be imported by pasting tabular text into the
- org-mode buffer, selecting the pasted text with `C-x C-x' and then
- using the `C-c |' command (see above under Creation and conversion.
- `M-x org-table-export'
- Export the table as a TAB-separated file. Useful for data
- exchange with, for example, Excel or database programs.
- If you don't like the automatic table editor because it gets in your
- way on lines which you would like to start with `|', you can turn it
- off with
- (setq org-enable-table-editor nil)
- Then the only table command that still works is `C-c C-c' to do a
- manual re-align.
- File: org, Node: Narrow columns, Next: Column groups, Prev: Built-in table editor, Up: Tables
- 3.2 Narrow columns
- ==================
- The width of columns is automatically determined by the table editor.
- Sometimes a single field or a few fields need to carry more text,
- leading to inconveniently wide columns. To limit(1) the width of a
- column, one field anywhere in the column may contain just the string
- `<N>' where `N' is an integer specifying the width of the column in
- characters. The next re-align will then set the width of this column
- to no more than this value.
- |---+------------------------------| |---+--------|
- | | | | | <6> |
- | 1 | one | | 1 | one |
- | 2 | two | ----\ | 2 | two |
- | 3 | This is a long chunk of text | ----/ | 3 | This=> |
- | 4 | four | | 4 | four |
- |---+------------------------------| |---+--------|
- Fields that are wider become clipped and end in the string `=>'. Note
- that the full text is still in the buffer, it is only invisible. To
- see the full text, hold the mouse over the field - a tool-tip window
- will show the full content. To edit such a field, use the command `C-c
- `' (that is `C-c' followed by the backquote). This will open a new
- window with the full field. Edit it and finish with `C-c C-c'.
- When visiting a file containing a table with narrowed columns, the
- necessary character hiding has not yet happened, and the table needs to
- be aligned before it looks nice. Setting the option
- `org-startup-align-all-tables' will realign all tables in a file upon
- visiting, but also slow down startup. You can also set this option on
- a per-file basis with:
- #+STARTUP: align
- #+STARTUP: noalign
- ---------- Footnotes ----------
- (1) This feature does not work on XEmacs.
- File: org, Node: Column groups, Next: orgtbl-mode, Prev: Narrow columns, Up: Tables
- 3.3 Column groups
- =================
- When Org-mode exports tables, it does so by default without vertical
- lines because that is visually more satisfying in general. Occasionally
- however, vertical lines can be useful to structure a table into groups
- of columns, much like horizontal lines can do for groups of rows. In
- order to specify column groups, you can use a special row where the
- first field contains only `/'. The further fields can either contain
- `<' to indicate that this column should start a group, `>' to indicate
- the end of a column, or `<>' to make a column a group of its own.
- Boundaries between colum groups will upon export be marked with
- vertical lines. Here is an example:
- | | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
- |---+----+-----+-----+-----+---------+------------|
- | / | <> | < | | > | < | > |
- | # | 1 | 1 | 1 | 1 | 1 | 1 |
- | # | 2 | 4 | 8 | 16 | 1.4142 | 1.1892 |
- | # | 3 | 9 | 27 | 81 | 1.7321 | 1.3161 |
- |---+----+-----+-----+-----+---------+------------|
- #+TBLFM: $3=$2^2::$4=$2^3::$5=$2^4::$6=sqrt($2)::$7=sqrt(sqrt(($2))
- It is also sufficient to just insert the colum group starters after
- every vertical line you'd like to have:
- | N | N^2 | N^3 | N^4 | sqrt(n) | sqrt[4](N) |
- |----+-----+-----+-----+---------+------------|
- | / | < | | | < | |
- File: org, Node: orgtbl-mode, Next: The spreadsheet, Prev: Column groups, Up: Tables
- 3.4 The Orgtbl minor mode
- =========================
- If you like the intuitive way the Org-mode table editor works, you
- might also want to use it in other modes like text-mode or mail-mode.
- The minor mode Orgtbl-mode makes this possible. You can always toggle
- the mode with `M-x orgtbl-mode'. To turn it on by default, for example
- in mail mode, use
- (add-hook 'mail-mode-hook 'turn-on-orgtbl)
- Furthermore, with some special setup, it is possible to maintain
- tables in arbitrary syntax with Orgtbl-mode. For example, it is
- possible to construct LaTeX tables with the underlying ease and power of
- Orgtbl-mode, including spreadsheet capabilities. For details, see
- *Note Tables in arbitrary syntax::.
- File: org, Node: The spreadsheet, Prev: orgtbl-mode, Up: Tables
- 3.5 The spreadsheet
- ===================
- The table editor makes use of the Emacs `calc' package to implement
- spreadsheet-like capabilities. It can also evaluate Emacs Lisp forms to
- derive fields from other fields. While fully featured, Org-mode's
- implementation is not identical to other spreadsheets. For example,
- Org-mode knows the concept of a _column formula_ that will be applied
- to all non-header fields in a column without having to copy the formula
- to each relevant field.
- * Menu:
- * References:: How to refer to another field or range
- * Formula syntax for Calc:: Using Calc to compute stuff
- * Formula syntax for Lisp:: Writing formulas in Emacs Lisp
- * Field formulas:: Formulas valid for a single field
- * Column formulas:: Formulas valid for an entire column
- * Editing and debugging formulas:: Fixing formulas
- * Updating the table:: Recomputing all dependent fields
- * Advanced features:: Field names, parameters and automatic recalc
- File: org, Node: References, Next: Formula syntax for Calc, Prev: The spreadsheet, Up: The spreadsheet
- 3.5.1 References
- ----------------
- To compute fields in the table from other fields, formulas must
- reference other fields or ranges. In Org-mode, fields can be referenced
- by name, by absolute coordinates, and by relative coordinates. To find
- out what the coordinates of a field are, press `C-c ?' in that field,
- or press `C-c }' to toggle the display of a grid.
- Field references
- ................
- Formulas can reference the value of another field in two ways. Like in
- any other spreadsheet, you may reference fields with a letter/number
- combination like `B3', meaning the 2nd field in the 3rd row.
- Org-mode also uses another, more general operator that looks like this:
- @row$column
- Column references can be absolute like `1', `2',...`N', or relative to
- the current column like `+1' or `-2'.
- The row specification only counts data lines and ignores horizontal
- separator lines (hlines). You can use absolute row numbers `1'...`N',
- and row numbers relative to the current row like `+3' or `-1'. Or
- specify the row relative to one of the hlines: `I' refers to the first
- hline, `II' to the second etc. `-I' refers to the first such line
- above the current line, `+I' to the first such line below the current
- line. You can also write `III+2' which is the second data line after
- the third hline in the table. Relative row numbers like `-3' will not
- cross hlines if the current line is too close to the hline. Instead,
- the value directly at the hline is used.
- `0' refers to the current row and column. Also, if you omit either
- the column or the row part of the reference, the current row/column is
- implied.
- Org-mode's references with _unsigned_ numbers are fixed references
- in the sense that if you use the same reference in the formula for two
- different fields, the same field will be referenced each time.
- Org-mode's references with _signed_ numbers are floating references
- because the same reference operator can reference different fields
- depending on the field being calculated by the formula.
- Here are a few examples:
- @2$3 2nd row, 3rd column
- C2 same as previous
- $5 column 5 in the current row
- E& same as previous
- @2 current column, row 2
- @-1$-3 the field one row up, three columns to the left
- @-I$2 field just under hline above current row, column 2
- Range references
- ................
- You may reference a rectangular range of fields by specifying two field
- references connected by two dots `..'. If both fields are in the
- current row, you may simply use `$2..$7', but if at least one field is
- in a different row, you need to use the general `@row$column' format at
- least for the first field (i.e the reference must start with `@' in
- order to be interpreted correctly). Examples:
- $1..$3 First three fields in the current row.
- $P..$Q Range, using column names (see under Advanced)
- @2$1..@4$3 6 fields between these two fields.
- A2..C4 Same as above.
- @-1$-2..@-1 3 numbers from the column to the left, 2 up to current row
- Range references return a vector of values that can be fed into Calc
- vector functions. Empty fields in ranges are normally suppressed, so
- that the vector contains only the non-empty fields (but see the `E'
- mode switch below). If there are no non-empty fields, `[0]' is
- returned to avoid syntax errors in formulas.
- Named references
- ................
- `$name' is interpreted as the name of a column, parameter or constant.
- Constants are defined globally through the variable
- `org-table-formula-constants'. If you have the `constants.el' package,
- it will also be used to resolve constants, including natural constants
- like `$h' for Planck's constant, and units like `$km' for
- kilometers(1). Column names and parameters can be specified in special
- table lines. These are described below, see *Note Advanced features::.
- All names must start with a letter, and further consist of letters and
- numbers.
- ---------- Footnotes ----------
- (1) `Constant.el' can supply the values of constants in two
- different unit systems, `SI' and `cgs'. Which one is used depends on
- the value of the variable `constants-unit-system'. You can use the
- `#+STARTUP' options `constSI' and `constcgs' to set this value for the
- current buffer.
- File: org, Node: Formula syntax for Calc, Next: Formula syntax for Lisp, Prev: References, Up: The spreadsheet
- 3.5.2 Formula syntax for Calc
- -----------------------------
- A formula can be any algebraic expression understood by the Emacs
- `Calc' package. Note that `calc' has the non-standard convention that
- `/' has lower precedence than `*', so that `a/b*c' is interpreted as
- `a/(b*c)'. Before evaluation by `calc-eval' (*note calc-eval:
- (calc)Calling Calc from Your Programs.), variable substitution takes
- place according to the rules described above. The range vectors can be
- directly fed into the calc vector functions like `vmean' and `vsum'.
- A formula can contain an optional mode string after a semicolon.
- This string consists of flags to influence Calc and other modes during
- execution. By default, Org-mode uses the standard calc modes (precision
- 12, angular units degrees, fraction and symbolic modes off. The display
- format, however, has been changed to `(float 5)' to keep tables
- compact. The default settings can be configured using the variable
- `org-calc-default-modes'.
- p20 switch the internal precision to 20 digits
- n3 s3 e2 f4 normal, scientific, engineering, or fixed display format
- D R angle modes: degrees, radians
- F S fraction and symbolic modes
- N interpret all fields as numbers, use 0 for non-numbers
- T force text interpretation
- E keep empty fields in ranges
- In addition, you may provide a `printf' format specifier to reformat
- the final result. A few examples:
- $1+$2 Sum of first and second field
- $1+$2;%.2f Same, format result to two decimals
- exp($2)+exp($1) Math functions can be used
- $0;%.1f Reformat current cell to 1 decimal
- ($3-32)*5/9 Degrees F -> C conversion
- $c/$1/$cm Hz -> cm conversion, using `constants.el'
- tan($1);Dp3s1 Compute in degrees, precision 3, display SCI 1
- sin($1);Dp3%.1e Same, but use printf specifier for display
- vmean($2..$7) Compute column range mean, using vector function
- vmean($2..$7);EN Same, but treat empty fields as 0
- taylor($3,x=7,2) taylor series of $3, at x=7, second degree
- Calc also contains a complete set of logical operations. For example
- if($1<20,teen,string("")) "teen" if age $1 less than 20, else empty
- File: org, Node: Formula syntax for Lisp, Next: Field formulas, Prev: Formula syntax for Calc, Up: The spreadsheet
- 3.5.3 Emacs Lisp forms as formulas
- ----------------------------------
- It is also possible to write a formula in Emacs Lisp; this can be useful
- for string manipulation and control structures, if the Calc's
- functionality is not enough. If a formula starts with a single quote
- followed by an opening parenthesis, then it is evaluated as a lisp form.
- The evaluation should return either a string or a number. Just as with
- `calc' formulas, you can specify modes and a printf format after a
- semicolon. A reference will be replaced with a string (in double
- quotes) containing the field. If you provide the `N' mode switch, all
- referenced elements will be numbers. Ranges are inserted as
- space-separated fields, so you can embed them in list or vector syntax.
- A few examples, note how the `N' mode is used when we do computations
- in lisp.
- Swap the first two characters of the content of column 1
- '(concat (substring $1 1 2) (substring $1 0 1) (substring $1 2))
- Add columns 1 and 2, equivalent to the Calc's `$1+$2'
- '(+ $1 $2);N
- Compute the sum of columns 1-4, like Calc's `vsum($1..$4)'
- '(apply '+ '($1..$4));N
- File: org, Node: Field formulas, Next: Column formulas, Prev: Formula syntax for Lisp, Up: The spreadsheet
- 3.5.4 Field formulas
- --------------------
- To assign a formula to a particular field, type it directly into the
- field, preceded by `:=', for example `:=$1+$2'. When you press <TAB>
- or <RET> or `C-c C-c' with the cursor still in the field, the formula
- will be stored as the formula for this field, evaluated, and the
- current field replaced with the result.
- Formulas are stored in a special line starting with `#+TBLFM:'
- directly below the table. If you typed the equation in the 4th field of
- the 3rd data line in the table, the formula will look like
- `@3$4=$1+$2'. When inserting/deleting/swapping column and rows with
- the appropriate commands, absolute references (but not relative ones)
- in stored formulas are modified in order to still reference the same
- field. Of cause this is not true if you edit the table structure with
- normal editing commands - then you must fix the equations yourself.
- Instead of typing an equation into the field, you may also use the
- following command
- `C-u C-c ='
- Install a new formula for the current field. The command prompts
- for a formula, with default taken from the `#+TBLFM:' line, applies
- it to the current field and stores it.
- File: org, Node: Column formulas, Next: Editing and debugging formulas, Prev: Field formulas, Up: The spreadsheet
- 3.5.5 Column formulas
- ---------------------
- Often in a table, the same formula should be used for all fields in a
- particular column. Instead of having to copy the formula to all fields
- in that column, org-mode allows to assign a single formula to an entire
- column. If the table contains horizontal separator hlines, everything
- before the first such line is considered part of the table _header_ and
- will not be modified by column formulas.
- To assign a formula to a column, type it directly into any field in
- the column, preceded by an equal sign, like `=$1+$2'. When you press
- <TAB> or <RET> or `C-c C-c' with the cursor still in the field, the
- formula will be stored as the formula for the current column, evaluated
- and the current field replaced with the result. If the field contains
- only `=', the previously stored formula for this column is used. For
- each column, Org-mode will only remember the most recently used
- formula. In the `TBLFM:' line, column formulas will look like
- `$4=$1+$2'.
- Instead of typing an equation into the field, you may also use the
- following command:
- `C-c ='
- Install a new formula for the current column and replace current
- field with the result of the formula. The command prompts for a
- formula, with default taken from the `#+TBLFM' line, applies it to
- the current field and stores it. With a numerical prefix (e.g.
- `C-5 C-c =') will apply it to that many consecutive fields in the
- current column.
- File: org, Node: Editing and debugging formulas, Next: Updating the table, Prev: Column formulas, Up: The spreadsheet
- 3.5.6 Editing and Debugging formulas
- ------------------------------------
- You can edit individual formulas in the minibuffer or directly in the
- field. Org-mode can also prepare a special buffer with all active
- formulas of a table. When offering a formula for editing, Org-mode
- converts references to the standard format (like `B3' or `D&') if
- possible. If you prefer to only work with the internal format (like
- `@3$2' or `$4'), configure the variable
- `org-table-use-standard-references'.
- `C-c ='
- `C-u C-c ='
- Edit the formula associated with the current column/field in the
- minibuffer. See *Note Column formulas:: and *Note Field
- formulas::.
- `C-u C-u C-c ='
- Re-insert the active formula (either a field formula, or a column
- formula) into the current field, so that you can edit it directly
- in the field. The advantage over editing in the minibuffer is
- that you can use the command `C-c ?'.
- `C-c ?'
- While editing a formula in a table field, highlight the field(s)
- referenced by the reference at the cursor position in the formula.
- `C-c }'
- Toggle the display of row and column numbers for a table, using
- overlays. These are updated each time the table is aligned, you
- can force it with `C-c C-c'.
- `C-c {'
- Toggle the formula debugger on and off. See below.
- `C-c ''
- Edit all formulas for the current table in a special buffer, where
- the formulas will be displayed one per line. If the current field
- has an active formula, the cursor in the formula editor will mark
- it. While inside the special buffer, Org-mode will automatically
- highlight any field or range reference at the cursor position.
- You may edit, remove and add formulas, and use the following
- commands:
- `C-c C-c'
- `C-x C-s'
- Exit the formula editor and store the modified formulas.
- With `C-u' prefix, also apply the new formulas to the entire
- table.
- `C-c C-q'
- Exit the formula editor without installing changes.
- `C-c C-r'
- Toggle all references in the formula editor between standard
- (like `B3') and internal (like `@3$2').
- `<TAB>'
- Pretty-print or indent lisp formula at point. When in a line
- containing a lisp formula, format the formula according to
- Emacs Lisp rules. Another <TAB> collapses the formula back
- again. In the open formula, <TAB> re-indents just like in
- Emacs-lisp-mode.
- `M-<TAB>'
- Complete Lisp symbols, just like in Emacs-lisp-mode.
- `S-<up>/<down>/<left>/<right>'
- Shift the reference at point. For example, if the reference
- is `B3' and you press `S-<right>', it will become `C3'. This
- also works for relative references, and for hline references.
- `M-S-<up>/<down>'
- Move the test line for column formulas in the Org-mode buffer
- up and down.
- `M-<up>/<down>'
- Scroll the window displaying the table.
- `C-c }'
- Turn the coordinate grid in the table on and off.
- Making a table field blank does not remove the formula associated
- with the field, because that is stored in a different line (the `TBLFM'
- line) - during the next recalculation the field will be filled again.
- To remove a formula from a field, you have to give an empty reply when
- prompted for the formula, or to edit the `#+TBLFM' line.
- You may edit the `#+TBLFM' directly and re-apply the changed
- equations with `C-c C-c' in that line, or with the normal recalculation
- commands in the table.
- Debugging formulas
- ..................
- When the evaluation of a formula leads to an error, the field content
- becomes the string `#ERROR'. If you would like see what is going on
- during variable substitution and calculation in order to find a bug,
- turn on formula debugging in the `Tbl' menu and repeat the calculation,
- for example by pressing `C-u C-u C-c = <RET>' in a field. Detailed
- information will be displayed.
- File: org, Node: Updating the table, Next: Advanced features, Prev: Editing and debugging formulas, Up: The spreadsheet
- 3.5.7 Updating the Table
- ------------------------
- Recalculation of a table is normally not automatic, but needs to be
- triggered by a command. See *Note Advanced features:: for a way to make
- recalculation at least semi-automatically.
- In order to recalculate a line of a table or the entire table, use
- the following commands:
- `C-c *'
- Recalculate the current row by first applying the stored column
- formulas from left to right, and all field formulas in the current
- row.
- `C-u C-c *'
- `C-u C-c C-c'
- Recompute the entire table, line by line. Any lines before the
- first hline are left alone, assuming that these are part of the
- table header.
- `C-u C-u C-c *'
- Iterate the table by recomputing it until no further changes occur.
- This may be necessary if some computed fields use the value of
- other fields that are computed later in the calculation sequence.
- File: org, Node: Advanced features, Prev: Updating the table, Up: The spreadsheet
- 3.5.8 Advanced features
- -----------------------
- If you want the recalculation of fields to happen automatically, or if
- you want to be able to assign names to fields and columns, you need to
- reserve the first column of the table for special marking characters.
- `C-#'
- Rotate the calculation mark in first column through the states `',
- `#', `*', `!', `$'. The meaning of these characters is discussed
- below. When there is an active region, change all marks in the
- region.
- Here is an example of a table that collects exam results of students
- and makes use of these features:
- |---+---------+--------+--------+--------+-------+------|
- | | Student | Prob 1 | Prob 2 | Prob 3 | Total | Note |
- |---+---------+--------+--------+--------+-------+------|
- | ! | | P1 | P2 | P3 | Tot | |
- | # | Maximum | 10 | 15 | 25 | 50 | 10.0 |
- | ^ | | m1 | m2 | m3 | mt | |
- |---+---------+--------+--------+--------+-------+------|
- | # | Peter | 10 | 8 | 23 | 41 | 8.2 |
- | # | Sara | 6 | 14 | 19 | 39 | 7.8 |
- | # | Sam | 2 | 4 | 3 | 9 | 1.8 |
- |---+---------+--------+--------+--------+-------+------|
- | | Average | | | | 29.7 | |
- | ^ | | | | | at | |
- | $ | max=50 | | | | | |
- |---+---------+--------+--------+--------+-------+------|
- #+TBLFM: $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(@-II..@-I);%.1f
- Important: Please note that for these special tables, recalculating the
- table with `C-u C-c *' will only affect rows that are marked `#' or
- `*', and fields that have a formula assigned to the field itself. The
- column formulas are not applied in rows with empty first field.
- The marking characters have the following meaning:
- `!'
- The fields in this line define names for the columns, so that you
- may refer to a column as `$Tot' instead of `$6'.
- `^'
- This row defines names for the fields _above_ the row. With such
- a definition, any formula in the table may use `$m1' to refer to
- the value `10'. Also, if you assign a formula to a names field, it
- will be stored as `$name=...'.
- `_'
- Similar to `^', but defines names for the fields in the row
- _below_.
- `$'
- Fields in this row can define _parameters_ for formulas. For
- example, if a field in a `$' row contains `max=50', then formulas
- in this table can refer to the value 50 using `$max'. Parameters
- work exactly like constants, only that they can be defined on a
- per-table basis.
- `#'
- Fields in this row are automatically recalculated when pressing
- <TAB> or <RET> or `S-<TAB>' in this row. Also, this row is
- selected for a global recalculation with `C-u C-c *'. Unmarked
- lines will be left alone by this command.
- `*'
- Selects this line for global recalculation with `C-u C-c *', but
- not for automatic recalculation. Use this when automatic
- recalculation slows down editing too much.
- `'
- Unmarked lines are exempt from recalculation with `C-u C-c *'.
- All lines that should be recalculated should be marked with `#' or
- `*'.
- `/'
- Do not export this line. Useful for lines that contain the
- narrowing `<N>' markers.
- Finally, just to whet your appetite on what can be done with the
- fantastic `calc' package, here is a table that computes the Taylor
- series of degree `n' at location `x' for a couple of functions
- (homework: try that with Excel :-)
- |---+-------------+---+-----+--------------------------------------|
- | | Func | n | x | Result |
- |---+-------------+---+-----+--------------------------------------|
- | # | exp(x) | 1 | x | 1 + x |
- | # | exp(x) | 2 | x | 1 + x + x^2 / 2 |
- | # | exp(x) | 3 | x | 1 + x + x^2 / 2 + x^3 / 6 |
- | # | x^2+sqrt(x) | 2 | x=0 | x*(0.5 / 0) + x^2 (2 - 0.25 / 0) / 2 |
- | # | x^2+sqrt(x) | 2 | x=1 | 2 + 2.5 x - 2.5 + 0.875 (x - 1)^2 |
- | * | tan(x) | 3 | x | 0.0175 x + 1.77e-6 x^3 |
- |---+-------------+---+-----+--------------------------------------|
- #+TBLFM: $5=taylor($2,$4,$3);n3
- File: org, Node: Hyperlinks, Next: TODO items, Prev: Tables, Up: Top
- 4 Hyperlinks
- ************
- Just like HTML, Org-mode provides links inside a file, and external
- links to other files, Usenet articles, emails, and much more.
- * Menu:
- * Link format:: How links in Org-mode are formatted
- * Internal links:: Links to other places in the current file
- * External links:: URL-like links to the world
- * Handling links:: Creating, inserting and following
- * Link abbreviations:: Shortcuts for writing complex links
- * Search options:: Linking to a specific location
- * Custom searches:: When the default search is not enough
- * Remember:: Org-trees store quick notes
- File: org, Node: Link format, Next: Internal links, Prev: Hyperlinks, Up: Hyperlinks
- 4.1 Link format
- ===============
- Org-mode will recognize plain URL-like links and activate them as
- clickable links. The general link format, however, looks like this:
- [[link][description]] or alternatively [[link]]
- Once a link in the buffer is complete (all brackets present),
- Org-mode will change the display so that `description' is displayed
- instead of `[[link][description]]' and `link' is displayed instead of
- `[[link]]'. Links will be highlighted in the face `org-link', which by
- default is an underlined face. You can directly edit the visible part
- of a link. Note that this can be either the `link' part (if there is
- no description) or the `description' part. To edit also the invisible
- `link' part, use `C-c C-l' with the cursor on the link.
- If you place the cursor at the beginning or just behind the end of
- the displayed text and press <BACKSPACE>, you will remove the
- (invisible) bracket at that location. This makes the link incomplete
- and the internals are again displayed as plain text. Inserting the
- missing bracket hides the link internals again. To show the internal
- structure of all links, use the menu entry `Org->Hyperlinks->Literal
- links'.
- File: org, Node: Internal links, Next: External links, Prev: Link format, Up: Hyperlinks
- 4.2 Internal links
- ==================
- If the link does not look like a URL, it is considered to be internal in
- the current file. Links such as `[[My Target]]' or `[[My Target][Find
- my target]]' lead to a text search in the current file. The link can
- be followed with `C-c C-o' when the cursor is on the link, or with a
- mouse click (*note Handling links::). The preferred match for such a
- link is a dedicated target: the same string in double angular brackets.
- Targets may be located anywhere; sometimes it is convenient to put
- them into a comment line. For example
- # <<My Target>>
- In HTML export (*note HTML export::), such targets will become named
- anchors for direct access through `http' links(1).
- If no dedicated target exists, Org-mode will search for the words in
- the link. In the above example the search would be for `my target'.
- Links starting with a star like `*My Target' restrict the search to
- headlines. When searching, Org-mode will first try an exact match, but
- then move on to more and more lenient searches. For example, the link
- `[[*My Targets]]' will find any of the following:
- ** My targets
- ** TODO my targets are bright
- ** my 20 targets are
- To insert a link targeting a headline, in-buffer completion can be
- used. Just type a star followed by a few optional letters into the
- buffer and press `M-<TAB>'. All headlines in the current buffer will be
- offered as completions. *Note Handling links::, for more commands
- creating links.
- Following a link pushes a mark onto Org-mode's own mark ring. You
- can return to the previous position with `C-c &'. Using this command
- several times in direct succession goes back to positions recorded
- earlier.
- * Menu:
- * Radio targets:: Make targets trigger links in plain text.
- ---------- Footnotes ----------
- (1) Note that text before the first headline will never be exported,
- so the first such target must be after the first headline.
- File: org, Node: Radio targets, Prev: Internal links, Up: Internal links
- 4.2.1 Radio targets
- -------------------
- You can configure Org-mode to link any occurrences of certain target
- names in normal text. So without explicitly creating a link, the text
- connects to the target radioing its position. Radio targets are
- enclosed by triple angular brackets. For example, a target `<<<My
- Target>>>' causes each occurrence of `my target' in normal text to
- become activated as a link. The Org-mode file is scanned automatically
- for radio targets only when the file is first loaded into Emacs. To
- update the target list during editing, press `C-c C-c' with the cursor
- on or at a target.
- File: org, Node: External links, Next: Handling links, Prev: Internal links, Up: Hyperlinks
- 4.3 External links
- ==================
- Org-mode supports links to files, websites, Usenet and email messages,
- and BBDB database entries. External links are URL-like locators. They
- start with a short identifying string followed by a colon. There can be
- no space after the colon. The following list shows examples for each
- link type.
- http://www.astro.uva.nl/~dominik on the web
- file:/home/dominik/images/jupiter.jpg file, absolute path
- file:papers/last.pdf file, relative path
- news:comp.emacs Usenet link
- mailto:adent@galaxy.net Mail link
- vm:folder VM folder link
- vm:folder#id VM message link
- vm://myself@some.where.org/folder#id VM on remote machine
- wl:folder WANDERLUST folder link
- wl:folder#id WANDERLUST message link
- mhe:folder MH-E folder link
- mhe:folder#id MH-E message link
- rmail:folder RMAIL folder link
- rmail:folder#id RMAIL message link
- gnus:group GNUS group link
- gnus:group#id GNUS article link
- bbdb:Richard Stallman BBDB link
- shell:ls *.org A shell command
- elisp:(find-file-other-frame "Elisp.org") An elisp form to evaluate
- A link should be enclosed in double brackets and may contain a
- descriptive text to be displayed instead of the url (*note Link
- format::), for example:
- [[http://www.gnu.org/software/emacs/][GNU Emacs]]
- If the description is a file name or URL that points to an image, HTML
- export (*note HTML export::) will inline the image as a clickable
- button. If there is no description at all and the link points to an
- image, that image will be inlined into the exported HTML file.
- Org-mode also finds external links in the normal text and activates
- them as links. If spaces must be part of the link (for example in
- `bbdb:Richard Stallman'), or if you need to remove ambiguities about
- the end of the link, enclose them in angular brackets.
- File: org, Node: Handling links, Next: Link abbreviations, Prev: External links, Up: Hyperlinks
- 4.4 Handling links
- ==================
- Org-mode provides methods to create a link in the correct syntax, to
- insert it into an org-mode file, and to follow the link.
- `C-c l'
- Store a link to the current location. This is a _global_ command
- which can be used in any buffer to create a link. The link will be
- stored for later insertion into an Org-mode buffer (see below).
- For Org-mode files, if there is a `<<target>>' at the cursor, the
- link points to the target. Otherwise it points to the current
- headline. For VM, RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers,
- the link will indicate the current article/entry. For W3 and W3M
- buffers, the link goes to the current URL. For any other files,
- the link will point to the file, with a search string (*note
- Search options::) pointing to the contents of the current line.
- If there is an active region, the selected words will form the
- basis of the search string. If the automatically created link is
- not working correctly or accurately enough, you can write custom
- functions to select the search string and to do the search for
- particular file types - see *Note Custom searches::. The key
- binding `C-c l' is only a suggestion - see *Note Installation::.
- `C-c C-l'
- Insert a link. This prompts for a link to be inserted into the
- buffer. You can just type a link, using text for an internal
- link, or one of the link type prefixes mentioned in the examples
- above. All links stored during the current session are part of
- the history for this prompt, so you can access them with <up> and
- <down>. Completion, on the other hand, will help you to insert
- valid link prefixes like `http:' or `ftp:', including the prefixes
- defined through link abbreviations (*note Link abbreviations::).
- The link will be inserted into the buffer(1), along with a
- descriptive text. If some text was selected when this command is
- called, the selected text becomes the default description.
- Note that you don't have to use this command to insert a link.
- Links in Org-mode are plain text, and you can type or paste them
- straight into the buffer. By using this command, the links are
- automatically enclosed in double brackets, and you will be asked
- for the optional descriptive text.
- `C-u C-c C-l'
- When `C-c C-l' is called with a `C-u' prefix argument, a link to a
- file will be inserted and you may use file name completion to
- select the name of the file. The path to the file is inserted
- relative to the directory of the current org file, if the linked
- file is in the current directory or in a subdirectory of it, or if
- the path is written relative to the current directory using `../'.
- Otherwise an absolute path is used, if possible with `~/' for
- your home directory. You can force an absolute path with two
- `C-u' prefixes.
- `C-c C-l (with cursor on existing link)'
- When the cursor is on an existing link, `C-c C-l' allows you to
- edit the link and description parts of the link.
- `C-c C-o'
- Open link at point. This will launch a web browser for URLs (using
- `browse-url-at-point'), run vm/mh-e/wanderlust/rmail/gnus/bbdb for
- the corresponding links, and execute the command in a shell link.
- When the cursor is on an internal link, this commands runs the
- corresponding search. When the cursor is on a TAG list in a
- headline, it creates the corresponding TAGS view. If the cursor
- is on a time stamp, it compiles the agenda for that date.
- Furthermore, it will visit text and remote files in `file:' links
- with Emacs and select a suitable application for local non-text
- files. Classification of files is based on file extension only.
- See option `org-file-apps'. If you want to override the default
- application and visit the file with Emacs, use a `C-u' prefix.
- `mouse-2'
- `mouse-1'
- On links, `mouse-2' will open the link just as `C-c C-o' would.
- Under Emacs 22, also `mouse-1' will follow a link.
- `mouse-3'
- Like `mouse-2', but force file links to be opened with Emacs, and
- internal links to be displayed in another window(2).
- `C-c %'
- Push the current position onto the mark ring, to be able to return
- easily. Commands following an internal link do this automatically.
- `C-c &'
- Jump back to a recorded position. A position is recorded by the
- commands following internal links, and by `C-c %'. Using this
- command several times in direct succession moves through a ring of
- previously recorded positions.
- `C-c C-x C-n'
- `C-c C-x C-p'
- Move forward/backward to the next link in the buffer. At the
- limit of the buffer, the search fails once, and then wraps around.
- The key bindings for this are really too long, you might want to
- bind this also to `C-n' and `C-p'
- (add-hook 'org-load-hook
- (lambda ()
- (define-key 'org-mode-map "\C-n" 'org-next-link)
- (define-key 'org-mode-map "\C-p" 'org-previous-link)))
- ---------- Footnotes ----------
- (1) After insertion of a stored link, the link will be removed from
- the list of stored links. To keep it in the list later use, use a
- triple `C-u' prefix to `C-c C-l', or configure the option
- `org-keep-stored-link-after-insertion'.
- (2) See the variable `org-display-internal-link-with-indirect-buffer'
- File: org, Node: Link abbreviations, Next: Search options, Prev: Handling links, Up: Hyperlinks
- 4.5 Link abbreviations
- ======================
- Long URLs can be cumbersome to type, and often many similar links are
- needed in a document. For this you can use link abbreviations. An
- abbreviated link looks like this
- [[linkword:tag][description]]
- where the tag is optional. Such abbreviations are resolved according to
- the information in the variable `org-link-abbrev-alist' that relates
- the linkwords to replacement text. Here is an example:
- (setq org-link-abbrev-alist
- '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
- ("google" . "http://www.google.com/search?q=")
- ("ads" . "http://adsabs.harvard.edu/cgi-bin/
- nph-abs_connect?author=%s&db_key=AST")))
- If the replacement text contains the string `%s', it will be
- replaced with the tag. Otherwise the tag will be appended to the string
- in order to create the link. You may also specify a function that will
- be called with the tag as the only argument to create the link.
- With the above setting, you could link to a specific bug with
- `[[bugzilla:129]]', search the web for `OrgMode' with
- `[[google:OrgMode]]' and find out what the Org-mode author is doing
- besides Emacs hacking with `[[ads:Dominik,C]]'.
- If you need special abbreviations just for a single Org-mode buffer,
- you can define them in the file with
- #+LINK: bugzilla http://10.1.2.9/bugzilla/show_bug.cgi?id=
- #+LINK: google http://www.google.com/search?q=%s
- In-buffer completion *note Completion:: can be used after `[' to
- complete link abbreviations.
- File: org, Node: Search options, Next: Custom searches, Prev: Link abbreviations, Up: Hyperlinks
- 4.6 Search options in file links
- ================================
- File links can contain additional information to make Emacs jump to a
- particular location in the file when following a link. This can be a
- line number or a search option after a double(1) colon. For example,
- when the command `C-c l' creates a link (*note Handling links::) to a
- file, it encodes the words in the current line as a search string that
- can be used to find this line back later when following the link with
- `C-c C-o'.
- Here is the syntax of the different ways to attach a search to a file
- link, together with an explanation:
- [[file:~/code/main.c::255]]
- [[file:~/xx.org::My Target]]
- [[file:~/xx.org::*My Target]]
- [[file:~/xx.org::/regexp/]]
- `255'
- Jump to line 255.
- `My Target'
- Search for a link target `<<My Target>>', or do a text search for
- `my target', similar to the search in internal links, see *Note
- Internal links::. In HTML export (*note HTML export::), such a
- file link will become an HTML reference to the corresponding named
- anchor in the linked file.
- `*My Target'
- In an Org-mode file, restrict search to headlines.
- `/regexp/'
- Do a regular expression search for `regexp'. This uses the Emacs
- command `occur' to list all matches in a separate window. If the
- target file is in Org-mode, `org-occur' is used to create a sparse
- tree with the matches.
- As a degenerate case, a file link with an empty file name can be used
- to search the current file. For example, `[[file:::find me]]' does a
- search for `find me' in the current file, just as `[[find me]]' would.
- ---------- Footnotes ----------
- (1) For backward compatibility, line numbers can also follow a
- single colon.
- File: org, Node: Custom searches, Next: Remember, Prev: Search options, Up: Hyperlinks
- 4.7 Custom Searches
- ===================
- The default mechanism for creating search strings and for doing the
- actual search related to a file link may not work correctly in all
- cases. For example, BibTeX database files have many entries like
- `year="1993"' which would not result in good search strings, because
- the only unique identification for a BibTeX entry is the citation key.
- If you come across such a problem, you can write custom functions to
- set the right search string for a particular file type, and to do the
- search for the string in the file. Using `add-hook', these functions
- need to be added to the hook variables
- `org-create-file-search-functions' and
- `org-execute-file-search-functions'. See the docstring for these
- variables for more information. Org-mode actually uses this mechanism
- for BibTeX database files, and you can use the corresponding code as an
- implementation example. Search for `BibTeX links' in the source file.
- File: org, Node: Remember, Prev: Custom searches, Up: Hyperlinks
- 4.8 Remember
- ============
- Another way to create org entries with links to other files is through
- the remember package by John Wiegley. Remember lets you store quick
- notes with little interruption of your work flow. See
- `http://www.emacswiki.org/cgi-bin/wiki/RememberMode' for more
- information. The notes produced by Remember can be stored in different
- ways, and Org-mode files are a good target. Org-mode significantly
- expands the possibilities of remember: You may define templates for
- different note types, and to associate target files and headlines with
- specific templates. It also allows you to select the location where a
- note should be stored interactively, on the fly.
- * Menu:
- * Setting up remember:: Some code for .emacs to get things going
- * Remember templates:: Define the outline of different note types
- * Storing notes:: Directly get the note to where it belongs
- File: org, Node: Setting up remember, Next: Remember templates, Prev: Remember, Up: Remember
- 4.8.1 Setting up remember
- -------------------------
- The following customization will tell remember to use org files as
- target, and to create annotations compatible with Org-mode links.
- (setq org-directory "~/path/to/my/orgfiles/")
- (setq org-default-notes-file "~/.notes")
- (setq remember-annotation-functions '(org-remember-annotation))
- (setq remember-handler-functions '(org-remember-handler))
- (add-hook 'remember-mode-hook 'org-remember-apply-template)
- File: org, Node: Remember templates, Next: Storing notes, Prev: Setting up remember, Up: Remember
- 4.8.2 Remember templates
- ------------------------
- In combination with Org-mode, you can use templates to generate
- different types of remember notes. For example, if you would like to
- use one template to create general TODO entries, another one for
- journal entries, and a third one for collecting random ideas, you could
- use:
- (setq org-remember-templates
- '((?t "* TODO %?\n %i\n %a" "~/org/TODO.org")
- (?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org")
- (?i "* %^{Title}\n %i\n %a" "~/org/JOURNAL.org" "New Ideas")))
- In these entries, the character specifies how to select the template.
- The first string specifies the template. Two more (optional) strings
- give the file in which, and the headline under which the new note
- should be stored. The file defaults (if not present or `nil') to
- `org-default-notes-file', the heading to
- `org-remember-default-headline'. Both defaults help to get to the
- storing location quickly, but you can change the location interactively
- while storing the note.
- When you call `M-x remember' (or `M-x org-remember') to remember
- something, org will prompt for a key to select the template (if you have
- more than one template) and then prepare the buffer like
- * TODO
- [[file:link to where you called remember]]
- or
- * [2006-03-21 Tue 15:37]
- [[file:link to where you called remember]]
- During expansion of the template, special `%'-escapes allow dynamic
- insertion of content:
- %^{prompt} prompt the user for a string and replace this sequence with it.
- %t time stamp, date only
- %T time stamp with date and time
- %u, %U like the above, but inactive time stamps
- %^t like `%t', but prompt for date. Similarly `%^T', `%^u', `%^U'
- You may define a prompt like `%^{Birthday}t'
- %n user name (taken from `user-full-name')
- %a annotation, normally the link created with `org-store-link'
- %i initial content, the region when remember is called with C-u.
- The entire text will be indented like `%i' itself.
- %:keyword specific information for certain link types, see below
- For specific link types, the following keywords will be defined:
- Link type | Available keywords
- -------------------+----------------------------------------------
- bbdb | %:name %:company
- vm, wl, mh, rmail | %:type %:subject %:message-id
- | %:from %:fromname %:fromaddress
- | %:to %:toname %:toaddress
- | %:fromto (either "to NAME" or "from NAME")(1)
- gnus | %:group, for messages also all email fields
- w3, w3m | %:url
- info | %:file %:node
- calendar | %:date"
- To place the cursor after template expansion use:
- %? After completing the template, position cursor here.
- If you change you mind about which template to use, call `org-remember'
- in the remember buffer. You may then select a new template that will
- be filled with the previous context information.
- ---------- Footnotes ----------
- (1) This will always be the other, not the user. See the variable
- `org-from-is-user-regexp'.
- File: org, Node: Storing notes, Prev: Remember templates, Up: Remember
- 4.8.3 Storing notes
- -------------------
- When you are finished preparing a note with remember, you have to press
- `C-c C-c' to file the note away. The handler first prompts for a
- target file - if you press <RET>, the value specified for the template
- is used. Then the command offers the headings tree of the selected
- file, with the cursor position at the default headline (if you had
- specified one in the template). You can either immediately press <RET>
- to get the note placed there. Or you can use the following keys to
- find a better location:
- <TAB> Cycle visibility.
- <down> / <up> Next/previous visible headline.
- n / p Next/previous visible headline.
- f / b Next/previous headline same level.
- u One level up.
- Pressing <RET> or <left> or <right> then leads to the following
- result.
- Cursor Key Note gets inserted
- position
- buffer-start <RET> as level 2 heading at end of file
- on headline <RET> as sublevel of the heading at cursor
- <left>/<right>as same level, before/after current heading
- not on <RET> at cursor position, level taken from context.
- headline
- So a fast way to store the note to its default location is to press
- `C-c C-c <RET> <RET>'. Even shorter would be `C-u C-c C-c', which does
- the same without even asking for a file or showing the tree.
- Before inserting the text into a tree, the function ensures that the
- text has a headline, i.e. a first line that starts with a `*'. If not,
- a headline is constructed from the current date and some additional
- data. If the variable `org-adapt-indentation' is non-nil, the entire
- text is also indented so that it starts in the same column as the
- headline (after the asterisks).
- File: org, Node: TODO items, Next: Timestamps, Prev: Hyperlinks, Up: Top
- 5 TODO items
- ************
- Org-mode does not maintain TODO lists as a separate document. TODO
- items are an integral part of the notes file, because TODO items
- usually come up while taking notes! With Org-mode, you simply mark any
- entry in a tree as being a TODO item. In this way, the information is
- not duplicated, and the entire context from which the item emerged is
- always present when you check.
- Of course, this technique causes TODO items to be scattered
- throughout your file. Org-mode provides methods to give you an
- overview over all things you have to do.
- * Menu:
- * TODO basics:: Marking and displaying TODO entries
- * TODO extensions:: Workflow and assignments
- * Priorities:: Some things are more important than others
- * Breaking down tasks:: Splitting a task into manageable pieces
- * Checkboxes:: Tick-off lists
- File: org, Node: TODO basics, Next: TODO extensions, Prev: TODO items, Up: TODO items
- 5.1 Basic TODO functionality
- ============================
- Any headline can become a TODO item by starting it with the word TODO,
- for example:
- *** TODO Write letter to Sam Fortune
- The most important commands to work with TODO entries are:
- `C-c C-t'
- Rotate the TODO state of the current item among
- ,-> (unmarked) -> TODO -> DONE --.
- '--------------------------------'
- The same rotation can also be done "remotely" from the timeline and
- agenda buffers with the `t' command key (*note Agenda commands::).
- `S-<right>'
- `S-<left>'
- Select the following/preceding TODO state, similar to cycling.
- Mostly useful if more than two TODO states are possible (*note
- TODO extensions::).
- `C-c C-v'
- View TODO items in a _sparse tree_ (*note Sparse trees::). Folds
- the entire buffer, but shows all TODO items and the headings
- hierarchy above them. With prefix arg, search for a specific
- TODO. You will be prompted for the keyword, and you can also give
- a list of keywords like `kwd1|kwd2|...'. With numerical prefix N,
- show the tree for the Nth keyword in the variable
- `org-todo-keywords'. With two prefix args, find all TODO and DONE
- entries.
- `C-c a t'
- Show the global TODO list. This collects the TODO items from all
- agenda files (*note Agenda views::) into a single buffer. The
- buffer is in `agenda-mode', so there are commands to examine and
- manipulate the TODO entries directly from that buffer (*note
- Agenda commands::). *Note Global TODO list::, for more
- information.
- File: org, Node: TODO extensions, Next: Priorities, Prev: TODO basics, Up: TODO items
- 5.2 Extended use of TODO keywords
- =================================
- The default implementation of TODO entries is just two states: TODO and
- DONE. You can use the TODO feature for more complicated things by
- configuring the variable `org-todo-keywords'. With special setup, the
- TODO keyword system can work differently in different files.
- Note that tags are another way to classify headlines in general and
- TODO items in particular (*note Tags::).
- * Menu:
- * Workflow states:: From TODO to DONE in steps
- * TODO types:: I do this, Fred the rest
- * Multiple sets in one file:: Mixing it all, and still finding your way
- * Per file keywords:: Different files, different requirements
- File: org, Node: Workflow states, Next: TODO types, Prev: TODO extensions, Up: TODO extensions
- 5.2.1 TODO keywords as workflow states
- --------------------------------------
- You can use TODO keywords to indicate different _sequential_ states in
- the process of working on an item, for example(1):
- (setq org-todo-keywords
- '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))
- The vertical bar separates the TODO keywords (states that _need
- action_) from the DONE states (which need _no further action_. If you
- don't provide the separator bar, the last state is used as the DONE
- state. With this setup, the command `C-c C-t' will cycle an entry from
- TODO to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED.
- You may also use a prefix argument to quickly select a specific state.
- For example `C-3 C-c C-t' will change the state immediately to VERIFY.
- If you define many keywords, you can use in-buffer completion (see
- *Note Completion::) to insert these words into the buffer. Changing a
- todo state can be logged with a timestamp, see *Note Tracking TODO
- state changes:: for more information.
- ---------- Footnotes ----------
- (1) Changing this variable only becomes effective after restarting
- Org-mode in a buffer.
- File: org, Node: TODO types, Next: Multiple sets in one file, Prev: Workflow states, Up: TODO extensions
- 5.2.2 TODO keywords as types
- ----------------------------
- The second possibility is to use TODO keywords to indicate different
- _types_ of action items. For example, you might want to indicate that
- items are for "work" or "home". Or, when you work with several people
- on a single project, you might want to assign action items directly to
- persons, by using their names as TODO keywords. This would be set up
- like this:
- (setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE")))
- In this case, different keywords do not indicate a sequence, but
- rather different types. So the normal work flow would be to assign a
- task to a person, and later to mark it DONE. Org-mode supports this
- style by adapting the workings of the command `C-c C-t'(1). When used
- several times in succession, it will still cycle through all names, in
- order to first select the right type for a task. But when you return
- to the item after some time and execute `C-c C-t' again, it will switch
- from any name directly to DONE. Use prefix arguments or completion to
- quickly select a specific name. You can also review the items of a
- specific TODO type in a sparse tree by using a numeric prefix to `C-c
- C-v'. For example, to see all things Lucy has to do, you would use
- `C-3 C-c C-v'. To collect Lucy's items from all agenda files into a
- single buffer, you would use the prefix arg as well when creating the
- global todo list: `C-3 C-c t'.
- ---------- Footnotes ----------
- (1) This is also true for the `t' command in the timeline and agenda
- buffers.
- File: org, Node: Multiple sets in one file, Next: Per file keywords, Prev: TODO types, Up: TODO extensions
- 5.2.3 Multiple keyword sets in one file
- ---------------------------------------
- Sometimes you may want to use different sets of TODO keywords in
- parallel. For example, you may want to have the basic `TODO'/`DONE',
- but also a workflow for bug fixing, and a separate state indicating
- that an item has been canceled (so it is not DONE, but also does not
- require action). Your setup would then look like this:
- (setq org-todo-keywords
- '((sequence "TODO" "|" "DONE")
- (sequence "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED")
- (sequence "|" "CANCELED")))
- The keywords should all be different, this helps Org-mode to keep
- track of which subsequence should be used for a given entry. In this
- setup, `C-c C-t' only operates within a subsequence, so it switches from
- `DONE' to (nothing) to `TODO', and from `FIXED' to (nothing) to
- `REPORT'. Therefore you need a mechanism to initially select the
- correct sequence. Besides the obvious ways like typing a keyword or
- using completion, you may also apply the following commands:
- `C-S-<right>'
- `C-S-<left>'
- These keys jump from one TODO subset to the next. In the above
- example, `C-S-<right>' would jump from `TODO' or `DONE' to
- `REPORT', and any of the words in the second row to `CANCELED'.
- `S-<right>'
- `S-<left>'
- `S-<<left>>' and `S-<<right>>' and walk through _all_ keywords
- from all sets, so for example `S-<<right>>' would switch from
- `DONE' to `REPORT' in the example above.
- File: org, Node: Per file keywords, Prev: Multiple sets in one file, Up: TODO extensions
- 5.2.4 Setting up keywords for individual files
- ----------------------------------------------
- It can be very useful to use different aspects of the TODO mechanism in
- different files. For file-local settings, you need to add special lines
- to the file which set the keywords and interpretation for that file
- only. For example, to set one of the two examples discussed above, you
- need one of the following lines, starting in column zero anywhere in the
- file:
- #+SEQ_TODO: TODO FEEDBACK VERIFY | DONE CANCELED
- or
- #+TYP_TODO: Fred Sara Lucy Mike | DONE
- A setup for using several sets in parallel would be:
- #+SEQ_TODO: "TODO" "|" "DONE"
- #+SEQ_TODO: "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED"
- #+SEQ_TODO: "|" "CANCELED"
- To make sure you are using the correct keyword, type `#+' into the
- buffer and then use `M-<TAB>' completion.
- Remember that the keywords after the vertical bar (or the last
- keyword if no bar is there) must always mean that the item is DONE
- (although you may use a different word). After changing one of these
- lines, use `C-c C-c' with the cursor still in the line to make the
- changes known to Org-mode(1).
- ---------- Footnotes ----------
- (1) Org-mode parses these lines only when Org-mode is activated
- after visiting a file. `C-c C-c' with the cursor in a line starting
- with `#+' is simply restarting Org-mode for the current buffer.
- File: org, Node: Priorities, Next: Breaking down tasks, Prev: TODO extensions, Up: TODO items
- 5.3 Priorities
- ==============
- If you use Org-mode extensively to organize your work, you may end up
- with a number of TODO entries so large that you'd like to prioritize
- them. This can be done by placing a _priority cookie_ into the
- headline, like this
- *** TODO [#A] Write letter to Sam Fortune
- With its standard setup, Org-mode supports priorities `A', `B', and
- `C'. `A' is the highest priority. An entry without a cookie is
- treated as priority `B'. Priorities make a difference only in the
- agenda (*note Weekly/Daily agenda::).
- `C-c ,'
- Set the priority of the current headline. The command prompts for
- a priority character `A', `B' or `C'. When you press <SPC>
- instead, the priority cookie is removed from the headline. The
- priorities can also be changed "remotely" from the timeline and
- agenda buffer with the `,' command (*note Agenda commands::).
- `S-<up>'
- `S-<down>'
- Increase/decrease priority of current headline. Note that these
- keys are also used to modify time stamps (*note Creating
- timestamps::). Furthermore, these keys are also used by CUA-mode
- (*note Conflicts::).
- You can change the range of allowed priorities by setting the
- variables `org-highest-priority', `org-lowest-priority', and
- `org-default-priority'. For an individual buffer, you may set these
- values (highest, lowest, default) like this (please make sure that the
- highest priority is earlier in the alphabet than the lowest priority):
- #+PRIORITIES: A C B
- File: org, Node: Breaking down tasks, Next: Checkboxes, Prev: Priorities, Up: TODO items
- 5.4 Breaking tasks down into subtasks
- =====================================
- It is often advisable to break down large tasks into smaller, manageable
- subtasks. You can do this by creating an outline tree below a TODO
- item, with detailed subtasks on the tree(1). Another possibility is
- the use of checkboxes to identify (a hierarchy of) a large number of
- subtasks (*note Checkboxes::).
- ---------- Footnotes ----------
- (1) To keep subtasks out of the global TODO list, see the
- `org-agenda-todo-list-sublevels'.
- File: org, Node: Checkboxes, Prev: Breaking down tasks, Up: TODO items
- 5.5 Checkboxes
- ==============
- Every item in a plain list (*note Plain lists::) can be made a checkbox
- by starting it with the string `[ ]'. This feature is similar to TODO
- items (*note TODO items::), but more lightweight. Checkboxes are not
- included into the global TODO list, so they are often great to split a
- task into a number of simple steps. Or you can use them in a shopping
- list. To toggle a checkbox, use `C-c C-c', or try Piotr Zielinski's
- `org-mouse.el'. Here is an example of a checkbox list.
- * TODO Organize party [3/6]
- - call people [1/3]
- - [ ] Peter
- - [X] Sarah
- - [ ] Sam
- - [X] order food
- - [ ] think about what music to play
- - [X] talk to the neighbors
- The `[3/6]' and `[1/3]' in the first and second line are cookies
- indicating how many checkboxes are present in this entry, and how many
- of them have been checked off. This can give you an idea on how many
- checkboxes remain, even without opening a folded entry. The cookies
- can be placed into a headline or into (the first line of) a plain list
- item. Each cookie covers all checkboxes structurally below that
- headline/item. You have to insert the cookie yourself by typing either
- `[/]' or `[%]'. In the first case you get an `n out of m' result, in
- the second case you get information about the percentage of checkboxes
- checked (in the above example, this would be `[50%]' and `[33%],
- respectively').
- The following commands work with checkboxes:
- `C-c C-c'
- Toggle checkbox at point.
- `C-c C-x C-b'
- Toggle checkbox at point.
- - If there is an active region, toggle the first checkbox in
- the region and set all remaining boxes to the same status as
- the first. If you want to toggle all boxes in the region
- independently, use a prefix argument.
- - If the cursor is in a headline, toggle checkboxes in the
- region between this headline and the next (so _not_ the
- entire subtree).
- - If there is no active region, just toggle the checkbox at
- point.
-
- `M-S-<RET>'
- Insert a new item with a checkbox. This works only if the cursor
- is already in a plain list item (*note Plain lists::).
- `C-c #'
- Update the checkbox statistics in the current outline entry. When
- called with a `C-u' prefix, update the entire file. Checkbox
- statistic cookies are updated automatically if you toggle
- checkboxes with `C-c C-c' and make new ones with `M-S-<RET>'. If
- you delete boxes or add/change them by hand, use this command to
- get things back into synch. Or simply toggle any checkbox twice
- with `C-c C-c'.
- File: org, Node: Timestamps, Next: Tags, Prev: TODO items, Up: Top
- 6 Timestamps
- ************
- Items can be labeled with timestamps to make them useful for project
- planning.
- * Menu:
- * Time stamps:: Assigning a time to a tree entry
- * Creating timestamps:: Commands which insert timestamps
- * Deadlines and scheduling:: Planning your work
- * Progress logging:: Documenting when what work was done.
- File: org, Node: Time stamps, Next: Creating timestamps, Prev: Timestamps, Up: Timestamps
- 6.1 Time stamps, deadlines and scheduling
- =========================================
- A time stamp is a specification of a date (possibly with time) in a
- special format, either `<2003-09-16 Tue>' or `<2003-09-16 Tue
- 09:39>'(1). A time stamp can appear anywhere in the headline or body
- of an org-tree entry. Its presence causes entries to be shown on
- specific dates in the agenda (*note Weekly/Daily agenda::). We
- distinguish:
- PLAIN TIME STAMP
- A simple time stamp just assigns a date/time to an item. This is
- just like writing down an appointment in a paper agenda, or like
- writing down an event in a diary, when you want to take note of
- when something happened. In the timeline and agenda displays, the
- headline of an entry associated with a plain time stamp will be
- shown exactly on that date.
- * Meet Peter at the movies <2006-11-01 Wed 19:15>
- TIME STAMP WITH REPEATER INTERVAL
- A time stamp may contain a _repeater interval_, indicating that it
- applies not only on the given date, but again and again after a
- certain interval of N days (d), weeks (w), months(m), or years(y).
- The following will show up in the agenda every Wednesday:
- * Pick up Sam at school <2007-05-16 Wed 12:30 +1w>
- DIARY-STYLE SEXP ENTRIES
- For more complex date specifications, Org-mode supports using the
- special sexp diary entries implemented in the Emacs calendar/diary
- package. For example
- * The nerd meeting on every 2nd Thursday of the month
- <%%(diary-float t 4 2)>
- TIME/DATE RANGE
- Two time stamps connected by `--' denote a range. The headline
- will be shown on the first and last day of the range, and on any
- dates that are displayed and fall in the range. Here is an
- example:
- ** Meeting in Amsterdam
- <2004-08-23 Mon>--<2004-08-26 Thu>
- INACTIVE TIME STAMP
- Just like a plain time stamp, but with square brackets instead of
- angular ones. These time stamps are inactive in the sense that
- they do _not_ trigger an entry to show up in the agenda.
- * Gillian comes late for the fifth time [2006-11-01 Wed]
- ---------- Footnotes ----------
- (1) This is the standard ISO date/time format. If you cannot get
- used to these, see *Note Custom time format::
- File: org, Node: Creating timestamps, Next: Deadlines and scheduling, Prev: Time stamps, Up: Timestamps
- 6.2 Creating timestamps
- =======================
- For Org-mode to recognize time stamps, they need to be in the specific
- format. All commands listed below produce time stamps in the correct
- format.
- `C-c .'
- Prompt for a date and insert a corresponding time stamp. When the
- cursor is at a previously used time stamp, it is updated to NOW.
- When this command is used twice in succession, a time range is
- inserted.
- `C-u C-c .'
- Like `C-c .', but use the alternative format which contains date
- and time. The default time can be rounded to multiples of 5
- minutes, see the option `org-time-stamp-rounding-minutes'.
- `C-c !'
- Like `C-c .', but insert an inactive time stamp that will not cause
- an agenda entry.
- `C-c <'
- Insert a time stamp corresponding to the cursor date in the
- Calendar.
- `C-c >'
- Access the Emacs calendar for the current date. If there is a
- timestamp in the current line, goto the corresponding date instead.
- `C-c C-o'
- Access the agenda for the date given by the time stamp or -range at
- point (*note Weekly/Daily agenda::).
- `S-<left>'
- `S-<right>'
- Change date at cursor by one day. These key bindings conflict with
- CUA-mode (*note Conflicts::).
- `S-<up>'
- `S-<down>'
- Change the item under the cursor in a timestamp. The cursor can
- be on a year, month, day, hour or minute. Note that if the cursor
- is in a headline and not at a time stamp, these same keys modify
- the priority of an item. (*note Priorities::). The key bindings
- also conflict with CUA-mode (*note Conflicts::).
- `C-c C-y'
- Evaluate a time range by computing the difference between start and
- end. With prefix arg, insert result after the time range (in a
- table: into the following column).
- * Menu:
- * The date/time prompt:: How org-mode helps you entering date and time
- * Custom time format:: Making dates look differently
- File: org, Node: The date/time prompt, Next: Custom time format, Prev: Creating timestamps, Up: Creating timestamps
- 6.2.1 The date/time prompt
- --------------------------
- When Org-mode prompts for a date/time, the prompt suggests to enter an
- ISO date. But it will in fact accept any string containing some date
- and/or time information. You can, for example, use `C-y' to paste a
- (possibly multi-line) string copied from an email message. Org-mode
- will find whatever information is in there and will replace anything not
- specified with the current date and time. For example:
- 3-2-5 --> 2003-02-05
- feb 15 --> currentyear-02-15
- sep 12 9 --> 2009-09-12
- 12:45 --> today 12:45
- 22 sept 0:34 --> currentyear-09-22 0:34
- 12 --> currentyear-currentmonth-12
- Fri --> nearest Friday (today or later)
- +4 --> 4 days from now (if +N is the only thing given)
- The function understands English month and weekday abbreviations. If
- you want to use unabbreviated names and/or other languages, configure
- the variables `parse-time-months' and `parse-time-weekdays'.
- Parallel to the minibuffer prompt, a calendar is popped up(1). When
- you exit the date prompt, either by clicking on a date in the calendar,
- or by pressing <RET>, the date selected in the calendar will be
- combined with the information entered at the prompt. You can control
- the calendar fully from the minibuffer:
- `<'
- Scroll calendar backwards by one month.
- `>'
- Scroll calendar forwards by one month.
- `mouse-1'
- Select date by clicking on it.
- `S-<right>'
- One day forward.
- `S-<left>'
- One day back.
- `S-<down>'
- One week forward.
- `S-<up>'
- One week back.
- `M-S-<right>'
- One month forward.
- `M-S-<left>'
- One month back.
- `<RET>'
- Choose date in calendar (only if nothing was typed into
- minibuffer).
- ---------- Footnotes ----------
- (1) If you don't need/want the calendar, configure the variable
- `org-popup-calendar-for-date-prompt'.
- File: org, Node: Custom time format, Prev: The date/time prompt, Up: Creating timestamps
- 6.2.2 Custom time format
- ------------------------
- Org-mode uses the standard ISO notation for dates and times as it is
- defined in ISO 8601. If you cannot get used to this and require another
- representation of date and time to keep you happy, you can get it by
- customizing the variables `org-display-custom-times' and
- `org-time-stamp-custom-formats'.
- `C-c C-x C-t'
- Toggle the display of custom formats for dates and times.
- Org-mode needs the default format for scanning, so the custom date/time
- format does not _replace_ the default format - instead it is put _over_
- the default format using text properties. This has the following
- consequences:
- * You cannot place the cursor onto a time stamp anymore, only before
- or after.
- * The `S-<up>/<down>' keys can no longer be used to adjust each
- component of a time stamp. If the cursor is at the beginning of
- the stamp, `S-<up>/<down>' will change the stamp by one day, just
- like `S-<left>/<right>'. At the end of the stamp, the time will
- be changed by one minute.
- * When you delete a time stamp character-by-character, it will only
- disappear from the buffer after _all_ (invisible) characters
- belonging to the ISO timestamp have been removed.
- * If the custom time stamp format is longer than the default and you
- are using dates in tables, table alignment will be messed up. If
- the custom format is shorter, things do work as expected.
- File: org, Node: Deadlines and scheduling, Next: Progress logging, Prev: Creating timestamps, Up: Timestamps
- 6.3 Deadlines and Scheduling
- ============================
- A time stamp may be preceded by special keywords to facilitate planning
- of work:
- DEADLINE
- The task (most likely a TODO item) is supposed to be finished on
- that date, and it will be listed then. In addition, the
- compilation for _today_ will carry a warning about the approaching
- or missed deadline, starting `org-deadline-warning-days' before
- the due date, and continuing until the entry is marked DONE. An
- example:
- *** TODO write article about the Earth for the Guide
- The editor in charge is [[bbdb:Ford Prefect]]
- DEADLINE: <2004-02-29 Sun>
- SCHEDULED
- You are planning to start working on that task on the given date.
- The headline will be listed under the given date(1). In addition,
- a reminder that the scheduled date has passed will be present in
- the compilation for _today_, until the entry is marked DONE.
- I.e., the task will automatically be forwarded until completed.
- *** TODO Call Trillian for a date on New Years Eve.
- SCHEDULED: <2004-12-25 Sat>
- * Menu:
- * Inserting deadline/schedule::
- * Repeated tasks::
- ---------- Footnotes ----------
- (1) It will still be listed on that date after it has been marked
- DONE. If you don't like this, set the variable
- `org-agenda-skip-scheduled-if-done'.
- File: org, Node: Inserting deadline/schedule, Next: Repeated tasks, Prev: Deadlines and scheduling, Up: Deadlines and scheduling
- 6.3.1 Inserting deadline/schedule
- ---------------------------------
- The following commands allow to quickly insert a deadline or to schedule
- an item:
- `C-c C-d'
- Insert `DEADLINE' keyword along with a stamp. The insertion will
- happen in the line directly following the headline.
- `C-c C-w'
- Create a sparse tree with all deadlines that are either past-due,
- or which will become due within `org-deadline-warning-days'. With
- `C-u' prefix, show all deadlines in the file. With a numeric
- prefix, check that many days. For example, `C-1 C-c C-w' shows
- all deadlines due tomorrow.
- `C-c C-s'
- Insert `SCHEDULED' keyword along with a stamp. The insertion will
- happen in the line directly following the headline. Any CLOSED
- timestamp will be removed.
- File: org, Node: Repeated tasks, Prev: Inserting deadline/schedule, Up: Deadlines and scheduling
- 6.3.2 Repeated Tasks
- --------------------
- Some tasks need to be repeated again and again, and Org-mode therefore
- allows to use a repeater in a DEADLINE or SCHEDULED time stamp, for
- example:
- ** TODO Pay the rent
- DEADLINE: <2005-10-01 Sat +1m>
- Deadlines and scheduled items produce entries in the agenda when they
- are over-due, so it is important to be able to mark such an entry as
- completed once you have done so. When you mark a DEADLINE or a SCHEDULE
- with the todo keyword DONE, it will no longer produce entries in the
- agenda. The problem with this is, however, that then also the _next_
- instance of the repeated entry will not be active. Org-mode deals with
- this in the following way: When you try to mark such an entry DONE
- (using `C-c C-t'), it will shift the base date of the repeating time
- stamp by the repeater interval, and immediately set the entry state
- back to TODO. In the example above, setting the state to DONE would
- actually switch the date like this:
- ** TODO Pay the rent
- DEADLINE: <2005-11-01 Tue +1m>
- You will also be prompted for a note that will be put under the
- DEADLINE line to keep a record that you actually acted on the previous
- instance of this deadline.
- As a consequence of shifting the base date, this entry will no
- longer be visible in the agenda when checking past dates, but all
- future instances will be visible.
- You may have both scheduling and deadline information for a specific
- task - just make sure that the repeater intervals on both are the same.
- File: org, Node: Progress logging, Prev: Deadlines and scheduling, Up: Timestamps
- 6.4 Progress Logging
- ====================
- Org-mode can automatically record a time stamp when you mark a TODO item
- as DONE, or even each time when you change the state of a TODO item.
- You can also measure precisely the time you spent on specific items in a
- project by starting and stopping a clock when you start and stop working
- on an aspect of a project.
- * Menu:
- * Closing items:: When was this entry marked DONE?
- * Tracking TODO state changes:: When did the status change?
- * Clocking work time:: When exactly did you work on this item?
- File: org, Node: Closing items, Next: Tracking TODO state changes, Prev: Progress logging, Up: Progress logging
- 6.4.1 Closing items
- -------------------
- If you want to keep track of _when_ a certain TODO item was finished,
- turn on logging with(1)
- (setq org-log-done t)
- Then each time you turn a TODO entry into DONE using either `C-c C-t'
- in the Org-mode buffer or `t' in the agenda buffer, a line `CLOSED:
- [timestamp]' will be inserted just after the headline. If you turn the
- entry back into a TODO item through further state cycling, that line
- will be removed again. In the timeline (*note Timeline::) and in the
- agenda (*note Weekly/Daily agenda::), you can then use the `l' key to
- display the TODO items closed on each day, giving you an overview of
- what has been done on a day. If you want to record a note along with
- the timestamp, use(2)
- (setq org-log-done '(done))
- ---------- Footnotes ----------
- (1) The corresponding in-buffer setting is: `#+STARTUP: logdone'
- (2) The corresponding in-buffer setting is: `#+STARTUP: lognotedone'
- File: org, Node: Tracking TODO state changes, Next: Clocking work time, Prev: Closing items, Up: Progress logging
- 6.4.2 Tracking TODO state changes
- ---------------------------------
- When TODO keywords are used as workflow states (*note Workflow
- states::), you might want to keep track of when a state change occurred,
- and you may even want to attach notes to that state change. With the
- setting
- (setq org-log-done '(state))
- each state change will prompt you for a note that will be attached to
- the current headline. Very likely you do not want this verbose tracking
- all the time, so it is probably better to configure this behavior with
- in-buffer options. For example, if you are tracking purchases, put
- these into a separate file that starts with:
- #+SEQ_TODO: TODO ORDERED INVOICE PAYED RECEIVED SENT
- #+STARTUP: lognotestate
- File: org, Node: Clocking work time, Prev: Tracking TODO state changes, Up: Progress logging
- 6.4.3 Clocking work time
- ------------------------
- Org-mode allows you to clock the time you spent on specific tasks in a
- project. When you start working on an item, you can start the clock.
- When you stop working on that task, or when you mark the task done, the
- clock is stopped and the corresponding time interval is recorded. It
- also computes the total time spent on each subtree of a project.
- `C-c C-x C-i'
- Start the clock on the current item (clock-in). This inserts the
- CLOCK keyword together with a timestamp.
- `C-c C-x C-o'
- Stop the clock (clock-out). The inserts another timestamp at the
- same location where the clock was last started. It also directly
- computes the resulting time in inserts it after the time range as
- `=> HH:MM'. See the variable `org-log-done' for the possibility to
- record an additional note together with the clock-out time
- stamp(1).
- `C-c C-y'
- Recompute the time interval after changing one of the time stamps.
- This is only necessary if you edit the time stamps directly. If
- you change them with `S-<cursor>' keys, the update is automatic.
- `C-c C-t'
- Changing the TODO state of an item to DONE automatically stops the
- clock if it is running in this same item.
- `C-c C-x C-x'
- Cancel the current clock. This is useful if a clock was started by
- mistake, or if you ended up working on something else.
- `C-c C-x C-d'
- Display time summaries for each subtree in the current buffer.
- This puts overlays at the end of each headline, showing the total
- time recorded under that heading, including the time of any
- subheadings. You can use visibility cycling to study the tree, but
- the overlays disappear when you change the buffer (see variable
- `org-remove-highlights-with-change') or press `C-c C-c'.
- `C-c C-x C-r'
- Insert a dynamic block (*note Dynamic blocks::) containing a clock
- report as an org-mode table into the current file.
- #+BEGIN: clocktable :maxlevel 2 :emphasize nil
- #+END: clocktable
- If such a block already exists, its content is replaced by the new
- table. The `BEGIN' line can specify options:
- :maxlevels Maximum level depth to which times are listed in the table.
- :emphasize When `t', emphasize level one and level two items
- :block The time block to consider. This block is specified relative
- to the current time and may be any of these keywords:
- `today', `yesterday', `thisweek', `lastweek',
- `thismonth', `lastmonth', `thisyear', or `lastyear'.
- :tstart A time string specifying when to start considering times
- :tend A time string specifying when to stop considering times
- So to get a clock summary for the current day, you could write
- #+BEGIN: clocktable :maxlevel 2 :block today
- #+END: clocktable
- and to use a specific time range you could write(2)
- #+BEGIN: clocktable :tstart "<2006-08-10 Thu 10:00>"
- :tend "<2006-08-10 Thu 12:00>"
- #+END: clocktable
-
- `C-u C-c C-x C-u'
- Update all dynamic blocks (*note Dynamic blocks::). This is
- useful if you have several clocktable blocks in a buffer.
- The `l' key may be used in the timeline (*note Timeline::) and in
- the agenda (*note Weekly/Daily agenda::) to show which tasks have been
- worked on or closed during a day.
- ---------- Footnotes ----------
- (1) The corresponding in-buffer setting is: `#+STARTUP:
- lognoteclock-out'
- (2) Note that all parameters must be specified in a single line -
- the line is broken here only to fit it onto the manual.
- File: org, Node: Tags, Next: Agenda views, Prev: Timestamps, Up: Top
- 7 Tags
- ******
- If you wish to implement a system of labels and contexts for
- cross-correlating information, an excellent way is to assign tags to
- headlines. Org-mode has extensive support for using tags.
- Every headline can contain a list of tags, at the end of the
- headline. Tags are normal words containing letters, numbers, `_', and
- `@'. Tags must be preceded and followed by a single colon; like
- `:WORK:'. Several tags can be specified like `:WORK:URGENT:'.
- * Menu:
- * Tag inheritance:: Tags use the tree structure of the outline
- * Setting tags:: How to assign tags to a headline
- * Tag searches:: Searching for combinations of tags
- File: org, Node: Tag inheritance, Next: Setting tags, Prev: Tags, Up: Tags
- 7.1 Tag inheritance
- ===================
- Tags make use of the hierarchical structure of outline trees. If a
- heading has a certain tag, all subheadings will inherit the tag as
- well. For example, in the list
- * Meeting with the French group :WORK:
- ** Summary by Frank :BOSS:NOTES:
- *** TODO Prepare slides for him :ACTION:
- the final heading will have the tags `:WORK:', `:BOSS:', `:NOTES:', and
- `:ACTION:'. When executing tag searches and Org-mode finds that a
- certain headline matches the search criterion, it will not check any
- sublevel headline, assuming that these likely also match, and that the
- list of matches can become very long. This may not be what you want,
- however, and you can influence inheritance and searching using the
- variables `org-use-tag-inheritance' and `org-tags-match-list-sublevels'.
- File: org, Node: Setting tags, Next: Tag searches, Prev: Tag inheritance, Up: Tags
- 7.2 Setting tags
- ================
- Tags can simply be typed into the buffer at the end of a headline.
- After a colon, `M-<TAB>' offers completion on tags. There is also a
- special command for inserting tags:
- `C-c C-c'
- Enter new tags for the current headline. Org-mode will either
- offer completion or a special single-key interface for setting
- tags, see below. After pressing <RET>, the tags will be inserted
- and aligned to `org-tags-column'. When called with a `C-u'
- prefix, all tags in the current buffer will be aligned to that
- column, just to make things look nice. TAGS are automatically
- realigned after promotion, demotion, and TODO state changes (*note
- TODO basics::).
- Org will support tag insertion based on a _list of tags_. By
- default this list is constructed dynamically, containing all tags
- currently used in the buffer. You may also globally specify a hard list
- of tags with the variable `org-tag-alist'. Finally you can set the
- default tags for a given file with lines like
- #+TAGS: @WORK @HOME @TENNISCLUB
- #+TAGS: Laptop Car PC Sailboat
- If you have globally defined your preferred set of tags using the
- variable `org-tag-alist', but would like to use a dynamic tag list in a
- specific file: Just add an empty TAGS option line to that file:
- #+TAGS:
- The default support method for entering tags is minibuffer
- completion. However, Org-mode also implements a much better method:
- _fast tag selection_. This method allows to select and deselect tags
- with a single key per tag. To function efficiently, you should assign
- unique keys to most tags. This can be done globally with
- (setq org-tag-alist '(("@WORK" . ?w) ("@HOME" . ?h) ("Laptop" . ?l)))
- or on a per-file basis with
- #+TAGS: @WORK(w) @HOME(h) @TENNISCLUB(t) Laptop(l) PC(p)
- You can also group together tags that are mutually exclusive. With
- curly braces(1)
- #+TAGS: { @WORK(w) @HOME(h) @TENNISCLUB(t) } Laptop(l) PC(p)
- you indicate that at most one of `@WORK', `@HOME', and `@TENNISCLUB'
- should be selected.
- Don't forget to press `C-c C-c' with the cursor in one of these lines
- to activate any changes.
- If at least one tag has a selection key, pressing `C-c C-c' will
- automatically present you with a special interface, listing inherited
- tags, the tags of the current headline, and a list of all legal tags
- with corresponding keys(2). In this interface, you can use the
- following keys:
- `a-z...'
- Pressing keys assigned to tags will add or remove them from the
- list of tags in the current line. Selecting a tag in a group of
- mutually exclusive tags will turn off any other tags from that
- group.
- `<TAB>'
- Enter a tag in the minibuffer, even if the tag is not in the
- predefined list. You will be able to complete on all tags present
- in the buffer.
- `<SPC>'
- Clear all tags for this line.
- `<RET>'
- Accept the modified set.
- `C-g'
- Abort without installing changes.
- `q'
- If `q' is not assigned to a tag, it aborts like `C-g'.
- `!'
- Turn off groups of mutually exclusive tags. Use this to (as an
- exception) assign several tags from such a group.
- `C-c'
- Toggle auto-exit after the next change (see below). If you are
- using expert mode, the first `C-c' will display the selection
- window.
- This method lets you assign tags to a headline with very few keys. With
- the above setup, you could clear the current tags and set `@HOME',
- `Laptop' and `PC' tags with just the following keys: `C-c C-c <SPC> h l
- p <RET>'. Switching from `@HOME' to `@WORK' would be done with `C-c
- C-c w <RET>' or alternatively with `C-c C-c C-c w'. Adding the
- non-predefined tag `Sarah' could be done with `C-c C-c <TAB> S a r a h
- <RET> <RET>'.
- If you find that most of the time, you need only a single keypress to
- modify your list of tags, set the variable
- `org-fast-tag-selection-single-key'. Then you no longer have to press
- <RET> to exit fast tag selection - it will immediately exit after the
- first change. If you then occasionally need more keys, press `C-c' to
- turn off auto-exit for the current tag selection process (in effect:
- start selection with `C-c C-c C-c' instead of `C-c C-c'). If you set
- the variable to the value `expert', the special window is not even
- shown for single-key tag selection, it comes up only when you press an
- extra `C-c'.
- ---------- Footnotes ----------
- (1) In `org-mode-alist' use `'(:startgroup)' and `'(:endgroup)',
- respectively. Several groups are allowed.
- (2) Keys will automatically be assigned to tags which have no
- configured keys.
- File: org, Node: Tag searches, Prev: Setting tags, Up: Tags
- 7.3 Tag searches
- ================
- Once a tags system has been set up, it can be used to collect related
- information into special lists.
- `C-c \'
- Create a sparse tree with all headlines matching a tags search.
- With a `C-u' prefix argument, ignore headlines that are not a TODO
- line.
- `C-c a m'
- Create a global list of tag matches from all agenda files. *Note
- Matching headline tags::.
- `C-c a M'
- Create a global list of tag matches from all agenda files, but
- check only TODO items and force checking subitems (see variable
- `org-tags-match-list-sublevels').
- A tags search string can use Boolean operators `&' for AND and `|'
- for OR. `&' binds more strongly than `|'. Parenthesis are currently
- not implemented. A tag may also be preceded by `-', to select against
- it, and `+' is syntactic sugar for positive selection. The AND
- operator `&' is optional when `+' or `-' is present. Examples:
- `+WORK-BOSS'
- Select headlines tagged `:WORK:', but discard those also tagged
- `:BOSS:'.
- `WORK|LAPTOP'
- Selects lines tagged `:WORK:' or `:LAPTOP:'.
- `WORK|LAPTOP&NIGHT'
- Like before, but require the `:LAPTOP:' lines to be tagged also
- `NIGHT'.
- If you are using multi-state TODO keywords (*note TODO
- extensions::), it can be useful to also match on the TODO keyword.
- This can be done by adding a condition after a slash to a tags match.
- The syntax is similar to the tag matches, but should be applied with
- consideration: For example, a positive selection on several TODO
- keywords can not meaningfully be combined with boolean AND. However,
- _negative selection_ combined with AND can be meaningful. To make sure
- that only lines are checked that actually have any TODO keyword, use
- `C-c a M', or equivalently start the todo part after the slash with `!'.
- Examples:
- `WORK/WAITING'
- Select `:WORK:'-tagged TODO lines with the specific TODO keyword
- `WAITING'.
- `WORK/!-WAITING-NEXT'
- Select `:WORK:'-tagged TODO lines that are neither `WAITING' nor
- `NEXT'
- `WORK/+WAITING|+NEXT'
- Select `:WORK:'-tagged TODO lines that are either `WAITING' or
- `NEXT'.
- Any element of the tag/todo match can be a regular expression - in
- this case it must be enclosed in curly braces. For example,
- `WORK+{^BOSS.*}' matches headlines that contain the tag `WORK' and any
- tag starting with `BOSS'.
- You can also require a headline to be of a certain level, by writing
- instead of any TAG an expression like `LEVEL=3'. For example, a search
- `+LEVEL=3+BOSS/-DONE' lists all level three headlines that have the tag
- BOSS and are _not_ marked with the todo keyword DONE.
- File: org, Node: Agenda views, Next: Embedded LaTeX, Prev: Tags, Up: Top
- 8 Agenda Views
- **************
- Due to the way Org-mode works, TODO items, time-stamped items, and
- tagged headlines can be scattered throughout a file or even a number of
- files. To get an overview over open action items, or over events that
- are important for a particular date, this information must be collected,
- sorted and displayed in an organized way.
- Org-mode can select items based on various criteria, and display them
- in a separate buffer. Six different view types are provided:
- * an _agenda_ that is like a calendar and shows information for
- specific dates,
- * a _TODO list_ that covers all unfinished action items,
- * a _tags view_, showings headlines based on the tags associated
- with them,
- * a _timeline view_ that shows all events in a single Org-mode file,
- in time-sorted view,
- * a _stuck projects view_ showing projects that currently don't move
- along, and
- * _custom views_ that are special tag/keyword searches and
- combinations of different views.
- The extracted information is displayed in a special _agenda buffer_.
- This buffer is read-only, but provides commands to visit the
- corresponding locations in the original Org-mode files, and even to
- edit these files remotely.
- Two variables control how the agenda buffer is displayed and whether
- the window configuration is restored when the agenda exits:
- `org-agenda-window-setup' and `org-agenda-restore-windows-after-quit'.
- * Menu:
- * Agenda files:: Files being searched for agenda information
- * Agenda dispatcher:: Keyboard access to agenda views
- * Built-in agenda views:: What is available out of the box?
- * Presentation and sorting:: How agenda items are prepared for display
- * Agenda commands:: Remote editing of org trees
- * Custom agenda views:: Defining special searches and views
- File: org, Node: Agenda files, Next: Agenda dispatcher, Prev: Agenda views, Up: Agenda views
- 8.1 Agenda files
- ================
- The information to be shown is collected from all _agenda files_, the
- files listed in the variable `org-agenda-files'(1). Thus even if you
- only work with a single Org-mode file, this file should be put into
- that list(2). You can customize `org-agenda-files', but the easiest
- way to maintain it is through the following commands
- `C-c ['
- Add current file to the list of agenda files. The file is added to
- the front of the list. If it was already in the list, it is moved
- to the front. With prefix arg, file is added/moved to the end.
- `C-c ]'
- Remove current file from the list of agenda files.
- `C-,'
- `C-''
- Cycle through agenda file list, visiting one file after the other.
- The Org menu contains the current list of files and can be used to
- visit any of them.
- ---------- Footnotes ----------
- (1) If the value of that variable is not a list, but a single file
- name, then the list of agenda files will be maintained in that external
- file.
- (2) When using the dispatcher, pressing `1' before selecting a
- command will actually limit the command to the current file, and ignore
- `org-agenda-files' until the next dispatcher command.
- File: org, Node: Agenda dispatcher, Next: Built-in agenda views, Prev: Agenda files, Up: Agenda views
- 8.2 The agenda dispatcher
- =========================
- The views are created through a dispatcher that should be bound to a
- global key, for example `C-c a' (*note Installation::). In the
- following we will assume that `C-c a' is indeed how the dispatcher is
- accessed and list keyboard access to commands accordingly. After
- pressing `C-c a', an additional letter is required to execute a
- command. The dispatcher offers the following default commands:
- `a'
- Create the calendar-like agenda (*note Weekly/Daily agenda::).
- `t / T'
- Create a list of all TODO items (*note Global TODO list::).
- `m / M'
- Create a list of headlines matching a TAGS expression (*note
- Matching headline tags::).
- `L'
- Create the timeline view for the current buffer (*note Timeline::).
- `# / !'
- Create a list of stuck projects (*note Stuck projects::).
- `1'
- Restrict an agenda command to the current buffer. After pressing
- `1', you still need to press the character selecting the command.
- `0'
- If there is an active region, restrict the following agenda
- command to the region. Otherwise, restrict it to the current
- subtree. After pressing `0', you still need to press the
- character selecting the command.
- You can also define custom commands that will be accessible through
- the dispatcher, just like the default commands. This includes the
- possibility to create extended agenda buffers that contain several
- blocks together, for example the weekly agenda, the global TODO list and
- a number of special tags matches. *Note Custom agenda views::.
- File: org, Node: Built-in agenda views, Next: Presentation and sorting, Prev: Agenda dispatcher, Up: Agenda views
- 8.3 The built-in agenda views
- =============================
- In this section we describe the built-in views.
- * Menu:
- * Weekly/Daily agenda:: The calendar page with current tasks
- * Global TODO list:: All unfinished action items
- * Matching headline tags:: Structured information with fine-tuned search
- * Timeline:: Time-sorted view for single file
- * Stuck projects:: Find projects you need to review
- File: org, Node: Weekly/Daily agenda, Next: Global TODO list, Prev: Built-in agenda views, Up: Built-in agenda views
- 8.3.1 The weekly/daily agenda
- -----------------------------
- The purpose of the weekly/daily _agenda_ is to act like a page of a
- paper agenda, showing all the tasks for the current week or day.
- `C-c a a'
- Compile an agenda for the current week from a list of org files.
- The agenda shows the entries for each day. With a `C-u' prefix (or
- when the variable `org-agenda-include-all-todo' is `t'), all
- unfinished TODO items (including those without a date) are also
- listed at the beginning of the buffer, before the first date.
- Remote editing from the agenda buffer means, for example, that you
- can change the dates of deadlines and appointments from the agenda
- buffer. The commands available in the Agenda buffer are listed in
- *Note Agenda commands::.
- Calendar/Diary integration
- ..........................
- Emacs contains the calendar and diary by Edward M. Reingold. The
- calendar displays a three-month calendar with holidays from different
- countries and cultures. The diary allows you to keep track of
- anniversaries, lunar phases, sunrise/set, recurrent appointments
- (weekly, monthly) and more. In this way, it is quite complementary to
- Org-mode. It can be very useful to combine output from Org-mode with
- the diary.
- In order to include entries from the Emacs diary into Org-mode's
- agenda, you only need to customize the variable
- (setq org-agenda-include-diary t)
- After that, everything will happen automatically. All diary entries
- including holidays, anniversaries etc will be included in the agenda
- buffer created by Org-mode. <SPC>, <TAB>, and <RET> can be used from
- the agenda buffer to jump to the diary file in order to edit existing
- diary entries. The `i' command to insert new entries for the current
- date works in the agenda buffer, as well as the commands `S', `M', and
- `C' to display Sunrise/Sunset times, show lunar phases and to convert
- to other calendars, respectively. `c' can be used to switch back and
- forth between calendar and agenda.
- If you are using the diary only for sexp entries and holidays, it is
- faster to not use the above setting, but instead to copy or even move
- the entries into an Org-mode file. Org-mode evaluates diary-style sexp
- entries, and does it faster because there is no overhead for first
- creating the diary display. Note that the sexp entries must start at
- the left margin, no white space is allowed before them. For example,
- the following segment of an Org-mode file will be processed and entries
- will be made in the agenda:
- * Birthdays and similar stuff
- #+CATEGORY: Holiday
- %%(org-calendar-holiday) ; special function for holiday names
- #+CATEGORY: Ann
- %%(diary-anniversary 14 5 1956) Artur Dent %d is years old
- %%(diary-anniversary 2 10 1869) Mahatma Gandhi would be %d years old
- File: org, Node: Global TODO list, Next: Matching headline tags, Prev: Weekly/Daily agenda, Up: Built-in agenda views
- 8.3.2 The global TODO list
- --------------------------
- The global TODO list contains all unfinished TODO items, formatted and
- collected into a single place.
- `C-c a t'
- Show the global TODO list. This collects the TODO items from all
- agenda files (*note Agenda views::) into a single buffer. The
- buffer is in `agenda-mode', so there are commands to examine and
- manipulate the TODO entries directly from that buffer (*note
- Agenda commands::).
- `C-c a T'
- Like the above, but allows selection of a specific TODO keyword.
- You can also do this by specifying a prefix argument to `C-c a t'.
- With a `C-u' prefix you are prompted for a keyword, and you may
- also specify several keywords by separating them with `|' as
- boolean OR operator. With a numeric prefix, the Nth keyword in
- `org-todo-keywords' is selected. The `r' key in the agenda buffer
- regenerates it, and you can give a prefix argument to this command
- to change the selected TODO keyword, for example `3 r'. If you
- often need a search for a specific keyword, define a custom
- command for it (*note Agenda dispatcher::).
- Matching specific TODO keywords can also be done as part of a tags
- search (*note Tag searches::).
- Remote editing of TODO items means that you can change the state of a
- TODO entry with a single key press. The commands available in the TODO
- list are described in *Note Agenda commands::.
- Normally the global todo list simply shows all headlines with TODO
- keywords. This list can become very long. There are two ways to keep
- it more compact:
- - Some people view a TODO item that has been _scheduled_ for
- execution (*note Time stamps::) as no longer _open_. Configure the
- variable `org-agenda-todo-ignore-scheduled' to exclude scheduled
- items from the global TODO list.
- - TODO items may have sublevels to break up the task into subtasks.
- In such cases it may be enough to list only the highest level TODO
- headline and omit the sublevels from the global list. Configure
- the variable `org-agenda-todo-list-sublevels' to get this behavior.
- File: org, Node: Matching headline tags, Next: Timeline, Prev: Global TODO list, Up: Built-in agenda views
- 8.3.3 Matching headline tags
- ----------------------------
- If headlines in the agenda files are marked with _tags_ (*note Tags::),
- you can select headlines based on the tags that apply to them and
- collect them into an agenda buffer.
- `C-c a m'
- Produce a list of all headlines that match a given set of tags.
- The command prompts for a selection criterion, which is a boolean
- logic expression with tags, like `+WORK+URGENT-WITHBOSS' or
- `WORK|HOME' (*note Tags::). If you often need a specific search,
- define a custom command for it (*note Agenda dispatcher::).
- `C-c a M'
- Like `C-c a m', but only select headlines that are also TODO items
- and force checking subitems (see variable
- `org-tags-match-list-sublevels'). Matching specific todo keywords
- together with a tags match is also possible, see *Note Tag
- searches::.
- The commands available in the tags list are described in *Note
- Agenda commands::.
- File: org, Node: Timeline, Next: Stuck projects, Prev: Matching headline tags, Up: Built-in agenda views
- 8.3.4 Timeline for a single file
- --------------------------------
- The timeline summarizes all time-stamped items from a single Org-mode
- file in a _time-sorted view_. The main purpose of this command is to
- give an overview over events in a project.
- `C-c a L'
- Show a time-sorted view of the org file, with all time-stamped
- items. When called with a `C-u' prefix, all unfinished TODO
- entries (scheduled or not) are also listed under the current date.
- The commands available in the timeline buffer are listed in *Note
- Agenda commands::.
- File: org, Node: Stuck projects, Prev: Timeline, Up: Built-in agenda views
- 8.3.5 Stuck projects
- --------------------
- If you are following a system like David Allen's GTD to organize your
- work, one of the "duties" you have is a regular review to make sure
- that all projects move along. A _stuck_ project is a project that has
- no defined next actions, so it will never show up in the TODO lists
- Org-mode produces. During the review, you need to identify such
- projects and define next actions for them.
- `C-c a #'
- List projects that are stuck.
- `C-c a !'
- Customize the variable `org-stuck-projects' to define what a stuck
- project is and how to find it.
- You almost certainly will have to configure this view before it will
- work for you. The built-in default assumes that all your projects are
- level-2 headlines, and that a project is not stuck if it has at least
- one entry marked with a todo keyword TODO or NEXT or NEXTACTION.
- Lets assume that you, in your own way of using Org-mode, identify
- projects with a tag PROJECT, and that you use a todo keyword MAYBE to
- indicate a project that should not be considered yet. Lets further
- assume that the todo keyword DONE marks finished projects, and that NEXT
- and TODO indicate next actions. The tag @SHOP indicates shopping and
- is a next action even without the NEXT tag. Finally, if the project
- contains the special word IGNORE anywhere, it should not be listed
- either. In this case you would start by identifying eligible projects
- with a tags/todo match `+PROJECT/-MAYBE-DONE', and then check for TODO,
- NEXT, @SHOP, and IGNORE in the subtree to identify projects that are
- not stuck. The correct customization for this is
- (setq org-stuck-projects
- '("+PROJECT/-MAYBE-DONE" ("NEXT" "TODO") ("@SHOP")
- "\\<IGNORE\\>"))
- File: org, Node: Presentation and sorting, Next: Agenda commands, Prev: Built-in agenda views, Up: Agenda views
- 8.4 Presentation and sorting
- ============================
- Before displaying items in an agenda view, Org-mode visually prepares
- the items and sorts them. Each item occupies a single line. The line
- starts with a _prefix_ that contains the _category_ (*note
- Categories::) of the item and other important information. You can
- customize the prefix using the option `org-agenda-prefix-format'. The
- prefix is followed by a cleaned-up version of the outline headline
- associated with the item.
- * Menu:
- * Categories:: Not all tasks are equal
- * Time-of-day specifications:: How the agenda knows the time
- * Sorting of agenda items:: The order of things
- File: org, Node: Categories, Next: Time-of-day specifications, Prev: Presentation and sorting, Up: Presentation and sorting
- 8.4.1 Categories
- ----------------
- The category is a broad label assigned to each agenda item. By default,
- the category is simply derived from the file name, but you can also
- specify it with a special line in the buffer, like this:
- #+CATEGORY: Thesis
- If there are several such lines in a file, each specifies the
- category for the text below it (but the first category also applies to
- any text before the first CATEGORY line). The display in the agenda
- buffer looks best if the category is not longer than 10 characters.
- File: org, Node: Time-of-day specifications, Next: Sorting of agenda items, Prev: Categories, Up: Presentation and sorting
- 8.4.2 Time-of-Day Specifications
- --------------------------------
- Org-mode checks each agenda item for a time-of-day specification. The
- time can be part of the time stamp that triggered inclusion into the
- agenda, for example as in `<2005-05-10 Tue 19:00>'. Time ranges can be
- specified with two time stamps, like
- `<2005-05-10 Tue 20:30>--<2005-05-10 Tue 22:15>'.
- In the headline of the entry itself, a time(range) may also appear as
- plain text (like `12:45' or a `8:30-1pm'. If the agenda integrates the
- Emacs diary (*note Weekly/Daily agenda::), time specifications in diary
- entries are recognized as well.
- For agenda display, Org-mode extracts the time and displays it in a
- standard 24 hour format as part of the prefix. The example times in
- the previous paragraphs would end up in the agenda like this:
- 8:30-13:00 Arthur Dent lies in front of the bulldozer
- 12:45...... Ford Prefect arrives and takes Arthur to the pub
- 19:00...... The Vogon reads his poem
- 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
- If the agenda is in single-day mode, or for the display of today, the
- timed entries are embedded in a time grid, like
- 8:00...... ------------------
- 8:30-13:00 Arthur Dent lies in front of the bulldozer
- 10:00...... ------------------
- 12:00...... ------------------
- 12:45...... Ford Prefect arrives and takes Arthur to the pub
- 14:00...... ------------------
- 16:00...... ------------------
- 18:00...... ------------------
- 19:00...... The Vogon reads his poem
- 20:00...... ------------------
- 20:30-22:15 Marwin escorts the Hitchhikers to the bridge
- The time grid can be turned on and off with the variable
- `org-agenda-use-time-grid', and can be configured with
- `org-agenda-time-grid'.
- File: org, Node: Sorting of agenda items, Prev: Time-of-day specifications, Up: Presentation and sorting
- 8.4.3 Sorting of agenda items
- -----------------------------
- Before being inserted into a view, the items are sorted. How this is
- done depends on the type of view.
- * For the daily/weekly agenda, the items for each day are sorted.
- The default order is to first collect all items containing an
- explicit time-of-day specification. These entries will be shown
- at the beginning of the list, as a _schedule_ for the day. After
- that, items remain grouped in categories, in the sequence given by
- `org-agenda-files'. Within each category, items are sorted by
- priority (*note Priorities::), which is composed of the base
- priority (2000 for priority `A', 1000 for `B', and 0 for `C'),
- plus additional increments for overdue scheduled or deadline items.
- * For the TODO list, items remain in the order of categories, but
- within each category, sorting takes place according to priority
- (*note Priorities::).
- * For tags matches, items are not sorted at all, but just appear in
- the sequence in which they are found in the agenda files.
- Sorting can be customized using the variable
- `org-agenda-sorting-strategy'.
- File: org, Node: Agenda commands, Next: Custom agenda views, Prev: Presentation and sorting, Up: Agenda views
- 8.5 Commands in the agenda buffer
- =================================
- Entries in the agenda buffer are linked back to the org file or diary
- file where they originate. You are not allowed to edit the agenda
- buffer itself, but commands are provided to show and jump to the
- original entry location, and to edit the org-files "remotely" from the
- agenda buffer. In this way, all information is stored only once,
- removing the risk that your agenda and note files may diverge.
- Some commands can be executed with mouse clicks on agenda lines. For
- the other commands, the cursor needs to be in the desired line.
- Motion
- ......
- `n'
- Next line (same as <up>).
- `p'
- Previous line (same as <down>).
- View/GoTo org file
- ..................
- `mouse-3'
- `<SPC>'
- Display the original location of the item in another window.
- `L'
- Display original location and recenter that window.
- `mouse-2'
- `mouse-1'
- `<TAB>'
- Go to the original location of the item in another window. Under
- Emacs 22, `mouse-1' will also works for this.
- `<RET>'
- Go to the original location of the item and delete other windows.
- `f'
- Toggle Follow mode. In Follow mode, as you move the cursor through
- the agenda buffer, the other window always shows the corresponding
- location in the org file. The initial setting for this mode in new
- agenda buffers can be set with the variable
- `org-agenda-start-with-follow-mode'.
- `b'
- Display the entire subtree of the current item in an indirect
- buffer. With numerical prefix ARG, go up to this level and then
- take that tree. If ARG is negative, go up that many levels. With
- `C-u' prefix, do not remove the previously used indirect buffer.
- `l'
- Toggle Logbook mode. In Logbook mode, entries that where marked
- DONE while logging was on (variable `org-log-done') are shown in
- the agenda, as are entries that have been clocked on that day.
- Change display
- ..............
- `o'
- Delete other windows.
- `w'
- Switch to weekly view (7 days displayed together).
- `d'
- Switch to daily view (just one day displayed).
- `D'
- Toggle the inclusion of diary entries. See *Note Weekly/Daily
- agenda::.
- `g'
- Toggle the time grid on and off. See also the variables
- `org-agenda-use-time-grid' and `org-agenda-time-grid'.
- `r'
- Recreate the agenda buffer, for example to reflect the changes
- after modification of the time stamps of items with S-<left> and
- S-<right>. When the buffer is the global todo list, a prefix
- argument is interpreted to create a selective list for a specific
- TODO keyword.
- `s'
- Save all Org-mode buffers in the current Emacs session.
- `<right>'
- Display the following `org-agenda-ndays' days. For example, if
- the display covers a week, switch to the following week. With
- prefix arg, go forward that many times `org-agenda-ndays' days.
- `<left>'
- Display the previous dates.
- `.'
- Goto today.
- Remote editing
- ..............
- `0-9'
- Digit argument.
- `C-_'
- Undo a change due to a remote editing command. The change is
- undone both in the agenda buffer and in the remote buffer.
- `t'
- Change the TODO state of the item, both in the agenda and in the
- original org file.
- `C-k'
- Delete the current agenda item along with the entire subtree
- belonging to it in the original Org-mode file. If the text to be
- deleted remotely is longer than one line, the kill needs to be
- confirmed by the user. See variable `org-agenda-confirm-kill'.
- `$'
- Archive the subtree corresponding to the current headline.
- `T'
- Show all tags associated with the current item. Because of
- inheritance, this may be more than the tags listed in the line
- itself.
- `:'
- Set tags for the current headline.
- `a'
- Toggle the ARCHIVE tag for the current headline.
- `,'
- Set the priority for the current item. Org-mode prompts for the
- priority character. If you reply with <SPC>, the priority cookie
- is removed from the entry.
- `P'
- Display weighted priority of current item.
- `+'
- `S-<up>'
- Increase the priority of the current item. The priority is
- changed in the original buffer, but the agenda is not resorted.
- Use the `r' key for this.
- `-'
- `S-<down>'
- Decrease the priority of the current item.
- `C-c C-s'
- Schedule this item
- `C-c C-d'
- Set a deadline for this item.
- `S-<right>'
- Change the time stamp associated with the current line by one day
- into the future. With prefix argument, change it by that many
- days. For example, `3 6 5 S-<right>' will change it by a year.
- The stamp is changed in the original org file, but the change is
- not directly reflected in the agenda buffer. Use the `r' key to
- update the buffer.
- `S-<left>'
- Change the time stamp associated with the current line by one day
- into the past.
- `>'
- Change the time stamp associated with the current line to today.
- The key `>' has been chosen, because it is the same as `S-.' on my
- keyboard.
- `I'
- Start the clock on the current item. If a clock is running
- already, it is stopped first.
- `O'
- Stop the previously started clock.
- `X'
- Cancel the currently running clock.
- Calendar commands
- .................
- `c'
- Open the Emacs calendar and move to the date at the agenda cursor.
- `c'
- When in the calendar, compute and show the Org-mode agenda for the
- date at the cursor.
- `i'
- Insert a new entry into the diary. Prompts for the type of entry
- (day, weekly, monthly, yearly, anniversary, cyclic) and creates a
- new entry in the diary, just as `i d' etc. would do in the
- calendar. The date is taken from the cursor position.
- `M'
- Show the phases of the moon for the three months around current
- date.
- `S'
- Show sunrise and sunset times. The geographical location must be
- set with calendar variables, see documentation of the Emacs
- calendar.
- `C'
- Convert the date at cursor into many other cultural and historic
- calendars.
- `H'
- Show holidays for three month around the cursor date.
- `C-c C-x C-c'
- Export a single iCalendar file containing entries from all agenda
- files.
- Exporting to a file
- ...................
- `C-x C-w'
- Write the agenda view to a file. Depending on the extension of the
- selected file name, the view will be exported as HTML (extension
- `.html' or `.htm'), Postscript (extension `.ps'), or plain text
- (any other extension). Use the variable
- `org-agenda-exporter-settings' to set options for `ps-print' and
- for `htmlize' to be used during export.
- Quit and Exit
- .............
- `q'
- Quit agenda, remove the agenda buffer.
- `x'
- Exit agenda, remove the agenda buffer and all buffers loaded by
- Emacs for the compilation of the agenda. Buffers created by the
- user to visit org files will not be removed.
- File: org, Node: Custom agenda views, Prev: Agenda commands, Up: Agenda views
- 8.6 Custom agenda views
- =======================
- Custom agenda commands serve two purposes: to store and quickly access
- frequently used TODO and tags searches, and to create special composite
- agenda buffers. Custom agenda commands will be accessible through the
- dispatcher (*note Agenda dispatcher::), just like the default commands.
- * Menu:
- * Storing searches:: Type once, use often
- * Block agenda:: All the stuff you need in a single buffer
- * Setting Options:: Changing the rules
- * Exporting Agenda Views:: Writing agendas to files.
- * Extracting Agenda Information for other programs::
- File: org, Node: Storing searches, Next: Block agenda, Prev: Custom agenda views, Up: Custom agenda views
- 8.6.1 Storing searches
- ----------------------
- The first application of custom searches is the definition of keyboard
- shortcuts for frequently used searches, either creating an agenda
- buffer, or a sparse tree (the latter covering of course only the current
- buffer). Custom commands are configured in the variable
- `org-agenda-custom-commands'. You can customize this variable, for
- example by pressing `C-c a C'. You can also directly set it with Emacs
- Lisp in `.emacs'. The following example contains all valid search
- types:
- (setq org-agenda-custom-commands
- '(("w" todo "WAITING")
- ("W" todo-tree "WAITING")
- ("u" tags "+BOSS-URGENT")
- ("v" tags-todo "+BOSS-URGENT")
- ("U" tags-tree "+BOSS-URGENT")
- ("f" occur-tree "\\<FIXME\\>")))
- The initial single-character string in each entry defines the character
- you have to press after the dispatcher command `C-c a' in order to
- access the command. The second parameter is the search type, followed
- by the string or regular expression to be used for the matching. The
- example above will therefore define:
- `C-c a w'
- as a global search for TODO entries with `WAITING' as the TODO
- keyword
- `C-c a W'
- as the same search, but only in the current buffer and displaying
- the results as a sparse tree
- `C-c a u'
- as a global tags search for headlines marked `:BOSS:' but not
- `:URGENT:'
- `C-c a v'
- as the same search as `C-c a u', but limiting the search to
- headlines that are also TODO items
- `C-c a U'
- as the same search as `C-c a u', but only in the current buffer and
- displaying the result as a sparse tree
- `C-c a f'
- to create a sparse tree (again: current buffer only) with all
- entries containing the word `FIXME'.
- File: org, Node: Block agenda, Next: Setting Options, Prev: Storing searches, Up: Custom agenda views
- 8.6.2 Block agenda
- ------------------
- Another possibility is the construction of agenda views that comprise
- the results of _several_ commands, each of which creates a block in the
- agenda buffer. The available commands include `agenda' for the daily
- or weekly agenda (as created with `C-c a a'), `alltodo' for the global
- todo list (as constructed with `C-c a t'), and the matching commands
- discussed above: `todo', `tags', and `tags-todo'. Here are two
- examples:
- (setq org-agenda-custom-commands
- '(("h" "Agenda and Home-related tasks"
- ((agenda)
- (tags-todo "HOME")
- (tags "GARDEN")))
- ("o" "Agenda and Office-related tasks"
- ((agenda)
- (tags-todo "WORK")
- (tags "OFFICE")))))
- This will define `C-c a h' to create a multi-block view for stuff you
- need to attend to at home. The resulting agenda buffer will contain
- your agenda for the current week, all TODO items that carry the tag
- `HOME', and also all lines tagged with `GARDEN'. Finally the command
- `C-c a o' provides a similar view for office tasks.
- File: org, Node: Setting Options, Next: Exporting Agenda Views, Prev: Block agenda, Up: Custom agenda views
- 8.6.3 Setting Options for custom commands
- -----------------------------------------
- Org-mode contains a number of variables regulating agenda construction
- and display. The global variables define the behavior for all agenda
- commands, including the custom commands. However, if you want to change
- some settings just for a single custom view, you can do so. Setting
- options requires inserting a list of variable names and values at the
- right spot in `org-agenda-custom-commands'. For example:
- (setq org-agenda-custom-commands
- '(("w" todo "WAITING"
- ((org-agenda-sorting-strategy '(priority-down))
- (org-agenda-prefix-format " Mixed: ")))
- ("U" tags-tree "+BOSS-URGENT"
- ((org-show-following-heading nil)
- (org-show-hierarchy-above nil)))))
- Now the `C-c a w' command will sort the collected entries only by
- priority, and the prefix format is modified to just say ` Mixed:'
- instead of giving the category of the entry. The sparse tags tree of
- `C-c a U' will now turn out ultra-compact, because neither the headline
- hierarchy above the match, nor the headline following the match will be
- shown.
- For command sets creating a block agenda,
- `org-agenda-custom-commands' has two separate spots for setting
- options. You can add options that should be valid for just a single
- command in the set, and options that should be valid for all commands in
- the set. The former are just added to the command entry, the latter
- must come after the list of command entries. Going back to the block
- agenda example (*note Block agenda::), let's change the sorting strategy
- for the `C-c a h' commands to `priority-down', but let's sort the
- results for GARDEN tags query in the opposite order, `priority-up'.
- This would look like this:
- (setq org-agenda-custom-commands
- '(("h" "Agenda and Home-related tasks"
- ((agenda)
- (tags-todo "HOME")
- (tags "GARDEN"
- ((org-agenda-sorting-strategy '(priority-up)))))
- ((org-agenda-sorting-strategy '(priority-down))))
- ("o" "Agenda and Office-related tasks"
- ((agenda)
- (tags-todo "WORK")
- (tags "OFFICE")))))
- As you see, the values and parenthesis setting is a little complex.
- When in doubt, use the customize interface to set this variable - it
- fully supports its structure. Just one caveat: When setting options in
- this interface, the _values_ are just lisp expressions. So if the
- value is a string, you need to add the double quotes around the value
- yourself.
- File: org, Node: Exporting Agenda Views, Next: Extracting Agenda Information for other programs, Prev: Setting Options, Up: Custom agenda views
- 8.6.4 Exporting Agenda Views
- ----------------------------
- If you are away from your computer, it can be very useful to have a
- printed version of some agenda views to carry around. Org-mode can
- export custom agenda views as plain text, HTML(1) and postscript. If
- you want to do this only occasionally, use the commend
- `C-x C-w'
- Write the agenda view to a file. Depending on the extension of the
- selected file name, the view will be exported as HTML (extension
- `.html' or `.htm'), Postscript (extension `.ps'), or plain text
- (any other extension). Use the variable
- `org-agenda-exporter-settings' to set options for `ps-print' and
- for `htmlize' to be used during export, for example
- (setq org-agenda-exporter-settings
- '((ps-number-of-columns 2)
- (ps-landscape-mode t)
- (htmlize-output-type 'css)))
- If you need to export certain agenda views frequently, you can
- associate any custom agenda command with a list of output file names
- (2). Here is an example that first does define custom commands for the
- agenda and the global todo list, together with a number of files to
- which to export them. Then we define two block agenda commands and
- specify filenames for them as well. File names can be relative to the
- current working directory, or absolute.
- (setq org-agenda-custom-commands
- '(("X" agenda "" nil ("agenda.html" "agenda.ps"))
- ("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps"))
- ("h" "Agenda and Home-related tasks"
- ((agenda)
- (tags-todo "HOME")
- (tags "GARDEN"))
- nil
- ("~/views/home.html"))
- ("o" "Agenda and Office-related tasks"
- ((agenda)
- (tags-todo "WORK")
- (tags "OFFICE"))
- nil
- ("~/views/office.ps"))))
- The extension of the file name determines the type of export. If it
- is `.html', Org-mode will use the `htmlize.el' package to convert the
- buffer to HTML and save it to this file name. If the extension is
- `.ps', `ps-print-buffer-with-faces' is used to produce postscript
- output. Any other extension produces a plain ASCII file.
- The export files are _not_ created when you use one of those
- commands interactively. Instead, there is a special command to produce
- _all_ specified files in one step:
- `C-c a e'
- Export all agenda views that have export filenames associated with
- them.
- You can use the options section of the custom agenda commands to also
- set options for the export commands. For example:
- (setq org-agenda-custom-commands
- '(("X" agenda ""
- ((ps-number-of-columns 2)
- (ps-landscape-mode t)
- (org-agenda-prefix-format " [ ] ")
- (org-agenda-with-colors nil)
- (org-agenda-remove-tags t))
- ("theagenda.ps"))))
- This command sets two options for the postscript exporter, to make it
- print in two columns in landscape format - the resulting page can be cut
- in two and then used in a paper agenda. The remaining settings modify
- the agenda prefix to omit category and scheduling information, and
- instead include a checkbox to check off items. We also remove the tags
- to make the lines compact, and we don't want to use colors for the
- black-and-white printer. Settings specified in
- `org-agenda-exporter-settings' will also apply, but the settings in
- `org-agenda-custom-commands' take precedence.
- From the command line you may also use
- emacs -f org-batch-store-agenda-views -kill
- or, if you need to modify some parameters
- emacs -eval '(org-batch-store-agenda-views \
- org-agenda-ndays 30 \
- org-agenda-include-diary nil \
- org-agenda-files (quote ("~/org/project.org")))' \
- -kill
- which will create the agenda views restricted to the file
- `~/org/project.org', without diary entries and with 30 days extent.
- ---------- Footnotes ----------
- (1) You need to install Hrvoje Niksic' `htmlize.el'.
- (2) If you want to store standard views like the weekly agenda or
- the global TODO list as well, you need to define custom commands for
- them in order to be able to specify filenames.
- File: org, Node: Extracting Agenda Information for other programs, Prev: Exporting Agenda Views, Up: Custom agenda views
- 8.6.5 Extracting Agenda Information for other programs
- ------------------------------------------------------
- Org-mode provides commands to access agenda information for the command
- line in emacs batch mode. This extracted information can be sent
- directly to a printer, or it can be read by a program that does further
- processing of the data. The first of these commands is the function
- `org-batch-agenda', that produces an agenda view and sends it as ASCII
- text to STDOUT. The command takes a single string as parameter. If
- the string has length 1, it is used as a key to one of the commands you
- have configured in `org-agenda-custom-commands', basically any key you
- can use after `C-c a'. For example, to directly print the current TODO
- list, you could use
- emacs -batch -l ~/.emacs -eval '(org-batch-agenda "t")' | lpr
- If the parameter is a string with 2 or more characters, it is used
- as a tags/todo match string. For example, to print your local shopping
- list (all items with the tag `shop', but excluding the tag `NewYork'),
- you could use
- emacs -batch -l ~/.emacs \
- -eval '(org-batch-agenda "+shop-NewYork")' | lpr
- You may also modify parameters on the fly like this:
- emacs -batch -l ~/.emacs \
- -eval '(org-batch-agenda "a" \
- org-agenda-ndays 30 \
- org-agenda-include-diary nil \
- org-agenda-files (quote ("~/org/project.org")))' \
- | lpr
- which will produce a 30 day agenda, fully restricted to the Org file
- `~/org/projects.org', not even including the diary.
- If you want to process the agenda data in more sophisticated ways,
- you can use the command `org-batch-agenda-csv' to get a comma-separated
- list of values for each agenda item. Each line in the output will
- contain a number of fields separated by commas. The fields in a line
- are:
- category The category of the item
- head The headline, without TODO kwd, TAGS and PRIORITY
- type The type of the agenda entry, can be
- todo selected in TODO match
- tagsmatch selected in tags match
- diary imported from diary
- deadline a deadline
- scheduled scheduled
- timestamp appointment, selected by timestamp
- closed entry was closed on date
- upcoming-deadline warning about nearing deadline
- past-scheduled forwarded scheduled item
- block entry has date block including date
- todo The todo keyword, if any
- tags All tags including inherited ones, separated by colons
- date The relevant date, like 2007-2-14
- time The time, like 15:00-16:50
- extra String with extra planning info
- priority-l The priority letter if any was given
- priority-n The computed numerical priority
- Time and date will only be given if a timestamp (or deadline/scheduled)
- lead to the selection of the item.
- A CSV list like this is very easy to use in a post processing script.
- For example, here is a Perl program that gets the TODO list from
- Emacs/org-mode and prints all the items, preceded by a checkbox:
- #!/usr/bin/perl
- # define the Emacs command to run
- $cmd = "emacs -batch -l ~/.emacs -eval '(org-batch-agenda-csv \"t\")'";
- # run it and capture the output
- $agenda = qx{$cmd 2>/dev/null};
- # loop over all lines
- foreach $line (split(/\n/,$agenda)) {
- # get the individual values
- ($category,$head,$type,$todo,$tags,$date,$time,$extra,
- $priority_l,$priority_n) = split(/,/,$line);
- # proccess and print
- print "[ ] $head\n";
- }
- File: org, Node: Embedded LaTeX, Next: Exporting, Prev: Agenda views, Up: Top
- 9 Embedded LaTeX
- ****************
- Plain ASCII is normally sufficient for almost all note taking. One
- exception, however, are scientific notes which need to be able to
- contain mathematical symbols and the occasional formula. LaTeX(1) is
- widely used to typeset scientific documents. Org-mode supports
- embedding LaTeX code into its files, because many academics are used to
- read LaTeX source code, and because it can be readily processed into
- images for HTML production.
- It is not necessary to mark LaTeX macros and code in any special way.
- If you observe a few conventions, Org-mode knows how to find it and what
- to do with it.
- * Menu:
- * Math symbols:: TeX macros for symbols and Greek letters
- * Subscripts and Superscripts:: Simple syntax for raising/lowering text
- * LaTeX fragments:: Complex formulas made easy
- * Processing LaTeX fragments:: Previewing LaTeX processing
- * CDLaTeX mode:: Speed up entering of formulas
- ---------- Footnotes ----------
- (1) LaTeX is a macro system based on Donald E. Knuth's TeX system.
- Many of the features described here as "LaTeX" are really from TeX, but
- for simplicity I am blurring this distinction.
- File: org, Node: Math symbols, Next: Subscripts and Superscripts, Prev: Embedded LaTeX, Up: Embedded LaTeX
- 9.1 Math symbols
- ================
- You can use LaTeX macros to insert special symbols like `\alpha' to
- indicate the Greek letter, or `\to' to indicate an arrow. Completion
- for these macros is available, just type `\' and maybe a few letters,
- and press `M-<TAB>' to see possible completions. Unlike LaTeX code,
- Org-mode allows these macros to be present without surrounding math
- delimiters, for example:
- Angles are written as Greek letters \alpha, \beta and \gamma.
- During HTML export (*note HTML export::), these symbols are
- translated into the proper syntax for HTML, for the above examples this
- is `α' and `→', respectively.
- File: org, Node: Subscripts and Superscripts, Next: LaTeX fragments, Prev: Math symbols, Up: Embedded LaTeX
- 9.2 Subscripts and Superscripts
- ===============================
- Just like in LaTeX, `^' and `_' are used to indicate super- and
- subscripts. Again, these can be used without embedding them in
- math-mode delimiters. To increase the readability of ASCII text, it is
- not necessary (but OK) to surround multi-character sub- and superscripts
- with curly braces. For example
- The mass if the sun is M_sun = 1.989 x 10^30 kg. The radius of
- the sun is R_{sun} = 6.96 x 10^8 m.
- To avoid interpretation as raised or lowered text, you can quote `^'
- and `_' with a backslash: `\_' and `\^'.
- During HTML export (*note HTML export::), subscript and superscripts
- are surrounded with `<sub>' and `<sup>' tags, respectively.
- File: org, Node: LaTeX fragments, Next: Processing LaTeX fragments, Prev: Subscripts and Superscripts, Up: Embedded LaTeX
- 9.3 LaTeX fragments
- ===================
- With symbols, sub- and superscripts, HTML is pretty much at its end when
- it comes to representing mathematical formulas(1). More complex
- expressions need a dedicated formula processor. To this end, Org-mode
- can contain arbitrary LaTeX fragments. It provides commands to preview
- the typeset result of these fragments, and upon export to HTML, all
- fragments will be converted to images and inlined into the HTML
- document. For this to work you need to be on a system with a working
- LaTeX installation. You also need the `dvipng' program, available at
- `http://sourceforge.net/projects/dvipng/'. The LaTeX header that will
- be used when processing a fragment can be configured with the variable
- `org-format-latex-header'.
- LaTeX fragments don't need any special marking at all. The following
- snippets will be identified as LaTeX source code:
- * Environments of any kind. The only requirement is that the
- `\begin' statement appears on a new line, preceded by only
- whitespace.
- * Text within the usual LaTeX math delimiters. To avoid conflicts
- with currency specifications, single `$' characters are only
- recognized as math delimiters if the enclosed text contains at
- most two line breaks, is directly attached to the `$' characters
- with no whitespace in between, and if the closing `$' is followed
- by whitespace or punctuation. For the other delimiters, there is
- no such restriction, so when in doubt, use `\(...\)' as inline
- math delimiters.
- For example:
- \begin{equation} % arbitrary environments,
- x=\sqrt{b} % even tables, figures
- \end{equation} % etc
- If $a^2=b$ and \( b=2 \), then the solution must be
- either $$ a=+\sqrt{2} $$ or \[ a=-\sqrt{2} \].
- If you need any of the delimiter ASCII sequences for other purposes, you
- can configure the option `org-format-latex-options' to deselect the
- ones you do not wish to have interpreted by the LaTeX converter.
- ---------- Footnotes ----------
- (1) Yes, there is MathML, but that is not yet fully supported by
- many browsers, and there is no decent converter for turning LaTeX of
- ASCII representations of formulas into MathML. So for the time being,
- converting formulas into images seems the way to go.
- File: org, Node: Processing LaTeX fragments, Next: CDLaTeX mode, Prev: LaTeX fragments, Up: Embedded LaTeX
- 9.4 Processing LaTeX fragments
- ==============================
- LaTeX fragments can be processed to produce a preview images of the
- typeset expressions:
- `C-c C-x C-l'
- Produce a preview image of the LaTeX fragment at point and overlay
- it over the source code. If there is no fragment at point,
- process all fragments in the current entry (between two
- headlines). When called with a prefix argument, process the
- entire subtree. When called with two prefix arguments, or when
- the cursor is before the first headline, process the entire buffer.
- `C-c C-c'
- Remove the overlay preview images.
- During HTML export (*note HTML export::), all LaTeX fragments are
- converted into images and inlined into the document if the following
- setting is active:
- (setq org-export-with-LaTeX-fragments t)
- File: org, Node: CDLaTeX mode, Prev: Processing LaTeX fragments, Up: Embedded LaTeX
- 9.5 Using CDLaTeX to enter math
- ===============================
- CDLaTeX-mode is a minor mode that is normally used in combination with a
- major LaTeX mode like AUCTeX in order to speed-up insertion of
- environments and math templates. Inside Org-mode, you can make use of
- some of the features of cdlatex-mode. You need to install `cdlatex.el'
- and `texmathp.el' (the latter comes also with AUCTeX) from
- `http://www.astro.uva.nl/~dominik/Tools/cdlatex'. Don't turn
- cdlatex-mode itself under Org-mode, but use the light version
- `org-cdlatex-mode' that comes as part of Org-mode. Turn it on for the
- current buffer with `M-x org-cdlatex-mode', or for all Org-mode files
- with
- (add-hook 'org-mode-hook 'turn-on-org-cdlatex)
- When this mode is enabled, the following features are present (for
- more details see the documentation of cdlatex-mode):
- * Environment templates can be inserted with `C-c {'.
- * The <TAB> key will do template expansion if the cursor is inside a
- LaTeX fragment(1). For example, <TAB> will expand `fr' to
- `\frac{}{}' and position the cursor correctly inside the first
- brace. Another <TAB> will get you into the second brace. Even
- outside fragments, <TAB> will expand environment abbreviations at
- the beginning of a line. For example, if you write `equ' at the
- beginning of a line and press <TAB>, this abbreviation will be
- expanded to an `equation' environment. To get a list of all
- abbreviations, type `M-x cdlatex-command-help'.
- * Pressing `_' and `^' inside a LaTeX fragment will insert these
- characters together with a pair of braces. If you use <TAB> to
- move out of the braces, and if the braces surround only a single
- character or macro, they are removed again (depending on the
- variable `cdlatex-simplify-sub-super-scripts').
- * Pressing the backquote ``' followed by a character inserts math
- macros, also outside LaTeX fragments. If you wait more than 1.5
- seconds after the backquote, a help window will pop up.
- * Pressing the normal quote `'' followed by another character
- modifies the symbol before point with an accent or a font. If you
- wait more than 1.5 seconds after the backquote, a help window will
- pop up. Character modification will work only inside LaTeX
- fragments, outside the quote is normal.
- ---------- Footnotes ----------
- (1) Org-mode has a method to test if the cursor is inside such a
- fragment, see the documentation of the function
- `org-inside-LaTeX-fragment-p'.
- File: org, Node: Exporting, Next: Publishing, Prev: Embedded LaTeX, Up: Top
- 10 Exporting
- ************
- Org-mode documents can be exported into a variety of other formats. For
- printing and sharing of notes, ASCII export produces a readable and
- simple version of an Org-mode file. HTML export allows you to publish a
- notes file on the web, while the XOXO format provides a solid base for
- exchange with a broad range of other applications. To incorporate
- entries with associated times like deadlines or appointments into a
- desktop calendar program like iCal, Org-mode can also produce extracts
- in the iCalendar format. Currently Org-mode only supports export, not
- import of these different formats.
- When exporting, Org-mode uses special conventions to enrich the
- output produced. *Note Text interpretation::, for more details.
- `C-c C-e'
- Dispatcher for export and publishing commands. Displays a
- help-window listing the additional key(s) needed to launch an
- export or publishing command.
- * Menu:
- * ASCII export:: Exporting to plain ASCII
- * HTML export:: Exporting to HTML
- * XOXO export:: Exporting to XOXO
- * iCalendar export:: Exporting in iCalendar format
- * Text interpretation:: How the exporter looks at the file
- File: org, Node: ASCII export, Next: HTML export, Prev: Exporting, Up: Exporting
- 10.1 ASCII export
- =================
- ASCII export produces a simple and very readable version of an Org-mode
- file.
- `C-c C-e a'
- Export as ASCII file. If there is an active region, only the
- region will be exported. For an org file `myfile.org', the ASCII
- file will be `myfile.txt'. The file will be overwritten without
- warning.
- `C-c C-e v a'
- Export only the visible part of the document.
- In the exported version, the first 3 outline levels will become
- headlines, defining a general document structure. Additional levels
- will be exported as itemized lists. If you want that transition to
- occur at a different level, specify it with a prefix argument. For
- example,
- C-1 C-c C-e a
- creates only top level headlines and does the rest as items. When
- headlines are converted to items, the indentation of the text following
- the headline is changed to fit nicely under the item. This is done with
- the assumption that the first bodyline indicates the base indentation of
- the body text. Any indentation larger than this is adjusted to preserve
- the layout relative to the first line. Should there be lines with less
- indentation than the first, these are left alone.
- File: org, Node: HTML export, Next: XOXO export, Prev: ASCII export, Up: Exporting
- 10.2 HTML export
- ================
- Org-mode contains an HTML (XHTML 1.0 strict) exporter with extensive
- HTML formatting, in ways similar to John Grubers _markdown_ language,
- but with additional support for tables.
- * Menu:
- * Export commands:: How to invoke HTML export
- * Quoting HTML tags:: Using direct HTML in Org-mode
- * Links:: How hyperlinks get transferred to HTML
- * Images:: To inline or not to inline?
- * CSS support:: Style specifications
- File: org, Node: Export commands, Next: Quoting HTML tags, Prev: HTML export, Up: HTML export
- 10.2.1 HTML export commands
- ---------------------------
- `C-c C-e h'
- Export as HTML file `myfile.html'.
- `C-c C-e b'
- Export as HTML file and open it with a browser.
- `C-c C-e H'
- Export to a temporary buffer, do not create a file.
- `C-c C-e H'
- Export the active region to a temporary buffer. With prefix arg,
- do not produce file header and foot, but just the plain HTML
- section for the region. This is good for cut-and-paste operations.
- `C-c C-e v h'
- `C-c C-e v b'
- `C-c C-e v H'
- `C-c C-e v R'
- Export only the visible part of the document.
- `M-x org-export-region-as-html'
- Convert the region to HTML under the assumption that it was
- org-mode syntax before. This is a global command that can be
- invoked in any buffer.
- In the exported version, the first 3 outline levels will become
- headlines, defining a general document structure. Additional levels
- will be exported as itemized lists. If you want that transition to
- occur at a different level, specify it with a prefix argument. For
- example,
- C-2 C-c C-e b
- creates two levels of headings and does the rest as items.
- File: org, Node: Quoting HTML tags, Next: Links, Prev: Export commands, Up: HTML export
- 10.2.2 Quoting HTML tags
- ------------------------
- Plain `<' and `>' are always transformed to `<' and `>' in HTML
- export. If you want to include simple HTML tags which should be
- interpreted as such, mark them with `@' as in `@<b>bold text@</b>'.
- Note that this really works only for simple tags. For more extensive
- HTML that should be copied verbatim to the exported file use either
- #+HTML: Literal HTML code for export
- or
- #+BEGIN_HTML
- All lines between these markers are exported literally
- #+END_HTML
- File: org, Node: Links, Next: Images, Prev: Quoting HTML tags, Up: HTML export
- 10.2.3 Links
- ------------
- Internal links (*note Internal links::) will continue to work in HTML
- files only if they match a dedicated `<<target>>'. Automatic links
- created by radio targets (*note Radio targets::) will also work in the
- HTML file. Links to external files will still work if the HTML file is
- in the same directory as the Org-mode file. Links to other `.org'
- files will be translated into HTML links under the assumption that an
- HTML version also exists of the linked file. For information related to
- linking files while publishing them to a publishing directory see *Note
- Publishing links::.
- File: org, Node: Images, Next: CSS support, Prev: Links, Up: HTML export
- 10.2.4 Images
- -------------
- HTML export can inline images given as links in the Org-mode file, and
- it can make an image the clickable part of a link. By default(1),
- images are inlined if a link does not have a description. So
- `[[file:myimg.jpg]]' will be inlined, while `[[file:myimg.jpg][the
- image]]' will just produce a link `the image' that points to the image.
- If the description part itself is a `file:' link or a `http:' URL
- pointing to an image, this image will be inlined and activated so that
- clicking on the image will activate the link. For example, to include
- a thumbnail that will link to a high resolution version of the image,
- you could use:
- [[file:highres.jpg][file:thumb.jpg]]
- and you could use `http' addresses just as well.
- ---------- Footnotes ----------
- (1) but see the variable `org-export-html-inline-images'
- File: org, Node: CSS support, Prev: Images, Up: HTML export
- 10.2.5 CSS support
- ------------------
- You can also give style information for the exported file. The HTML
- exporter assigns the following CSS classes to appropriate parts of the
- document - your style specifications may change these:
- .todo TODO keywords
- .done the DONE keyword
- .timestamp time stamp
- .timestamp-kwd keyword associated with a time stamp, like SCHEDULED
- .tag tag in a headline
- .target target for links
- The default style specification can be configured through the option
- `org-export-html-style'. If you want to use a file-local style, you
- may use file variables, best wrapped into a COMMENT section at the end
- of the outline tree. For example(1):
- * COMMENT html style specifications
- # Local Variables:
- # org-export-html-style: " <style type=\"text/css\">
- # p {font-weight: normal; color: gray; }
- # h1 {color: black; }
- # </style>"
- # End:
- Remember to execute `M-x normal-mode' after changing this to make
- the new style visible to Emacs. This command restarts org-mode for the
- current buffer and forces Emacs to re-evaluate the local variables
- section in the buffer.
- ---------- Footnotes ----------
- (1) Under Emacs 21, the continuation lines for a variable value
- should have no `#' at the start of the line.
- File: org, Node: XOXO export, Next: iCalendar export, Prev: HTML export, Up: Exporting
- 10.3 XOXO export
- ================
- Org-mode contains an exporter that produces XOXO-style output.
- Currently, this exporter only handles the general outline structure and
- does not interpret any additional Org-mode features.
- `C-c C-e x'
- Export as XOXO file `myfile.html'.
- `C-c C-e v x'
- Export only the visible part of the document.
- File: org, Node: iCalendar export, Next: Text interpretation, Prev: XOXO export, Up: Exporting
- 10.4 iCalendar export
- =====================
- Some people like to use Org-mode for keeping track of projects, but
- still prefer a standard calendar application for anniversaries and
- appointments. In this case it can be useful to have deadlines and
- other time-stamped items in Org-mode files show up in the calendar
- application. Org-mode can export calendar information in the standard
- iCalendar format. If you also want to have TODO entries included in the
- export, configure the variable `org-icalendar-include-todo'.
- `C-c C-e i'
- Create iCalendar entries for the current file and store them in
- the same directory, using a file extension `.ics'.
- `C-c C-e I'
- Like `C-c C-e i', but do this for all files in `org-agenda-files'.
- For each of these files, a separate iCalendar file will be
- written.
- `C-c C-e c'
- Create a single large iCalendar file from all files in
- `org-agenda-files' and write it to the file given by
- `org-combined-agenda-icalendar-file'.
- How this calendar is best read and updated, depends on the
- application you are using. The FAQ covers this issue.
- File: org, Node: Text interpretation, Prev: iCalendar export, Up: Exporting
- 10.5 Text interpretation by the exporter
- ========================================
- The exporter backends interpret additional structure in the Org-mode
- file in order to produce better output.
- * Menu:
- * Comment lines:: Some lines will not be exported
- * Initial text:: Text before the first headline
- * Footnotes:: Numbers like [1]
- * Enhancing text:: Subscripts, symbols and more
- * Export options:: How to influence the export settings
- File: org, Node: Comment lines, Next: Initial text, Prev: Text interpretation, Up: Text interpretation
- 10.5.1 Comment lines
- --------------------
- Lines starting with `#' in column zero are treated as comments and will
- never be exported. Also entire subtrees starting with the word
- `COMMENT' will never be exported.
- `C-c ;'
- Toggle the COMMENT keyword at the beginning of an entry.
- File: org, Node: Initial text, Next: Footnotes, Prev: Comment lines, Up: Text interpretation
- 10.5.2 Text before the first headline
- -------------------------------------
- Org-mode normally ignores any text before the first headline when
- exporting, leaving this region for internal links to speed up navigation
- etc. However, in publishing-oriented files, you might want to have some
- text before the first headline, like a small introduction, special HTML
- code with a navigation bar, etc. You can ask to have this part of the
- file exported as well by setting the variable
- `org-export-skip-text-before-1st-heading' to `nil'. On a per-file
- basis, you can get the same effect with
- #+OPTIONS: skip:nil
- The text before the first headline will be fully processed (*note
- Enhancing text::), and the first non-comment line becomes the title of
- the exported document. If you need to include literal HTML, use the
- special constructs described in *Note Quoting HTML tags::. The table
- of contents is normally inserted directly before the first headline of
- the file. If you would like to get it to a different location, insert
- the string `[TABLE-OF-CONTENTS]' on a line by itself at the desired
- location.
- Finally, if you want to use the space before the first headline for
- internal purposes, but _still_ want to place something before the first
- headline when exporting the file, you can use the `#+TEXT' construct:
- #+OPTIONS: skip:t
- #+TEXT: This text will go before the *first* headline.
- #+TEXT: We place the table of contents here:
- #+TEXT: [TABLE-OF-CONTENTS]
- #+TEXT: This goes between the table of contents and the first headline
- File: org, Node: Footnotes, Next: Enhancing text, Prev: Initial text, Up: Text interpretation
- 10.5.3 Footnotes
- ----------------
- Numbers in square brackets are treated as footnotes, so that you can use
- the Emacs package `footnote.el' to create footnotes. For example:
- The org-mode homepage[1] clearly needs help from
- a good web designer.
- [1] The link is: http://www.astro.uva.nl/~dominik/Tools/org
- Note that the `footnote' package uses `C-c !' to invoke its commands.
- This binding conflicts with the org-mode command for inserting inactive
- time stamps. You could use the variable `footnote-prefix' to switch
- footnotes commands to another key. Or, if you are too used to this
- binding, you could use `org-replace-disputed-keys' and
- `org-disputed-keys' to change the settings in Org-mode.
- File: org, Node: Enhancing text, Next: Export options, Prev: Footnotes, Up: Text interpretation
- 10.5.4 Enhancing text for export
- --------------------------------
- Some of the export backends of Org-mode allow for sophisticated text
- formatting, this is true in particular for the HTML backend. Org-mode
- has a number of typing conventions that allow to produce a richly
- formatted output.
- * Plain lists `-', `*' or `+' as bullet, or with `1.' or `2)' as
- enumerator will be recognized and transformed if the backend
- supports lists. See *Note Plain lists::.
- * You can make words *bold*, /italic/, _underlined_, `=code=', and
- even `+strikethrough+'(1).
- * A line consisting of only dashes, and at least 5 of them, will be
- exported as a horizontal line (`<hr/>' in HTML).
- * Many TeX macros and entire LaTeX fragments are converted into HTML
- entities or images (*note Embedded LaTeX::).
- * Tables are transformed into native tables under the exporter, if
- the export backend supports this. Data fields before the first
- horizontal separator line will be formatted as table header fields.
- * If a headline starts with the word `QUOTE', the text below the
- headline will be typeset as fixed-width, to allow quoting of
- computer codes etc. Lines starting with `:' are also typeset in
- fixed-width font.
- `C-c :'
- Toggle fixed-width for entry (QUOTE) or region, see below.
- * A double backslash _at the end of a line_ enforces a line break at
- this position.
- If these conversions conflict with your habits of typing ASCII text,
- they can all be turned off with corresponding variables. See the
- customization group `org-export-general', and the following section
- which explains how to set export options with special lines in a buffer.
- ---------- Footnotes ----------
- (1) but remember that strikethrough is typographically evil and
- should never be used.
- File: org, Node: Export options, Prev: Enhancing text, Up: Text interpretation
- 10.5.5 Export options
- ---------------------
- The exporter recognizes special lines in the buffer which provide
- additional information. These lines may be put anywhere in the file.
- The whole set of lines can be inserted into the buffer with `C-c C-e
- t'. For individual lines, a good way to make sure the keyword is
- correct is to type `#+' and then use `M-<TAB>' completion (*note
- Completion::).
- `C-c C-e t'
- Insert template with export options, see example below.
- #+TITLE: the title to be shown (default is the buffer name)
- #+AUTHOR: the author (default taken from `user-full-name')
- #+EMAIL: his/her email address (default from `user-mail-address')
- #+LANGUAGE: language for HTML, e.g. `en' (`org-export-default-language')
- #+TEXT: Some descriptive text to be inserted at the beginning.
- #+TEXT: Several lines may be given.
- #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t *:nil TeX:t LaTeX:t skip:t
- The OPTIONS line is a compact form to specify export settings. Here
- you can:
- H: set the number of headline levels for export
- num: turn on/off section-numbers
- toc: turn on/off table of contents, or set level limit (integer)
- \n: turn on/off linebreak-preservation
- @: turn on/off quoted HTML tags
- :: turn on/off fixed-width sections
- |: turn on/off tables
- ^: turn on/off TeX-like syntax for sub- and superscripts. If
- you write "^:{}", `a_{b}' will be interpreted, but
- the simple `a_b' will be left as it is.
- *: turn on/off emphasized text (bold, italic, underlined)
- TeX: turn on/off simple TeX macros in plain text
- LaTeX: turn on/off LaTeX fragments
- skip: turn on/off skipping the text before the first heading
- File: org, Node: Publishing, Next: Miscellaneous, Prev: Exporting, Up: Top
- 11 Publishing
- *************
- Org-mode includes(1) a publishing management system that allows you to
- configure automatic HTML conversion of _projects_ composed of
- interlinked org files. This system is called _org-publish_. You can
- also configure org-publish to automatically upload your exported HTML
- pages and related attachments, such as images and source code files, to
- a web server. Org-publish turns org-mode into a web-site authoring
- tool.
- Org-publish has been contributed to Org-mode by David O'Toole.
- * Menu:
- * Configuration:: Defining projects
- * Sample configuration:: Example projects
- * Triggering publication:: Publication commands
- ---------- Footnotes ----------
- (1) `org-publish.el' is not yet part of Emacs, so if you are using
- `org.el' as it comes with Emacs, you need to download this file
- separately. Also make sure org.el is at least version 4.27.
- File: org, Node: Configuration, Next: Sample configuration, Prev: Publishing, Up: Publishing
- 11.1 Configuration
- ==================
- Publishing needs significant configuration to specify files, destination
- and many other properties of a project.
- * Menu:
- * Project alist:: The central configuration variable
- * Sources and destinations:: From here to there
- * Selecting files:: What files are part of the project?
- * Publishing action:: Setting the function doing the publishing
- * Publishing options:: Tweaking HTML export
- * Publishing links:: Which links keep working after publishing?
- * Project page index:: Publishing a list of project files
- File: org, Node: Project alist, Next: Sources and destinations, Prev: Configuration, Up: Configuration
- 11.1.1 The variable `org-publish-project-alist'
- -----------------------------------------------
- Org-publish is configured almost entirely through setting the value of
- one variable, called `org-publish-project-alist'. Each element of the
- list configures one project, and may be in one of the two following
- forms:
- ("project-name" :property value :property value ...)
- or
- ("project-name" :components ("project-name" "project-name" ...))
- In both cases, projects are configured by specifying property values.
- A project defines the set of files that will be published, as well as
- the publishing configuration to use when publishing those files. When
- a project takes the second form listed above, the individual members of
- the "components" property are taken to be components of the project,
- which group together files requiring different publishing options. When
- you publish such a "meta-project" all the components will also publish.
- File: org, Node: Sources and destinations, Next: Selecting files, Prev: Project alist, Up: Configuration
- 11.1.2 Sources and destinations for files
- -----------------------------------------
- Most properties are optional, but some should always be set. In
- particular, org-publish needs to know where to look for source files,
- and where to put published files.
- `:base-directory' Directory containing publishing source files
- `:publishing-directory'Directory (possibly remote) where output files
- will be published.
- `:preparation-function'Function called before starting publishing
- process, for example to run `make' for updating
- files to be published.
- File: org, Node: Selecting files, Next: Publishing action, Prev: Sources and destinations, Up: Configuration
- 11.1.3 Selecting files
- ----------------------
- By default, all files with extension `.org' in the base directory are
- considered part of the project. This can be modified by setting the
- properties
- `:base-extension' Extension (without the dot!) of source files. This
- actually is a regular expression.
- `:exclude' Regular expression to match file names that should
- not be published, even though they have been selected
- on the basis of their extension.
- `:include' List of files to be included regardless of
- `:base-extension' and `:exclude'.
- File: org, Node: Publishing action, Next: Publishing options, Prev: Selecting files, Up: Configuration
- 11.1.4 Publishing Action
- ------------------------
- Publishing means that a file is copied to the destination directory and
- possibly transformed in the process. The default transformation is to
- export Org-mode files as HTML files, and this is done by the function
- `org-publish-org-to-html' which calls the HTML exporter (*note HTML
- export::). Other files like images only need to be copied to the
- publishing destination. For non-Org-mode files, you need to specify
- the publishing function.
- `:publishing-function' Function executing the publication of a file.
- This may also be a list of functions, which will
- all be called in turn.
- The function must accept two arguments: a property list containing at
- least a `:publishing-directory' property, and the name of the file to
- be published. It should take the specified file, make the necessary
- transformation (if any) and place the result into the destination
- folder. You can write your own publishing function, but `org-publish'
- provides one for attachments (files that only need to be copied):
- `org-publish-attachment'.
- File: org, Node: Publishing options, Next: Publishing links, Prev: Publishing action, Up: Configuration
- 11.1.5 Options for the HTML exporter
- ------------------------------------
- The property list can be used to set many export options for the HTML
- exporter. In most cases, these properties correspond to user variables
- in Org-mode. The table below lists these properties along with the
- variable they belong to. See the documentation string for the
- respective variable for details.
- `:language' `org-export-default-language'
- `:headline-levels' `org-export-headline-levels'
- `:section-numbers' `org-export-with-section-numbers'
- `:table-of-contents' `org-export-with-toc'
- `:archived-trees' `org-export-with-archived-trees'
- `:emphasize' `org-export-with-emphasize'
- `:sub-superscript' `org-export-with-sub-superscripts'
- `:TeX-macros' `org-export-with-TeX-macros'
- `:LaTeX-fragments' `org-export-with-LaTeX-fragments'
- `:fixed-width' `org-export-with-fixed-width'
- `:timestamps' `org-export-with-timestamps'
- .
- `:tags' `org-export-with-tags'
- .
- `:tables' `org-export-with-tables'
- `:table-auto-headline' `org-export-highlight-first-table-line'
- `:style' `org-export-html-style'
- `:convert-org-links' `org-export-html-link-org-files-as-html'
- `:inline-images' `org-export-html-inline-images'
- `:expand-quoted-html' `org-export-html-expand'
- `:timestamp' `org-export-html-with-timestamp'
- `:publishing-directory'`org-export-publishing-directory'
- `:preamble' `org-export-html-preamble'
- `:postamble' `org-export-html-postamble'
- `:auto-preamble' `org-export-html-auto-preamble'
- `:auto-postamble' `org-export-html-auto-postamble'
- `:author' `user-full-name'
- `:email' `user-mail-address'
- When a property is given a value in org-publish-project-alist, its
- setting overrides the value of the corresponding user variable (if any)
- during publishing. options set within a file (*note Export options::),
- however, override everything.
- File: org, Node: Publishing links, Next: Project page index, Prev: Publishing options, Up: Configuration
- 11.1.6 Links between published files
- ------------------------------------
- To create a link from one Org-mode file to another, you would use
- something like `[[file:foo.org][The foo]]' or simply `file:foo.org.'
- (*note Hyperlinks::). Upon publishing this link becomes a link to
- `foo.html'. In this way, you can interlink the pages of your "org web"
- project and the links will work as expected when you publish them to
- HTML.
- You may also link to related files, such as images. Provided you are
- careful with relative pathnames, and provided you have also configured
- org-publish to upload the related files, these links will work too.
- *Note Complex example:: for an example of this usage.
- Sometime an Org-mode file to be published may contain links that are
- only valid in your production environment, but not in the publishing
- location. In this case, use the property
- `:link-validation-function' Function to validate links
- to define a function for checking link validity. This function must
- accept two arguments, the file name and a directory relative to which
- the file name is interpreted in the production environment. If this
- function returns `nil', then the HTML generator will only insert a
- description into the HTML file, but no link. One option for this
- function is `org-publish-validate-link' which checks if the given file
- is part of any project in `org-publish-project-alist'.
- File: org, Node: Project page index, Prev: Publishing links, Up: Configuration
- 11.1.7 Project page index
- -------------------------
- The following properties may be used to control publishing of an index
- of files or summary page for a given project.
- `:auto-index' When non-nil, publish an index during
- org-publish-current-project or org-publish-all.
- `:index-filename' Filename for output of index. Defaults to `index.org'
- (which becomes `index.html').
- `:index-title' Title of index page. Defaults to name of file.
- `:index-function' Plugin function to use for generation of index.
- Defaults to `org-publish-org-index', which generates
- a plain list of links to all files in the project.
- File: org, Node: Sample configuration, Next: Triggering publication, Prev: Configuration, Up: Publishing
- 11.2 Sample configuration
- =========================
- Below we provide two example configurations. The first one is a simple
- project publishing only a set of Org-mode files. The second example is
- more complex, with a multi-component project.
- * Menu:
- * Simple example:: One-component publishing
- * Complex example:: A multi-component publishing example
- File: org, Node: Simple example, Next: Complex example, Prev: Sample configuration, Up: Sample configuration
- 11.2.1 Example: simple publishing configuration
- -----------------------------------------------
- This example publishes a set of Org-mode files to the `public_html'
- directory on the local machine.
- (setq org-publish-project-alist
- '(("org"
- :base-directory "~/org/"
- :publishing-directory "~/public_html"
- :section-numbers nil
- :table-of-contents nil
- :style "<link rel=stylesheet
- href=\"../other/mystyle.css\"
- type=\"text/css\">")))
- File: org, Node: Complex example, Prev: Simple example, Up: Sample configuration
- 11.2.2 Example: complex publishing configuration
- ------------------------------------------------
- This more complicated example publishes an entire website, including
- org files converted to HTML, image files, emacs lisp source code, and
- stylesheets. The publishing-directory is remote and private files are
- excluded.
- To ensure that links are preserved, care should be taken to replicate
- your directory structure on the web server, and to use relative file
- paths. For example, if your org files are kept in `~/org' and your
- publishable images in `~/images', you'd link to an image with
- file:../images/myimage.png
- On the web server, the relative path to the image should be the
- same. You can accomplish this by setting up an "images" folder in the
- right place on the webserver, and publishing images to it.
- (setq org-publish-project-alist
- '(("orgfiles"
- :base-directory "~/org/"
- :base-extension "org"
- :publishing-directory "/ssh:user@host:~/html/notebook/"
- :publishing-function org-publish-org-to-html
- :exclude "PrivatePage.org" ;; regexp
- :headline-levels 3
- :section-numbers nil
- :table-of-contents nil
- :style "<link rel=stylesheet
- href=\"../other/mystyle.css\" type=\"text/css\">"
- :auto-preamble t
- :auto-postamble nil)
- ("images"
- :base-directory "~/images/"
- :base-extension "jpg\\|gif\\|png"
- :publishing-directory "/ssh:user@host:~/html/images/"
- :publishing-function org-publish-attachment)
- ("other"
- :base-directory "~/other/"
- :base-extension "css\\|el"
- :publishing-directory "/ssh:user@host:~/html/other/"
- :publishing-function org-publish-attachment)
- ("website" :components ("orgfiles" "images" "other"))))
- File: org, Node: Triggering publication, Prev: Sample configuration, Up: Publishing
- 11.3 Triggering publication
- ===========================
- Once org-publish is properly configured, you can publish with the
- following functions:
- `C-c C-e C'
- Prompt for a specific project and publish all files that belong to
- it.
- `C-c C-e P'
- Publish the project containing the current file.
- `C-c C-e F'
- Publish only the current file.
- `C-c C-e A'
- Publish all projects.
- Org uses timestamps to track when a file has changed. The above
- functions normally only publish changed files. You can override this and
- force publishing of all files by giving a prefix argument.
- File: org, Node: Miscellaneous, Next: Extensions and Hacking, Prev: Publishing, Up: Top
- 12 Miscellaneous
- ****************
- * Menu:
- * Completion:: M-TAB knows what you need
- * Customization:: Adapting Org-mode to your taste
- * In-buffer settings:: Overview of the #+KEYWORDS
- * The very busy C-c C-c key:: When in doubt, press C-c C-c
- * Clean view:: Getting rid of leading stars in the outline
- * TTY keys:: Using Org-mode on a tty
- * Interaction:: Other Emacs packages
- * Bugs:: Things which do not work perfectly
- File: org, Node: Completion, Next: Customization, Prev: Miscellaneous, Up: Miscellaneous
- 12.1 Completion
- ===============
- Org-mode supports in-buffer completion. This type of completion does
- not make use of the minibuffer. You simply type a few letters into the
- buffer and use the key to complete text right there.
- `M-<TAB>'
- Complete word at point
- * At the beginning of a headline, complete TODO keywords.
- * After `\', complete TeX symbols supported by the exporter.
- * After `*', complete headlines in the current buffer so that
- they can be used in search links like `[[*find this
- headline]]'.
- * After `:', complete tags. The list of tags is taken from the
- variable `org-tag-alist' (possibly set through the `#+TAGS'
- in-buffer option, *note Setting tags::), or it is created
- dynamically from all tags used in the current buffer.
- * After `[', complete link abbreviations (*note Link
- abbreviations::).
- * After `#+', complete the special keywords like `TYP_TODO' or
- `OPTIONS' which set file-specific options for Org-mode. When
- the option keyword is already complete, pressing `M-<TAB>'
- again will insert example settings for this keyword.
- * In the line after `#+STARTUP: ', complete startup keywords,
- i.e. valid keys for this line.
- * Elsewhere, complete dictionary words using ispell.
- File: org, Node: Customization, Next: In-buffer settings, Prev: Completion, Up: Miscellaneous
- 12.2 Customization
- ==================
- There are more than 180 variables that can be used to customize
- Org-mode. For the sake of compactness of the manual, I am not
- describing the variables here. A structured overview of customization
- variables is available with `M-x org-customize'. Or select `Browse Org
- Group' from the `Org->Customization' menu. Many settings can also be
- activated on a per-file basis, by putting special lines into the buffer
- (*note In-buffer settings::).
- File: org, Node: In-buffer settings, Next: The very busy C-c C-c key, Prev: Customization, Up: Miscellaneous
- 12.3 Summary of in-buffer settings
- ==================================
- Org-mode uses special lines in the buffer to define settings on a
- per-file basis. These lines start with a `#+' followed by a keyword, a
- colon, and then individual words defining a setting. Several setting
- words can be in the same line, but you can also have multiple lines for
- the keyword. While these settings are described throughout the manual,
- here is a summary. After changing any of those lines in the buffer,
- press `C-c C-c' with the cursor still in the line to activate the
- changes immediately. Otherwise they become effective only when the
- file is visited again in a new Emacs session.
- `#+STARTUP:'
- This line sets options to be used at startup of org-mode, when an
- Org-mode file is being visited. The first set of options deals
- with the initial visibility of the outline tree. The
- corresponding variable for global default settings is
- `org-startup-folded', with a default value `t', which means
- `overview'.
- overview top-level headlines only
- content all headlines
- showall no folding at all, show everything
- Then there are options for aligning tables upon visiting a file.
- This is useful in files containing narrowed table columns. The
- corresponding variable is `org-startup-align-all-tables', with a
- default value `nil'.
- align align all tables
- noalign don't align tables on startup
- Logging TODO state changes and clock intervals (variable
- `org-log-done') can be configured using these options.
- logging record a timestamp when an item is marked DONE
- nologging don't record when items are marked DONE
- lognotedone record timestamp and a note when DONE
- lognotestate record timestamp, note when TODO state changes
- logrepeat record a not when re-instating a repeating item
- nologrepeat do not record when re-instating repeating item
- lognoteclock-out record timestamp and a note when clocking out
- Here are the options for hiding leading stars in outline headings.
- The corresponding variables are `org-hide-leading-stars' and
- `org-odd-levels-only', both with a default setting `nil' (meaning
- `showstars' and `oddeven').
- hidestars make all but one of the stars starting a headline invisible.
- showstars show all stars starting a headline
- odd allow only odd outline levels (1,3,...)
- oddeven allow all outline levels
- To turn on custom format overlays over time stamps (variables
- `org-put-time-stamp-overlays' and
- `org-time-stamp-overlay-formats'), use
- customtime overlay custom time format
- The following options influence the table spreadsheet (variable
- `constants-unit-system').
- constcgs `constants.el' should use the c-g-s unit system
- constSI `constants.el' should use the SI unit system
- `#+SEQ_TODO: #+TYP_TODO:'
- These lines set the TODO keywords and their interpretation in the
- current file. The corresponding variables are `org-todo-keywords'
- and `org-todo-interpretation'.
- `#+TAGS: TAG1(c1) TAG2(c2)'
- These lines (several such lines are allowed) specify the legal
- tags in this file, and (potentially) the corresponding _fast tag
- selection_ keys. The corresponding variable is `org-tag-alist'.
- `#+LINK: linkword replace'
- These lines (several are allowed) specify link abbreviations.
- *Note Link abbreviations::. The corresponding variable is
- `org-link-abbrev-alist'.
- `#+CATEGORY:'
- This line sets the category for the agenda file. The category
- applies for all subsequent lines until the next `#+CATEGORY' line,
- or the end of the file. The first such line also applies to any
- entries before it.
- `#+ARCHIVE: %s_done::'
- This line sets the archive location for the agenda file. It
- applies for all subsequent lines until the next `#+CATEGORY' line,
- or the end of the file. The first such line also applies to any
- entries before it. The corresponding variable is
- `org-archive-location'.
- `#+PRIORITIES: highest lowest default'
- This line sets the limits and the default for the priorities. All
- three must be either letters A-Z or numbers 0-9. The highest
- priority must have a lower ASCII number that the lowest priority.
- `#+TBLFM:'
- This line contains the formulas for the table directly above the
- line.
- `#+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+TEXT:, #+OPTIONS:'
- These lines provide settings for exporting files. For more
- details see *Note Export options::.
- File: org, Node: The very busy C-c C-c key, Next: Clean view, Prev: In-buffer settings, Up: Miscellaneous
- 12.4 The very busy C-c C-c key
- ==============================
- The key `C-c C-c' has many purposes in org-mode, which are all
- mentioned scattered throughout this manual. One specific function of
- this key is to add _tags_ to a headline (*note Tags::). In many other
- circumstances it means something like _Hey Org-mode, look here and
- update according to what you see here_. Here is a summary of what this
- means in different contexts.
- - If there are highlights in the buffer from the creation of a sparse
- tree, or from clock display, remove these highlights.
- - If the cursor is in one of the special `#+KEYWORD' lines, this
- triggers scanning the buffer for these lines and updating the
- information.
- - If the cursor is inside a table, realign the table. This command
- works even if the automatic table editor has been turned off.
- - If the cursor is on a `#+TBLFM' line, re-apply the formulas to the
- entire table.
- - If the cursor is inside a table created by the `table.el' package,
- activate that table.
- - If the current buffer is a remember buffer, close the note and
- file it. With a prefix argument, file it, without further
- interaction, to the default location.
- - If the cursor is on a `<<<target>>>', update radio targets and
- corresponding links in this buffer.
- - If the cursor is in a plain list item with a checkbox, toggle the
- status of the checkbox.
- - If the cursor is on a numbered item in a plain list, renumber the
- ordered list.
- File: org, Node: Clean view, Next: TTY keys, Prev: The very busy C-c C-c key, Up: Miscellaneous
- 12.5 A cleaner outline view
- ===========================
- Some people find it noisy and distracting that the Org-mode headlines
- are starting with a potentially large number of stars. For example the
- tree from *Note Headlines:::
- * Top level headline
- ** Second level
- *** 3rd level
- some text
- *** 3rd level
- more text
- * Another top level headline
- Unfortunately this is deeply ingrained into the code of Org-mode and
- cannot be easily changed. You can, however, modify the display in such
- a way that all leading stars become invisible and the outline more easy
- to read. To do this, customize the variable `org-hide-leading-stars'
- like this:
- (setq org-hide-leading-stars t)
- or change this on a per-file basis with one of the lines (anywhere in
- the buffer)
- #+STARTUP: showstars
- #+STARTUP: hidestars
- Press `C-c C-c' with the cursor in a `STARTUP' line to activate the
- modifications.
- With stars hidden, the tree becomes:
- * Top level headline
- * Second level
- * 3rd level
- some text
- * 3rd level
- more text
- * Another top level headline
- Note that the leading stars are not truly replaced by whitespace, they
- are only fontified with the face `org-hide' that uses the background
- color as font color. If you are not using either white or black
- background, you may have to customize this face to get the wanted
- effect. Another possibility is to set this font such that the extra
- stars are almost invisible, for example using the color `grey90' on a
- white background.
- Things become cleaner still if you skip all the even levels and use
- only odd levels 1, 3, 5..., effectively adding two stars to go from one
- outline level to the next:
- * Top level headline
- * Second level
- * 3rd level
- some text
- * 3rd level
- more text
- * Another top level headline
- In order to make the structure editing and export commands handle this
- convention correctly, use
- (setq org-odd-levels-only t)
- or set this on a per-file basis with one of the following lines (don't
- forget to press `C-c C-c' with the cursor in the startup line to
- activate changes immediately).
- #+STARTUP: odd
- #+STARTUP: oddeven
- You can convert an Org-mode file from single-star-per-level to the
- double-star-per-level convention with `M-x org-convert-to-odd-levels
- RET' in that file. The reverse operation is `M-x
- org-convert-to-oddeven-levels'.
- File: org, Node: TTY keys, Next: Interaction, Prev: Clean view, Up: Miscellaneous
- 12.6 Using org-mode on a tty
- ============================
- Org-mode uses a number of keys that are not accessible on a tty. This
- applies to most special keys like cursor keys, <TAB> and <RET>, when
- these are combined with modifier keys like <Meta> and/or <Shift>.
- Org-mode uses these bindings because it needs to provide keys for a
- large number of commands, and because these keys appeared particularly
- easy to remember. In order to still be able to access the core
- functionality of Org-mode on a tty, alternative bindings are provided.
- Here is a complete list of these bindings, which are obviously more
- cumbersome to use. Note that sometimes a work-around can be better.
- For example changing a time stamp is really only fun with `S-<cursor>'
- keys. On a tty you would rather use `C-c .' to re-insert the
- timestamp.
- Default Alternative 1 Alternative 2
- `S-<TAB>' `C-u <TAB>'
- `M-<left>' `C-c C-x l' `<Esc> <left>'
- `M-S-<left>'`C-c C-x L'
- `M-<right>' `C-c C-x r' `<Esc>
- <right>'
- `M-S-<right>'`C-c C-x R'
- `M-<up>' `C-c C-x u' `<Esc> <up>'
- `M-S-<up>' `C-c C-x U'
- `M-<down>' `C-c C-x d' `<Esc> <down>'
- `M-S-<down>'`C-c C-x D'
- `S-<RET>' `C-c C-x c'
- `M-<RET>' `C-c C-x m' `<Esc> <RET>'
- `M-S-<RET>' `C-c C-x M'
- `S-<left>' `C-c <left>'
- `S-<right>' `C-c <right>'
- `S-<up>' `C-c <up>'
- `S-<down>' `C-c <down>'
- `C-S-<left>'`C-c C-x
- <left>'
- `C-S-<right>'`C-c C-x
- <right>'
- File: org, Node: Interaction, Next: Bugs, Prev: TTY keys, Up: Miscellaneous
- 12.7 Interaction with other packages
- ====================================
- Org-mode lives in the world of GNU Emacs and interacts in various ways
- with other code out there.
- * Menu:
- * Cooperation:: Packages Org-mode cooperates with
- * Conflicts:: Packages that lead to conflicts
- File: org, Node: Cooperation, Next: Conflicts, Prev: Interaction, Up: Interaction
- 12.7.1 Packages that Org-mode cooperates with
- ---------------------------------------------
- `calc.el' by Dave Gillespie
- Org-mode uses the calc package for implementing spreadsheet
- functionality in its tables (*note The spreadsheet::). Org-mode
- checks for the availability of calc by looking for the function
- `calc-eval' which should be autoloaded in your setup if calc has
- been installed properly. As of Emacs 22, calc is part of the Emacs
- distribution. Another possibility for interaction between the two
- packages is using calc for embedded calculations. *Note Embedded
- Mode: (calc)Embedded Mode.
- `constants.el' by Carsten Dominik
- In a table formula (*note The spreadsheet::), it is possible to use
- names for natural constants or units. Instead of defining your own
- constants in the variable `org-table-formula-constants', install
- the `constants' package which defines a large number of constants
- and units, and lets you use unit prefixes like `M' for `Mega' etc.
- You will need version 2.0 of this package, available at
- `http://www.astro.uva.nl/~dominik/Tools'. Org-mode checks for the
- function `constants-get', which has to be autoloaded in your
- setup. See the installation instructions in the file
- `constants.el'.
- `cdlatex.el' by Carsten Dominik
- Org-mode can make use of the cdlatex package to efficiently enter
- LaTeX fragments into Org-mode files. See *Note CDLaTeX mode::.
- `remember.el' by John Wiegley
- Org mode cooperates with remember, see *Note Remember::.
- `Remember.el' is not part of Emacs, find it on the web.
- `table.el' by Takaaki Ota
- Complex ASCII tables with automatic line wrapping, column- and
- row-spanning, and alignment can be created using the Emacs table
- package by Takaaki Ota (`http://sourceforge.net/projects/table',
- and also part of Emacs 22). When <TAB> or `C-c C-c' is pressed in
- such a table, Org-mode will call `table-recognize-table' and move
- the cursor into the table. Inside a table, the keymap of Org-mode
- is inactive. In order to execute Org-mode-related commands, leave
- the table.
- `C-c C-c'
- Recognize `table.el' table. Works when the cursor is in a
- table.el table.
- `C-c ~'
- Insert a table.el table. If there is already a table at
- point, this command converts it between the table.el format
- and the Org-mode format. See the documentation string of the
- command `org-convert-table' for the restrictions under which
- this is possible.
- `table.el' is part of Emacs 22.
- `footnote.el' by Steven L. Baur
- Org-mode recognizes numerical footnotes as provided by this package
- (*note Footnotes::).
- File: org, Node: Conflicts, Prev: Cooperation, Up: Interaction
- 12.7.2 Packages that lead to conflicts with Org-mode
- ----------------------------------------------------
- `allout.el' by Ken Manheimer
- Startup of Org-mode may fail with the error message
- `(wrong-type-argument keymapp nil)' when there is an outdated
- version `allout.el' on the load path, for example the version
- distributed with Emacs 21.x. Upgrade to Emacs 22 and this problem
- will disappear. If for some reason you cannot do this, make sure
- that org.el is loaded _before_ `allout.el', for example by putting
- `(require 'org)' early enough into your `.emacs' file.
- `CUA.el' by Kim. F. Storm
- Keybindings in Org-mode conflict with the `S-<cursor>' keys used
- by CUA-mode (as well as pc-select-mode and s-region-mode) to
- select and extend the region. If you want to use one of these
- packages along with Org-mode, configure the variable
- `org-CUA-compatible'. When set, Org-mode will move the following
- keybindings in org-mode files, and in the agenda buffer (but not
- during date selection).
- S-UP -> M-p S-DOWN -> M-n
- S-LEFT -> M-- S-RIGHT -> M-+
- Yes, these are unfortunately more difficult to remember. If you
- want to have other replacement keys, look at the variable
- `org-disputed-keys'.
- `windmove.el' by Hovav Shacham
- Also this package uses the `S-<cursor>' keys, so everything written
- in the paragraph above about CUA mode also applies here.
- `footnote.el' by Steven L. Baur
- Org-mode supports the syntax of the footnote package, but only the
- numerical footnote markers. Also, the default key for footnote
- commands, `C-c !' is already used by org-mode. You could use the
- variable `footnote-prefix' to switch footnotes commands to another
- key. Or, you could use `org-replace-disputed-keys' and
- `org-disputed-keys' to change the settings in Org-mode.
- File: org, Node: Bugs, Prev: Interaction, Up: Miscellaneous
- 12.8 Bugs
- =========
- Here is a list of things that should work differently, but which I have
- found too hard to fix.
- * If a table field starts with a link, and if the corresponding table
- column is narrowed (*note Narrow columns::) to a width too small to
- display the link, the field would look entirely empty even though
- it is not. To prevent this, Org-mode throws an error. The
- work-around is to make the column wide enough to fit the link, or
- to add some text (at least 2 characters) before the link in the
- same field.
- * Narrowing table columns does not work on XEmacs, because the
- `format' function does not transport text properties.
- * Text in an entry protected with the `QUOTE' keyword should not
- autowrap.
- * When the application called by `C-c C-o' to open a file link fails
- (for example because the application does not exist or refuses to
- open the file), it does so silently. No error message is
- displayed.
- * Recalculating a table line applies the formulas from left to right.
- If a formula uses _calculated_ fields further down the row,
- multiple recalculation may be needed to get all fields consistent.
- You may use the command `org-table-iterate' (`C-u C-c *') to
- recalculate until convergence.
- * A single letter cannot be made bold, for example `*a*'.
- * The exporters work well, but could be made more efficient.
- File: org, Node: Extensions and Hacking, Next: History and Acknowledgments, Prev: Miscellaneous, Up: Top
- Appendix A Extensions, Hooks and Hacking
- ****************************************
- This appendix lists extensions for Org-mode written by other authors.
- It also covers some aspects where users can extend the functionality of
- Org-mode.
- * Menu:
- * Extensions:: Existing 3rd-part extensions
- * Tables in arbitrary syntax:: Orgtbl for LaTeX and other programs
- * Dynamic blocks:: Automatically filled blocks
- * Special agenda views:: Customized views
- File: org, Node: Extensions, Next: Tables in arbitrary syntax, Prev: Extensions and Hacking, Up: Extensions and Hacking
- A.1 Third-party extensions for Org-mode
- =======================================
- The following extensions for Org-mode have been written by other people:
- `org-publish.el' by David O'Toole
- This package provides facilities for publishing related sets of
- Org-mode files together with linked files like images as webpages.
- It is highly configurable and can be used for other publishing
- purposes as well. As of Org-mode version 4.30, `org-publish.el'
- is part of the Org-mode distribution. It is not yet part of
- Emacs, however, a delay caused by the preparations for the 22.1
- release. In the mean time, `org-publish.el' can be downloaded
- from David's site: `http://dto.freeshell.org/e/org-publish.el'.
- `org-mouse.el' by Piotr Zielinski
- This package implements extended mouse functionality for Org-mode.
- It allows you to cycle visibility and to edit the document
- structure with the mouse. Best of all, it provides a
- context-sensitive menu on <mouse-3> that changes depending on the
- context of a mouse-click. As of Org-mode version 4.53,
- `org-mouse.el' is part of the Org-mode distribution. It is not
- yet part of Emacs, however, a delay caused by the preparations for
- the 22.1 release. In the mean time, `org-mouse.el' can be
- downloaded from Piotr's site:
- `http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el'.
- `org-blog.el' by David O'Toole
- A blogging plug-in for `org-publish.el'.
- `http://dto.freeshell.org/notebook/OrgMode.html'.
- `blorg.el' by Bastien Guerry
- Publish Org-mode files as blogs.
- `http://www.cognition.ens.fr/~guerry/blorg.html'.
- `org2rem.el' by Bastien Guerry
- Translates Org-mode files into something readable by Remind.
- `http://www.cognition.ens.fr/~guerry/u/org2rem.el'.
- File: org, Node: Tables in arbitrary syntax, Next: Dynamic blocks, Prev: Extensions, Up: Extensions and Hacking
- A.2 Tables in arbitrary syntax
- ==============================
- Since Orgtbl-mode can be used as a minor mode in arbitrary buffers, a
- frequent feature request has been to make it work with native tables in
- specific languages, for example LaTeX. However, this is extremely hard
- to do in a general way, would lead to a customization nightmare, and
- would take away much of the simplicity of the Orgtbl-mode table editor.
- This appendix describes a different approach. We keep the
- Orgtbl-mode table in its native format (the source table), and use a
- custom function to translate the table to the correct syntax, and to
- install it in the right location (the target table). This puts the
- burden of writing conversion functions on the user, but it allows for a
- very flexible system.
- * Menu:
- * Radio tables:: Sending and receiving
- * A LaTeX example:: Step by step, almost a tutorial
- * Translator functions:: Copy and modify
- File: org, Node: Radio tables, Next: A LaTeX example, Prev: Tables in arbitrary syntax, Up: Tables in arbitrary syntax
- A.2.1 Radio tables
- ------------------
- To define the location of the target table, you first need to create two
- lines that are comments in the current mode, but contain magic words for
- Orgtbl-mode to find. Orgtbl-mode will insert the translated table
- between these lines, replacing whatever was there before. For example:
- /* BEGIN RECEIVE ORGTBL table_name */
- /* END RECEIVE ORGTBL table_name */
- Just above the source table, we put a special line that tells
- Orgtbl-mode how to translate this table and where to install it. For
- example:
- #+ORGTBL: SEND table_name translation_function arguments....
- `table_name' is the reference name for the table that is also used in
- the receiver lines. `translation_function' is the Lisp function that
- does the translation. Furthermore, the line can contain a list of
- arguments (alternating key and value) at the end. The arguments will be
- passed as a property list to the translation function for
- interpretation. A few standard parameters are already recognized and
- acted upon before the translation function is called:
- `:skip N'
- Skip the first N lines of the table. Hlines do count!
- `:skipcols (n1 n2 ...)'
- List of columns that should be skipped. If the table has a column
- with calculation marks, that column is automatically discarded as
- well. Please note that the translator function sees the table
- _after_ the removal of these columns, the function never knows
- that there have been additional columns.
- The one problem remaining is how to keep the source table in the buffer
- without disturbing the normal workings of the file, for example during
- compilation of a C file or processing of a LaTeX file. There are a
- number of different solutions:
- * The table could be placed in a block comment if that is supported
- by the language. For example, in C-mode you could wrap the table
- between `/*' and `*/' lines.
- * Sometimes it is possible to put the table after some kind of END
- statement, for example `\bye' in TeX and `\end{document}' in LaTeX.
- * You can just comment the table line by line whenever you want to
- process the file, and uncomment it whenever you need to edit the
- table. This only sounds tedious - the command `M-x
- orgtbl-toggle-comment' does make this comment-toggling very easy,
- in particular if you bind it to a key.
- File: org, Node: A LaTeX example, Next: Translator functions, Prev: Radio tables, Up: Tables in arbitrary syntax
- A.2.2 A LaTeX example
- ---------------------
- The best way to wrap the source table in LaTeX is to use the `comment'
- environment provided by `comment.sty'. It has to be activated by
- placing `\usepackage{comment}' into the document header. Orgtbl-mode
- can insert a radio table skeleton(1) with the command `M-x
- orgtbl-insert-radio-table'. You will be prompted for a table name,
- lets say we use `salesfigures'. You will then get the following
- template:
- % BEGIN RECEIVE ORGTBL salesfigures
- % END RECEIVE ORGTBL salesfigures
- \begin{comment}
- #+ORGTBL: SEND salesfigures orgtbl-to-latex
- | | |
- \end{comment}
- The `#+ORGTBL: SEND' line tells orgtbl-mode to use the function
- `orgtbl-to-latex' to convert the table into LaTeX and to put it into
- the receiver location with name `salesfigures'. You may now fill in
- the table, feel free to use the spreadsheet features(2):
- % BEGIN RECEIVE ORGTBL salesfigures
- % END RECEIVE ORGTBL salesfigures
- \begin{comment}
- #+ORGTBL: SEND salesfigures orgtbl-to-latex
- | Month | Days | Nr sold | per day |
- |-------+------+---------+---------|
- | Jan | 23 | 55 | 2.4 |
- | Feb | 21 | 16 | 0.8 |
- | March | 22 | 278 | 12.6 |
- #+TBLFM: $4=$3/$2;%.1f
- % $ (optional extra dollar to keep font-lock happy, see footnote)
- \end{comment}
- When you are done, press `C-c C-c' in the table to get the converted
- table inserted between the two marker lines.
- Now lets assume you want to make the table header by hand, because
- you want to control how columns are aligned etc. In this case we make
- sure that the table translator does skip the first 2 lines of the source
- table, and tell the command to work as a splice, i.e. to not produce
- header and footer commands of the target table:
- \begin{tabular}{lrrr}
- Month & \multicolumn{1}{c}{Days} & Nr.\ sold & per day\\
- % BEGIN RECEIVE ORGTBL salesfigures
- % END RECEIVE ORGTBL salesfigures
- \end{tabular}
- %
- \begin{comment}
- #+ORGTBL: SEND salesfigures orgtbl-to-latex :splice t :skip 2
- | Month | Days | Nr sold | per day |
- |-------+------+---------+---------|
- | Jan | 23 | 55 | 2.4 |
- | Feb | 21 | 16 | 0.8 |
- | March | 22 | 278 | 12.6 |
- #+TBLFM: $4=$3/$2;%.1f
- \end{comment}
- The LaTeX translator function `orgtbl-to-latex' is already part of
- Orgtbl-mode. It uses a `tabular' environment to typeset the table and
- marks horizontal lines with `\hline'. Furthermore, it interprets the
- following parameters:
- `:splice nil/t'
- When set to t, return only table body lines, don't wrap them into a
- tabular environment. Default is nil.
- `:fmt fmt'
- A format to be used to wrap each field, should contain `%s' for the
- original field value. For example, to wrap each field value in
- dollars, you could use `:fmt "$%s$"'. This may also be a property
- list with column numbers and formats. for example `:fmt (2 "$%s$"
- 4 "%s\\%%")'.
- `:efmt efmt'
- Use this format to print numbers with exponentials. The format
- should have `%s' twice for inserting mantissa and exponent, for
- example `"%s\\times10^{%s}"'. The default is `"%s\\,(%s)"'. This
- may also be a property list with column numbers and formats, for
- example `:efmt (2 "$%s\\times10^{%s}$" 4 "$%s\\cdot10^{%s}$")'.
- After `efmt' has been applied to a value, `fmt' will also be
- applied.
- ---------- Footnotes ----------
- (1) By default this works only for LaTeX, HTML, and TeXInfo.
- Configure the variable `orgtbl-radio-tables' to install templates for
- other modes.
- (2) If the `#+TBLFM' line contains an odd number of dollar
- characters, this may cause problems with font-lock in latex-mode. As
- shown in the example you can fix this by adding an extra line inside the
- `comment' environment that is used to balance the dollar expressions.
- If you are using AUCTeX with the font-latex library, a much better
- solution is to add the `comment' environment to the variable
- `LaTeX-verbatim-environments'.
- File: org, Node: Translator functions, Prev: A LaTeX example, Up: Tables in arbitrary syntax
- A.2.3 Translator functions
- --------------------------
- Orgtbl-mode has several translator functions built-in:
- `orgtbl-to-latex', `orgtbl-to-html', and `orgtbl-to-texinfo'. Except
- for `orgtbl-to-html'(1), these all use a generic translator,
- `orgtbl-to-generic'. For example, `orgtbl-to-latex' itself is a very
- short function that computes the column definitions for the `tabular'
- environment, defines a few field and line separators and then hands
- over to the generic translator. Here is the entire code:
- (defun orgtbl-to-latex (table params)
- "Convert the orgtbl-mode TABLE to LaTeX."
- (let* ((alignment (mapconcat (lambda (x) (if x "r" "l"))
- org-table-last-alignment ""))
- (params2
- (list
- :tstart (concat "\\begin{tabular}{" alignment "}")
- :tend "\\end{tabular}"
- :lstart "" :lend " \\\\" :sep " & "
- :efmt "%s\\,(%s)" :hline "\\hline")))
- (orgtbl-to-generic table (org-combine-plists params2 params))))
- As you can see, the properties passed into the function (variable
- PARAMS) are combined with the ones newly defined in the function
- (variable PARAMS2). The ones passed into the function (i.e. the ones
- set by the `ORGTBL SEND' line) take precedence. So if you would like
- to use the LaTeX translator, but wanted the line endings to be
- `\\[2mm]' instead of the default `\\', you could just overrule the
- default with
- #+ORGTBL: SEND test orgtbl-to-latex :lend " \\\\[2mm]"
- For a new language, you can either write your own converter function
- in analogy with the LaTeX translator, or you can use the generic
- function directly. For example, if you have a language where a table
- is started with `!BTBL!', ended with `!ETBL!', and where table lines are
- started with `!BL!', ended with `!EL!' and where the field separator is
- a TAB, you could call the generic translator like this (on a single
- line!):
- #+ORGTBL: SEND test orgtbl-to-generic :tstart "!BTBL!" :tend "!ETBL!"
- :lstart "!BL! " :lend " !EL!" :sep "\t"
- Please check the documentation string of the function
- `orgtbl-to-generic' for a full list of parameters understood by that
- function and remember that you can pass each of them into
- `orgtbl-to-latex', `orgtbl-to-texinfo', and any other function using
- the generic function.
- Of course you can also write a completely new function doing
- complicated things the generic translator cannot do. A translator
- function takes two arguments. The first argument is the table, a list
- of lines, each line either the symbol `hline' or a list of fields. The
- second argument is the property list containing all parameters
- specified in the `#+ORGTBL: SEND' line. The function must return a
- single string containing the formatted table. If you write a generally
- useful translator, please post it on `emacs-orgmode@gnu.org' so that
- others can benefit from your work.
- ---------- Footnotes ----------
- (1) The HTML translator uses the same code that produces tables
- during HTML export.
- File: org, Node: Dynamic blocks, Next: Special agenda views, Prev: Tables in arbitrary syntax, Up: Extensions and Hacking
- A.3 Dynamic blocks
- ==================
- Org-mode documents can contain _dynamic blocks_. These are specially
- marked regions that are updated by some user-written function. A good
- example for such a block is the clock table inserted by the command
- `C-c C-x C-r' (*note Clocking work time::).
- Dynamic block are enclosed by a BEGIN-END structure that assigns a
- name to the block and can also specify parameters for the function
- producing the content of the block.
- #+BEGIN: myblock :parameter1 value1 :parameter2 value2 ...
- #+END:
- Dynamic blocks are updated with the following commands
- `C-c C-x C-u'
- Update dynamic block at point.
- `C-u C-c C-x C-u'
- Update all dynamic blocks in the current file.
- Updating a dynamic block means to remove all the text between BEGIN
- and END, parse the BEGIN line for parameters and then call the specific
- writer function for this block to insert the new content. For a block
- with name `myblock', the writer function is `org-dblock-write:myblock'
- with as only parameter a property list with the parameters given in the
- begin line. Here is a trivial example of a block that keeps track of
- when the block update function was last run:
- #+BEGIN: block-update-time :format "on %m/%d/%Y at %H:%M"
- #+END:
- The corresponding block writer function could look like this:
- (defun org-dblock-write:block-update-time (params)
- (let ((fmt (or (plist-get params :format) "%d. %m. %Y")))
- (insert "Last block update at: "
- (format-time-string fmt (current-time)))))
- If you want to make sure that all dynamic blocks are always
- up-to-date, you could add the function `org-update-all-dblocks' to a
- hook, for example `before-save-hook'. `org-update-all-dblocks' is
- written in a way that is does nothing in buffers that are not in
- Org-mode.
- File: org, Node: Special agenda views, Prev: Dynamic blocks, Up: Extensions and Hacking
- A.4 Special Agenda Views
- ========================
- Org-mode provides a special hook that can be used to narrow down the
- selection made by any of the agenda views. You may specify a function
- that is used at each match to verify if the match should indeed be part
- of the agenda view, and if not, how much should be skipped.
- Let's say you want to produce a list of projects that contain a
- WAITING tag anywhere in the project tree. Let's further assume that
- you have marked all tree headings that define a project with the todo
- keyword PROJECT. In this case you would run a todo search for the
- keyword PROJECT, but skip the match unless there is a WAITING tag
- anywhere in the subtree belonging to the project line.
- To achieve this, you must write a function that searches the subtree
- for the tag. If the tag is found, the function must return `nil' to
- indicate that this match should not be skipped. If there is no such
- tag, return the location of the end of the subtree, to indicate that
- search should continue from there.
- (defun my-skip-unless-waiting ()
- "Skip trees that are not waiting"
- (let ((subtree-end (save-excursion (org-end-of-subtree t))))
- (if (re-search-forward ":WAITING:" subtree-end t)
- nil ; tag found, do not skip
- subtree-end))) ; tag not found, continue after end of subtree
- Furthermore you must write a command that uses `let' to temporarily
- put this function into the variable `org-agenda-skip-function', sets
- the header string for the agenda buffer, and calls the todo-list
- generator while asking for the specific TODO keyword PROJECT. The
- function must also accept one argument MATCH, but it can choose to
- ignore it(1) (as we do in the example below). Here is the example:
- (defun my-org-waiting-projects (&optional match)
- "Produce a list of projects that contain a WAITING tag.
- MATCH is being ignored."
- (interactive)
- (let ((org-agenda-skip-function 'my-skip-unless-waiting)
- (org-agenda-overriding-header "Projects waiting for something: "))
- ;; make the list
- (org-todo-list "PROJECT")))
- ---------- Footnotes ----------
- (1) MATCH must be present in case you want to define a custom
- command for producing this special list. Custom commands always supply
- the MATCH argument, but it can be empty if you do not specify it while
- defining the command(*note Custom agenda views::).
- File: org, Node: History and Acknowledgments, Next: Index, Prev: Extensions and Hacking, Up: Top
- Appendix B History and Acknowledgments
- **************************************
- Org-mode was borne in 2003, out of frustration over the user interface
- of the Emacs outline-mode. I was trying to organize my notes and
- projects, and using Emacs seemed to be the natural way to go. However,
- having to remember eleven different commands with two or three keys per
- command, only to hide and unhide parts of the outline tree, that seemed
- entirely unacceptable to me. Also, when using outlines to take notes, I
- constantly want to restructure the tree, organizing it parallel to my
- thoughts and plans. _Visibility cycling_ and _structure editing_ were
- originally implemented in the package `outline-magic.el', but quickly
- moved to the more general `org.el'. As this environment became
- comfortable for project planning, the next step was adding _TODO
- entries_, basic _time stamps_, and _table support_. These areas
- highlight the two main goals that Org-mode still has today: To create a
- new, outline-based, plain text mode with innovative and intuitive
- editing features, and to incorporate project planning functionality
- directly into a notes file.
- Since the first release, hundreds of emails to me or on
- `emacs-orgmode@gnu.org' have provided a constant stream of bug reports,
- feedback, new ideas, and sometimes patches and add-on code. Many
- thanks to everyone who has helped to improve this package. I am trying
- to keep here a list of the people who had significant influence in
- shaping one or more aspects of Org-mode. The list may not be complete,
- if I have forgotten someone, please accept my apologies and let me know.
- * Thomas Baumann contributed the code for links to the MH-E email
- system.
- * Alex Bochannek provided a patch for rounding time stamps.
- * Charles Cave's suggestion sparked the implementation of templates
- for Remember.
- * Pavel Chalmoviansky influenced the agenda treatment of items with
- specified time.
- * Gregory Chernov patched support for lisp forms into table
- calculations and improved XEmacs compatibility, in particular by
- porting `nouline.el' to XEmacs.
- * Sacha Chua suggested to copy some linking code from Planner.
- * Eddward DeVilla proposed and tested checkbox statistics.
- * Kees Dullemond used to edit projects lists directly in HTML and so
- inspired some of the early development, including HTML export. He
- also asked for a way to narrow wide table columns.
- * Christian Egli converted the documentation into TeXInfo format,
- patched CSS formatting into the HTML exporter, and inspired the
- agenda.
- * David Emery provided a patch for custom CSS support in exported
- HTML agendas.
- * Nic Ferrier contributed mailcap and XOXO support.
- * John Foerch figured out how to make incremental search show context
- around a match in a hidden outline tree.
- * Niels Giessen had the idea to automatically archive DONE trees.
- * Bastien Guerry provided extensive feedback and some patches, and
- translated David O'Toole's tutorial into French.
- * Kai Grossjohann pointed out key-binding conflicts with other
- packages.
- * Shidai Liu ("Leo") asked for embedded LaTeX and tested it. He also
- provided frequent feedback and some patches.
- * Jason F. McBrayer suggested agenda export to CSV format.
- * Dmitri Minaev sent a patch to set priority limits on a per-file
- basis.
- * Stefan Monnier provided a patch to keep the Emacs-Lisp compiler
- happy.
- * Rick Moynihan proposed to allow multiple TODO sequences in a file.
- * Todd Neal provided patches for links to Info files and elisp forms.
- * Tim O'Callaghan suggested in-file links, search options for general
- file links, and TAGS.
- * Takeshi Okano translated the manual and David O'Toole's tutorial
- into Japanese.
- * Oliver Oppitz suggested multi-state TODO items.
- * Scott Otterson sparked the introduction of descriptive text for
- links, among other things.
- * Pete Phillips helped during the development of the TAGS feature,
- and provided frequent feedback.
- * T.V. Raman reported bugs and suggested improvements.
- * Matthias Rempe (Oelde) provided ideas, Windows support, and quality
- control.
- * Kevin Rogers contributed code to access VM files on remote hosts.
- * Frank Ruell solved the mystery of the `keymapp nil' bug, a
- conflict with `allout.el'.
- * Jason Riedy sent a patch to fix a bug with export of TODO keywords.
- * Philip Rooke created the Org-mode reference card and provided lots
- of feedback.
- * Christian Schlauer proposed angular brackets around links, among
- other things.
- * Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
- `organizer-mode.el'.
- * Daniel Sinder came up with the idea of internal archiving by
- locking subtrees.
- * Dale Smith proposed link abbreviations.
- * David O'Toole wrote `org-publish.el' and drafted the manual
- chapter about publishing.
- * Ju"rgen Vollmer contributed code generating the table of contents
- in HTML output.
- * Chris Wallace provided a patch implementing the `QUOTE' keyword.
- * David Wainberg suggested archiving, and improvements to the linking
- system.
- * John Wiegley wrote `emacs-wiki.el' and `planner.el'. The
- development of Org-mode was fully independent, and both systems are
- really different beasts in their basic ideas and implementation
- details. I later looked at John's code, however, and learned from
- his implementation of (i) links where the link itself is hidden
- and only a description is shown, and (ii) popping up a calendar to
- select a date.
- * Carsten Wimmer suggested some changes and helped fix a bug in
- linking to GNUS.
- * Roland Winkler requested additional keybindings to make Org-mode
- work on a tty.
- * Piotr Zielinski wrote `org-mouse.el', proposed agenda blocks and
- contributed various ideas and code snippets.
- File: org, Node: Index, Next: Key Index, Prev: History and Acknowledgments, Up: Top
- Index
- *****
- �[index�]
- * Menu:
- * abbreviation, links: Link abbreviations. (line 6)
- * acknowledgments: History and Acknowledgments.
- (line 6)
- * action, for publishing: Publishing action. (line 6)
- * activation: Activation. (line 6)
- * active region <1>: Export commands. (line 6)
- * active region <2>: ASCII export. (line 9)
- * active region <3>: Built-in table editor.
- (line 141)
- * active region: Structure editing. (line 64)
- * agenda: Weekly/Daily agenda. (line 6)
- * agenda dispatcher: Agenda dispatcher. (line 6)
- * agenda files: Agenda files. (line 6)
- * agenda files, removing buffers: Agenda commands. (line 239)
- * agenda views: Agenda views. (line 6)
- * agenda views, custom: Custom agenda views. (line 6)
- * agenda views, exporting <1>: Exporting Agenda Views.
- (line 6)
- * agenda views, exporting: Agenda commands. (line 228)
- * agenda views, user-defined: Special agenda views.
- (line 6)
- * agenda, pipe: Extracting Agenda Information for other programs.
- (line 6)
- * agenda, with block views: Block agenda. (line 6)
- * align, STARTUP keyword: In-buffer settings. (line 29)
- * allout.el: Conflicts. (line 6)
- * angular brackets, around links: External links. (line 43)
- * archive locations: Moving subtrees. (line 21)
- * archiving: Archiving. (line 6)
- * ASCII export: ASCII export. (line 6)
- * author: Feedback. (line 6)
- * autoload: Activation. (line 6)
- * backtrace of an error: Feedback. (line 27)
- * BBDB links: External links. (line 6)
- * block agenda: Block agenda. (line 6)
- * blorg.el: Extensions. (line 32)
- * bold text: Enhancing text. (line 15)
- * Boolean logic, for tag searches: Tag searches. (line 23)
- * bug reports: Feedback. (line 6)
- * bugs: Bugs. (line 6)
- * C-c C-c, overview: The very busy C-c C-c key.
- (line 6)
- * calc package: The spreadsheet. (line 6)
- * calc.el: Cooperation. (line 6)
- * calculations, in tables <1>: The spreadsheet. (line 6)
- * calculations, in tables: Built-in table editor.
- (line 141)
- * calendar commands, from agenda: Agenda commands. (line 191)
- * calendar integration: Weekly/Daily agenda. (line 24)
- * calendar, for selecting date: The date/time prompt.
- (line 26)
- * category: Categories. (line 6)
- * CDLaTeX: CDLaTeX mode. (line 6)
- * cdlatex.el: Cooperation. (line 29)
- * checkbox statistics: Checkboxes. (line 23)
- * checkboxes: Checkboxes. (line 6)
- * children, subtree visibility state: Visibility cycling. (line 10)
- * clean outline view: Clean view. (line 6)
- * column formula: Column formulas. (line 6)
- * commands, in agenda buffer: Agenda commands. (line 6)
- * comment lines: Comment lines. (line 6)
- * completion, of dictionary words: Completion. (line 6)
- * completion, of file names: Handling links. (line 43)
- * completion, of link abbreviations: Completion. (line 6)
- * completion, of links: Handling links. (line 25)
- * completion, of option keywords <1>: Completion. (line 6)
- * completion, of option keywords <2>: Export options. (line 6)
- * completion, of option keywords: Per file keywords. (line 23)
- * completion, of tags <1>: Completion. (line 6)
- * completion, of tags: Setting tags. (line 11)
- * completion, of TeX symbols: Completion. (line 6)
- * completion, of TODO keywords <1>: Completion. (line 6)
- * completion, of TODO keywords: Workflow states. (line 15)
- * constants, in calculations: References. (line 82)
- * constants.el: Cooperation. (line 14)
- * constcgs, STARTUP keyword: In-buffer settings. (line 54)
- * constSI, STARTUP keyword: In-buffer settings. (line 54)
- * content, STARTUP keyword: In-buffer settings. (line 22)
- * contents, global visibility state: Visibility cycling. (line 22)
- * copying, of subtrees: Structure editing. (line 6)
- * creating timestamps: Creating timestamps. (line 6)
- * CUA.el: Conflicts. (line 15)
- * custom agenda views: Custom agenda views. (line 6)
- * custom date/time format: Custom time format. (line 6)
- * custom search strings: Custom searches. (line 6)
- * customization: Customization. (line 6)
- * customtime, STARTUP keyword: In-buffer settings. (line 51)
- * cutting, of subtrees: Structure editing. (line 6)
- * cycling, of TODO states: TODO basics. (line 13)
- * cycling, visibility: Visibility cycling. (line 6)
- * daily agenda: Weekly/Daily agenda. (line 6)
- * date format, custom: Custom time format. (line 6)
- * date range: Time stamps. (line 40)
- * date stamps <1>: Time stamps. (line 6)
- * date stamps: Timestamps. (line 6)
- * date, reading in minibuffer: The date/time prompt.
- (line 6)
- * DEADLINE keyword: Deadlines and scheduling.
- (line 10)
- * deadlines: Time stamps. (line 6)
- * debugging, of table formulas: Editing and debugging formulas.
- (line 97)
- * demotion, of subtrees: Structure editing. (line 6)
- * diary entries, creating from agenda: Agenda commands. (line 196)
- * diary integration: Weekly/Daily agenda. (line 24)
- * dictionary word completion: Completion. (line 6)
- * directories, for publishing: Sources and destinations.
- (line 6)
- * dispatching agenda commands: Agenda dispatcher. (line 6)
- * display changing, in agenda: Agenda commands. (line 65)
- * document structure: Document structure. (line 6)
- * DONE, final TODO keyword: Per file keywords. (line 26)
- * dynamic blocks: Dynamic blocks. (line 6)
- * editing tables: Tables. (line 6)
- * editing, of table formulas: Editing and debugging formulas.
- (line 6)
- * elisp links: External links. (line 6)
- * emphasized text: Export options. (line 25)
- * enhancing text: Enhancing text. (line 6)
- * evaluate time range: Creating timestamps. (line 48)
- * even, STARTUP keyword: In-buffer settings. (line 44)
- * exporting: Exporting. (line 6)
- * exporting agenda views <1>: Exporting Agenda Views.
- (line 12)
- * exporting agenda views: Agenda commands. (line 228)
- * exporting, not: Comment lines. (line 6)
- * extended TODO keywords: TODO extensions. (line 6)
- * extension, third-party: Extensions. (line 6)
- * external archiving: Moving subtrees. (line 6)
- * external links: External links. (line 6)
- * external links, in HTML export: Links. (line 6)
- * FAQ: Summary. (line 53)
- * feedback: Feedback. (line 6)
- * field formula: Field formulas. (line 6)
- * field references: References. (line 15)
- * file links: External links. (line 6)
- * file links, searching: Search options. (line 6)
- * file name completion: Handling links. (line 43)
- * files for agenda: Agenda files. (line 6)
- * files, adding to agenda list: Agenda files. (line 12)
- * files, selecting for publishing: Selecting files. (line 6)
- * fixed width: Enhancing text. (line 28)
- * fixed-width sections: Export options. (line 25)
- * folded, subtree visibility state: Visibility cycling. (line 10)
- * folding, sparse trees: Sparse trees. (line 6)
- * following links: Handling links. (line 58)
- * footnote.el <1>: Conflicts. (line 35)
- * footnote.el <2>: Cooperation. (line 56)
- * footnote.el: Footnotes. (line 6)
- * footnotes: Footnotes. (line 6)
- * format specifier: Formula syntax for Calc.
- (line 14)
- * format, of links: Link format. (line 6)
- * formula debugging: Editing and debugging formulas.
- (line 97)
- * formula editing: Editing and debugging formulas.
- (line 6)
- * formula syntax, Calc: Formula syntax for Calc.
- (line 6)
- * formula, for individual table field: Field formulas. (line 6)
- * formula, for table column: Column formulas. (line 6)
- * formula, in tables: Built-in table editor.
- (line 141)
- * global cycling: Visibility cycling. (line 22)
- * global keybindings: Activation. (line 6)
- * global TODO list: Global TODO list. (line 6)
- * global visibility states: Visibility cycling. (line 22)
- * GNUS links: External links. (line 6)
- * grouping columns in tables: Column groups. (line 6)
- * hand-formatted lists: Enhancing text. (line 11)
- * headline levels: Export options. (line 25)
- * headline levels, for exporting <1>: Export commands. (line 34)
- * headline levels, for exporting: ASCII export. (line 18)
- * headline navigation: Motion. (line 6)
- * headline tagging: Tags. (line 6)
- * headline, promotion and demotion: Structure editing. (line 6)
- * headlines: Headlines. (line 6)
- * hide text: Visibility cycling. (line 6)
- * hidestars, STARTUP keyword: In-buffer settings. (line 44)
- * hiding leading stars: Clean view. (line 6)
- * history: History and Acknowledgments.
- (line 6)
- * horizontal rules, in exported files: Enhancing text. (line 18)
- * HTML export: HTML export. (line 6)
- * HTML, and orgtbl-mode: Translator functions.
- (line 6)
- * hyperlinks: Hyperlinks. (line 6)
- * iCalendar export: iCalendar export. (line 6)
- * images, inline in HTML: Images. (line 6)
- * in-buffer settings: In-buffer settings. (line 6)
- * inactive timestamp: Time stamps. (line 49)
- * index, of published pages: Project page index. (line 6)
- * Info links: External links. (line 6)
- * inheritance, of tags: Tag inheritance. (line 6)
- * inlining images in HTML: Images. (line 6)
- * inserting links: Handling links. (line 25)
- * installation: Installation. (line 6)
- * internal archiving: ARCHIVE tag. (line 6)
- * internal links: Internal links. (line 6)
- * internal links, in HTML export: Links. (line 6)
- * introduction: Introduction. (line 6)
- * italic text: Enhancing text. (line 15)
- * jumping, to headlines: Motion. (line 6)
- * keybindings, global: Activation. (line 6)
- * keyword options: Per file keywords. (line 6)
- * LaTeX fragments <1>: Export options. (line 25)
- * LaTeX fragments: LaTeX fragments. (line 6)
- * LaTeX fragments, export: Enhancing text. (line 21)
- * LaTeX fragments, preview: Processing LaTeX fragments.
- (line 6)
- * LaTeX interpretation: Embedded LaTeX. (line 6)
- * LaTeX, and orgtbl-mode: A LaTeX example. (line 6)
- * level, require for tags match: Tag searches. (line 68)
- * linebreak preservation: Export options. (line 25)
- * linebreak, forced: Enhancing text. (line 35)
- * link abbreviations: Link abbreviations. (line 6)
- * link abbreviations, completion of: Completion. (line 6)
- * link completion: Handling links. (line 25)
- * link format: Link format. (line 6)
- * links, external: External links. (line 6)
- * links, finding next/previous: Handling links. (line 91)
- * links, handling: Handling links. (line 6)
- * links, in HTML export: Links. (line 6)
- * links, internal: Internal links. (line 6)
- * links, publishing: Publishing links. (line 6)
- * links, radio targets: Radio targets. (line 6)
- * links, returning to: Handling links. (line 85)
- * Lisp forms, as table formulas: Formula syntax for Lisp.
- (line 6)
- * lists, hand-formatted: Enhancing text. (line 11)
- * lists, ordered: Plain lists. (line 6)
- * lists, plain: Plain lists. (line 6)
- * logdone, STARTUP keyword: In-buffer settings. (line 33)
- * logging, of progress: Progress logging. (line 6)
- * lognoteclock-out, STARTUP keyword: In-buffer settings. (line 33)
- * lognotedone, STARTUP keyword: In-buffer settings. (line 33)
- * lognotestate, STARTUP keyword: In-buffer settings. (line 33)
- * logrepeat, STARTUP keyword: In-buffer settings. (line 33)
- * maintainer: Feedback. (line 6)
- * mark ring: Handling links. (line 81)
- * marking characters, tables: Advanced features. (line 40)
- * matching, of tags: Matching headline tags.
- (line 6)
- * matching, tags: Tags. (line 6)
- * math symbols: Math symbols. (line 6)
- * MH-E links: External links. (line 6)
- * minor mode for tables: orgtbl-mode. (line 6)
- * mode, for calc: Formula syntax for Calc.
- (line 14)
- * motion commands in agenda: Agenda commands. (line 19)
- * motion, between headlines: Motion. (line 6)
- * name, of column or field: References. (line 82)
- * named references: References. (line 82)
- * names as TODO keywords: TODO types. (line 6)
- * narrow columns in tables: Narrow columns. (line 6)
- * noalign, STARTUP keyword: In-buffer settings. (line 29)
- * nologging, STARTUP keyword: In-buffer settings. (line 33)
- * nologrepeat, STARTUP keyword: In-buffer settings. (line 33)
- * occur, command: Sparse trees. (line 6)
- * odd, STARTUP keyword: In-buffer settings. (line 44)
- * option keyword completion: Completion. (line 6)
- * options, for custom agenda views: Setting Options. (line 6)
- * options, for customization: Customization. (line 6)
- * options, for export: Export options. (line 6)
- * options, for publishing: Publishing options. (line 6)
- * ordered lists: Plain lists. (line 6)
- * org-agenda, command: Weekly/Daily agenda. (line 9)
- * org-blog.el: Extensions. (line 28)
- * org-mode, turning on: Activation. (line 22)
- * org-mouse.el: Extensions. (line 16)
- * org-publish-project-alist: Project alist. (line 6)
- * org-publish.el: Extensions. (line 8)
- * org2rem.el: Extensions. (line 36)
- * orgtbl-mode <1>: Tables in arbitrary syntax.
- (line 6)
- * orgtbl-mode: orgtbl-mode. (line 6)
- * outline tree: Headlines. (line 6)
- * outline-mode: Outlines. (line 6)
- * outlines: Outlines. (line 6)
- * overview, global visibility state: Visibility cycling. (line 22)
- * overview, STARTUP keyword: In-buffer settings. (line 22)
- * packages, interaction with other: Interaction. (line 6)
- * pasting, of subtrees: Structure editing. (line 6)
- * per file keywords: Per file keywords. (line 6)
- * plain lists: Plain lists. (line 6)
- * plain text external links: External links. (line 43)
- * presentation, of agenda items: Presentation and sorting.
- (line 6)
- * printing sparse trees: Sparse trees. (line 41)
- * priorities: Priorities. (line 6)
- * priorities, of agenda items: Sorting of agenda items.
- (line 6)
- * progress logging: Progress logging. (line 6)
- * projects, for publishing: Project alist. (line 6)
- * promotion, of subtrees: Structure editing. (line 6)
- * publishing: Publishing. (line 6)
- * quoted HTML tags: Export options. (line 25)
- * radio tables: Radio tables. (line 6)
- * radio targets: Radio targets. (line 6)
- * range references: References. (line 60)
- * ranges, time: Time stamps. (line 6)
- * recomputing table fields: Updating the table. (line 6)
- * references: References. (line 6)
- * references, named: References. (line 82)
- * references, to fields: References. (line 15)
- * references, to ranges: References. (line 60)
- * region, active <1>: Export commands. (line 6)
- * region, active <2>: ASCII export. (line 9)
- * region, active <3>: Built-in table editor.
- (line 141)
- * region, active: Structure editing. (line 64)
- * regular expressions, with tags search: Tag searches. (line 63)
- * remember.el <1>: Cooperation. (line 33)
- * remember.el: Remember. (line 6)
- * remote editing, from agenda: Agenda commands. (line 106)
- * remote editing, undo: Agenda commands. (line 107)
- * richer text: Enhancing text. (line 6)
- * RMAIL links: External links. (line 6)
- * SCHEDULED keyword: Deadlines and scheduling.
- (line 22)
- * scheduling: Time stamps. (line 6)
- * Scripts, for agenda processing: Extracting Agenda Information for other programs.
- (line 6)
- * search option in file links: Search options. (line 6)
- * search strings, custom: Custom searches. (line 6)
- * searching for tags: Tag searches. (line 6)
- * section-numbers: Export options. (line 25)
- * setting tags: Setting tags. (line 6)
- * SHELL links: External links. (line 6)
- * show all, command: Visibility cycling. (line 33)
- * show all, global visibility state: Visibility cycling. (line 22)
- * show hidden text: Visibility cycling. (line 6)
- * showall, STARTUP keyword: In-buffer settings. (line 22)
- * showstars, STARTUP keyword: In-buffer settings. (line 44)
- * sorting, of agenda items: Sorting of agenda items.
- (line 6)
- * sparse tree, for deadlines: Inserting deadline/schedule.
- (line 11)
- * sparse tree, for TODO: TODO basics. (line 26)
- * sparse tree, tag based: Tags. (line 6)
- * sparse trees: Sparse trees. (line 6)
- * special keywords: In-buffer settings. (line 6)
- * spreadsheet capabilities: The spreadsheet. (line 6)
- * statistics, for checkboxes: Checkboxes. (line 23)
- * storing links: Handling links. (line 9)
- * structure editing: Structure editing. (line 6)
- * structure of document: Document structure. (line 6)
- * sublevels, inclusion into tags match: Tag inheritance. (line 6)
- * sublevels, inclusion into todo list: Global TODO list. (line 34)
- * subscript: Subscripts and Superscripts.
- (line 6)
- * subtree cycling: Visibility cycling. (line 10)
- * subtree visibility states: Visibility cycling. (line 10)
- * subtree, cut and paste: Structure editing. (line 6)
- * subtree, subtree visibility state: Visibility cycling. (line 10)
- * subtrees, cut and paste: Structure editing. (line 6)
- * summary: Summary. (line 6)
- * superscript: Subscripts and Superscripts.
- (line 6)
- * syntax, of formulas: Formula syntax for Calc.
- (line 6)
- * table editor, built-in: Built-in table editor.
- (line 6)
- * table editor, table.el: Cooperation. (line 37)
- * table of contents: Export options. (line 25)
- * table.el: Cooperation. (line 34)
- * tables <1>: Export options. (line 25)
- * tables: Tables. (line 6)
- * tables, export: Enhancing text. (line 24)
- * tables, in other modes: Tables in arbitrary syntax.
- (line 6)
- * tag completion: Completion. (line 6)
- * tag searches: Tag searches. (line 6)
- * tags: Tags. (line 6)
- * tags view: Matching headline tags.
- (line 6)
- * tags, setting: Setting tags. (line 6)
- * targets, for links: Internal links. (line 6)
- * targets, radio: Radio targets. (line 6)
- * tasks, breaking down: Breaking down tasks. (line 6)
- * templates, for remember: Remember templates. (line 6)
- * TeX interpretation: Embedded LaTeX. (line 6)
- * TeX macros <1>: Export options. (line 25)
- * TeX macros: Math symbols. (line 6)
- * TeX macros, export: Enhancing text. (line 21)
- * TeX symbol completion: Completion. (line 6)
- * TeX-like syntax for sub- and superscripts: Export options. (line 25)
- * thanks: History and Acknowledgments.
- (line 6)
- * time format, custom: Custom time format. (line 6)
- * time grid: Time-of-day specifications.
- (line 26)
- * time stamps <1>: Time stamps. (line 6)
- * time stamps: Timestamps. (line 6)
- * time, reading in minibuffer: The date/time prompt.
- (line 6)
- * time-of-day specification: Time-of-day specifications.
- (line 6)
- * time-sorted view: Timeline. (line 6)
- * timeline, single file: Timeline. (line 6)
- * timerange: Time stamps. (line 40)
- * timestamp: Time stamps. (line 14)
- * timestamp, inactive: Time stamps. (line 49)
- * timestamp, with repeater interval: Time stamps. (line 24)
- * timestamps, creating: Creating timestamps. (line 6)
- * TODO items: TODO items. (line 6)
- * TODO keyword matching: Global TODO list. (line 17)
- * TODO keyword matching, with tags search: Tag searches. (line 40)
- * todo keyword sets: Multiple sets in one file.
- (line 6)
- * TODO keywords completion: Completion. (line 6)
- * TODO list, global: Global TODO list. (line 6)
- * TODO types: TODO types. (line 6)
- * TODO workflow: Workflow states. (line 6)
- * transient-mark-mode <1>: Export commands. (line 6)
- * transient-mark-mode <2>: ASCII export. (line 9)
- * transient-mark-mode <3>: Built-in table editor.
- (line 141)
- * transient-mark-mode: Structure editing. (line 64)
- * translator function: Translator functions.
- (line 6)
- * trees, sparse: Sparse trees. (line 6)
- * trees, visibility: Visibility cycling. (line 6)
- * tty keybindings: TTY keys. (line 6)
- * types as TODO keywords: TODO types. (line 6)
- * underlined text: Enhancing text. (line 15)
- * undoing remote-editing events: Agenda commands. (line 107)
- * updating, table: Updating the table. (line 6)
- * URL links: External links. (line 6)
- * USENET links: External links. (line 6)
- * variables, for customization: Customization. (line 6)
- * vectors, in table calculations: Formula syntax for Calc.
- (line 11)
- * visibility cycling: Visibility cycling. (line 6)
- * visible text, printing: Sparse trees. (line 41)
- * VM links: External links. (line 6)
- * WANDERLUST links: External links. (line 6)
- * weekly agenda: Weekly/Daily agenda. (line 6)
- * windmove.el: Conflicts. (line 32)
- * workflow states as TODO keywords: Workflow states. (line 6)
- * XEmacs: Installation. (line 6)
- * XOXO export: XOXO export. (line 6)
- File: org, Node: Key Index, Prev: Index, Up: Top
- Key Index
- *********
- �[index�]
- * Menu:
- * $: Agenda commands. (line 121)
- * ': CDLaTeX mode. (line 43)
- * +: Agenda commands. (line 143)
- * ,: Agenda commands. (line 135)
- * -: Agenda commands. (line 149)
- * .: Agenda commands. (line 98)
- * :: Agenda commands. (line 129)
- * <: The date/time prompt.
- (line 32)
- * <left>: Agenda commands. (line 95)
- * <RET> <1>: Agenda commands. (line 39)
- * <RET> <2>: Setting tags. (line 76)
- * <RET> <3>: The date/time prompt.
- (line 57)
- * <RET>: Built-in table editor.
- (line 62)
- * <right>: Agenda commands. (line 90)
- * <SPC> <1>: Agenda commands. (line 28)
- * <SPC>: Setting tags. (line 73)
- * <TAB> <1>: CDLaTeX mode. (line 23)
- * <TAB> <2>: Agenda commands. (line 33)
- * <TAB> <3>: Setting tags. (line 68)
- * <TAB> <4>: Editing and debugging formulas.
- (line 57)
- * <TAB> <5>: Built-in table editor.
- (line 55)
- * <TAB> <6>: Plain lists. (line 41)
- * <TAB>: Visibility cycling. (line 10)
- * > <1>: Agenda commands. (line 171)
- * >: The date/time prompt.
- (line 33)
- * ^: CDLaTeX mode. (line 33)
- * _: CDLaTeX mode. (line 33)
- * `: CDLaTeX mode. (line 39)
- * a: Agenda commands. (line 132)
- * b: Agenda commands. (line 49)
- * C: Agenda commands. (line 211)
- * c: Agenda commands. (line 191)
- * C-#: Advanced features. (line 9)
- * C-': Agenda files. (line 18)
- * C-,: Agenda files. (line 18)
- * C-_: Agenda commands. (line 107)
- * C-a a L: Timeline. (line 10)
- * C-c ! <1>: Footnotes. (line 14)
- * C-c !: Creating timestamps. (line 19)
- * C-c #: Checkboxes. (line 56)
- * C-c %: Handling links. (line 81)
- * C-c &: Handling links. (line 85)
- * C-c ': Editing and debugging formulas.
- (line 36)
- * C-c *: Updating the table. (line 13)
- * C-c +: Built-in table editor.
- (line 141)
- * C-c ,: Priorities. (line 18)
- * C-c -: Built-in table editor.
- (line 90)
- * C-c .: Creating timestamps. (line 10)
- * C-c /: Sparse trees. (line 15)
- * C-c :: Enhancing text. (line 32)
- * C-c ;: Comment lines. (line 10)
- * C-c <: Creating timestamps. (line 23)
- * C-c <TAB>: Built-in table editor.
- (line 161)
- * C-c = <1>: Editing and debugging formulas.
- (line 14)
- * C-c =: Column formulas. (line 26)
- * C-c >: Creating timestamps. (line 27)
- * C-c ?: Editing and debugging formulas.
- (line 24)
- * C-c [: Agenda files. (line 12)
- * C-c \: Tag searches. (line 9)
- * C-c ]: Agenda files. (line 15)
- * C-c ^ <1>: Built-in table editor.
- (line 94)
- * C-c ^: Structure editing. (line 52)
- * C-c `: Built-in table editor.
- (line 157)
- * C-c a !: Stuck projects. (line 14)
- * C-c a #: Stuck projects. (line 13)
- * C-c a a: Weekly/Daily agenda. (line 9)
- * C-c a C: Storing searches. (line 9)
- * C-c a e: Exporting Agenda Views.
- (line 57)
- * C-c a M: Matching headline tags.
- (line 15)
- * C-c a m: Matching headline tags.
- (line 10)
- * C-c a M: Tag searches. (line 16)
- * C-c a m: Tag searches. (line 12)
- * C-c a T: Global TODO list. (line 14)
- * C-c a t <1>: Global TODO list. (line 9)
- * C-c a t: TODO basics. (line 36)
- * C-c C-a: Visibility cycling. (line 33)
- * C-c C-b: Motion. (line 15)
- * C-c C-c <1>: Cooperation. (line 37)
- * C-c C-c <2>: The very busy C-c C-c key.
- (line 6)
- * C-c C-c <3>: Processing LaTeX fragments.
- (line 15)
- * C-c C-c <4>: Setting tags. (line 10)
- * C-c C-c <5>: Checkboxes. (line 37)
- * C-c C-c <6>: Editing and debugging formulas.
- (line 46)
- * C-c C-c <7>: Built-in table editor.
- (line 54)
- * C-c C-c: Plain lists. (line 78)
- * C-c C-d <1>: Agenda commands. (line 156)
- * C-c C-d: Inserting deadline/schedule.
- (line 9)
- * C-c C-e: Exporting. (line 19)
- * C-c C-e a: ASCII export. (line 9)
- * C-c C-e b: Export commands. (line 7)
- * C-c C-e c: iCalendar export. (line 21)
- * C-c C-e H: Export commands. (line 10)
- * C-c C-e h: Export commands. (line 6)
- * C-c C-e I: iCalendar export. (line 16)
- * C-c C-e i: iCalendar export. (line 14)
- * C-c C-e R: Export commands. (line 13)
- * C-c C-e t: Export options. (line 13)
- * C-c C-e v <1>: XOXO export. (line 11)
- * C-c C-e v: Sparse trees. (line 41)
- * C-c C-e v a: ASCII export. (line 13)
- * C-c C-e v b: Export commands. (line 18)
- * C-c C-e v H: Export commands. (line 18)
- * C-c C-e v h: Export commands. (line 18)
- * C-c C-e v R: Export commands. (line 18)
- * C-c C-e x: XOXO export. (line 10)
- * C-c C-f: Motion. (line 12)
- * C-c C-j: Motion. (line 21)
- * C-c C-l: Handling links. (line 25)
- * C-c C-n: Motion. (line 8)
- * C-c C-o <1>: Creating timestamps. (line 31)
- * C-c C-o: Handling links. (line 58)
- * C-c C-p: Motion. (line 9)
- * C-c C-q <1>: Editing and debugging formulas.
- (line 50)
- * C-c C-q: Built-in table editor.
- (line 125)
- * C-c C-r <1>: Editing and debugging formulas.
- (line 53)
- * C-c C-r: Visibility cycling. (line 34)
- * C-c C-s <1>: Agenda commands. (line 153)
- * C-c C-s: Inserting deadline/schedule.
- (line 18)
- * C-c C-t <1>: Clocking work time. (line 27)
- * C-c C-t: TODO basics. (line 13)
- * C-c C-u: Motion. (line 18)
- * C-c C-v: TODO basics. (line 26)
- * C-c C-w: Inserting deadline/schedule.
- (line 11)
- * C-c C-x b: Visibility cycling. (line 41)
- * C-c C-x C-a: ARCHIVE tag. (line 28)
- * C-c C-x C-b: Checkboxes. (line 38)
- * C-c C-x C-c: Agenda commands. (line 218)
- * C-c C-x C-d: Clocking work time. (line 35)
- * C-c C-x C-i: Clocking work time. (line 12)
- * C-c C-x C-k: Structure editing. (line 39)
- * C-c C-x C-l: Processing LaTeX fragments.
- (line 9)
- * C-c C-x C-n: Handling links. (line 91)
- * C-c C-x C-o: Clocking work time. (line 14)
- * C-c C-x C-p: Handling links. (line 91)
- * C-c C-x C-r: Clocking work time. (line 43)
- * C-c C-x C-s: Moving subtrees. (line 10)
- * C-c C-x C-t: Custom time format. (line 12)
- * C-c C-x C-u: Dynamic blocks. (line 21)
- * C-c C-x C-w <1>: Built-in table editor.
- (line 114)
- * C-c C-x C-w: Structure editing. (line 39)
- * C-c C-x C-x: Clocking work time. (line 31)
- * C-c C-x C-y <1>: Built-in table editor.
- (line 118)
- * C-c C-x C-y: Structure editing. (line 46)
- * C-c C-x M-w <1>: Built-in table editor.
- (line 111)
- * C-c C-x M-w: Structure editing. (line 43)
- * C-c C-y <1>: Clocking work time. (line 22)
- * C-c C-y: Creating timestamps. (line 48)
- * C-c l: Handling links. (line 9)
- * C-c { <1>: CDLaTeX mode. (line 21)
- * C-c {: Editing and debugging formulas.
- (line 33)
- * C-c |: Built-in table editor.
- (line 40)
- * C-c }: Editing and debugging formulas.
- (line 28)
- * C-c ~: Cooperation. (line 48)
- * C-k: Agenda commands. (line 115)
- * C-S-<left>: Multiple sets in one file.
- (line 25)
- * C-S-<right>: Multiple sets in one file.
- (line 25)
- * C-TAB: ARCHIVE tag. (line 38)
- * C-u C-c *: Updating the table. (line 16)
- * C-u C-c .: Creating timestamps. (line 14)
- * C-u C-c = <1>: Editing and debugging formulas.
- (line 14)
- * C-u C-c =: Field formulas. (line 24)
- * C-u C-c C-c: Updating the table. (line 19)
- * C-u C-c C-l: Handling links. (line 43)
- * C-u C-c C-x C-a: ARCHIVE tag. (line 31)
- * C-u C-c C-x C-s: Moving subtrees. (line 12)
- * C-u C-c C-x C-u <1>: Dynamic blocks. (line 22)
- * C-u C-c C-x C-u: Clocking work time. (line 70)
- * C-u C-u C-c *: Updating the table. (line 22)
- * C-u C-u C-c =: Editing and debugging formulas.
- (line 18)
- * C-x C-s: Editing and debugging formulas.
- (line 46)
- * C-x C-w <1>: Exporting Agenda Views.
- (line 11)
- * C-x C-w: Agenda commands. (line 227)
- * D: Agenda commands. (line 72)
- * d: Agenda commands. (line 69)
- * f: Agenda commands. (line 42)
- * g: Agenda commands. (line 76)
- * H: Agenda commands. (line 215)
- * i: Agenda commands. (line 196)
- * I: Agenda commands. (line 176)
- * l: Agenda commands. (line 55)
- * L: Agenda commands. (line 30)
- * M: Agenda commands. (line 202)
- * M-<down> <1>: Editing and debugging formulas.
- (line 76)
- * M-<down>: Built-in table editor.
- (line 80)
- * M-<left> <1>: Built-in table editor.
- (line 72)
- * M-<left>: Structure editing. (line 21)
- * M-<RET> <1>: Plain lists. (line 46)
- * M-<RET>: Structure editing. (line 6)
- * M-<right> <1>: Built-in table editor.
- (line 72)
- * M-<right>: Structure editing. (line 24)
- * M-<TAB> <1>: Completion. (line 10)
- * M-<TAB> <2>: Setting tags. (line 6)
- * M-<TAB> <3>: Per file keywords. (line 23)
- * M-<TAB>: Editing and debugging formulas.
- (line 64)
- * M-<up> <1>: Editing and debugging formulas.
- (line 76)
- * M-<up>: Built-in table editor.
- (line 80)
- * M-S-<down> <1>: Editing and debugging formulas.
- (line 72)
- * M-S-<down> <2>: Built-in table editor.
- (line 87)
- * M-S-<down> <3>: Plain lists. (line 63)
- * M-S-<down>: Structure editing. (line 36)
- * M-S-<left> <1>: The date/time prompt.
- (line 54)
- * M-S-<left> <2>: Built-in table editor.
- (line 74)
- * M-S-<left> <3>: Plain lists. (line 69)
- * M-S-<left>: Structure editing. (line 27)
- * M-S-<RET> <1>: Checkboxes. (line 53)
- * M-S-<RET> <2>: Plain lists. (line 56)
- * M-S-<RET>: Structure editing. (line 18)
- * M-S-<right> <1>: The date/time prompt.
- (line 51)
- * M-S-<right> <2>: Built-in table editor.
- (line 77)
- * M-S-<right> <3>: Plain lists. (line 69)
- * M-S-<right>: Structure editing. (line 30)
- * M-S-<up> <1>: Editing and debugging formulas.
- (line 72)
- * M-S-<up> <2>: Built-in table editor.
- (line 84)
- * M-S-<up> <3>: Plain lists. (line 63)
- * M-S-<up>: Structure editing. (line 33)
- * mouse-1 <1>: Agenda commands. (line 33)
- * mouse-1 <2>: The date/time prompt.
- (line 36)
- * mouse-1: Handling links. (line 72)
- * mouse-2 <1>: Agenda commands. (line 33)
- * mouse-2: Handling links. (line 72)
- * mouse-3 <1>: Agenda commands. (line 28)
- * mouse-3: Handling links. (line 77)
- * n: Agenda commands. (line 19)
- * O: Agenda commands. (line 180)
- * o: Agenda commands. (line 65)
- * P: Agenda commands. (line 140)
- * p: Agenda commands. (line 20)
- * q: Agenda commands. (line 238)
- * r <1>: Agenda commands. (line 80)
- * r: Global TODO list. (line 22)
- * S: Agenda commands. (line 206)
- * s: Agenda commands. (line 87)
- * S-<down> <1>: Agenda commands. (line 149)
- * S-<down> <2>: The date/time prompt.
- (line 45)
- * S-<down> <3>: Creating timestamps. (line 40)
- * S-<down> <4>: Priorities. (line 23)
- * S-<down> <5>: Editing and debugging formulas.
- (line 67)
- * S-<down>: Plain lists. (line 59)
- * S-<left> <1>: Agenda commands. (line 167)
- * S-<left> <2>: The date/time prompt.
- (line 42)
- * S-<left> <3>: Creating timestamps. (line 35)
- * S-<left> <4>: Multiple sets in one file.
- (line 29)
- * S-<left> <5>: TODO basics. (line 20)
- * S-<left>: Editing and debugging formulas.
- (line 67)
- * S-<RET>: Built-in table editor.
- (line 144)
- * S-<right> <1>: Agenda commands. (line 159)
- * S-<right> <2>: The date/time prompt.
- (line 39)
- * S-<right> <3>: Creating timestamps. (line 35)
- * S-<right> <4>: Multiple sets in one file.
- (line 29)
- * S-<right> <5>: TODO basics. (line 20)
- * S-<right>: Editing and debugging formulas.
- (line 67)
- * S-<TAB> <1>: Built-in table editor.
- (line 59)
- * S-<TAB>: Visibility cycling. (line 22)
- * S-<up> <1>: Agenda commands. (line 143)
- * S-<up> <2>: The date/time prompt.
- (line 48)
- * S-<up> <3>: Creating timestamps. (line 40)
- * S-<up> <4>: Priorities. (line 23)
- * S-<up> <5>: Editing and debugging formulas.
- (line 67)
- * S-<up>: Plain lists. (line 59)
- * T: Agenda commands. (line 124)
- * t: Agenda commands. (line 111)
- * w: Agenda commands. (line 66)
- * x: Agenda commands. (line 239)
- * X: Agenda commands. (line 183)
- Tag Table:
- Node: Top970
- Node: Introduction11743
- Node: Summary12158
- Node: Installation15167
- Node: Activation16545
- Node: Feedback17794
- Node: Document structure19870
- Node: Outlines20644
- Node: Headlines21304
- Ref: Headlines-Footnote-122312
- Node: Visibility cycling22411
- Ref: Visibility cycling-Footnote-124621
- Ref: Visibility cycling-Footnote-224679
- Ref: Visibility cycling-Footnote-324729
- Node: Motion24999
- Node: Structure editing25953
- Node: Archiving28779
- Node: ARCHIVE tag29337
- Node: Moving subtrees31130
- Node: Sparse trees32441
- Ref: Sparse trees-Footnote-134573
- Ref: Sparse trees-Footnote-234755
- Node: Plain lists34870
- Ref: Plain lists-Footnote-138639
- Ref: Plain lists-Footnote-238997
- Node: Tables39181
- Node: Built-in table editor39762
- Node: Narrow columns47001
- Ref: Narrow columns-Footnote-148936
- Node: Column groups48982
- Node: orgtbl-mode50515
- Node: The spreadsheet51318
- Node: References52405
- Ref: References-Footnote-156534
- Node: Formula syntax for Calc56823
- Node: Formula syntax for Lisp59280
- Node: Field formulas60549
- Node: Column formulas61857
- Node: Editing and debugging formulas63456
- Node: Updating the table67609
- Node: Advanced features68644
- Node: Hyperlinks73169
- Node: Link format73942
- Node: Internal links75235
- Ref: Internal links-Footnote-177160
- Node: Radio targets77292
- Node: External links77983
- Node: Handling links80387
- Ref: Handling links-Footnote-185674
- Ref: Handling links-Footnote-285911
- Node: Link abbreviations85985
- Node: Search options87664
- Ref: Search options-Footnote-189444
- Node: Custom searches89525
- Node: Remember90573
- Node: Setting up remember91560
- Node: Remember templates92142
- Ref: Remember templates-Footnote-195434
- Node: Storing notes95532
- Node: TODO items97419
- Node: TODO basics98402
- Node: TODO extensions100099
- Node: Workflow states100918
- Ref: Workflow states-Footnote-1102093
- Node: TODO types102186
- Ref: TODO types-Footnote-1103769
- Node: Multiple sets in one file103851
- Node: Per file keywords105462
- Ref: Per file keywords-Footnote-1106751
- Node: Priorities106952
- Node: Breaking down tasks108562
- Ref: Breaking down tasks-Footnote-1109082
- Node: Checkboxes109178
- Node: Timestamps111933
- Node: Time stamps112374
- Ref: Time stamps-Footnote-1114679
- Node: Creating timestamps114795
- Node: The date/time prompt116869
- Ref: The date/time prompt-Footnote-1118857
- Node: Custom time format118963
- Node: Deadlines and scheduling120511
- Ref: Deadlines and scheduling-Footnote-1121861
- Node: Inserting deadline/schedule122016
- Node: Repeated tasks122954
- Node: Progress logging124593
- Node: Closing items125248
- Ref: Closing items-Footnote-1126182
- Ref: Closing items-Footnote-2126251
- Node: Tracking TODO state changes126324
- Node: Clocking work time127180
- Ref: Clocking work time-Footnote-1130826
- Ref: Clocking work time-Footnote-2130904
- Node: Tags131030
- Node: Tag inheritance131792
- Node: Setting tags132729
- Ref: Setting tags-Footnote-1137252
- Ref: Setting tags-Footnote-2137364
- Node: Tag searches137447
- Node: Agenda views140158
- Node: Agenda files142103
- Ref: Agenda files-Footnote-1143069
- Ref: Agenda files-Footnote-2143218
- Node: Agenda dispatcher143411
- Node: Built-in agenda views145102
- Node: Weekly/Daily agenda145680
- Node: Global TODO list148621
- Node: Matching headline tags150893
- Node: Timeline151964
- Node: Stuck projects152630
- Node: Presentation and sorting154481
- Node: Categories155272
- Node: Time-of-day specifications155936
- Node: Sorting of agenda items157907
- Node: Agenda commands159189
- Node: Custom agenda views166343
- Node: Storing searches167062
- Node: Block agenda168974
- Node: Setting Options170204
- Node: Exporting Agenda Views172943
- Ref: Exporting Agenda Views-Footnote-1177227
- Ref: Exporting Agenda Views-Footnote-2177284
- Node: Extracting Agenda Information for other programs177470
- Node: Embedded LaTeX181596
- Ref: Embedded LaTeX-Footnote-1182688
- Node: Math symbols182878
- Node: Subscripts and Superscripts183643
- Node: LaTeX fragments184487
- Ref: LaTeX fragments-Footnote-1186721
- Node: Processing LaTeX fragments186983
- Node: CDLaTeX mode187929
- Ref: CDLaTeX mode-Footnote-1190413
- Node: Exporting190561
- Node: ASCII export191875
- Node: HTML export193165
- Node: Export commands193784
- Node: Quoting HTML tags195028
- Node: Links195658
- Node: Images196355
- Ref: Images-Footnote-1197226
- Node: CSS support197287
- Ref: CSS support-Footnote-1198606
- Node: XOXO export198719
- Node: iCalendar export199158
- Node: Text interpretation200377
- Node: Comment lines200968
- Node: Initial text201363
- Node: Footnotes203032
- Node: Enhancing text203847
- Ref: Enhancing text-Footnote-1205706
- Node: Export options205796
- Node: Publishing207689
- Ref: Publishing-Footnote-1208485
- Node: Configuration208681
- Node: Project alist209399
- Node: Sources and destinations210465
- Node: Selecting files211195
- Node: Publishing action211943
- Node: Publishing options213176
- Node: Publishing links215328
- Node: Project page index216841
- Node: Sample configuration217619
- Node: Simple example218111
- Node: Complex example218784
- Node: Triggering publication220860
- Node: Miscellaneous221545
- Node: Completion222179
- Node: Customization223650
- Node: In-buffer settings224233
- Node: The very busy C-c C-c key229109
- Node: Clean view230753
- Node: TTY keys233330
- Node: Interaction234940
- Node: Cooperation235337
- Node: Conflicts238213
- Node: Bugs240216
- Node: Extensions and Hacking241712
- Node: Extensions242308
- Node: Tables in arbitrary syntax244255
- Node: Radio tables245332
- Node: A LaTeX example247835
- Ref: A LaTeX example-Footnote-1251481
- Ref: A LaTeX example-Footnote-2251629
- Node: Translator functions252064
- Ref: Translator functions-Footnote-1255173
- Node: Dynamic blocks255261
- Node: Special agenda views257233
- Ref: Special agenda views-Footnote-1259512
- Node: History and Acknowledgments259772
- Node: Index265866
- Node: Key Index298020
- End Tag Table
|