emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Help with new exporter
@ 2013-07-10 16:32 John Rakestraw
  2013-07-10 16:58 ` Robert Klein
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: John Rakestraw @ 2013-07-10 16:32 UTC (permalink / raw)
  To: emacs-orgmode

Greetings, list --

I've been using Philip Hirschhorn's exam documentclass 
(http://www-math.mit.edu/~psh/#ExamCls) for several years to produce my 
exams. I've been writing the exams in org-mode and using the exporter to
produce the pdf.

I've recently moved to org 8.0. (I like it!) I've successfully 
converted all of my other export class definitions, but I can't figure 
out how to define the exam class so that I can export my exams. I've 
pasted below the class definition that worked with the previous exporter 
(I know it's clumsy, but it worked) and also a sample version of what I 
need in the tex file.

(I know I could just write the tex file directly, but it's nice to have 
all of the course materials included in human-readable form in the 
course org file.)

My problem is that I can't get the exporter to produce chunks like 
this:

\begin{questions}
\question
A paragraph describing how the students should answer the following 
questions.
\begin{parts}
\part
A multi-line question
\part
Another multi-line question
\end{parts}
\end{questions}

Thanks for whatever advice anyone can offer.

--John


Old template:
--8<---------------cut here---------------start------------->8---
       (setq org-export-latex-classes (cons '("exam"
     ### I know that in the new exporter I need to change this variable 
to
     "org-latex-classes" ###
       "% BEGIN exam Defaults
       [NO-DEFAULT-PACKAGES]
       [PACKAGES]
       \\documentclass[12pt]{exam}
       \\usepackage{palatino}
       \\extrawidth{.5in}
       \\extraheadheight{-.75in}
       \\extrafootheight[-3in]{-.75in}
       \\pagestyle{headandfoot}
       \\NoKey
       \\NumberOfVersions{1}
       \\renewcommand\\thequestion{\\Roman{question}}
       \\renewcommand\\thepartno{\\arabic{partno}}
       \\renewcommand\\partlabel{\\thepartno.}


       % END exam Defaults

       "
              ("\\begin{questions}" "\\end{questions}" 
"\\begin{questions}" "\\end{questions}")
              ("\\question" . "\\question*")
              ("\\begin{parts}" "\\end{parts}" "\\begin{parts}" 
"\\end{parts}")
              ("\\part" . "\\part*"))

       org-export-latex-classes))

--8<---------------cut here---------------end--------------->8---

An example of what I need the exporter to produce:

--8<---------------cut here---------------start------------->8---
\documentclass[letterpaper]{exam}
\extrawidth{.5in}
\extraheadheight[.3in]{-.75in}
\extrafootheight{-.25in}
\raggedright
\renewcommand\thequestion{\Roman{question}}
\renewcommand\thepartno{\arabic{partno}}
\renewcommand\partlabel{\thepartno.}
\firstpageheader{Name: \enspace\makebox[3in]{\hrulefill}\\Exam 
1\\}{}{Introductory Class \\May 7, 2013\\}
\begin{document}

\begin{coverpages}
text describing how the exam should be printed and prepared for 
distribution.
\end{coverpages}



\begin{questions}
\question
A paragraph here describes this section and tells students how many 
terms to
identify.
\begin{parts}
\part
term 1
\vspace*{\fill}
\part
term 2
\vspace*{\fill}
\part
term 3
\vspace*{\fill}
\part
term 4
\vspace*{\fill}
\part
term 5
\vspace*{\fill}
\part
term 6
\vspace*{\fill}
\part
term 7
\vspace*{\fill}
\part
term 7
\vspace*{\fill}
\part
term 8
\end{parts}
\end{questions}
\newpage
\fillwithdottedlines{\fill}
\newpage
\begin{questions}
\question
Short Answer. A paragraph describing how I want students to respond to 
the
following questions. I want to leave vertical space filled with dotted 
lines
between the questions, and I want two questions on each page.
\begin{parts}
\part
This is the first question. It will be several lines long, so I'm 
writing enough
filler here to add at least a second line.
\fillwithdottedlines{\fill}
\part
This is the second question. It will also be several lines long, so I 
need
filler enough to get to the second line for this example.
\fillwithdottedlines{\fill}

\newpage
\fillwithdottedlines{\fill}
\newpage
\part
This is the 3d question.
\fillwithdottedlines{\fill}
\end{parts}
\end{questions}
\newpage
\fillwithdottedlines{\fill}
\newpage
\begin{questions}
\question
Essay Question. This is a section of essay questions. Students will 
answer only
one of these questions, so I don't need to leave space between the two 
questions.
\begin{parts}
\part
The first of the essay questions goes here. It will be several lines 
long, so I
want enough text in the example to provide a line break.
\part
The second essay question. It is also several lines long, so I'll add 
some
rambling text here for the second line.
\end{parts}
\end{questions}
\fillwithdottedlines{\fill}
\newpage
\fillwithdottedlines{\fill}
\end{document}

--8<---------------cut here---------------end--------------->8---


-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-10 16:32 Help with new exporter John Rakestraw
@ 2013-07-10 16:58 ` Robert Klein
  2013-07-10 17:27   ` John Rakestraw
  2013-07-10 19:37 ` Robert Klein
  2013-07-10 19:56 ` Rasmus
  2 siblings, 1 reply; 22+ messages in thread
From: Robert Klein @ 2013-07-10 16:58 UTC (permalink / raw)
  To: emacs-orgmode

Hi John,

would you mind posting an example of the org file, too?  It would be
easier for me to wrap my thoughts about this..  (The gurus probably
don't it...)

Thanks a lot
Robert


On 07/10/2013 06:32 PM, John Rakestraw wrote:
> Greetings, list --
> 
> I've been using Philip Hirschhorn's exam documentclass
> (http://www-math.mit.edu/~psh/#ExamCls) for several years to produce my
> exams. I've been writing the exams in org-mode and using the exporter to
> produce the pdf.
> 
> I've recently moved to org 8.0. (I like it!) I've successfully converted
> all of my other export class definitions, but I can't figure out how to
> define the exam class so that I can export my exams. I've pasted below
> the class definition that worked with the previous exporter (I know it's
> clumsy, but it worked) and also a sample version of what I need in the
> tex file.
> 
> (I know I could just write the tex file directly, but it's nice to have
> all of the course materials included in human-readable form in the
> course org file.)
> 
> My problem is that I can't get the exporter to produce chunks like this:
> 
> \begin{questions}
> \question
> A paragraph describing how the students should answer the following
> questions.
> \begin{parts}
> \part
> A multi-line question
> \part
> Another multi-line question
> \end{parts}
> \end{questions}
> 
> Thanks for whatever advice anyone can offer.
> 
> --John
> 
> 
> Old template:
> --8<---------------cut here---------------start------------->8---
>       (setq org-export-latex-classes (cons '("exam"
>     ### I know that in the new exporter I need to change this variable to
>     "org-latex-classes" ###
>       "% BEGIN exam Defaults
>       [NO-DEFAULT-PACKAGES]
>       [PACKAGES]
>       \\documentclass[12pt]{exam}
>       \\usepackage{palatino}
>       \\extrawidth{.5in}
>       \\extraheadheight{-.75in}
>       \\extrafootheight[-3in]{-.75in}
>       \\pagestyle{headandfoot}
>       \\NoKey
>       \\NumberOfVersions{1}
>       \\renewcommand\\thequestion{\\Roman{question}}
>       \\renewcommand\\thepartno{\\arabic{partno}}
>       \\renewcommand\\partlabel{\\thepartno.}
> 
> 
>       % END exam Defaults
> 
>       "
>              ("\\begin{questions}" "\\end{questions}"
> "\\begin{questions}" "\\end{questions}")
>              ("\\question" . "\\question*")
>              ("\\begin{parts}" "\\end{parts}" "\\begin{parts}"
> "\\end{parts}")
>              ("\\part" . "\\part*"))
> 
>       org-export-latex-classes))
> 
> --8<---------------cut here---------------end--------------->8---
> 
> An example of what I need the exporter to produce:
> 
> --8<---------------cut here---------------start------------->8---
> \documentclass[letterpaper]{exam}
> \extrawidth{.5in}
> \extraheadheight[.3in]{-.75in}
> \extrafootheight{-.25in}
> \raggedright
> \renewcommand\thequestion{\Roman{question}}
> \renewcommand\thepartno{\arabic{partno}}
> \renewcommand\partlabel{\thepartno.}
> \firstpageheader{Name: \enspace\makebox[3in]{\hrulefill}\\Exam
> 1\\}{}{Introductory Class \\May 7, 2013\\}
> \begin{document}
> 
> \begin{coverpages}
> text describing how the exam should be printed and prepared for
> distribution.
> \end{coverpages}
> 
> 
> 
> \begin{questions}
> \question
> A paragraph here describes this section and tells students how many
> terms to
> identify.
> \begin{parts}
> \part
> term 1
> \vspace*{\fill}
> \part
> term 2
> \vspace*{\fill}
> \part
> term 3
> \vspace*{\fill}
> \part
> term 4
> \vspace*{\fill}
> \part
> term 5
> \vspace*{\fill}
> \part
> term 6
> \vspace*{\fill}
> \part
> term 7
> \vspace*{\fill}
> \part
> term 7
> \vspace*{\fill}
> \part
> term 8
> \end{parts}
> \end{questions}
> \newpage
> \fillwithdottedlines{\fill}
> \newpage
> \begin{questions}
> \question
> Short Answer. A paragraph describing how I want students to respond to the
> following questions. I want to leave vertical space filled with dotted
> lines
> between the questions, and I want two questions on each page.
> \begin{parts}
> \part
> This is the first question. It will be several lines long, so I'm
> writing enough
> filler here to add at least a second line.
> \fillwithdottedlines{\fill}
> \part
> This is the second question. It will also be several lines long, so I need
> filler enough to get to the second line for this example.
> \fillwithdottedlines{\fill}
> 
> \newpage
> \fillwithdottedlines{\fill}
> \newpage
> \part
> This is the 3d question.
> \fillwithdottedlines{\fill}
> \end{parts}
> \end{questions}
> \newpage
> \fillwithdottedlines{\fill}
> \newpage
> \begin{questions}
> \question
> Essay Question. This is a section of essay questions. Students will
> answer only
> one of these questions, so I don't need to leave space between the two
> questions.
> \begin{parts}
> \part
> The first of the essay questions goes here. It will be several lines
> long, so I
> want enough text in the example to provide a line break.
> \part
> The second essay question. It is also several lines long, so I'll add some
> rambling text here for the second line.
> \end{parts}
> \end{questions}
> \fillwithdottedlines{\fill}
> \newpage
> \fillwithdottedlines{\fill}
> \end{document}
> 
> --8<---------------cut here---------------end--------------->8---
> 
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-10 16:58 ` Robert Klein
@ 2013-07-10 17:27   ` John Rakestraw
  0 siblings, 0 replies; 22+ messages in thread
From: John Rakestraw @ 2013-07-10 17:27 UTC (permalink / raw)
  To: emacs-orgmode

Hi, Robert --

> would you mind posting an example of the org file, too?  It would be
> easier for me to wrap my thoughts about this..  (The gurus probably
> don't it...)

Sure. (I should have included it earlier; I was worried that my message 
was already too long.) Here's one that worked with the old exporter. 
(Note that I had to leave many of the actual header lines blank -- or, 
rather, with only an empty space.)

--John

--8<---------------cut here---------------start------------->8---
#+LaTeX_CLASS: exam
#+LaTeX_CLASS_OPTIONS: [10pt]
#+LATEX_HEADER: \extrawidth{.5in}
#+LATEX_HEADER: \extraheadheight[.3in]{-.75in}
#+LATEX_HEADER: \extrafootheight{-.25in}
#+LATEX_HEADER: \raggedright
#+LaTeX: \renewcommand\thequestion{\Roman{question}}
#+LaTeX: \renewcommand\thepartno{\arabic{partno}}
#+LaTeX: \renewcommand\partlabel{\thepartno.}
#+OPTIONS: toc:nil num:y timestamp:nil creator:nil H:4
#+TITLE:
#+LaTeX: \firstpageheader{Name:\enspace\makebox[3in]{\hrulefill}\\Exam 
1\\}{}{Theo 001 -- Rakestraw\\February 14, 2013\\}
#+LaTeX: \begin{coverpages}
this is just some text
#+LaTeX: \end{coverpages}

* Meaningless header
**
*Identification of Terms*. Identify/define and give the significance
of *six* of the following. If you identify/define more than six
without indicating clearly which six you want me to grade, I will
grade your first six answers (18 points).
*** Terms
****
term 1
#+LaTeX: \vspace*{\fill}
****
term 2
#+LaTeX: \vspace*{\fill}
****
term 3
#+LaTeX: \vspace*{\fill}
****
term 4
#+LaTeX: \vspace*{\fill}
****
term 5
#+LaTeX: \vspace*{\fill}
****
term 6
#+LaTeX: \vspace*{\fill}
****
term 7
#+LaTeX: \vspace*{\fill}
****
term 8
#+LaTeX: \vspace*{\fill}
****
term 9
#+LaTeX: \newpage
#+LaTeX: \fillwithdottedlines{\fill}
#+LaTeX: \newpage

**
*Short Answer*. Answer *two* of the following in a paragraph. If you
attempt to answer more than two without indicating clearly which two 
you
intend me to grade I will grade your first two answers (36 points).
*** Questions
****
Question one goes on for more than one line. (I mention that because I 
want to
be clear that I can't put a question in a heading.)

#+LaTeX: \fillwithdottedlines{\fill}

****
Question 2 goes here.
#+LaTeX: \fillwithdottedlines{\fill}

#+LaTeX: \newpage
#+LaTeX: \fillwithdottedlines{\fill}
#+LaTeX: \newpage

****
Question 3 goes here.
#+LaTeX: \fillwithdottedlines{\fill}

****
Question 4 goes here.
#+LaTeX: \fillwithdottedlines{\fill}

#+LaTeX: \newpage
#+LaTeX: \fillwithdottedlines{\fill}
#+LaTeX: \newpage

**
*Essay Question*. Answer *one* of the following as fully as you are 
able.
If you attempt to answer more than one without indicating clearly which 
one
you intend me to grade I will grade your first answer (40 points).
*** Questions

****
here's the first essay question.
****
here's the second essay question.
#+LaTeX: \fillwithdottedlines{\fill}

#+LaTeX: \newpage
#+LaTeX: \fillwithdottedlines{\fill}
--8<---------------cut here---------------end--------------->8---


-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-10 16:32 Help with new exporter John Rakestraw
  2013-07-10 16:58 ` Robert Klein
@ 2013-07-10 19:37 ` Robert Klein
  2013-07-10 20:46   ` John Rakestraw
  2013-07-10 19:56 ` Rasmus
  2 siblings, 1 reply; 22+ messages in thread
From: Robert Klein @ 2013-07-10 19:37 UTC (permalink / raw)
  To: emacs-orgmode

Hi John.

thank you for the example org file.

I made two kinds of changes, one in the org-latex-classes definition and
one in the .org-file itself:


I changed the class definition for org-latex-classes to

#+begin_src emacs-lisp
        ("exam"
         "\\documentclass[12pt]{exam}
% BEGIN exam Defaults
[NO-DEFAULT-PACKAGES]
[PACKAGES]

\\usepackage{palatino}
\\extrawidth{.5in}
\\extraheadheight{-.75in}
\\extrafootheight[-3in]{-.75in}
\\pagestyle{headandfoot}
\\NoKey
\\NumberOfVersions{1}
\\renewcommand\\thequestion{\\Roman{question}}
\\renewcommand\\thepartno{\\arabic{partno}}
\\renewcommand\\partlabel{\\thepartno.}

% END exam Defaults
"
         ("\\begin{questions}{%s}" "\\end{questions}")
         ("\\question{%s}" . "\\question*{%s}")
         ("\\begin{parts}{%s}" "\\end{parts}")
         ("\\part{%s}" . "\\part*{%s}"))
#+end_src


Note the {%s} after the each opening clause.  I left the unnumbered part
of questions and parts out in my version, as I didn't see a difference
(no "unnumbered" \begin{questions} / \begin{parts} in the exam class?).

The documentation of org-latex-classes in ox-latex.el seems to be
confusing; at one place it says "A %s formatter is mandatory in each
section string and will be replaced by the title of the section." an at
another "The opening clause should have a %s to represent the section
title.".  Probably the "should have" in the second place ought to be a
"must have".


Anyway, in the .org file I added a space character to all empty
headings, e.g.

****

Without the space I first for a log of "\textbf{**}" in the output.


After both changes the resulting document looks like something you might
have wanted in the first place.


I got some weird numberings throughout the document, but this may be a
result of my setup.  Could you please check this, and describe anything
weird in your results?

Best regards
Robert





On 07/10/2013 06:32 PM, John Rakestraw wrote:
> Greetings, list --
> 
> I've been using Philip Hirschhorn's exam documentclass
> (http://www-math.mit.edu/~psh/#ExamCls) for several years to produce my
> exams. I've been writing the exams in org-mode and using the exporter to
> produce the pdf.
> 
> I've recently moved to org 8.0. (I like it!) I've successfully converted
> all of my other export class definitions, but I can't figure out how to
> define the exam class so that I can export my exams. I've pasted below
> the class definition that worked with the previous exporter (I know it's
> clumsy, but it worked) and also a sample version of what I need in the
> tex file.
> 
> (I know I could just write the tex file directly, but it's nice to have
> all of the course materials included in human-readable form in the
> course org file.)
> 
> My problem is that I can't get the exporter to produce chunks like this:
> 
> \begin{questions}
> \question
> A paragraph describing how the students should answer the following
> questions.
> \begin{parts}
> \part
> A multi-line question
> \part
> Another multi-line question
> \end{parts}
> \end{questions}
> 
> Thanks for whatever advice anyone can offer.
> 
> --John
> 
> 
> Old template:
> --8<---------------cut here---------------start------------->8---
>       (setq org-export-latex-classes (cons '("exam"
>     ### I know that in the new exporter I need to change this variable to
>     "org-latex-classes" ###
>       "% BEGIN exam Defaults
>       [NO-DEFAULT-PACKAGES]
>       [PACKAGES]
>       \\documentclass[12pt]{exam}
>       \\usepackage{palatino}
>       \\extrawidth{.5in}
>       \\extraheadheight{-.75in}
>       \\extrafootheight[-3in]{-.75in}
>       \\pagestyle{headandfoot}
>       \\NoKey
>       \\NumberOfVersions{1}
>       \\renewcommand\\thequestion{\\Roman{question}}
>       \\renewcommand\\thepartno{\\arabic{partno}}
>       \\renewcommand\\partlabel{\\thepartno.}
> 
> 
>       % END exam Defaults
> 
>       "
>              ("\\begin{questions}" "\\end{questions}"
> "\\begin{questions}" "\\end{questions}")
>              ("\\question" . "\\question*")
>              ("\\begin{parts}" "\\end{parts}" "\\begin{parts}"
> "\\end{parts}")
>              ("\\part" . "\\part*"))
> 
>       org-export-latex-classes))
> 
> --8<---------------cut here---------------end--------------->8---
> 
> An example of what I need the exporter to produce:
> 
> --8<---------------cut here---------------start------------->8---
> \documentclass[letterpaper]{exam}
> \extrawidth{.5in}
> \extraheadheight[.3in]{-.75in}
> \extrafootheight{-.25in}
> \raggedright
> \renewcommand\thequestion{\Roman{question}}
> \renewcommand\thepartno{\arabic{partno}}
> \renewcommand\partlabel{\thepartno.}
> \firstpageheader{Name: \enspace\makebox[3in]{\hrulefill}\\Exam
> 1\\}{}{Introductory Class \\May 7, 2013\\}
> \begin{document}
> 
> \begin{coverpages}
> text describing how the exam should be printed and prepared for
> distribution.
> \end{coverpages}
> 
> 
> 
> \begin{questions}
> \question
> A paragraph here describes this section and tells students how many
> terms to
> identify.
> \begin{parts}
> \part
> term 1
> \vspace*{\fill}
> \part
> term 2
> \vspace*{\fill}
> \part
> term 3
> \vspace*{\fill}
> \part
> term 4
> \vspace*{\fill}
> \part
> term 5
> \vspace*{\fill}
> \part
> term 6
> \vspace*{\fill}
> \part
> term 7
> \vspace*{\fill}
> \part
> term 7
> \vspace*{\fill}
> \part
> term 8
> \end{parts}
> \end{questions}
> \newpage
> \fillwithdottedlines{\fill}
> \newpage
> \begin{questions}
> \question
> Short Answer. A paragraph describing how I want students to respond to the
> following questions. I want to leave vertical space filled with dotted
> lines
> between the questions, and I want two questions on each page.
> \begin{parts}
> \part
> This is the first question. It will be several lines long, so I'm
> writing enough
> filler here to add at least a second line.
> \fillwithdottedlines{\fill}
> \part
> This is the second question. It will also be several lines long, so I need
> filler enough to get to the second line for this example.
> \fillwithdottedlines{\fill}
> 
> \newpage
> \fillwithdottedlines{\fill}
> \newpage
> \part
> This is the 3d question.
> \fillwithdottedlines{\fill}
> \end{parts}
> \end{questions}
> \newpage
> \fillwithdottedlines{\fill}
> \newpage
> \begin{questions}
> \question
> Essay Question. This is a section of essay questions. Students will
> answer only
> one of these questions, so I don't need to leave space between the two
> questions.
> \begin{parts}
> \part
> The first of the essay questions goes here. It will be several lines
> long, so I
> want enough text in the example to provide a line break.
> \part
> The second essay question. It is also several lines long, so I'll add some
> rambling text here for the second line.
> \end{parts}
> \end{questions}
> \fillwithdottedlines{\fill}
> \newpage
> \fillwithdottedlines{\fill}
> \end{document}
> 
> --8<---------------cut here---------------end--------------->8---
> 
> 

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-10 16:32 Help with new exporter John Rakestraw
  2013-07-10 16:58 ` Robert Klein
  2013-07-10 19:37 ` Robert Klein
@ 2013-07-10 19:56 ` Rasmus
  2 siblings, 0 replies; 22+ messages in thread
From: Rasmus @ 2013-07-10 19:56 UTC (permalink / raw)
  To: emacs-orgmode


Hi John,

Sorry, I meant to email this to the list . . .

> My problem is that I can't get the exporter to produce chunks like 
> this:
>
> \begin{questions}
> \question
> A paragraph describing how the students should answer the following 
> questions.
> \begin{parts}
> \part
> A multi-line question
> \part
> Another multi-line question
> \end{parts}
> \end{questions}

1. You could let * SOMETHING become a section.  See "The sectioning
structure" (it seems you already tried, though).  This would allow you
to get around your problem using usual org latex classes.
Cf. Robert's solution.

2. Presumably, the best way way to do this is to make a derived back-end,
see 

    http://orgmode.org/worg/dev/org-export-reference.html

What you first need to think about is how you want your Org files to
look.

E.g.:

* question 1
  A paragraph describing how the students should answer the following 
  questions.
  1. A multi-line question
  2. Another multi-line question?

Then you have to define the appropriate functions for your backend.
It won't be many since it inherits everything from the LaTeX class.

Of ocurse whether this is necessary depends on how much you want to
'specialize' the org layout compared to the 'usual' LaTeX org-layout.

–Rasmus

-- 
May the Force be with you

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-10 19:37 ` Robert Klein
@ 2013-07-10 20:46   ` John Rakestraw
  2013-07-10 21:04     ` John Rakestraw
  2013-07-11  5:22     ` Robert Klein
  0 siblings, 2 replies; 22+ messages in thread
From: John Rakestraw @ 2013-07-10 20:46 UTC (permalink / raw)
  To: emacs-orgmode

Hi, Robert --

Thanks very much for your work on this. I'm now *much* closer than I 
was. However, I'm not there yet.

Here's a snippet of the tex file that I need:

--8<---------------cut here---------------start------------->8---
\begin{questions}
\question
A paragraph here describes this section and tells students how many 
terms to
identify.
\begin{parts}
\part
term 1
\vspace*{\fill}
\part
term 2
\vspace*{\fill}
\part
term 3
\vspace*{\fill}
\part
term 4
\vspace*{\fill}
\part
term 5
\vspace*{\fill}
\part
term 6
\vspace*{\fill}
\part
term 7
\vspace*{\fill}
\part
term 7
\vspace*{\fill}
\part
term 8
\end{parts}
\end{questions}
--8<---------------cut here---------------end--------------->8---

However, if I use the org-latex-class definition that you suggested, 
this is what I get:

--8<---------------cut here---------------start------------->8---
\begin[]{questions}{}
\label{sec-1}
\question[]{}
\label{sec-1-1}
A paragraph here describes this section and tells students how many 
terms to
identify.
\begin[]{parts}{}
\label{sec-1-1-1}
\part[]{}
\label{sec-1-1-1-1}
term 1
\vspace*{\fill}

\part[]{}
\label{sec-1-1-1-2}
term 2
\vspace*{\fill}

\part[]{}
\label{sec-1-1-1-3}
term 3
\vspace*{\fill}

\part[]{}
\label{sec-1-1-1-4}
term 4
\vspace*{\fill}

\part[]{}
\label{sec-1-1-1-5}
term 5
\vspace*{\fill}

\part[]{}
\label{sec-1-1-1-6}
term 6
\vspace*{\fill}

\part[]{}
\label{sec-1-1-1-7}
term 7
\vspace*{\fill}

\part[]{}
\label{sec-1-1-1-8}
term 8
\vspace*{\fill}

\part[]{}
\label{sec-1-1-1-9}
term 9
\newpage
\fillwithdottedlines{\fill}
\newpage
\end{parts}

--8<---------------cut here---------------end--------------->8---


The additional lines in the tex file add numbers and oddly formatted 
text to the pdf. The numbering scheme is also off -- these lines in the 
class definition:

\renewcommand\thequestion{\Roman{question}}
\renewcommand\thepartno{\arabic{partno}}
\renewcommand\partlabel{\thepartno.}

are supposed to have to have the question-level headings numbered with 
Roman numerals and the part-level headings numbered with Arabic numbers. 
But for some reason that numbering scheme isn't imposed.

Perhaps I need either just to write in latex or to work with what 
Rasmus is suggesting; I've not had time yet to digest his suggestions. 
I'm floating on the edge of my knowledge here....

Thanks again.

--John

-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-10 20:46   ` John Rakestraw
@ 2013-07-10 21:04     ` John Rakestraw
  2013-07-11  4:04       ` Charles Berry
  2013-07-11  5:22     ` Robert Klein
  1 sibling, 1 reply; 22+ messages in thread
From: John Rakestraw @ 2013-07-10 21:04 UTC (permalink / raw)
  To: emacs-orgmode

Apologies for responding to myself, but I realized after writing the 
message below that if I use sed to remove the lines with the word 
"label" and all of the empty brackets (i.e., =[]= and ={}= ) in the tex 
file, then I'm very, very close to what I need. I assume I could write a 
function and then call it in the publishing routine?

--John

On 10.07.2013 16:46, John Rakestraw wrote:
> Hi, Robert --
>
> Thanks very much for your work on this. I'm now *much* closer than I
> was. However, I'm not there yet.
>
> Here's a snippet of the tex file that I need:
>
> --8<---------------cut here---------------start------------->8---
> \begin{questions}
> \question
> A paragraph here describes this section and tells students how many 
> terms to
> identify.
> \begin{parts}
> \part
> term 1
> \vspace*{\fill}
> \part
> term 2
> \vspace*{\fill}
> \part
> term 3
> \vspace*{\fill}
> \part
> term 4
> \vspace*{\fill}
> \part
> term 5
> \vspace*{\fill}
> \part
> term 6
> \vspace*{\fill}
> \part
> term 7
> \vspace*{\fill}
> \part
> term 7
> \vspace*{\fill}
> \part
> term 8
> \end{parts}
> \end{questions}
> --8<---------------cut here---------------end--------------->8---
>
> However, if I use the org-latex-class definition that you suggested,
> this is what I get:
>
> --8<---------------cut here---------------start------------->8---
> \begin[]{questions}{}
> \label{sec-1}
> \question[]{}
> \label{sec-1-1}
> A paragraph here describes this section and tells students how many 
> terms to
> identify.
> \begin[]{parts}{}
> \label{sec-1-1-1}
> \part[]{}
> \label{sec-1-1-1-1}
> term 1
> \vspace*{\fill}
>
> \part[]{}
> \label{sec-1-1-1-2}
> term 2
> \vspace*{\fill}
>
> \part[]{}
> \label{sec-1-1-1-3}
> term 3
> \vspace*{\fill}
>
> \part[]{}
> \label{sec-1-1-1-4}
> term 4
> \vspace*{\fill}
>
> \part[]{}
> \label{sec-1-1-1-5}
> term 5
> \vspace*{\fill}
>
> \part[]{}
> \label{sec-1-1-1-6}
> term 6
> \vspace*{\fill}
>
> \part[]{}
> \label{sec-1-1-1-7}
> term 7
> \vspace*{\fill}
>
> \part[]{}
> \label{sec-1-1-1-8}
> term 8
> \vspace*{\fill}
>
> \part[]{}
> \label{sec-1-1-1-9}
> term 9
> \newpage
> \fillwithdottedlines{\fill}
> \newpage
> \end{parts}
>
> --8<---------------cut here---------------end--------------->8---
>
>
> The additional lines in the tex file add numbers and oddly formatted
> text to the pdf. The numbering scheme is also off -- these lines in
> the class definition:
>
> \renewcommand\thequestion{\Roman{question}}
> \renewcommand\thepartno{\arabic{partno}}
> \renewcommand\partlabel{\thepartno.}
>
> are supposed to have to have the question-level headings numbered
> with Roman numerals and the part-level headings numbered with Arabic
> numbers. But for some reason that numbering scheme isn't imposed.
>
> Perhaps I need either just to write in latex or to work with what
> Rasmus is suggesting; I've not had time yet to digest his 
> suggestions.
> I'm floating on the edge of my knowledge here....
>
> Thanks again.
>
> --John

-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-10 21:04     ` John Rakestraw
@ 2013-07-11  4:04       ` Charles Berry
  0 siblings, 0 replies; 22+ messages in thread
From: Charles Berry @ 2013-07-11  4:04 UTC (permalink / raw)
  To: emacs-orgmode

John Rakestraw <lists <at> johnrakestraw.com> writes:

> 
> Apologies for responding to myself, but I realized after writing the 
> message below that if I use sed to remove the lines with the word 
> "label" and all of the empty brackets (i.e., =[]= and ={}= ) in the tex 
> file, then I'm very, very close to what I need. I assume I could write a 
> function and then call it in the publishing routine?
> 
> --John

One way to implement this is to define one or more filters.

:filter-final-output might do it for the unwanted brackets.
Maybe :filter-special-block is what you want for the unwanted label lines,
which I guess are created in special block handling

See 

http://orgmode.org/worg/exporters/filter-markup.html 

for some tips as well as the section headed

;;; The Filter System

in ox.el.

[rest deleted]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-10 20:46   ` John Rakestraw
  2013-07-10 21:04     ` John Rakestraw
@ 2013-07-11  5:22     ` Robert Klein
  2013-07-11 15:15       ` John Rakestraw
  1 sibling, 1 reply; 22+ messages in thread
From: Robert Klein @ 2013-07-11  5:22 UTC (permalink / raw)
  To: emacs-orgmode

Hi John,

I don't think I had those square brackets, yesterday, but see at the end
about them.


Anyway, I thought of something which gives me a result I'd say is Ok for me:

1. Change the .org files as follows
   - add a space to empty headings (as written yesterday)
   - add "texht:nil" to the #+OPTIONS: line (without the quotes)

2. Use the following class definition:

#+begin_src emacs-lisp
(setq org-latex-classes
      '(("exam"
         "\\documentclass[12pt]{exam}
% BEGIN exam Defaults
[NO-DEFAULT-PACKAGES]
[PACKAGES]

\\usepackage{palatino}
\\extrawidth{.5in}
\\extraheadheight{-.75in}
\\extrafootheight[-3in]{-.75in}
\\pagestyle{headandfoot}
\\NoKey
\\NumberOfVersions{1}
\\renewcommand\\thequestion{\\Roman{question}}
\\renewcommand\\thepartno{\\arabic{partno}}
\\renewcommand\\partlabel{\\thepartno.}

% END exam Defaults
"
         ("\\begin{questions} %% %s" "\\end{questions}")
         ("\\question %% %s" . "\\question* %% %s")
         ("\\begin{parts} %% %s" "\\end{parts}")
         ("\\part %% %s" . "\\part* %% %s"))))
#+end_src

As you can see, I still have the %s (now without the curly braces) but
as a LaTeX comment after %...

About the labels, well, I'd just leave them; as long as you don't
reference them they shouldn't disturb anything.


If you still get those square brackets; I use org-mode from the git
repository, as of yesterday or the day before.  Are you using org-mode
8.0.2 or earlier?  I think this gets fixed by Aaron Ecay's patch from
May 02/03.  If you don't want to use the git version, download version
8.0.5 from orgmode.org.


Does this work for you?


Best regards
Robert




On 07/10/2013 10:46 PM, John Rakestraw wrote:
> Hi, Robert --
> 
> Thanks very much for your work on this. I'm now *much* closer than I
> was. However, I'm not there yet.
> 
> Here's a snippet of the tex file that I need:
> 
> --8<---------------cut here---------------start------------->8---
> \begin{questions}
> \question
> A paragraph here describes this section and tells students how many
> terms to
> identify.
> \begin{parts}
> \part
> term 1
> \vspace*{\fill}
> \part
> term 2
> \vspace*{\fill}
> \part
> term 3
> \vspace*{\fill}
> \part
> term 4
> \vspace*{\fill}
> \part
> term 5
> \vspace*{\fill}
> \part
> term 6
> \vspace*{\fill}
> \part
> term 7
> \vspace*{\fill}
> \part
> term 7
> \vspace*{\fill}
> \part
> term 8
> \end{parts}
> \end{questions}
> --8<---------------cut here---------------end--------------->8---
> 
> However, if I use the org-latex-class definition that you suggested,
> this is what I get:
> 
> --8<---------------cut here---------------start------------->8---
> \begin[]{questions}{}
> \label{sec-1}
> \question[]{}
> \label{sec-1-1}
> A paragraph here describes this section and tells students how many
> terms to
> identify.
> \begin[]{parts}{}
> \label{sec-1-1-1}
> \part[]{}
> \label{sec-1-1-1-1}
> term 1
> \vspace*{\fill}
> 
> \part[]{}
> \label{sec-1-1-1-2}
> term 2
> \vspace*{\fill}
> 
> \part[]{}
> \label{sec-1-1-1-3}
> term 3
> \vspace*{\fill}
> 
> \part[]{}
> \label{sec-1-1-1-4}
> term 4
> \vspace*{\fill}
> 
> \part[]{}
> \label{sec-1-1-1-5}
> term 5
> \vspace*{\fill}
> 
> \part[]{}
> \label{sec-1-1-1-6}
> term 6
> \vspace*{\fill}
> 
> \part[]{}
> \label{sec-1-1-1-7}
> term 7
> \vspace*{\fill}
> 
> \part[]{}
> \label{sec-1-1-1-8}
> term 8
> \vspace*{\fill}
> 
> \part[]{}
> \label{sec-1-1-1-9}
> term 9
> \newpage
> \fillwithdottedlines{\fill}
> \newpage
> \end{parts}
> 
> --8<---------------cut here---------------end--------------->8---
> 
> 
> The additional lines in the tex file add numbers and oddly formatted
> text to the pdf. The numbering scheme is also off -- these lines in the
> class definition:
> 
> \renewcommand\thequestion{\Roman{question}}
> \renewcommand\thepartno{\arabic{partno}}
> \renewcommand\partlabel{\thepartno.}
> 
> are supposed to have to have the question-level headings numbered with
> Roman numerals and the part-level headings numbered with Arabic numbers.
> But for some reason that numbering scheme isn't imposed.
> 
> Perhaps I need either just to write in latex or to work with what Rasmus
> is suggesting; I've not had time yet to digest his suggestions. I'm
> floating on the edge of my knowledge here....
> 
> Thanks again.
> 
> --John
> 


-- 
Robert Klein - Max Planck-Institut für Polymerforschung
Ackermannweg 10
55128 Mainz

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-11  5:22     ` Robert Klein
@ 2013-07-11 15:15       ` John Rakestraw
  2013-07-11 23:05         ` John Rakestraw
  0 siblings, 1 reply; 22+ messages in thread
From: John Rakestraw @ 2013-07-11 15:15 UTC (permalink / raw)
  To: emacs-orgmode

Hi, Robert --

This gets me still closer. Using the revised class definition, I get 
exactly what I need except that I'm still left with square brackets in 
tex file. That is, I want this:

\begin{questions} or \begin{parts}

but instead I get this:

\begin[]{questions} or \begin[]{parts}

(Those two places are now the only places where the empty square 
brackets show up, and I don't have any of the empty curly brackets.)

If I remove those square brackets and run latex on the changed file, 
then I get what I want in the pdf.

I was using a fairly recent version (8.0.3) from git; I've now upgraded 
to 8.0.5 from git and get the same result.

I see Charles's suggestion to define a filter to take out the brackets 
(thanks for that) -- I'm afraid I'm on the edge of my knowledge so I'll 
need more time to sort that one out.

Thanks for your help.

-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-11 15:15       ` John Rakestraw
@ 2013-07-11 23:05         ` John Rakestraw
  2013-07-12  3:00           ` Thomas S. Dye
  0 siblings, 1 reply; 22+ messages in thread
From: John Rakestraw @ 2013-07-11 23:05 UTC (permalink / raw)
  To: emacs-orgmode

Hi, list --

I understand the value of working on this myself -- what better way to 
learn? -- but after a few hours of reading the docs and scouring the 
list, I've reached the point of seeking at least a hint for where to go. 
(There's much more information higher in this thread, but I'm trying to 
focus rather narrowly on the problem here to keep the email relatively 
short.)

I'm trying to export to a pdf, using Phil Hirschhorn's exam.cls. The 
document class definition I have (thanks, Robert!) gets me almost to 
where I need to be. However, it leaves me with square brackets at 
several points in the tex file. I need to delete those brackets.

That is, I need to change "\begin[]{questions}" to 
"{\begin{questions}".

Following Charles's advice, I'm trying to define and use a filter. 
However, I know little enough about LaTeX and lisp that I can't figure 
out why what I have isn't working. At the risk of making it very clear I 
know even less than nothing, here's what I've worked up:

--8<---------------cut here---------------start------------->8---
   (defun jr-org-delete-brackets-from-tex-file
      (text backend info)
      (while (re-search-forward "\\[]" nil t)
      (replace-match ""))
      text)

    (add-to-list 'org-export-filter-final-output-functions
              'jr-org-delete-brackets-from-tex-file)
--8<---------------cut here---------------end--------------->8---

This doesn't work.

Can someone at least give me a hint on what I need to do differently?

Thanks very much.

-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-11 23:05         ` John Rakestraw
@ 2013-07-12  3:00           ` Thomas S. Dye
  0 siblings, 0 replies; 22+ messages in thread
From: Thomas S. Dye @ 2013-07-12  3:00 UTC (permalink / raw)
  To: John Rakestraw; +Cc: emacs-orgmode

Hi John,

I think your search string might better be "\[\]", or something along
those lines (perhaps it needs to be "\\[\\]").   

hth,
Tom

John Rakestraw <lists@johnrakestraw.com> writes:

> Hi, list --
>
> I understand the value of working on this myself -- what better way to 
> learn? -- but after a few hours of reading the docs and scouring the 
> list, I've reached the point of seeking at least a hint for where to go. 
> (There's much more information higher in this thread, but I'm trying to 
> focus rather narrowly on the problem here to keep the email relatively 
> short.)
>
> I'm trying to export to a pdf, using Phil Hirschhorn's exam.cls. The 
> document class definition I have (thanks, Robert!) gets me almost to 
> where I need to be. However, it leaves me with square brackets at 
> several points in the tex file. I need to delete those brackets.
>
> That is, I need to change "\begin[]{questions}" to 
> "{\begin{questions}".
>
> Following Charles's advice, I'm trying to define and use a filter. 
> However, I know little enough about LaTeX and lisp that I can't figure 
> out why what I have isn't working. At the risk of making it very clear I 
> know even less than nothing, here's what I've worked up:
>
>    (defun jr-org-delete-brackets-from-tex-file
>       (text backend info)
>       (while (re-search-forward "\\[]" nil t)
>       (replace-match ""))
>       text)
>
>     (add-to-list 'org-export-filter-final-output-functions
>               'jr-org-delete-brackets-from-tex-file)
>
> This doesn't work.
>
> Can someone at least give me a hint on what I need to do differently?
>
> Thanks very much.

-- 
Thomas S. Dye
http://www.tsdye.com

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
       [not found] <51DFEC7B.7050504@mpip-mainz.mpg.de>
@ 2013-07-12 11:47 ` Robert Klein
  2013-07-12 13:41   ` Nick Dokos
  0 siblings, 1 reply; 22+ messages in thread
From: Robert Klein @ 2013-07-12 11:47 UTC (permalink / raw)
  To: emacs-orgmode

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

(sorry, this should've gone to the list the first time)

Hi John,

sorry, I can't help you with the filters.

On the other hand, I don't see any reason why you gt whose square brackets.

I tried different versions of org-mode, and never got *empty* square
brackets.

E.g. I tried with org-mode 8.0.5 release installed in ~/org-8.0.5  (I
did a "make" and "make autoloads" in this directory) and used the
exam.org file as attached and the attached exam.el for configuration.

I started emacs with from the directory exam.org and exam.el are, using
the following command:

emacs -Q -l exam.el exam.org

Exporting to LaTeX file results in the attached exam.tex.

I tried emacs version 23.1 and 24.2.

(For sure, my latex installation doesn't like the \NoKey and
\NumberOfVersions ...)


You could try, if you get can get the same results I do and then work
through your emacs configuration.

I've got no other idea at the moment.

Best regards
Robert



On 07/12/2013 01:05 AM, John Rakestraw wrote:
> Hi, list --
> 
> I understand the value of working on this myself -- what better way to
> learn? -- but after a few hours of reading the docs and scouring the
> list, I've reached the point of seeking at least a hint for where to go.
> (There's much more information higher in this thread, but I'm trying to
> focus rather narrowly on the problem here to keep the email relatively
> short.)
> 
> I'm trying to export to a pdf, using Phil Hirschhorn's exam.cls. The
> document class definition I have (thanks, Robert!) gets me almost to
> where I need to be. However, it leaves me with square brackets at
> several points in the tex file. I need to delete those brackets.
> 
> That is, I need to change "\begin[]{questions}" to "{\begin{questions}".
> 
> Following Charles's advice, I'm trying to define and use a filter.
> However, I know little enough about LaTeX and lisp that I can't figure
> out why what I have isn't working. At the risk of making it very clear I
> know even less than nothing, here's what I've worked up:
> 
> --8<---------------cut here---------------start------------->8---
>   (defun jr-org-delete-brackets-from-tex-file
>      (text backend info)
>      (while (re-search-forward "\\[]" nil t)
>      (replace-match ""))
>      text)
> 
>    (add-to-list 'org-export-filter-final-output-functions
>              'jr-org-delete-brackets-from-tex-file)
> --8<---------------cut here---------------end--------------->8---
> 
> This doesn't work.
> 
> Can someone at least give me a hint on what I need to do differently?
> 
> Thanks very much.
> 


-- 
Robert Klein - Max Planck-Institut für Polymerforschung
Ackermannweg 10
55128 Mainz




[-- Attachment #2: exam.el --]
[-- Type: text/x-emacs-lisp, Size: 733 bytes --]

(setq load-path (cons "~/org-8.0.5/lisp" load-path))
(require 'org)
(require 'ox)

(setq org-latex-classes
      '(("exam"
         "\\documentclass[12pt]{exam}
% BEGIN exam Defaults
[NO-DEFAULT-PACKAGES]
[PACKAGES]

\\usepackage{palatino}
\\extrawidth{.5in}
\\extraheadheight{-.75in}
\\extrafootheight[-3in]{-.75in}
\\pagestyle{headandfoot}
\\NoKey
\\NumberOfVersions{1}
\\renewcommand\\thequestion{\\Roman{question}}
\\renewcommand\\thepartno{\\arabic{partno}}
\\renewcommand\\partlabel{\\thepartno.}

% END exam Defaults
"
         ("\\begin{questions} %% %s" "\\end{questions}")
         ("\\question %% %s" . "\\question* %% %s")
         ("\\begin{parts} %% %s" "\\end{parts}")
         ("\\part %% %s" . "\\part* %% %s"))))



[-- Attachment #3: exam.org --]
[-- Type: application/vnd.lotus-organizer, Size: 2450 bytes --]

[-- Attachment #4: exam.tex --]
[-- Type: text/x-tex, Size: 3053 bytes --]

\documentclass[10pt]{exam}
% BEGIN exam Defaults

\usepackage{palatino}
\extrawidth{.5in}
\extraheadheight{-.75in}
\extrafootheight[-3in]{-.75in}
\pagestyle{headandfoot}
\NoKey
\NumberOfVersions{1}
\renewcommand\thequestion{\Roman{question}}
\renewcommand\thepartno{\arabic{partno}}
\renewcommand\partlabel{\thepartno.}

% END exam Defaults


\extrawidth{.5in}
\extraheadheight[.3in]{-.75in}
\extrafootheight{-.25in}
\raggedright
\author{Robert Klein}
\date{\today}
\title{}
\begin{document}

\renewcommand\thequestion{\Roman{question}}
\renewcommand\thepartno{\arabic{partno}}
\renewcommand\partlabel{\thepartno.}
\firstpageheader{Name:\enspace\makebox[3in]{\hrulefill}\\Exam 1\\}{}{Theo 001 -- Rakestraw\\February 14, 2013\\}
\begin{coverpages}
this is just some text
\end{coverpages}

\begin{questions} % Meaningless header
\label{sec-1}
\question % 
\label{sec-1-1}
\textbf{Identification of Terms}. Identify/define and give the significance
of \textbf{six} of the following. If you identify/define more than six
without indicating clearly which six you want me to grade, I will
grade your first six answers (18 points).
\begin{parts} % Terms
\label{sec-1-1-1}
\part % 
\label{sec-1-1-1-1}
term 1
\vspace*{\fill}

\part % 
\label{sec-1-1-1-2}
term 2
\vspace*{\fill}

\part % 
\label{sec-1-1-1-3}
term 3
\vspace*{\fill}

\part % 
\label{sec-1-1-1-4}
term 4
\vspace*{\fill}

\part % 
\label{sec-1-1-1-5}
term 5
\vspace*{\fill}

\part % 
\label{sec-1-1-1-6}
term 6
\vspace*{\fill}

\part % 
\label{sec-1-1-1-7}
term 7
\vspace*{\fill}

\part % 
\label{sec-1-1-1-8}
term 8
\vspace*{\fill}

\part % 
\label{sec-1-1-1-9}
term 9
\newpage
\fillwithdottedlines{\fill}
\newpage
\end{parts}
\question % 
\label{sec-1-2}
\textbf{Short Answer}. Answer \textbf{two} of the following in a paragraph. If you
attempt to answer more than two without indicating clearly which two you
intend me to grade I will grade your first two answers (36 points).
\begin{parts} % Questions
\label{sec-1-2-1}
\part % 
\label{sec-1-2-1-1}
Question one goes on for more than one line. (I mention that because I want to
be clear that I can't put a question in a heading.)

\fillwithdottedlines{\fill}
\part % 
\label{sec-1-2-1-2}
Question 2 goes here.
\fillwithdottedlines{\fill}

\newpage
\fillwithdottedlines{\fill}
\newpage
\part % 
\label{sec-1-2-1-3}
Question 3 goes here.
\fillwithdottedlines{\fill}
\part % 
\label{sec-1-2-1-4}
Question 4 goes here.
\fillwithdottedlines{\fill}

\newpage
\fillwithdottedlines{\fill}
\newpage
\end{parts}
\question % 
\label{sec-1-3}
\textbf{Essay Question}. Answer \textbf{one} of the following as fully as you are able.
If you attempt to answer more than one without indicating clearly which one
you intend me to grade I will grade your first answer (40 points).
\begin{parts} % Questions
\label{sec-1-3-1}

\part % 
\label{sec-1-3-1-1}
here's the first essay question.

\part % 
\label{sec-1-3-1-2}
here's the second essay question.
\fillwithdottedlines{\fill}

\newpage
\fillwithdottedlines{\fill}
\end{parts}
\end{questions}
\end{document}


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 11:47 ` Robert Klein
@ 2013-07-12 13:41   ` Nick Dokos
  2013-07-12 14:12     ` Rasmus
  0 siblings, 1 reply; 22+ messages in thread
From: Nick Dokos @ 2013-07-12 13:41 UTC (permalink / raw)
  To: emacs-orgmode

Robert Klein <kleinrob@mpip-mainz.mpg.de> writes:

> (sorry, this should've gone to the list the first time)
>
> Hi John,
>
> sorry, I can't help you with the filters.
>
> On the other hand, I don't see any reason why you gt whose square brackets.
>
> I tried different versions of org-mode, and never got *empty* square
> brackets.

That was my experience as well...

>
> E.g. I tried with org-mode 8.0.5 release installed in ~/org-8.0.5  (I
> did a "make" and "make autoloads" in this directory) and used the
> exam.org file as attached and the attached exam.el for configuration.
>
> I started emacs with from the directory exam.org and exam.el are, using
> the following command:
>
> emacs -Q -l exam.el exam.org
>
> Exporting to LaTeX file results in the attached exam.tex.
>
> I tried emacs version 23.1 and 24.2.
>
> (For sure, my latex installation doesn't like the \NoKey and
> \NumberOfVersions ...)
>

... and here too.

>
> You could try, if you get can get the same results I do and then work
> through your emacs configuration.
>
> I've got no other idea at the moment.
>

I may be too pessimistic but it seems to me that the exam class just
does not map to the latex export model cleanly (to be honest, the fact
that it worked in some fashion with the old exporter boggles my mind - I
would not have expected it to, which goes to show that I may be too
pessimistic :-) ).

Rasmus's derived backend idea might work perhaps - I for one wouldn't
know how to implement it at this point. But trying to edit artifacts out
after the backend is more or less finished seems to me to be a fruitless
approach.

Nick

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 13:41   ` Nick Dokos
@ 2013-07-12 14:12     ` Rasmus
  2013-07-12 14:59       ` Nick Dokos
  0 siblings, 1 reply; 22+ messages in thread
From: Rasmus @ 2013-07-12 14:12 UTC (permalink / raw)
  To: emacs-orgmode

Nick. Robert, 

Disclaimer: I didn't follow this thread closely. . . 

Nick Dokos <ndokos@gmail.com> writes:

>> (sorry, this should've gone to the list the first time)
>>
>> Hi John,
>>
>> sorry, I can't help you with the filters.
>>
>> On the other hand, I don't see any reason why you gt whose square brackets.
>>
>> I tried different versions of org-mode, and never got *empty* square
>> brackets.
>
> That was my experience as well...

If one desires empty squares why not use [\mbox{}]?  In LaTeX terms I
think [\mbox{}] is equivalent or almost equivalent o [], and to Org
they are different. . .

Otherwise add a (regexp) filter to
org-export-filter-final-output-functions inserting the missing []s.

Here's an example of a filer I use.  Notice that ox keeps everything
in a string and in property lists (← just an indexed dictionary).

#+BEGIN_SRC emacs-lisp
(defun org-latex-filter-nobreaks-double-space (text backend info)
  "Tries to export \"S1. S2\" as \"S1.~S2\",
   while letting \"S1.  S2\" be exported without tilde"
  (when (org-export-derived-backend-p backend 'latex)
    (replace-regexp-in-string "\\(\\. \\)\\{1\\}\\([^ ]\\)" ".~\\2" text)))

(add-to-list 'org-export-filter-final-output-functions
             'org-latex-filter-nobreaks-double-space)
#+END_SRC

(This may not be a great example as one probably should implement it
 at org-export-before-processing-hook and insert NO-BREAK SPACEs and
 tell LaTeX how to handle these).

> Rasmus's derived backend idea might work perhaps - I for one wouldn't
> know how to implement it at this point. But trying to edit artifacts out
> after the backend is more or less finished seems to me to be a fruitless
> approach.

I'm not claiming it's easy (Lisp can be pretty daunting, yes?), but
it's definitely doable.

 1. You start by thinking about how you want your layout to be.  This
    is particularly the case if you don't want to (mis)use the *s for
    everything.  For instance the Org file Robert posted had a lot of
    repeated things that might as well be handeled by the computer.
 2. Then you write functions that translate the elements that you want
    to work differently into LaTeX code and put 'em into
    the :translate-alist.  All functions that you're not adding will
    come from the LaTeX class.

Here's some documentations (somewhat heavy)

     http://orgmode.org/manual/Adding-export-back_002dends.html
     http://orgmode.org/worg/dev/org-export-reference.html

and an not-so-enlightening example

     http://orgmode.org/worg/exporters/filter-markup.html


Further: I'm working on a section for the manual on ways of adding new
backends, but alas I must spend my time on other activities at the
moment. Of course, the present discussion of implementing an exam
class is a much more interesting example than the cookbook I'm working
on at the moment :)  

–Rasmus

-- 
Send from my Emacs

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 14:12     ` Rasmus
@ 2013-07-12 14:59       ` Nick Dokos
  2013-07-12 15:05         ` John Rakestraw
  0 siblings, 1 reply; 22+ messages in thread
From: Nick Dokos @ 2013-07-12 14:59 UTC (permalink / raw)
  To: emacs-orgmode

Rasmus <rasmus@gmx.us> writes:

> Nick. Robert, 
>
> Disclaimer: I didn't follow this thread closely. . . 
>
> Nick Dokos <ndokos@gmail.com> writes:
>
>>> (sorry, this should've gone to the list the first time)
>>>
>>> Hi John,
>>>
>>> sorry, I can't help you with the filters.
>>>
>>> On the other hand, I don't see any reason why you gt whose square brackets.
>>>
>>> I tried different versions of org-mode, and never got *empty* square
>>> brackets.
>>
>> That was my experience as well...
>
> If one desires empty squares why not use [\mbox{}]?  In LaTeX terms I
> think [\mbox{}] is equivalent or almost equivalent o [], and to Org
> they are different. . .
>

I think you misunderstood here: John Rakestraw seems to get empty sets
of square brackets in the latex file that he produces from his org file.
What Robert pointed out (and what I concurred with) was that when he
runs John's org file through the exporter, he does not get these empty
square brackets. The question is why John on one hand and Robert (and I)
on the other hand see such different behavior from the exporter.

> Otherwise add a (regexp) filter to
> org-export-filter-final-output-functions inserting the missing []s.
>
> Here's an example of a filer I use.  Notice that ox keeps everything
> in a string and in property lists (← just an indexed dictionary).
>
> #+BEGIN_SRC emacs-lisp
> (defun org-latex-filter-nobreaks-double-space (text backend info)
>   "Tries to export \"S1. S2\" as \"S1.~S2\",
>    while letting \"S1.  S2\" be exported without tilde"
>   (when (org-export-derived-backend-p backend 'latex)
>     (replace-regexp-in-string "\\(\\. \\)\\{1\\}\\([^ ]\\)" ".~\\2" text)))
>
> (add-to-list 'org-export-filter-final-output-functions
>              'org-latex-filter-nobreaks-double-space)
> #+END_SRC
>
> (This may not be a great example as one probably should implement it
>  at org-export-before-processing-hook and insert NO-BREAK SPACEs and
>  tell LaTeX how to handle these).
>
>> Rasmus's derived backend idea might work perhaps - I for one wouldn't
>> know how to implement it at this point. But trying to edit artifacts out
>> after the backend is more or less finished seems to me to be a fruitless
>> approach.
>
> I'm not claiming it's easy (Lisp can be pretty daunting, yes?), but
> it's definitely doable.
>

The "fruitless" label was *not* meant for your derived-backend idea: au
contraire.

John is trying to write filters to edit out all the artifacts that he is
getting. That's what I thought was the fruitless approach. The derived
backend approach seems to me to be the *only* (or at least the best)
one for mapping org files to the exam class.

I'm sure it is doable: knowing *how* to do it is another matter though -
and it's not so much the Lisp, it's figuring out how everything has to
go together, given the framework (and all the supporting infrastructure)
that Nicolas has provided. I can deal with the Lisp but I just don't
know enough about the new exporter framework to even do a trivial
backend at this point.

>  1. You start by thinking about how you want your layout to be.  This
>     is particularly the case if you don't want to (mis)use the *s for
>     everything.  For instance the Org file Robert posted had a lot of
>     repeated things that might as well be handeled by the computer.
>  2. Then you write functions that translate the elements that you want
>     to work differently into LaTeX code and put 'em into
>     the :translate-alist.  All functions that you're not adding will
>     come from the LaTeX class.
>
> Here's some documentations (somewhat heavy)
>
>      http://orgmode.org/manual/Adding-export-back_002dends.html
>      http://orgmode.org/worg/dev/org-export-reference.html
>
> and an not-so-enlightening example
>
>      http://orgmode.org/worg/exporters/filter-markup.html
>
>
> Further: I'm working on a section for the manual on ways of adding new
> backends, but alas I must spend my time on other activities at the
> moment. Of course, the present discussion of implementing an exam
> class is a much more interesting example than the cookbook I'm working
> on at the moment :)  
>

More tutorials is exactly what's needed, so thanks for the pointers
- and any future tutorials you provide as well :-)

> –Rasmus

-- 
Nick

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 14:59       ` Nick Dokos
@ 2013-07-12 15:05         ` John Rakestraw
  2013-07-12 15:27           ` Rasmus
  2013-07-12 15:28           ` Nick Dokos
  0 siblings, 2 replies; 22+ messages in thread
From: John Rakestraw @ 2013-07-12 15:05 UTC (permalink / raw)
  To: emacs-orgmode

Success!

Thanks to all for your help. I really do appreciate your time.

I cannot figure out why I'm getting the brackets that no one else is
getting (Rasmus -- my problem is that they're there and I don't want
them), but I now have a filter that will take them out:

--8<---------------cut here---------------start------------->8---
      (defun jr-org-delete-brackets-from-tex-file
        (text backend info)
        (replace-regexp-in-string "\\[\\]" "" text))

      (add-to-list 'org-export-filter-final-output-functions
                   'jr-org-delete-brackets-from-tex-file)
--8<---------------cut here---------------end--------------->8---

Now to explore how to implement this only when I'm using the exam 
document
class, perhaps by using a derived backend. (It may be that it won't 
cause
any problems with other classes, but it seems sloppy to have it working
all the time, no?)

Thanks to Robert for the detailed and careful responses, to Charles for
suggesting the filters, and to Rasmus for the example that helped me
straighten me out at the end.

And I can't resist an aside to Nick -- I've really appreciated both the
tone and the content of your detailed contributions to this list over 
the
years. I find it difficult to believe that you're more pessimistic than 
I
am, but I take some odd pleasure in making something work that you 
thought
wouldn't work. ;-)

--John

-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 15:05         ` John Rakestraw
@ 2013-07-12 15:27           ` Rasmus
  2013-07-12 15:47             ` John Rakestraw
  2013-07-12 15:28           ` Nick Dokos
  1 sibling, 1 reply; 22+ messages in thread
From: Rasmus @ 2013-07-12 15:27 UTC (permalink / raw)
  To: emacs-orgmode

John Rakestraw <lists@johnrakestraw.com> writes:

> I cannot figure out why I'm getting the brackets that no one else is
> getting (Rasmus -- my problem is that they're there and I don't want
> them), but I now have a filter that will take them out:

My apology. 


>       (defun jr-org-delete-brackets-from-tex-file
>         (text backend info)
>         (replace-regexp-in-string "\\[\\]" "" text))
>
>       (add-to-list 'org-export-filter-final-output-functions
>                    'jr-org-delete-brackets-from-tex-file)
>
> Now to explore how to implement this only when I'm using the exam 
> document
> class, perhaps by using a derived backend. (It may be that it won't 
> cause
> any problems with other classes, but it seems sloppy to have it working
> all the time, no?)

 1. You'd want to check for the backend.
 2. To add a two tests use and and check that the correct document
    class is being used with string-match.  

    Untested:
 
     (when (and ;; check that it's a LaTeX backend
                (org-export-derived-backend-p backend 'latex)
                (string-match "\\documentclass?[.*?]{exam}" (downcase string)))
       (replace-match "" nil nil headline))
 
Most document will fail the second test and those that don't are
probably the ones you want to target.

–Rasmus

-- 
A page of history is worth a volume of logic

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 15:05         ` John Rakestraw
  2013-07-12 15:27           ` Rasmus
@ 2013-07-12 15:28           ` Nick Dokos
  2013-07-12 15:49             ` John Rakestraw
  1 sibling, 1 reply; 22+ messages in thread
From: Nick Dokos @ 2013-07-12 15:28 UTC (permalink / raw)
  To: emacs-orgmode

John Rakestraw <lists@johnrakestraw.com> writes:

> Success!
>
> Thanks to all for your help. I really do appreciate your time.
>
> I cannot figure out why I'm getting the brackets that no one else is
> getting (Rasmus -- my problem is that they're there and I don't want
> them), but I now have a filter that will take them out:
>
>       (defun jr-org-delete-brackets-from-tex-file
>         (text backend info)
>         (replace-regexp-in-string "\\[\\]" "" text))
>
>       (add-to-list 'org-export-filter-final-output-functions
>                    'jr-org-delete-brackets-from-tex-file)
>
> Now to explore how to implement this only when I'm using the exam 
> document
> class, perhaps by using a derived backend. (It may be that it won't 
> cause
> any problems with other classes, but it seems sloppy to have it working
> all the time, no?)
>
> Thanks to Robert for the detailed and careful responses, to Charles for
> suggesting the filters, and to Rasmus for the example that helped me
> straighten me out at the end.
>
> And I can't resist an aside to Nick -- I've really appreciated both
> the tone and the content of your detailed contributions to this list
> over the years. I find it difficult to believe that you're more
> pessimistic than I am, but I take some odd pleasure in making
> something work that you thought wouldn't work. ;-)
>

You underestimate my pessimism :-) I had no doubt that you can get rid
of specific artifacts using specific filters like this - you could after
all, run a sed script on the latex output and get rid of this stuff - it
wouldn't be an org-only solution, but that's OK in my book.

I hope you are ultimately successful in producing exams that look
exactly like you want them, using these mechanisms. But I have my doubts
- you have won a battle, but the war is still raging afaict. OTOH, if
you prove me wrong, I would be delighted!

-- 
Nick

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 15:27           ` Rasmus
@ 2013-07-12 15:47             ` John Rakestraw
  0 siblings, 0 replies; 22+ messages in thread
From: John Rakestraw @ 2013-07-12 15:47 UTC (permalink / raw)
  To: emacs-orgmode

On 12.07.2013 11:27, Rasmus wrote:
>  1. You'd want to check for the backend.
>  2. To add a two tests use and and check that the correct document
>     class is being used with string-match.
>
>     Untested:
>
>      (when (and ;; check that it's a LaTeX backend
>                 (org-export-derived-backend-p backend 'latex)
>                 (string-match "\\documentclass?[.*?]{exam}" (downcase 
> string)))
>        (replace-match "" nil nil headline))
>
> Most document will fail the second test and those that don't are
> probably the ones you want to target.
>
> –Rasmus

Thanks for this.

-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 15:28           ` Nick Dokos
@ 2013-07-12 15:49             ` John Rakestraw
  2013-07-12 16:20               ` Nick Dokos
  0 siblings, 1 reply; 22+ messages in thread
From: John Rakestraw @ 2013-07-12 15:49 UTC (permalink / raw)
  To: emacs-orgmode

On Fri, 12 Jul 2013, Nick Dokos wrote:

> You underestimate my pessimism :-) I had no doubt that you can get 
> rid
> of specific artifacts using specific filters like this - you could 
> after
> all, run a sed script on the latex output and get rid of this stuff - 
> it
> wouldn't be an org-only solution, but that's OK in my book.

Yes, I already had a sed script that would work -- just doggedly trying 
to do it all in one org step.

> I hope you are ultimately successful in producing exams that look
> exactly like you want them, using these mechanisms. But I have my 
> doubts
> - you have won a battle, but the war is still raging afaict. OTOH, if
> you prove me wrong, I would be delighted!

Perhaps I'm misunderstanding something (if so, please leave me alone in 
my ignorance at least for a bit), but I'm thinking I've won this 
particular war -- at least, I'm now able to use the exam document class 
to produce an exam formatted to match my expectations.

--John

-- 
John Rakestraw

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Help with new exporter
  2013-07-12 15:49             ` John Rakestraw
@ 2013-07-12 16:20               ` Nick Dokos
  0 siblings, 0 replies; 22+ messages in thread
From: Nick Dokos @ 2013-07-12 16:20 UTC (permalink / raw)
  To: emacs-orgmode

John Rakestraw <lists@johnrakestraw.com> writes:

> On Fri, 12 Jul 2013, Nick Dokos wrote:
>> I hope you are ultimately successful in producing exams that look
>> exactly like you want them, using these mechanisms. But I have my
>> doubts
>> - you have won a battle, but the war is still raging afaict. OTOH, if
>> you prove me wrong, I would be delighted!
>
> Perhaps I'm misunderstanding something (if so, please leave me alone
> in my ignorance at least for a bit), but I'm thinking I've won this
> particular war -- at least, I'm now able to use the exam document
> class to produce an exam formatted to match my expectations.
>

Oh, I thought that was only the first step. At least, the experiments
I was doing last night were *much* less successful, so I projected my
problems onto you. In any case, I'm glad you can do that - and if
I ever need to produce exams, I know who to contact :-)
-- 
Nick

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2013-07-12 16:20 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-10 16:32 Help with new exporter John Rakestraw
2013-07-10 16:58 ` Robert Klein
2013-07-10 17:27   ` John Rakestraw
2013-07-10 19:37 ` Robert Klein
2013-07-10 20:46   ` John Rakestraw
2013-07-10 21:04     ` John Rakestraw
2013-07-11  4:04       ` Charles Berry
2013-07-11  5:22     ` Robert Klein
2013-07-11 15:15       ` John Rakestraw
2013-07-11 23:05         ` John Rakestraw
2013-07-12  3:00           ` Thomas S. Dye
2013-07-10 19:56 ` Rasmus
     [not found] <51DFEC7B.7050504@mpip-mainz.mpg.de>
2013-07-12 11:47 ` Robert Klein
2013-07-12 13:41   ` Nick Dokos
2013-07-12 14:12     ` Rasmus
2013-07-12 14:59       ` Nick Dokos
2013-07-12 15:05         ` John Rakestraw
2013-07-12 15:27           ` Rasmus
2013-07-12 15:47             ` John Rakestraw
2013-07-12 15:28           ` Nick Dokos
2013-07-12 15:49             ` John Rakestraw
2013-07-12 16:20               ` Nick Dokos

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).