Hi, Say I want Tufte in 2 columns and Knuth in 1 column: --8<---------------cut here---------------start------------->8--- \starttext \startcolumns[n=2] \startsection[title=Tufte] \input tufte \stopsection \startsection[title=Tufte and Knuth] \input tufte \stopcolumns \input knuth % \startcolumns[n=1] knuth \stopcolumns does not work \startcolumns[n=2] \input tufte \stopsection \stopcolumns \stoptext --8<---------------cut here---------------end--------------->8--- It works, but isn't this a bit ugly to mix up the \starts and \stops ? In XML, that would be wrong. Is this just the normal ConTeXt way, or is there a cleaner method? TIA for any hints, -- Peter
On 4-7-2012 00:51, Peter Münster wrote:
Hi,
Say I want Tufte in 2 columns and Knuth in 1 column:
--8<---------------cut here---------------start------------->8--- \starttext \startcolumns[n=2] \startsection[title=Tufte] \input tufte \stopsection \startsection[title=Tufte and Knuth] \input tufte \stopcolumns \input knuth % \startcolumns[n=1] knuth \stopcolumns does not work \startcolumns[n=2] \input tufte \stopsection \stopcolumns \stoptext --8<---------------cut here---------------end--------------->8---
It works, but isn't this a bit ugly to mix up the \starts and \stops ? In XML, that would be wrong.
Is this just the normal ConTeXt way, or is there a cleaner method?
no, mixing this way is asking for troubles, if not now, than maybe in the future just use \section ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On 4-7-2012 22:29, Peter Münster wrote:
On Wed, Jul 04 2012, Hans Hagen wrote:
no, mixing this way is asking for troubles, if not now, than maybe in the future
just use \section
Yes, but isn't \startsection the recommended method for the future and needed for XML output?
Indeed, but there is no easy way out of this dilemma ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Jul 4, 2012, at 1:29 PM, Peter Münster wrote:
On Wed, Jul 04 2012, Hans Hagen wrote:
no, mixing this way is asking for troubles, if not now, than maybe in the future
just use \section
Yes, but isn't \startsection the recommended method for the future and needed for XML output?
XML documents should form a tree, so a structure like \startA % <A> \startB % <B> \stopA % </A> \stopB % </B> won't translate to XML. Grouping in TeX follows the same restrictions, and \start... and \stop... behave like \begingroup and \endgroup. The \stop... is supposed to restore the state before the corresponding \start... (at least I assume so -- \endgroup works that way). One cannot stop A in the middle of B and return to the state before \startA without also stopping B. So one should put \stopB before \stopA, not after it. Have you considered structuring your example like this?: \starttext \startsection[title=Tufte] \startcolumns[n=2] \input tufte \stopcolumns \stopsection \startsection[title=Tufte and Knuth] \startcolumns[n=2] \switchtobodyfont[big] % Note that the font size is switched back after \stopcolumns \input tufte \stopcolumns \input knuth \startcolumns[n=2] \input tufte \stopcolumns \stopsection \stoptext XML seems a nice way for machines to deal with data. But it's not a very human way to speak. I mean, if I write "\section{One}...\section{Two}" isn't it obvious that section One ends when section Two begins? Why should I have to write \endsection, when the machine can do the bookkeeping for me? The start/stop mechanism is nice as an option, if you plan to produce an XML document from ConTeXt. However the XML translator could implement 'if not first section then "</section><section>" else "<section>"' and add "if in_a_section then "</section>"' when \stoptext is reached. ________________________________ This e-mail message (including any attachments) is for the sole use of the intended recipient(s) and may contain confidential and privileged information. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this message (including any attachments) is strictly prohibited. If you have received this message in error, please contact the sender by reply e-mail message and destroy all copies of the original message (including attachments).
On Jul 4, 2012, at 9:42 PM, Peter Münster wrote:
On Thu, Jul 05 2012, Rogers, Michael K wrote:
Have you considered structuring your example like this?:
The output is not the same...
Sorry, I misunderstood. ________________________________ This e-mail message (including any attachments) is for the sole use of the intended recipient(s) and may contain confidential and privileged information. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this message (including any attachments) is strictly prohibited. If you have received this message in error, please contact the sender by reply e-mail message and destroy all copies of the original message (including attachments).
On Thu, Jul 5, 2012 at 12:44 AM, Rogers, Michael K
XML seems a nice way for machines to deal with data. But it's not a very human way to speak. I mean, if I write "\section{One}...\section{Two}" isn't it obvious that section One ends when section Two begins? Why should I have to write \endsection, when the machine can do the bookkeeping for me? The start/stop mechanism is nice as an option, if you plan to produce an XML document from ConTeXt. However the XML translator could implement 'if not first section then "</section><section>" else "<section>"' and add "if in_a_section then "</section>"' when \stoptext is reached.
Hm, consider this
\section{One} \input knuth Text \section{Two} \input knuth and \startsection{One} \input knuth \stopsection Text \startsection{Two} \input knuth \stopsection In the last one it's clear that Text is not in the section One or in the section Two: In the first one, Text is in section One --- but how can I put Text so that is not in section One and not in section Two ? Most of the time section One ends where section Two begins, but it's not true that *always* section One ends where section Two begins : infact the last one is a legal example. -- luigi
On Jul 4, 2012, at 10:56 PM, luigi scarso wrote:
On Thu, Jul 5, 2012 at 12:44 AM, Rogers, Michael K
On Thu, Jul 5, 2012 at 12:44 AM, Rogers, Michael K
On Wed, Jul 04 2012, Hans Hagen wrote:
no, mixing this way is asking for troubles, if not now, than maybe in
On Jul 4, 2012, at 1:29 PM, Peter Münster wrote: the
future
just use \section
Yes, but isn't \startsection the recommended method for the future and needed for XML output?
XML documents should form a tree, so a structure like
\startA % <A> \startB % <B> \stopA % </A> \stopB % </B>
won't translate to XML.
Grouping in TeX follows the same restrictions, and \start... and \stop... behave like \begingroup and \endgroup. The \stop... is supposed to restore the state before the corresponding \start... (at least I assume so -- \endgroup works that way). One cannot stop A in the middle of B and return to the state before \startA without also stopping B. So one should put \stopB before \stopA, not after it.
It depends.
\starttext \long\def\startA#1\stopA{<\low{A}#1>\low{A}} \long\def\startB#1\stopB{<\low{B}#1>\low{B}} \startA textAA \startB textAB \stopA textBB \stopB \stoptext is ok (not the context way, btw: real code is more complex). The meaning of this can be content of \startA..\stopA = textAA ⋃ textAB content of \startB..\stopB = textAB ⋃ textBB \startA..\stopA ⋂ \startB..\stopB = textAB If we are describing programs, textAB can be the common code between the function A and B. -- luigi
On Jul 5, 2012, at 1:23 AM, luigi scarso wrote:
On Thu, Jul 5, 2012 at 12:44 AM, Rogers, Michael K
participants (4)
-
Hans Hagen
-
luigi scarso
-
Peter Münster
-
Rogers, Michael K