emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Re: Error when exporting to LaTeX


From: Carsten Dominik
Subject: Re: [Orgmode] Re: Error when exporting to LaTeX
Date: Sat, 20 Mar 2010 15:59:22 +0100


On Jan 18, 2010, at 1:43 PM, Sébastien Vauban wrote:

Hi Carsten,

Carsten Dominik wrote:
On Jan 14, 2010, at 12:15 PM, Sébastien Vauban wrote:
Sébastien Vauban wrote:

Here a problem when exporting such a file:

--8<---------------cut here---------------start------------->8---
#+MACRO: rest {\leavevmode \leaders \hrule height 0.7pt\hfill} \\

Nombre y apellidos del estudiante: {{{rest}}}
--8<---------------cut here---------------end--------------->8---

The `rest' macro is for filling the rest of the current line with an
horizontal rule.

It needs to be enclosed between accolades.

The macro just does text replacement, so the LaTeX exporter
sees naked braces which it escapes as it should.  In fact there seems
to be a bug causing the opening "{" not to be escaped - I have just
fixed that, I hope.

The above, and the "accolade workaround" (in front of the LaTeX environment),
work fine in some cases.

Though, here is a relatively simple Org file that exposes some of the problems
I'm still confronted with:

--8<---------------cut here---------------start------------->8---
#+TITLE:     Spanish manual
#+AUTHOR:    Me
#+EMAIL:     address@hidden
#+DATE:      2010-01-18
#+OPTIONS:   H:4 num:t toc:nil
#+LaTeX_CLASS: article

#+LaTeX_HEADER: \usepackage{xcolor}
#+LaTeX_HEADER: \usepackage{fancybox}
#+LaTeX_HEADER: \usepackage{tikz}
#+LaTeX_HEADER: \usetikzlibrary{shapes,calc}
#+LaTeX_HEADER: \newenvironment{etiket} {\fboxsep 10pt \begin{Sbox}\begin{minipage}{\linewidth}} {\end{minipage}\end{Sbox}\shadowbox{\TheSbox}}
#+LaTeX_HEADER: \newcommand{\rfill}{{\leavevmode \color{blue!80}\leaders \hrule height 0.7pt\hfill} \\}
#+LaTeX_HEADER: \newcommand{\rsh}{{\color{blue!80}\rule{0.7cm}{0.7pt}}}
#+LaTeX_HEADER: \newcommand{\titlebox}[3]{\begin{tikzpicture}[every text node part/.style={text centered}] \node[rectangle split, rectangle split parts=2, rectangle split part fill={blue!50,white}, line width=0.5mm, draw=blue, text width=#1, rounded corners](rs) {#2 \nodepart{second} #3}; \end{tikzpicture}}


* Table in LaTeX environment

#+BEGIN_etiket
Nombre y apellidos del estudiante: \rfill
Día(s) de la semana que tiene clase y de qué hora a qué hora:
| lunes              | martes             | miércoles          | jueves             |
| de \rsh{} a \rsh{} | de \rsh{} a \rsh{} | de \rsh{} a \rsh{} | de \rsh{} a \rsh{} |
#+END_etiket

 Here, you just see a nice result of mixing a table and a LaTeX
 environment... Excellent!!!


* List items

 DECIR
   - presentarse
   - saludar
   - despedirse

 Here, though, I can't get such *list items* framed, what ever workaround I'm
 trying to use.

\titlebox{8cm}{DECIR}{
 - presentarse
 - saludar
 - despedirse
}

#+LaTeX: \titlebox{8cm}{LEER}{
 - las instrucciones en clase
 - algunos letreros públicos
#+LaTeX: }

#+LaTeX: {}\titlebox{8cm}{ESCRIBIR}{
 - el nombre y apellido
 - cuándo uno tiene clase (días de la semana)
 - quién es el profesor
#+LaTeX: }

#+LaTeX: {}\titlebox{8cm}{OBJETIVOS GRAMATICALES}{
 | - singular de SER y de LLAMARSE |
 | - ¿Cómo?                        |
 | - ¿Quién?                       |
#+LaTeX: }


* Other table

 Here, I'm trying to use the "accolades" workaround for allowing Org to
 interpret what will be inside LaTeX environments.

#+LaTeX: {}\titlebox{8cm}{El presente (singular): Llamarse y ser.}{
 #+ATTR_LaTeX: align=p{4cm}p{4cm}
 | *LLAMARSE*              | *SER*            |
 | *Me llam\rsh{}* Isabel. | *\rsh{}* Isabel. |
 | ¿Cómo *te llam\rsh{}?*  | ¿Quién *eres*?   |
 | *Se llam\rsh{}* Ana.    | *\rsh{}* Ana.    |
#+LaTeX: }

 Though, it fails converting the above table to a LaTeX table.

 *Removing the ATTR LaTeX line* allows a conversion to a compilable LaTeX
 document, but, still, the table is not converted.

For this last thing the following pretty bad work-around should work:

#+ATTR_LaTeX: align=p{4cm}p{4cm}
#+LaTeX: {}\titlebox{8cm}{El presente (singular): Llamarse y ser.}{ %}
 | *LLAMARSE*              | *SER*            |
 | *Me llam\rsh{}* Isabel. | *\rsh{}* Isabel. |
 | ¿Cómo *te llam\rsh{}?*  | ¿Quién *eres*?   |
 | *Se llam\rsh{}* Ana.    | *\rsh{}* Ana.    |
#+LaTeX: }


A better way would probably be to create an environment that makes the title box,
so that the table is not an argument of a LaTeX macro (which Org-mode always protects).

#+ATTR_LaTeX: align=p{4cm}p{4cm}
#+LaTeX: {}\begin{mytitlebox}{8cm}{El presente (singular): Llamarse y ser.}
 | *LLAMARSE*              | *SER*            |
 | *Me llam\rsh{}* Isabel. | *\rsh{}* Isabel. |
 | ¿Cómo *te llam\rsh{}?*  | ¿Quién *eres*?   |
 | *Se llam\rsh{}* Ana.    | *\rsh{}* Ana.    |
#+LaTeX: \end{mytitlebox}


I do not know how to define such an environment, but I am sure
that this is easy to do.  The same should work with lists.

HTH

- Carsten


reply via email to

[Prev in Thread] Current Thread [Next in Thread]