How to reintegrate changes for Word back into Org-Mode

Via:

From:   Ken Mankoff
Subject:  Re: [O] Organizing and taming hectic Academia work (faculty   viewpoint)? Tips or a good guides sought after :)
Date:   Fri, 12 Jun 2015 10:02:50 -0400
Hi Julian,
On 2015-06-10 at 10:16, Julian Burgos <address@hidden> wrote:
> a) I first write in org-mode. Export to Word, either exporting first
> to ODT and then to Word, or to LaTex and then use pandoc to convert
> LaTex to Word. My coauthor can edit the document as he wishes, using
> the "Track changes" option. Then, I transcribe their edits back into
> the org-mode document. Advantage of this approach: your coauthor
> receives a clean word file, that could include figures, references,
> etc., and he/she uses the tools she likes to edit the file.
> Disadvantage: you have to manually incorporate the changes to the
> org-mode file each time there are edits.
>
> b) I write the manuscript in org-mode. Then I send the org-mode file
> to my coauthor. Because the org-mode file is just a text file, my
> coauthor can use Word to edit it. I ask him/her *not* to use "track
> changes" and to save the edited version also as a text file. Then,
> when I receive it I use ediff in emacs to compare both documents and
> incorporate the edits I want. Advantage of this approach: the merging
> of the documents is easy using ediff. Disadvantage: your coauthor has
> to edit a weird-looking document, with markup, code blocks, etc.
It seems like with a bit of extra (scriptable?) work you could remove both
disadvantages.
Why can't you use method (a) above, and then DOCX -> Org via pandoc (with
--accept-all option)?
I know pandoc introduce some of its own changes to the Org syntax but not the
document itself. You can get around this. You can remove the pandoc-generated
changes automagically so that only co-author changes appear in Org format,
which you can then use with your (b) above and emacs ediff.
Original: Your Org source
A: Org -> DOCX for co-authors (using pandoc)
B: Org -> DOCX -> Org (using pandoc).
C: A -> Org (using pandoc and --accept-all-changes)
D: B-Original
The difference between B and Original are pandoc-introduced changes that you do
not want. Ignore/remove these changes from C, call it D and then the difference
between D and the Original are your co-author comments. Now your authors can
edit DOCX with Track Changes and you can work on those edits with Emacs ediff.
  -k.

Uniquely Name Source-Blocks and Headline IDs in Org-Mode

Always name all of your Source-Blocks and uniquely ID Headlines in Org-Mode. It is the only way to make Literate Programming pleasant and predictable. At the very least you will understand what is happening during tangling.

Org-Mode Release 8.3

Org 8.3 is now out.

Addendum: 2015-08-16
Interesting:

  • org-show-context-detail
  • Markdown export supports switches in source blocks
  • ASCII export additions
  • Export inline source blocks
  • ascii plot
  • date macro parms
  • mathjax cdn
  • viewport for html mobile
  • remotely edit footnote definition
  • texinfo image support
  • Removed option org-koma-letter-use-title
  • Three slash URI links
  • Footnotes in included files are now local to the file
  • When exporting, throw an error on unresolved id/fuzzy links and code refs

Easily Go To and Return From Headlines in Org-Mode

Quit using goto-line and isearch to navigate in your Org-Mode document. I didn’t want to use Helm or Imenu to do it and Org-Mode has a built in solution with org-goto. Be sure to bind the “pop” key very close-by to make it symmetrical and fast.
(define-key org-mode-map (kbd "s-u") #'org-goto)
(define-key org-mode-map (kbd "s-U") #'org-mark-ring-goto)

Vintage Computer Programming Book Market About To Explode!

Last week I was day-dreaming about Forth and vintage computers again. Same old day-dreams. The TI-99/4A with TurboForth seems like the perfect place to start learning about both. TurboForth has lots of features and it runs in emulators and “on the metal”. Cool.

The best way to learn Forth is interactively. How do you do it with Org Mode, though? Can we have the same features you would expect with any other programming language even though it is running inside of an emulator? There must be an easy way to run at the command line, redirect input and output, or maybe telnet into the machine.

V9t9 is a Java-based and open-sourced emulator there on GitHub. If it doesn’t have telnet into it, then it can be added. That got me thinking (daydreaming?) again about the fun of simple computers. Whatever approach you use to access them, using Org seems like a great way to write new books about them.

They are simpler. They are a great place to start. There is tons of great literature out there already. Now add Emacs and Org-Mode to the mix to practice Literate Programming.

It seems like there is a huge opportunity for great new books about old computers and programming languages. Export to LaTeX and publish, and there you go. Very fun and very cool.

Handling 4 Kinds of Return in Org Mode

You might want more than a few ways to “return” when inside of Org; I did.

  • org-return-indent: Make it really easy to work in existing list items, headings, and tables
    • This is listed first because I often go back to modify entries
    • <return> because it is used the most
  • org-meta-return: Make it really easy to add new list items, headings, and table contents
    • M-<return> because the binding comes with Org
  • electric-indent-just-newline: For when I want to break out of the default Org indentation to start working at the beginning of the line for example when I’m done working in a list or have just created a new heading
    • C-M-<return> because it is next step “lower” in the binding
  • This: When I want to insert a new line between the current and next line then position the cursor correctly indented at the start of it.

    (defun help/smart-open-line ()
      "Insert a new line, indent it, and move the cursor there.
    
    This behavior is different then the typical function bound to return which may be `open-line' or `newline-and-indent'. When you call with the cursor between ^ and $, the contents of the line to the right of it will be moved to the newly inserted line. This function will not do that. The current line is left alone, a new line is inserted, indented, and the cursor is moved there.
    
    Attribution: URL `http://emacsredux.com/blog/2013/03/26/smarter-open-line/'"
      (interactive)
      (move-end-of-line nil)
      (newline-and-indent))
    
    • s-<return because it is that is the last place in the modifier key chain

You Probably Want org-return-indent Bound to Return

Started questioning why after hitting RETURN while in lists I have to hit TAB to get indented properly. Kind of a dead giveaway that I should be return-and-indenting! Looked at org-return to find that it has an argument about indenting and then saw that org-return-indent passes it for you. With that in mind, RETURN is bound to that now.

You probably want org-return-indent bound to return. It saves a lot of actions.