Re: [O] org-contacts email completion by tags
Daimrod daim...@gmail.com writes: Thanks, but I'm refactoring org-contacts a bit, and I think I have found a slightly better way to do that, but in the meantime you can use the aforementioned hook for your function. It turns out that my idea was wrong, so I have used a version very similar to yours. The function is triggered by the prefix '#' (customizable) and can be used to match tags and properties. e.g. the following expression: #work-phdBIRTHDAY will look for contacts with the tag 'work' but not the tag 'phd' and for which there is a BIRTHDAY properties. Best, -- Daimrod/Greg
[O] org agenda clock check shows strange clocking gaps at beginning of day
Dear org-mode users and developers, sometimes clockcheck shows strange clocking gaps: Sonntag 1 Juni 2014 izt:11:07-11:21 Clocked: (0:14) heading - description Clocking gap: 96 minutes izt:12:57-13:12 Clocked: (0:15) heading - description Montag 2 Juni 2014 W23 Dienstag3 Juni 2014 Mittwoch4 Juni 2014 Donnerstag 5 Juni 2014 Freitag 6 Juni 2014 -- Clocking gap: 7536 minutes izt:18:48-19:00 Clocked: (0:12) heading - description Samstag 7 Juni 2014 All three clocking items belong to the same heading. I'm fine with the first clocking gabp. But why is there a gap of 7536 minutes shown although ‘org-agenda-clock-consistency-checks’ is at default values (gap-around 4:00)? Ciao, Gregor -- -... --- .-. . -.. ..--.. ...-.-
[O] Babel : python generate org source block with an extra comma before * characters
Dear Orgmode community, Thanks in advance to take some time to help me with my problem... Here is what is making me very sad : I have a python (python 3 interpreter) source block that I use to generate parts of a report written in Orgmode. Suppose we have this little example : #+NAME: test #+BEGIN_SRC python :results value org :session test report = *** header 1 My pretty report *** header 2 Ah ah! With that stuff, I will increase my *productivity*!!! report #+END_SRC What I get is : #+RESULTS: test #+BEGIN_SRC org ,*** header 1 My pretty report ,*** header 2 Ah ah, with that stuff, I will increase my *productivity*!!! #+END_SRC My question : Why Orgmode adds the comma before the star character??? In the manual, I read some things about comma-escaping in Org source block so my intuition tells me that my problem has something to do with that but I wasn't able to solve it for now. My configuration : - Org 8.2.5h on Linux Mint 16. - Python 3 Any help would be much appreciated! Thanks. Roland.
Re: [O] Babel : python generate org source block with an extra comma before * characters
Roland DONAT roland.do...@gmail.com writes: Dear Orgmode community, Thanks in advance to take some time to help me with my problem... Here is what is making me very sad : I have a python (python 3 interpreter) source block that I use to generate parts of a report written in Orgmode. Suppose we have this little example : #+NAME: test #+BEGIN_SRC python :results value org :session test report = *** header 1 My pretty report *** header 2 Ah ah! With that stuff, I will increase my *productivity*!!! report #+END_SRC What I get is : #+RESULTS: test #+BEGIN_SRC org ,*** header 1 My pretty report ,*** header 2 Ah ah, with that stuff, I will increase my *productivity*!!! #+END_SRC My question : Why Orgmode adds the comma before the star character??? In the manual, I read some things about comma-escaping in Org source block so my intuition tells me that my problem has something to do with that but I wasn't able to solve it for now. My configuration : - Org 8.2.5h on Linux Mint 16. - Python 3 Any help would be much appreciated! Thanks. This is because this function was applied to the results ,[ C-h f org-escape-code-in-region RET ] | org-escape-code-in-region is an interactive compiled Lisp function in | `org-src.el'. | | (org-escape-code-in-region BEG END) | | Escape lines between BEG and END. | Escaping happens when a line starts with *, #+, ,* or | ,#+ by appending a comma to it. | | [back] ` Not sure how to get rid of this, maybe via :results raw? I'm not aware of a configuration variable for this, but it surely exists. -- cheers, Thorsten
[O] make orgtbl-ascii-plot easier to install
Hi The List I moved orgtbl-ascii-plot to MELPA (it was in Worg). (orgtbl-ascii-plot draws plots in pure Emacs by typing C-c p). Of course, I am still open to Dominik Carsten suggestion to add it into the core (org-table.el). http://thread.gmane.org/gmane.emacs.orgmode/79668 In the process I wrote a tutorial on how to contribute to Org through Melpa + GitHub. See http://orgmode.org/worg/org-tutorials/melpa-github.html As usual, your comments, enhancements, criticisms are welcome. Have fun Thierry - Documentation: http://orgmode.org/worg/org-contrib/orgtbl-ascii-plot.html Install: add the MELPA repository in your .emacs: (add-to-list 'package-archives '(melpa . http://melpa.milkbox.net/packages/;) t) M-x package-list-packages Source: https://github.com/tbanel/orgtblasciiplot/blob/master/orgtbl-ascii-plot.el | n | n^2 | ascii-plot | |---+-+--| | 0 | 0 | | | 1 | 1 | .| | 2 | 4 | h| | 3 | 9 | Wl | | 4 | 16 | WWW | | 5 | 25 | l| | 6 | 36 | WWh | | 7 | 49 | W. | | 8 | 64 | | #+TBLFM: $2=$1^2::$3='(orgtbl-ascii-draw $2 0 64 12)
Re: [O] Babel : python generate org source block with an extra comma before * characters
Thorsten Jolitz tjolitz at gmail.com writes: This is because this function was applied to the results ,[ C-h f org-escape-code-in-region RET ] | org-escape-code-in-region is an interactive compiled Lisp function in | `org-src.el'. | | (org-escape-code-in-region BEG END) | | Escape lines between BEG and END. | Escaping happens when a line starts with *, #+, ,* or | ,#+ by appending a comma to it. | | [back] ` Not sure how to get rid of this, maybe via :results raw? I'm not aware of a configuration variable for this, but it surely exists. Thank you. It helps me much! Based on your answer, I copy-paste the code of the function org-escape- code-in-region in a source block in my org buffer and modify the code to prevent it from inserting the comma. It's a little bit dirty but it works. Using the raw option produces a correct result but I need the generated code to be decorated with a drawer to automatically replace the result at each code execution. To do so, I tried to use de drawer option. It gives me the good result with a drawer but then when I export my org buffer to latex, the drawers :RESULTS: is also exported which is not cool... Well, thanks again! Roland.
[O] Org-mode/R/Latex treatment of NAs
I have some tables created by Org-babel/R source codes with NAs. These get exported as “nil” in the latex export. I would like to replace them with blanks. Any suggestions? Vikas
[O] LaTeX export problem
Aloha all, With a recent Org from git and this source: #+attr_latex: :width 0.8\textwidth :placement [htb] #+name: fig:harris-errors #+caption[Structural effects of false transitives]: Structural effects of false transitives with the stratigraphic section in Figure [[fig:fig12-open]]: #+caption: /left/, a Harris Matrix of contexts adjacent to Context 1 with false transitives for Contexts 5 and 6; #+caption: /right/, a directed graph of contexts adjacent to Context 1 that excludes false transitives. #+caption: The observed stratigraphic relationships for the two diagrams are shown on Table [[tab:harris-errors]]. [[file:~/Public/projects/936-harris-matrix/figure/fig-12-harris-td-adj-1-tred-edited.pdf]] I get this incorrect LaTeX output: \begin{figure}[htb] \centering \includegraphics[width=0.8\textwidth]{/Users/dk/Public/projects/936-harris-matrix/figure/fig-12-harris-td-adj-1-tred-edited.pdf} \caption[Structural effects of false transitives]: Structural effects of false transitives with the stratigraphic section in Figure~[[fig:fig12-open]]{\label{fig:harris-errors}\emph{left}, a Harris Matrix of contexts adjacent to Context 1 with false transitives for Contexts 5 and 6; \emph{right}, a directed graph of contexts adjacent to Context 1 that excludes false transitives. The observed stratigraphic relationships for the two diagrams are shown on Table~\ref{tab:harris-errors}.} \end{figure} If I place a space between the final colon and the link on the first #+caption: line, then I get the output I'm expecting (although there is the extraneous space): \begin{figure}[htb] \centering \includegraphics[width=0.8\textwidth]{/Users/dk/Public/projects/936-harris-matrix/figure/fig-12-harris-td-adj-1-tred-edited.pdf} \caption[Structural effects of false transitives]{\label{fig:harris-errors}Structural effects of false transitives with the stratigraphic section in Figure~\ref{fig:fig12-open} : \emph{left}, a Harris Matrix of contexts adjacent to Context 1 with false transitives for Contexts 5 and 6; \emph{right}, a directed graph of contexts adjacent to Context 1 that excludes false transitives. The observed stratigraphic relationships for the two diagrams are shown on Table~\ref{tab:harris-errors}.} \end{figure} Is there a work-around? All the best, Tom -- T.S. Dye Colleagues, Archaeologists 735 Bishop St, Suite 315, Honolulu, HI 96813 Tel: 808-529-0866, Fax: 808-529-0884 http://www.tsdye.com
[O] [ANN] puml.el --- Emacs Lisp DSL for PlantUML
[This was posted on the Emacs Help mailing list too] Hi List, here is the comment section from new library puml.el which lets you create PlantUML scripts from Emacs Lisp by calling functions with arguments (instead of inserting hard-coded strings). The core functionality is all there, but I could not implement all PlantUML syntax elements yet, its easy but rather tedious due to their number. ACTIVITY DIAGRAMS are fully implemented, most likely USE CASE DIAGRAMS and CLASS DIAGRAMS will follow in the near future. I thought I announce it anyway, because when creating UML reports from Emacs Lisp programs it might be better to first expand puml.el with a few API functions and then use the library instead of working on the string level. So patches are welcome. ___ PUML Thorsten Jolitz tjol...@gmail.com ___ Table of Contents _ 1 puml.el --- Emacs Lisp DSL for PlantUML .. 1.1 MetaData .. 1.2 Commentary .. 1.3 Usage .. 1.4 Known bugs and limitations 1 puml.el --- Emacs Lisp DSL for PlantUML = Author: Thorsten Jolitz tjolitz AT gmail DOT com Version: 0.9 URL: [https://github.com/tj64/puml] 1.1 MetaData copyright: Thorsten Jolitz copyright-years: 2014+ version: 0.9 licence: GPL 3 or later (free software) licence-url: http://www.gnu.org/licenses/ part-of-emacs: no author: Thorsten Jolitz author_email: tjolitz AT gmail DOT com keywords: emacs org-mode org-bandbook plantuml git-repo: https://github.com/tj64/puml git-clone: git://github.com/tj64/puml.git 1.2 Commentary ~~ Emacs-lisp domain-specific-language (DSL) for PlantUML. This library is meant for creating PlantUML Scripts programmatically by calling Emacs Lisp functions with arguments (instead of inserting hardcoded strings from a program or directly writing PlantUML syntax). 1.3 Usage ~ Almost all the real work is done by function `puml--generic'. It assumes that most PlantUML syntax constructs can be expressed like this: :pre prefix :1st 1st-part :2nd 2nd-part :3rd 3rd-part :asas X :suf suffix :crlf crlf This function is then called by almost all the API functions that normally implement one PlantUML syntax element each. Here is the simple function for implementing stereotypes like ' human ': , | (defun* puml-stereotype (code | key (ldelim ) (rdelim ) (crlf \n) ins) | Return or insert PlantUML stereotype. | (puml--generic :typ 'generic-nospaces | :1st (puml-sym-or-strg ldelim) | :2nd (puml-sym-or-strg code) | :3rd (puml-sym-or-strg rdelim) | :crlf crlf | :ins ins)) ` , | puml-stereotype ` A call to this function looks like this: , | (puml-stereotype human ) ` , | human ` Here is a little PlantUML script from the PlantUML Language Reference translated to puml.el: , | (puml-pack | (puml-start-activity :crlf nil) | (puml-space (puml-sync-bar B1) :lead 1) | (puml-activity :nm Parallel Activity 1) | (puml-activity :crlf nil) | (puml-space (puml-sync-bar B2) :lead 1) | (puml-newline) | (puml-sync-bar B1 :crlf nil) | (puml-space | (puml-activity :nm Parallel Activity 2) :lead 1) | (puml-activity :crlf nil) | (puml-space (puml-sync-bar B2) :lead 1) | (puml-newline) | (puml-end-activity)) ` , | (*) -- ===B1=== | -- Parallel Activity 1 | -- ===B2=== | | ===B1=== -- Parallel Activity 2 | -- ===B2=== | | -- (*) ` 1.4 Known bugs and limitations ~~ Currently this library only implements ACTIVITY DIAGRAMS. Patches are welcome to expand this library to all PlantUML diagram types. The complete template for an API function that calls `puml--generic' looks like this: , | (defun* puml-foo (key typ fmt pre 1st 2nd 3rd as suf (crlf \n) | ins) | Return or insert PlantUML foo. | (puml--generic :typ 'generic-nospaces | :fmt generic-nospaces | :pre pre | :1st 1st | :2nd 2nd | :3rd 3rd | :as as | :suf suf | :crlf crlf | :ins ins)) ` , | puml-foo ` Type 'generic' is the default :typ and need not be given. Both types 'generic' and 'generic-nospaces' have their associated format-strings, thus argument :fmt need not be given for them. Argument :as stands for assignment like 'as B1'. Argument :ins stands for 'insert', if non-nil result is inserted at point instead of returned. In practice it is mostly used for the outermost call
Re: [O] Babel : python generate org source block with an extra comma before * characters
Roland DONAT roland.do...@gmail.com writes: To do so, I tried to use de drawer option. It gives me the good result with a drawer but then when I export my org buffer to latex, the drawers :RESULTS: is also exported which is not cool... Did you try header args ':exports code ' or ':exports none'? -- cheers, Thorsten
[O] What all of those org-babel user functions do
Hi, For the lazy org users like myself who want to know what the functions listed [here] do, just evaluate the one you want: ╭ │ (describe-function 'org-babel-execute-src-block) │ (describe-function 'org-babel-open-src-block-result) │ (describe-function 'org-babel-load-in-session) │ (describe-function 'org-babel-pop-to-session) │ (describe-function 'org-babel-previous-src-block) │ (describe-function 'org-babel-next-src-block) │ (describe-function 'org-babel-execute-maybe) │ (describe-function 'org-babel-open-src-block-result) │ (describe-function 'org-babel-expand-src-block) │ (describe-function 'org-babel-goto-src-block-head) │ (describe-function 'org-babel-goto-named-src-block) │ (describe-function 'org-babel-goto-named-result) │ (describe-function 'org-babel-execute-buffer) │ (describe-function 'org-babel-execute-subtree) │ (describe-function 'org-babel-demarcate-block) │ (describe-function 'org-babel-tangle) │ (describe-function 'org-babel-tangle-file) │ (describe-function 'org-babel-check-src-block) │ (describe-function 'org-babel-insert-header-arg) │ (describe-function 'org-babel-load-in-session) │ (describe-function 'org-babel-lob-ingest) │ (describe-function 'org-babel-view-src-block-info) │ (describe-function 'org-babel-switch-to-session-with-code) │ (describe-function 'org-babel-sha1-hash) │ (describe-function 'org-babel-describe-bindings) │ (describe-function 'org-babel-do-key-sequence-in-edit-buffer) ╰ [here] http://orgmode.org/manual/Key-bindings-and-useful-functions.html#Key-bindings-and-useful-functions Kind regards, Grant Rettke | ACM, ASA, FSF, IEEE, SIAM g...@wisdomandwonder.com | http://www.wisdomandwonder.com/ “Wisdom begins in wonder.” --Socrates ((λ (x) (x x)) (λ (x) (x x))) “Life has become immeasurably better since I have been forced to stop taking it seriously.” --Thompson
[O] key collision for auto completion
Hi all, According to the manual : http://orgmode.org/manual/Special-symbols.html http://orgmode.org/manual/Special-symbols.html , M-tab would perform auto complete in org mode for special symbols. However, it looks like that the key is shadowed by flyspell-auto-correct-word on my emacs and I need to rebind the key. I digged into the org.el file but failed to locate the code for key binding. Any pointer or hints are appreciated. In particular, what command is M-tab supposed to be bound to for auto completion for the special symbols? Thanks. Shiyuan
Re: [O] emails written in Org Mode
John Kitchin jkitc...@andrew.cmu.edu writes: I played around with using a heading with properties to send an email. Basically the heading is the subject, you set some properties about TO, CC, etc... and the heading content is the body. You just put your cursor in the heading and run M-x email-heading. You can see the code here https://github.com/jkitchin/jmax/blob/master/email.el#L31 It saves some details in properties, like when it was sent, etc... It is occasionally useful to me. Do you have any means to bring replies and such back into the org file? -- Esben Stien is b0ef@e s a http://www. s tn m irc://irc. b - i . e/%23contact sip:b0ef@ e e jid:b0ef@n n
Re: [O] Org-mode/R/Latex treatment of NAs
Just wanting to understand more: Do you equate nil in Emacs Lisp with NA in R or do you equate it some other way? I believe that the data brokering adheres to expected mappings as such. Grant Rettke | ACM, ASA, FSF, IEEE, SIAM g...@wisdomandwonder.com | http://www.wisdomandwonder.com/ “Wisdom begins in wonder.” --Socrates ((λ (x) (x x)) (λ (x) (x x))) “Life has become immeasurably better since I have been forced to stop taking it seriously.” --Thompson On Sun, Jul 13, 2014 at 2:42 PM, Vikas Rawal vikasli...@agrarianresearch.org wrote: I have some tables created by Org-babel/R source codes with NAs. These get exported as “nil” in the latex export. I would like to replace them with blanks. Any suggestions? Vikas
Re: [O] Org-mode/R/Latex treatment of NAs
Just wanting to understand more: Do you equate nil in Emacs Lisp with NA in R or do you equate it some other way? When I execute my source code block, the NAs show up in the results block as nil. See example below. I would prefer a blank in place of nil. Any idea how to do that? Vikas -- #+NAME: ccpc-negative-income-cerealstate-in #+BEGIN_SRC R :results value :colnames yes :hline yes ccpc[,c(1:5,43,44,45,84,75,76,81,107,10,11,13,12,14:41,46:60,66,67,92,109:114)]-b subset(b,Year_Agriculture==2009)-b subset(b,Crop_code %in% c(10,20,40,140,150))-b (b$Main_Product_Rs+b$By_Product_Rs-b$Cost_A2)-b$Net_income_A2 (b$Main_Product_Rs+b$By_Product_Rs-b$Cost_C2)/b$Crop_Area_Ha-b$Net_income_C2 ifelse(b$Net_income_A20,1,0)-b$loss b$count-1 b[,c(16:ncol(b))]*b$Cluster_Factor_Weight*b$Zone_factor-b[,c(16:ncol(b))] melt(b,id=c(Year_Agriculture,State,Crop_code,Crop,Zone_Code,Zone_factor,Area_of_Crop_in_Zone_ha,state_multiplier,Tehsil_Code,Size_Group,Period_of_crop_months,Cluster_Factor_Weight,Parcel_Plot_Season,Ha_Month_in_Ground),m=c(loss,count,Crop_Area_Ha))-a dcast(a,Year_Agriculture+State+Crop_code+Crop+Zone_Code+state_multiplier+Area_of_Crop_in_Zone_ha~variable,sum)-b melt(b,id=c(Year_Agriculture,State,Crop_code,Crop,Zone_Code,state_multiplier,Area_of_Crop_in_Zone_ha,Crop_Area_Ha),m=c(loss,count))-a a$value*a$Area_of_Crop_in_Zone_ha/a$Crop_Area_Ha-a$value dcast(a,Year_Agriculture+Crop_code+Crop~variable,sum)-b dcast(a,Year_Agriculture+State+Crop_code+Crop~variable,sum)-b1 b$State-All states rbind(b,b1)-b round(b$loss*100/b$count,1)-b$prop #ggplot(b,aes(x=Year_Agriculture,y=prop,group=State,color=State,linetype=State))-p #p+geom_line()+scale_y_continuous(Prportion of farms)+scale_x_continuous(Year,breaks=c(1994,1997,2000,2003,2006,2009),labels=c(1994-95,1997-98,2000-01,2003-04,2006-07,2009-10))+theme_bw() melt(b,id=c(Year_Agriculture,Crop_code,Crop,State,loss,count))-a dcast(a,State~Crop_code,mean,drop=T)-t t[is.na(t)]-NA names(t)-c(State,Wheat,Paddy,Maize,Bajra,Ragi) t #+END_SRC #+NAME: ccpc-negative-income-cerealstate #+CAPTION: Proportion of cultivators with negative returns from cultivation of different crops, by State, 2009-10 #+attr_latex: :environment tabulary :width \textwidth :align lR #+RESULTS: ccpc-negative-income-cerealstate-in | State| Wheat | Paddy | Maize | Bajra | Ragi | |--+---+---+---+---+--| | All states | 2.7 | 7.4 | 23.2 | 6.1 | 15 | | Andhra Pradesh | nil | 5.8 | 17.8 | nil | 0| | Assam| nil | 6.5 | nil | nil | nil | | Bihar| nil | 4.8 | nil | nil | nil | | Chhattisgarh | 55.3 | 1.2 | 0 | nil | nil | | Gujarat | 0 | 0.3 | 15.2 | 6.4 | nil | | Haryana | 0.1 | 0.2 | nil | 3 | nil | | Himachal Pradesh | 7.6 | 0.1 | 1.4 | nil | nil | | Jharkhand| 1.4 | 42.7 | nil | nil | nil | | Karnataka| nil | 2.2 | 3.2 | 39.9 | 14.9 | | Kerala | nil | 8.6 | nil | nil | nil | | Madhya Pradesh | 0 | 0.9 | 16.7 | nil | nil | | Maharashtra | 6.5 | 37.1 | nil | 15.2 | 18.2 | | Orissa | nil | 0.6 | nil | nil | nil | | Punjab | 0.1 | 1.3 | nil | nil | nil | | Rajasthan| 0 | nil | 24| 0.8 | nil | | Tamil Nadu | nil | 4.5 | 10.1 | nil | 0.6 | | Uttar Pradesh| 1.1 | 4.2 | 39.3 | 1 | nil | | Uttarakhand | 0 | 0 | nil | nil | nil | | West Bengal | 26.9 | 7.5 | nil | nil | nil | Vikas
Re: [O] Org-mode/R/Latex treatment of NAs
Just wanting to understand more: Do you equate nil in Emacs Lisp with NA in R or do you equate it some other way? When I execute my source code block, the NAs show up in the results block as nil. See example below. I would prefer a blank in place of nil. Any idea how to do that? Replacing NAs with a blank (“”) in R does the trick. Vikas
Re: [O] Issue with multiple references to the same footnote in LaTeX export
Duh, forgot to include the list in this reply. On Sun, Jul 13, 2014 at 10:50 PM, Aaron Ecay aarone...@gmail.com wrote: Hi York, It’s not a totally trivial problem from the LaTeX side. This stack exchange answer outlines what could be a solution: http://tex.stackexchange.com/a/54240. Inside the ‘org-latex-footnote-reference’ function, org should generate a \label inside the argument to \footnote, and then use \ref for subsequent references. 2014ko uztailak 12an, York Zhao-ek idatzi zuen: Hi list, I'm re-posting this again because I just noticed that I shouldn't have copied the Local Variables. Now it is a smaller ECM. If I have multiple references to the same footnote, in LaTeX export only the first reference is a clickable link, the rest are exported as dead number referring to the footnote definition, but not clickable links. I have `org-footnote-section' set to `nil' by the way. Here's ECM: --8---cut here---start-8--- #+LaTeX_CLASS: article * Multiple reference to the same footnote 1 This is footnote reference [fn:1]. This is another reference to the same footnote [fn:1] [fn:1] Footnote definition. * Multiple reference to the same footnote 2 This is footnote reference [fn:myfootnote]. This is another reference to the same footnote [fn:myfootnote] [fn:myfootnote] Footnote definition. * Multiple reference to the same footnote 3 This is footnote reference [fn:myfootnote3: Footnote definition.]. This is another reference to the same footnote [fn:myfootnote3] --8---cut here---end---8--- Regards, York -- Aaron Ecay
[O] How to show the complete syntax tree
Hi, The command I can find in the manual to show the syntax tree is (org-element-parse-buffer). However, when the structure is output to the buffer, by using the commands C-u M-: (org-element-parse-buffer), it seems that only the part up to a certain depth is printed. For example, if the current org buffer has the following content: #+TITLE: Hello World Hello World! * HEADLINE 1 ** Sub-topic + ItemA + ItemB - Item1 - Item2 *** Sub-Sub-topic \begin{equation} \label{eq:test} Bx=b \end{equation} When apply C-u M-: (org-element-parse-buffer), the sub-sub-topic level is completely omitted in the printout: (org-data nil (section (:begin 1 :end 35 :contents-begin 1 :contents-end 35 :post-blank 0 :parent #0) (keyword (:key TITLE :value Hello World :begin 1 :end 22 :post-blank 0 :post-affiliated 1 ...)) (paragraph (:begin 22 :end 35 :contents-begin 22 :contents-end 35 :post-blank 0 :post-affiliated 22 ...) #(Hello World! 0 13 ...))) (headline (:raw-value HEADLINE 1 :begin 35 :end 174 :pre-blank 0 :contents-begin 48 :contents-end 173 ...) (headline (:raw-value Sub-topic :begin 48 :end 173 :pre-blank 0 :contents-begin 62 :contents-end 173 ...) (section ... ...) (headline ... ... What's the recommended way to show the syntax tree? Thanks. Shiyuan