ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* referring to floats in xml
@ 2011-03-20  9:46 R. Ermers
  2011-03-20 16:05 ` Aditya Mahajan
  0 siblings, 1 reply; 5+ messages in thread
From: R. Ermers @ 2011-03-20  9:46 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 1681 bytes --]

Dear All,

My xml docbook file contains a number of graphics. Some are regular figures, some are edgefigures. I have two questions in this respect.

A. referring to floats

\placeedgefigure
[\xmlatt{#1}{id}]
{\xmlfirst{#1}{/caption}}
{\framed[frame=off]{\setlayer[graphics]{\xmlfirst{#1}{/imageobject}}}}

\definefloat[edgefigure][figure]
\setupfloat[edgefigure]
[leftmargindistance=-\innercombitotal,rightmargindistance=-\outercombitotal,
default={outer,low,long}, criterium=.65\textwidth,numbering=no]

<mediaobject id="fig:cow" role="edgefigure">
          <imageobject>
            <imagedata scale="500" fileref="cow.jpg"/>
          </imageobject>
        </mediaobject>

I now wonder how to refer to these floats. That is, referring through <xref linkend="cow"/> is not difficult to implement, but for some reason the mapping of the id is not that obvious. I tried it like this:

\startxmlsetups xml:mediaobject:edgefigure
\placeedgefigure
[\xmlatt{#1}{id}]
{\xmlfirst{#1}{/caption}}
{\framed[frame=off]{\setlayer[graphics]{\xmlfirst{#1}{/imageobject}}}}
\stopxmlsetups

The log file says:
references      : unknown reference [][fig:cow]

The reference is not solved.


B. edgefigures and regular figures

The document contains two types of figures.

\xmlsetsetup{#1}{mediaobject[@role='fig']}{xml:mediaobject:fig}
\xmlsetsetup{#1}{mediaobject[@role='edgefigure']}{xml:mediaobject:edgefigure}

I have noticed that when <mediaobject> contains both the attributes id and role, such as the cow example, the figure is considered a regular figure automatically and will not typeset as an edgefigure.


Regards,

Robert






[-- Attachment #1.2: Type: text/html, Size: 3884 bytes --]

[-- Attachment #2: Type: text/plain, Size: 486 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: referring to floats in xml
  2011-03-20  9:46 referring to floats in xml R. Ermers
@ 2011-03-20 16:05 ` Aditya Mahajan
  2011-03-21  6:28   ` R. Ermers
  0 siblings, 1 reply; 5+ messages in thread
From: Aditya Mahajan @ 2011-03-20 16:05 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Sun, 20 Mar 2011, R. Ermers wrote:

> Dear All,
>
> My xml docbook file contains a number of graphics. Some are regular 
> figures, some are edgefigures. I have two questions in this respect.

Understanding these snippets is difficult without a minimal working 
example.

> A. referring to floats
>
> \placeedgefigure
> [\xmlatt{#1}{id}]
> {\xmlfirst{#1}{/caption}}
> {\framed[frame=off]{\setlayer[graphics]{\xmlfirst{#1}{/imageobject}}}}
>
> \definefloat[edgefigure][figure]
> \setupfloat[edgefigure]
> [leftmargindistance=-\innercombitotal,rightmargindistance=-\outercombitotal,
> default={outer,low,long}, criterium=.65\textwidth,numbering=no]
>
> <mediaobject id="fig:cow" role="edgefigure">
>          <imageobject>
>            <imagedata scale="500" fileref="cow.jpg"/>
>          </imageobject>
>        </mediaobject>
>
> I now wonder how to refer to these floats. That is, referring through <xref linkend="cow"/> is not difficult to implement, but for some reason the mapping of the id is not that obvious. I tried it like this:
>
> \startxmlsetups xml:mediaobject:edgefigure
> \placeedgefigure
> [\xmlatt{#1}{id}]
> {\xmlfirst{#1}{/caption}}
> {\framed[frame=off]{\setlayer[graphics]{\xmlfirst{#1}{/imageobject}}}}
> \stopxmlsetups


Try

\placeedgefigure
   []
   [\xmlatt{#1}{id}]
   {....}
   {....}
> B. edgefigures and regular figures
>
> The document contains two types of figures.
>
> \xmlsetsetup{#1}{mediaobject[@role='fig']}{xml:mediaobject:fig}
> \xmlsetsetup{#1}{mediaobject[@role='edgefigure']}{xml:mediaobject:edgefigure}
>
> I have noticed that when <mediaobject> contains both the attributes id 
> and role, such as the cow example, the figure is considered a regular 
> figure automatically and will not typeset as an edgefigure.

Please provide a minimal working example.

Aditya
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: referring to floats in xml
  2011-03-20 16:05 ` Aditya Mahajan
@ 2011-03-21  6:28   ` R. Ermers
  2011-03-21 15:44     ` Aditya Mahajan
  0 siblings, 1 reply; 5+ messages in thread
From: R. Ermers @ 2011-03-21  6:28 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Thanks, Aditya, The first problem is adequately solved by adding []. I'll prepare an example for the second problem.

A related problem is referring to sections and other blocks.

<section id="sec:cows"><title>Cows</title>
<para>cows cows cows. As I told in <xref linkend="sec:cows"/></para></section>

The title is mapped as follows (lpath):
\xmlsetsetup{#1}{section/title}{xml:section/title}

\startxmlsetups xml:section:title
\section{\xmlflush{#1}}
\stopxmlsetups

The section is not mapped:
\startxmlsetups xml:section
\xmlflush{#1}
\stopxmlsetups

Adding [\xmlatt{#1}{id}] to xml:section:title does not work of course. Using [\xmlatt{#1}{id}] with xml:section puts the id before the \section command. I think one of the other commands has to be used in such a way that the id is flushed forward after the \section command.

Regards,

Robert


Op 20 mrt 2011, om 17:05 heeft Aditya Mahajan het volgende geschreven:

> On Sun, 20 Mar 2011, R. Ermers wrote:
> 
>> Dear All,
>> 
>> My xml docbook file contains a number of graphics. Some are regular figures, some are edgefigures. I have two questions in this respect.
> 
> Understanding these snippets is difficult without a minimal working example.
> 
>> A. referring to floats
>> 
>> \placeedgefigure
>> [\xmlatt{#1}{id}]
>> {\xmlfirst{#1}{/caption}}
>> {\framed[frame=off]{\setlayer[graphics]{\xmlfirst{#1}{/imageobject}}}}
>> 
>> \definefloat[edgefigure][figure]
>> \setupfloat[edgefigure]
>> [leftmargindistance=-\innercombitotal,rightmargindistance=-\outercombitotal,
>> default={outer,low,long}, criterium=.65\textwidth,numbering=no]
>> 
>> <mediaobject id="fig:cow" role="edgefigure">
>>         <imageobject>
>>           <imagedata scale="500" fileref="cow.jpg"/>
>>         </imageobject>
>>       </mediaobject>
>> 
>> I now wonder how to refer to these floats. That is, referring through <xref linkend="cow"/> is not difficult to implement, but for some reason the mapping of the id is not that obvious. I tried it like this:
>> 
>> \startxmlsetups xml:mediaobject:edgefigure
>> \placeedgefigure
>> [\xmlatt{#1}{id}]
>> {\xmlfirst{#1}{/caption}}
>> {\framed[frame=off]{\setlayer[graphics]{\xmlfirst{#1}{/imageobject}}}}
>> \stopxmlsetups
> 
> 
> Try
> 
> \placeedgefigure
>  []
>  [\xmlatt{#1}{id}]
>  {....}
>  {....}
>> B. edgefigures and regular figures
>> 
>> The document contains two types of figures.
>> 
>> \xmlsetsetup{#1}{mediaobject[@role='fig']}{xml:mediaobject:fig}
>> \xmlsetsetup{#1}{mediaobject[@role='edgefigure']}{xml:mediaobject:edgefigure}
>> 
>> I have noticed that when <mediaobject> contains both the attributes id and role, such as the cow example, the figure is considered a regular figure automatically and will not typeset as an edgefigure.
> 
> Please provide a minimal working example.
> 
> Aditya
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
> 
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: referring to floats in xml
  2011-03-21  6:28   ` R. Ermers
@ 2011-03-21 15:44     ` Aditya Mahajan
  2011-03-22  7:42       ` R. Ermers
  0 siblings, 1 reply; 5+ messages in thread
From: Aditya Mahajan @ 2011-03-21 15:44 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Mon, 21 Mar 2011, R. Ermers wrote:

> Thanks, Aditya, The first problem is adequately solved by adding []. I'll prepare an example for the second problem.
>
> A related problem is referring to sections and other blocks.
>
> <section id="sec:cows"><title>Cows</title>
> <para>cows cows cows. As I told in <xref linkend="sec:cows"/></para></section>
>
> The title is mapped as follows (lpath):
> \xmlsetsetup{#1}{section/title}{xml:section/title}
>
> \startxmlsetups xml:section:title
> \section{\xmlflush{#1}}
> \stopxmlsetups
>
> The section is not mapped:
> \startxmlsetups xml:section
> \xmlflush{#1}
> \stopxmlsetups
>
> Adding [\xmlatt{#1}{id}] to xml:section:title does not work of course. 
> Using [\xmlatt{#1}{id}] with xml:section puts the id before the \section 
> command. I think one of the other commands has to be used in such a way 
> that the id is flushed forward after the \section command.

Map section to include both id and title. (Untested)

\startxmlsetups xml:section
\section[\xmlatt{#1}{id}]{\xmlfirst{#1}{/title}}
% or slightly better
% \section[\xmlattdef{#1}{id}{+}]{\xmlfirst{#1}{/title}}
% Then flush para separately
% \xmlall{#1}{/para}
% or
% \xmlconcat {#1} {/para} {\par}
% or better, add a contents tag around the contents
% <section> <title> ... </title>
%   <contents> ... </contents>
% </section>
% and then use
% \xmlfirst{#1}{/contents}

\stopxmlsetups

Aditya
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: referring to floats in xml
  2011-03-21 15:44     ` Aditya Mahajan
@ 2011-03-22  7:42       ` R. Ermers
  0 siblings, 0 replies; 5+ messages in thread
From: R. Ermers @ 2011-03-22  7:42 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Thanks very much, Aditya for your advice. I really appreciate it. 
I tried your suggestions.

> On Mon, 21 Mar 2011, R. Ermers wrote:
> 
>> Thanks, Aditya, The first problem is adequately solved by adding []. I'll prepare an example for the second problem.
>> 
>> A related problem is referring to sections and other blocks.
>> 
>> <section id="sec:cows"><title>Cows</title>
>> <para>cows cows cows. As I told in <xref linkend="sec:cows"/></para></section>
>> 
>> The title is mapped as follows (lpath):
>> \xmlsetsetup{#1}{section/title}{xml:section/title}
>> 
>> \startxmlsetups xml:section:title
>> \section{\xmlflush{#1}}
>> \stopxmlsetups
>> 
>> The section is not mapped:
>> \startxmlsetups xml:section
>> \xmlflush{#1}
>> \stopxmlsetups
>> 
>> Adding [\xmlatt{#1}{id}] to xml:section:title does not work of course. 
>> Using [\xmlatt{#1}{id}] with xml:section puts the id before the \section 
>> command. I think one of the other commands has to be used in such a way 
>> that the id is flushed forward after the \section command.
> 
> Map section to include both id and title. (Untested)
> 
> \startxmlsetups xml:section
> \section[\xmlatt{#1}{id}]{\xmlfirst{#1}{/title}}
> % or slightly better
> % \section[\xmlattdef{#1}{id}{+}]{\xmlfirst{#1}{/title}}
The section titles and numbers are doubled now, most likely due to other mappings that. The subsection and subsubsection titles need to be mapped as such, a generic mapping for all section heads is not feasible (I think).

> % Then flush para separately
> % \xmlall{#1}{/para}

This does not work, because the sections contain all kinds of elements, not just <para>. 
<section><blockquote/><section><para>text</para></section><para>text</para></section>

I tried \xmlall{#1} with other elements, but the result is a mess. I need an lpath symbol that refers to all underlying elements. I tried {+}, {*}, {//}, etc.

> % or
> % \xmlconcat {#1} {/para} {\par}
> % or better, add a contents tag around the contents
> % <section> <title> ... </title>
> %   <contents> ... </contents>

> % </section>
> % and then use
> % \xmlfirst{#1}{/contents}
> 

I had thought about this, but it would ruin the docbook structure of the document, and my editor programme would no longer accept it. The programme already complains about the change of <table to <cals:table. The typesetting of tables as part of the document is still a problem ...

> \stopxmlsetups
> 
> Aditya



___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

end of thread, other threads:[~2011-03-22  7:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-20  9:46 referring to floats in xml R. Ermers
2011-03-20 16:05 ` Aditya Mahajan
2011-03-21  6:28   ` R. Ermers
2011-03-21 15:44     ` Aditya Mahajan
2011-03-22  7:42       ` R. Ermers

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 NNTP newsgroup(s).