emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Lawrence Bottorff <borgauf@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Tangled Latex code gives error
Date: Sun, 26 Apr 2015 19:20:31 -0400	[thread overview]
Message-ID: <CAFAhFSWgsG+MVX4KQrC7k1-TOJMre2SaZJDhHTmMxy-OpD9NtA@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 3114 bytes --]

I'm following the Latex howto of org-mode babel. Here's the snippet from
the howto I've got in a separate .org file (see bottom of howto page):

#+LATEX_HEADER: \usepackage{tikz}

First execute the second code block, to define the convenience macro
and to set the required new variables in ob-latex.el.  Then export to
HTML and to pdf to see the tree exported as an SVG image and as
embedded tikz respectively.

* Tikz test
Here's a tree, exported to both html and pdf.

#+header: :file (by-backend (html "tree.svg") (t 'nil))
#+header: :imagemagick
#+header: :results (by-backend (pdf "latex") (t "raw"))
#+header: :tangle yes
#+begin_src latex
  \usetikzlibrary{trees}
  \begin{tikzpicture}
    \node [circle, draw, fill=red!20] at (0,0) {1}
    child { node [circle, draw, fill=blue!30] {2}
      child { node [circle, draw, fill=green!30] {3} }
      child { node [circle, draw, fill=yellow!30] {4} }};
  \end{tikzpicture}
#+end_src

* COMMENT setup
#+header: :tangle yes
#+begin_src emacs-lisp :results silent
  (setq org-babel-latex-htlatex "htlatex")
  (defmacro by-backend (&rest body)
    `(case (if (boundp 'backend) (org-export-backend-name backend) nil)
,@body))
#+end_src

This doesn't really produce a .svg of the tree as advertised, but exporting
to Latex does produce it just fine.

My real confusion starts when I try to tangle the babel code blocks. The
C-c C-v t command produces two separate files just fine, a .tex and .el,
but then if I try to Run Latex on the .tex file just by itself it gives an
error. Here's what the org-mode tangle produces:

\usetikzlibrary{trees}
\begin{tikzpicture}
  \node [circle, draw, fill=red!20] at (0,0) {1}
  child { node [circle, draw, fill=blue!30] {2}
    child { node [circle, draw, fill=green!30] {3} }
    child { node [circle, draw, fill=yellow!30] {4} }};
\end{tikzpicture}

And here's the error log after I try to run it by itself in Emacs:

. . .entering extended mode
 restricted \write18 enabled.
 file:line:error style messages enabled.
 %&-line parsing enabled.
**\input prac2.tex
(./prac2.tex
./prac2.tex:2: Undefined control sequence.
l.2 \usetikzlibrary
                   {trees}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
Another version (from C-c `) produces this error message:

ERROR: Undefined control sequence.

--- TeX said ---
l.2 \usetikzlibrary
                   {trees}
--- HELP ---
TeX encountered an unknown command name. You probably misspelled the
name. If this message occurs when a LaTeX command is being processed,
the command is probably in the wrong place---for example, the error
can be produced by an \item command that's not inside a list-making
environment. The error can also be caused by a missing \documentclass
command.

What am I missing here? I'd like to be able to keep my org stuff separate
from the Latex source, which org-mode seems to do nicely. But then it has
to run properly too. . . .

LB

[-- Attachment #2: Type: text/html, Size: 4156 bytes --]

             reply	other threads:[~2015-04-26 23:20 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-26 23:20 Lawrence Bottorff [this message]
2015-04-27  1:45 ` Tangled Latex code gives error Lawrence Bottorff
2015-04-27  8:28 ` Andreas Leha
2015-04-27  9:33 ` Eric S Fraga
2015-04-27 11:58   ` Lawrence Bottorff
2015-04-28  7:33     ` e.fraga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAFAhFSWgsG+MVX4KQrC7k1-TOJMre2SaZJDhHTmMxy-OpD9NtA@mail.gmail.com \
    --to=borgauf@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).