ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* I can't change startitemize[n]--> startitemize[1]
@ 2009-07-23 12:06 Xan
  2009-07-23 12:45 ` Wolfgang Schuster
  0 siblings, 1 reply; 20+ messages in thread
From: Xan @ 2009-07-23 12:06 UTC (permalink / raw)
  To: Hans Hagen, Xan; +Cc: mailing list for ConTeXt users

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

Hi Hans,

First of all, thank you very much for helping in the above problem.
Can you solve this now ? ;-)

When I change startitemize[n] to startitemize[1] in line 394 I get this 
error:

! Argument of \dodoregister has an extra }.
<inserted text>
                \par
<to be read again>
                   }
\doattributes ...name #1#2\@EA \endcsname \fi {#4}
                                                  \dostopattributes
\dolistitem ...evel \c!style \c!color {\listitem }
                                                  \fi \fi 
}\ifconditional \f...

\complexdoitemgroupitem ...obreak \fi \dolistitem
                                                  \relax \ifconditional 
\pac...
<to be read again>
                   $
l.395 \item $
             \pi(x^{-1}) = \pi(x)^{-1}$ per a tot $x \in X$.
? x


Why?

I attach the source file and log file.
This is a long file, I know, but I don't know why with 'n' works and '1' 
does not.


Thanks in advance,
Xan.

PS: Please, CCme.

[-- Attachment #2: memoria.context --]
[-- Type: text/plain, Size: 28944 bytes --]

% interface=en output=pdftex
%\environment capcalera.context % Capçalera

% Regime
\enableregime[utf]

% Choose a font
\setupbodyfont [cmr,11pt] % cmr, 11pt

% Be tolerant with paragraph building
\setuptolerance [horizontal,verytolerant,stretch]

% Choose a language, and associated hyphenation rules.
%\language [ca]
\mainlanguage[ca]


% Page number
\setuppagenumbering [location={footer}]

% White space between paragraphs
%\setupwhitespace [big]

% Paper size
\setuppapersize [a4]

% Margins
%\setuplayout  [grid=yes, footer=0.5\footerheight, header=0.5\headerheight]
%\setuplayout[footer=2cm, header=2cm]
%\showlayout
%\showframe
%\showsetups
% Format de marges
%\setuplayout[topspace=1.5cm, % marge d'adalt
%margin=1.5cm, %marges dels costats
%header=1.0cm,%separació entre adalt i primera línia
%footer=1.0cm,%separació entre abaix i darrera línia
%width=fit,height=fit,backspace=2cm]



% Enable colors and activate hyperlinks
\setupcolors [state=start]
\definecolor[lightblue][r=0.5, g=0.5, b=1.0]
%\setupinteraction [state=start, color=lightBlue]
%\setupurl[style=small, space=yes]
\setupurl[space=yes]

% Enumerate the URLs
%\useURL[wiki][http://wiki.contextgarden.net][][\ConTeXt\ wiki]
%\useURL[nagorko-pdf][http://www.math.bgu.ac.il/~barakw/probseminar/nagorko/slides.pdf][][http://www.math.bgu.ac.il/\~{}barakw/\quad\quad\quad\quad probseminar/nagorko/slides.pdf]
%\useURL[govern-me][http://sgtrelinst.caib.es/llibrestil/00index.html][][http://sgtrelinst.caib.es/llibrestil/00index.html]
%\useURL[context-manual-pdf][http://www.pragma-ade.com/general/manuals/cont-eni.pdf][][http://www.pragma-ade.com/general/manuals/ cont-eni.pdf]
%\useURL [contextgarden] [{http://www.contextgarden.net}]

%\useURL [mccammond][{http://www.math.ucsb.edu/~jon.mccammond/geogrouptheory/}][] [{\tf http://www.math.ucsb.edu/\~{}jon.mccammond/geogrouptheory/}]


% Fonts
%% Chapters...
\setupheads[align=flushleft]
\setuphead[chapter][style={\tfd\bf}]
\setuphead[section][style={\bfc}, header=nomarking]
\setuphead[subsection][style={\bfb}]
\setuphead[subsubsection][style={\bfa}]
%\setuphead[section][textstyle=bold]

% Bibliography options
% BIBTEX
\usemodule[bib]
\usemodule[bibltx]
\setupbibtex[database=memoria,sort=author]
\setuppublications [alternative=ams,numbering=yes, sorttype=bbl, criterium=cite]%
\setupheadtext[ca][pubs=Referències]
\setuppublicationlist[authoretallimit=3]
\setuppublicationlist[authoretaltext={\it\  et al.}]
\setuppublicationlist[authoretaldisplay=1]

%Indentation
\setupheads[indentnext=yes] 
\setupindenting[yes,small,first]
%\setupformulae[indentnext=yes]

% Vertical spaces between paragraphs
\setupwhitespace[small]

%Itemize
\setupitemize[each][indentnext=no,margin=2em] % [identnext=yes,margin=2em]
\setupitemize[each][headstyle=bold]
%\setupitemize[a][right=),stopper=]

% Mathematical packets
\usemodule[newmat]
\usemodule[math-ams]

% Heads and footers
\setupfootertexts[][{\tfxx \currentdate}]
%\setupfootertexts[\pagenumber/\lastpage]
%\setupfooter[text][before=\hrule]
%\setupheader[text][after=\hrule]
%\setupheadertexts[{\tfx Màster de Matemàtiques}][{\tfx \jobname.\ConTeXt{}.\currentdate}]
%\setupheadertexts[][{\tfx \currentdate}]


% hyphenating
\hyphenation{do-cu-ment}
\hyphenation{pro-ble-ma}
\hyphenation{es-crip-tu-ra}
\hyphenation{ge-ne-ra-lit-za-ció}
\hyphenation{cor-res-po-nents}
\hyphenation{pa-rells}
\hyphenation{ge-ne-rat}

% Modules
\usemodule[tikz]
\usemodule[pgfmath]
\usetikzlibrary[mindmap,arrows,calc,decorations.pathmorphing,decorations.markings]
%\usetikzlibrary[trees]



% AMSTHM equivalent
%% Exercici
\defineenumeration
  [exercici]
  [text={Problema},headstyle=bold,between=\blank,titledistance=0em,textdistance=1em,
stopper={.\space},location=serried,left={\bgroup\bf},right={\egroup},width=fit,before={\bgroup\startframedtext[background=screen,frame=off,width=broad]},after={\stopframedtext\egroup}]

%% Lema 
\defineenumeration
  [lema]
  [text={Lema}, % Què es mostra
   before={\blank[big]}, % abans de lema, un bigskip
   after={\blank[big]}, % després de lema, un bigskip
   headstyle=bold, % Negreta per la capçaleras
   %between=\blank, % Entre Lemmes una línia en blanc
   titledistance=.5em, % espai entre número i parèntesis.
   textdistance=.5em, % espai entre ) i text
   stopper={.\space}, % Com acaba. Després de parèntesis un '.'
   location=serried,
   width=fit, % que ocupi tot l'espai
   style=italic, % estil del text
   title=yes, % si puc posar o no arguments opcionals
   titlestyle=bf, % estil del títol
   way=bytext, % enumerar en tot el document
   conversion=numbers,indenting=yes] % enumera amb arabic

%% Proposició, corol·laris, teoremes.
%% Comparteix els nombres amb lema
%% Si volem que vagin a part, hem de posar 'number=proposition'
\defineenumeration
  [proposition]
  [lema]
  [text={Proposició}]

\defineenumeration
  [corollary]
  [lema]
  [text={Corol·lari}]

\defineenumeration
  [theorem]
  [lema]
  [text={Teorema}]


%% Definició
\defineenumeration
  [definition]
  [lema]
  [text={Definició},style=tf,titlestyle=bf,indenting=yes]

\defineenumeration
  [notation]
  [definition]
  [text={Notació},style=tf,titlestyle=bf,indenting=yes]

\defineenumeration
  [nota]
  [definition]
  [text={Nota},style=tf,titlestyle=bf,indenting=yes]

%% Demostració

\defineenumeration[demo][text={Demostració.\space},number=no,location=serried,width=fit,headstyle=italic,indentnext=yes,between=\blank,textdistance=.5em,closesymbol={\mathematics{\Box}},style=normal,indenting=yes]

% Table of contents
%% dots between... and subsubsubsection are not listed
\setupcombinedlist[content][level=4,alternative=c] 
%% section = bold. % width= 10mm --> less space between num-letter
%% line break after section.
\setuplist[section][style=bold,width=10mm] 
\setuplist[section][before=\blank]
%% margin = 10 mm. Put the subsection just bottom section.
\setuplist[subsection][margin=10mm,width=10mm]
\setuplist[subsubsection][margin=20mm,width=10mm]

%\setuplist[subsection] %[distance=1em] % section = bold. % 
% Això ho trec d'un manual:
%\setuplist[subsection]
%          [margin=1em,
%          numbercommand=\NumCom]
%\def\NumCom#1{\hbox to 2em{\hfill #1}}

% Set "Índex" like "Índex de continguts"
\setupheadtext [ca] [content=Índex]


% Definitions/abbreviations
\define[1]\dist{d(\sigma_g(#1), \sigma_h(#1))}
\define[1]\imp{{\bgroup\startframedtext[background=screen,frame=on,width=broad]#1\stopframedtext\egroup}}
%\define[1]\imp{{\bgroup\startframedtext[background=color,backgroundcolor=lightblue,frame=on,width=broad]#1\stopframedtext\egroup}}


% SPLIT
\def\startsplit
  {\startalign} % no number by default
\def\stopsplit
  {&\doalignNR[+][]\crcr % for a number on last line
   \stopalign}

% Other
\setupunderbar[alternative=b] % Fix underline style
% For putting underline with spaces: \underbar{\dorecurse{40}~}

% Define new register for the Index of Symbols
\defineregister[symbol][symbols]


% Start the text
\starttext
%\version[concept]

\subsubsubject{Paraules sobre un alfabet}

En aquest apartat farem memòria de la definició de paraula (sobre un alfabet) i introduirem certes notacions i operacions estàndards que farem servir posteriorment.

Recordem que un {\em alfabet}\index{alfabet} és un conjunt qualsevol de símbols, els quals anomenarem {\em lletres}\index{lletres}. Si $A$ és un alfabet, aleshores una {\em paraula $w$ sobre $A$}\index{paraula} és una successió finita de lletres de $A$, que escriurem com $w = w_1 \ldots w_k$. Indicarem amb $\varepsilon$ la paraula que no té cap lletra, la qual anomenarem {\em paraula buida}\index{paraula+buida}. Quan $w$ consti de dues o més lletres iguals consecutives, per comoditat, podrem agrupar-les usant la notació multiplicativa. Per exemple si $A = \{a,b\}$, aleshores $ab^3a^2b$ denotarà la paraula $abbbaab$. 

La {\em concatenació}\index{concatenació de paraules} de dues paraules $w_1$, $w_2$ sobre $A$, que indicarem amb $w_1 \cdot w_2$, és la juxtaposició de $w_1$ i $w_2$, és a dir, si $w_1 = a_1 \ldots a_k$ i $w_2 = b_1 \ldots b_s$, aleshores
\startformula
w_1 \cdot w_2 = a_1 \ldots a_k b_1 \ldots b_s,
\stopformula
amb la convenció que $w_1 \cdot \varepsilon = \varepsilon \cdot w_1 = w_1$. Sovint ometrem el símbol $\cdot$ i escriurem $u v$ per denotar $u \cdot v$.

Si $w$ és una paraula sobre $A$, aleshores $l(w)$\symbol{$l(w)$} denotarà la seva {\em longitud}\index{longitud+d'una paraula}, és a dir, el seu nombre de símbols. De forma clara, $l(u \cdot v) = l(u) + l(v)$, per a qualssevol paraules $u, v$ sobre $A$. D'altra banda, indicarem amb $w(t)$ el {\em prefix de $w$ de longitud $t$}\index{paraula+prefix de longitud $t$,}. Formalment, si $w = \varepsilon$, $w(t) = \varepsilon$ i si $w = w_1 \ldots w_k$, aleshores $w(t) = w_1 \ldots w_t$.

Per últim, indicarem amb $A^*$ el {\em monoide lliure sobre $A$}\index{monoide lliure}, és a dir, el conjunt de totes les paraules sobre $A$.

\subsubsubject{Grups lliures}

En aquesta secció construirem el {\em grup lliure} de base $X$ un conjunt qualsevol i descriurem algunes de les seves propietats a mode de teoremes.

Donat $X$ un conjunt qualsevol, agafem un conjunt d'inverses formals de $X$, que indicarem amb $X^{-1}$, format per símbols $x^{-1}$ per a cada $x \in X$. Formalment, $X^{-1}$ és un conjunt del mateix cardinal que $X$ juntament amb una funció bijectiva ${}^{-1} \colon X \to X^{-1}$, de manera que, per a tot $x \in X$, la imatge de $x$ per ${}^{-1}$ s'escriu $x^{-1}$. Amb aquests conjunts podem formar el monoide lliure ${(X \cup X^{-1})}^*$ els elements del qual són llistes finites d'elements de $X$ i de les seves inverses formals. Enfatitzem que els elements de $X^{-1}$ són inverses formals: si $X = \{a, b\}$, aleshores $b$, $aba^{-1}$, $ab$ i $aba^{-1}a$ són elements diferents en el monoide lliure ${(X \cup X^{-1})}^*$.

Afegirem dues convencions: abusant del llenguatge, si $a \in X^{-1}$ i $a = x^{-1}$ per a algun $x \in X$, aleshores $a^{-1}$ denotarà $x$, o sigui, de manera informal, el que feim és fer involutiva la funció ${}^{-1}$. D'altra banda, estendrem les inverses formals a les paraules. Per a la paraula buida definim $\varepsilon^{-1} = \varepsilon$, i si
\startformula
w=x_1 x_2 \ldots x_{k-1}x_k \in {(X \cup X^{-1})}^*,
\stopformula
aleshores $w^{-1}$ indicarà la paraula
\startformula
w^{-1} = x_k^{-1}x_{k-1}^{-1}\ldots x_2^{-1} x_1^{-1} \in {(X \cup X^{-1})}^*.
\stopformula
En poques paraules, amb aquestes convencions, hem aconseguit que ${}^{-1}$ sigui un morfisme en ${(X \cup X^{-1})}^*$ respecte de la concatenació de paraules.

Sobre ${(X \cup X^{-1})}^*$ definim la relació $\sim$ definida de la manera següent: dues paraules $u$, $v$ són equivalents, i.e., $u \sim v$, si, i només si, podem passar d'una a l'altra amb un nombre finit de passes del tipus següent:
\startitemize[n]
\item Reducció: l'eliminació d'una ocurrència de $xx^{-1}$, per a qualque $x \in X\cup X^{-1}$.
\item Amplificació: l'afegit d'una ocurrència de $xx^{-1}$, per a qualque $x \in X \cup X^{-1}$.
\stopitemize
És clar que $\sim$ és una relació d'equivalència. A més, preserva l'estructura de ${(X \cup X^{-1})}^*$: si $u_1 \sim u_2$ i $v_1 \sim v_2$, aleshores $u_1 \cdot v_1 \sim u_2 \cdot v_2$ i $u_1^{-1} \sim u_2^{-1}$. Per tot això, es pot veure fàcilment que ${(X \cup X^{-1})}^*/\sim$ és un grup (l'element neutre és $[\varepsilon]_\sim$ i la inversa de $[w]_\sim$ és $[w^{-1}]_\sim$). Anomenarem a aquest grup el {\em grup lliure de base $X$}\index{grup+lliure}, i l'indicarem amb $F(X)$\symbol{$F(X)$}. Si $X$ té només un sol element, aleshores $F(X) \cong \integers$, el qual és l'únic grup lliure abelià no trivial. Si $X = \emptyset$, aleshores $F(X) \cong \{1\}$.

Una paraula sobre $X \cup X^{-1}$ és {\em reduïda}\index{paraula+reduïda} si no conté cap ocurrència de la forma $xx^{-1}$, amb $x \in X \cup X^{-1}$. Qualsevol paraula que només conté una lletra i $aba^{-1}$ són paraules reduïdes. La paraula buida també és reduïda. En canvi $abb^{-1}b$ i $aba^{-1}abb^{-1}a^{-1}$ no són paraules reduïdes.

Donada una paraula $w \in {(X \cup X^{-1})}^*$, existeix una paraula reduïda $u$ tal que $w \sim u$, obtinguda aplicant un nombre finit de passes de reducció \cite[extras={, Lema~6.1}][grillet], la qual indicarem amb $red(w)$\symbol{$red(w)$}. A més, aquesta paraula és única, o sigui, no existeix cap altra paraula reduïda dins la classe d'equivalència de $w$ \cite[right={; }, extras={, Lema~6.4}][grillet]\cite[left=,extras={, Teorema~2.1.2}][robinson]. Això fa que el grup lliure $F(X)$ sigui isomorf al grup format pel conjunt de paraules reduïdes sobre $X \cup X^{-1}$ amb l'operació binària consistent en la concatenació de dues paraules reduïdes seguida de la reducció (per exemple, l'aplicació que envia cada paraula reduïda $u$ a la classe d'equivalència $[u]_\sim$ és un isomorfisme entre aquests grups).

Estrictament parlant $X$ no està inclòs dins $F(X)$, ara bé, tenim la inclusió natural $\eta$ de $X$ en $F(X)$ tal que $\eta(x) = [x]_\sim$, per a tot $x \in X$. A més, aquesta inclusió es pot estendre per a $X^{-1}$ de la forma $\eta(x^{-1}) = [x^{-1}]_\sim$, per a tot $x \in X$. Per construcció de $F(X)$, això fa que tot element de $F(X)$ es pugui posar com a producte de elements de $\eta(X)$ i els seus inversos, la qual cosa implica el resultat següent:

\starttheorem{\cite[right={; }, extras={, Proposició~6.6}][grillet]\cite[left=,extras={, Proposició~1.6}][cgt]}El grup lliure $F(X)$ està generat per $\eta(X)$.
\stoptheorem

Una propietat molt important que compleix el grup lliure, la qual el caracteritza, és la {\em propietat universal}\index{propietat universal}, que podem enunciar com el resultat següent:

\starttheorem{\cite[extras={, Teorema~6.7}][grillet]} Sigui $\eta \colon X \to F(X)$ la inclusió natural. Per a tota funció $f$ de $X$ a un grup qualsevol $G$, existeix un únic morfisme $\nu \colon F(X) \to G$ tal que $\nu \circ \eta = f$.
\stoptheorem

\startcorollary[thme:gruplliure-imatge]{\cite[grillet, robinson]} Sigui $G$ un grup generat per un conjunt $X$. Aleshores existeix un homomorfisme exhaustiu de $F(X)$ a $G$, o sigui, tot grup és imatge del grup lliure per a qualque homomorfisme.
\stopcorollary

Altres propietats interessants del grup lliure són les seguents:

\starttheorem{\cite[extras={, Teorema~2.1.3}][robinson]} Sigui $G$ un grup i $X$ un subconjunt de $G$. Si tot element $g$ de $G$ es pot escriure de forma única com a $g = x_1^{l_1} \ldots x_r^{l_r}$ amb $r \geq 0$, $x_i \in X$, $l_i \in \integers$ tals que $l_i \neq 0$ i $x_i \neq x_{i+1}$, per a tot $i \in \{0, \ldots, r\}$, aleshores $G$ és lliure de base $X$.
\stoptheorem

\starttheorem{\cite[extras={, Proposició~1.9}][cgt]} Sigui $X$ un subconjunt de $G$ tal que $X \cap X^{-1} = \emptyset$. Aleshores $X$ és una base d'un subgrup lliure de $G$ si, i només so, no hi ha cap producte de la forma $x_1 \ldots x_r$ que sigui trivial, amb $r \geq 1$, $x_i \in X \cup X^{-1}$ i $x_i \neq x_{i+1}^{-1}$, on $i \in \{0, \ldots, r\}$.
\stoptheorem

\starttheorem{\cite[robinson,cgt]}Siguin $X$, $Y$ conjunts qualssevol. Aleshores $F(X) \cong F(Y)$ si, i només si, $\lvert X \rvert = \lvert Y \rvert$.
\stoptheorem

Aquest darrer teorema permet definir el {\em rang d'un grup lliure}\index{grup+lliure+rang,} com el cardinal de qualsevol de les seves bases. En aquest sentit, indicarem amb $F_n$\symbol{$F_n$} el {\em grup lliure de rang $n$}.

Per últim, introduirem notació. Si $w$ és una paraula sobre $X \cup X^{-1}$, la {\em longitud reduïda} de $w$\index{longitud+reduïda d'una paraula}, que indicarem amb $\lvert w \rvert$\symbol{$\lvert w \rvert$}, és la longitud de la paraula reduïda de $w$, és a dir, $l(red(w))$. De forma òbvia tenim que, per a totes paraules $u, v$ sobre $X \cup X^{-1}$, $\lvert uv \rvert \leq \lvert u \rvert + \lvert v \rvert$. D'altra banda, si $v, w \in {(X \cup X^{-1})}^*$, aleshores direm que $v$ i $w$ són {\em iguals dins el grup lliure $F(X)$}\index{paraules+iguals dins el grup lliure} si $red(v) = red(w)$ o, equivalentment, si $[v]_\sim = [w]_\sim \in F(X)$.

\subsubsubject{Presentacions de grups}

Una presentació d'un grup és una generalització del concepte de taula de productes d'un grup. Donat un grup $G$, la  seva taula de valors proporciona informació sobre el resultat del producte entre dos elements qualssevol. Però, en aquesta taula, hi ha valors que són obvis (per exemple, sempre $g g^{-1} = 1$, per a tot $g \in G$) o que es poden deduir d'altres productes (per exemple, si $g^3 = 1$, aleshores $g^2 = g^{-1}$ per a tot $g \in G$). Per tant, hi ha certes relacions {\em importants} entre els elements d'un grup que el determinen. Intuïtivament, per exemple, la relació $a^n = 1$ determina el grup $\integers_n$. Ara bé, així com és important especificar les relacions que governen el grup, també ho és especificar el seus elements, ja que el grup $\integers_n \oplus \integers$ amb $a = (1,0)$ i $b = (0,1)$ també compleix que $a^n = 1$. Per tant, informalment, una presentació no serà res més que un conjunt d'elements, que direm {\em generadors}, i un conjunt de {\em relacions} entre ells.

Per definir formalment les presentacions de grups ens fa falta recordar què s'entèn per grup quocient.

\startdefinition
Sigui $G$ un grup i $N$ un subgrup normal de $G$. El {\em grup quocient de $G$ per $N$} (també anomenat {\em grup quocient de $G$ mòdul $N$})\index{grup+quocient}, que indicarem amb $G/N$\symbol{$G/N$}, és el grup format pels cosets de $N$, $\{g N \mid g \in G\}$, i el producte $\cdot$ definit com
\startformula
a N \cdot b N = ab N.
\stopformula
A més, l'aplicació $x \mapsto xN = Nx$ és un morfisme exhaustiu entre $G$ i $G/N$ el nucli del qual és $N$. Aquesta aplicació s'anomena {\em projecció canònica dins el grup quocient $G/N$}\index{grup+quocient+projecció canònica,}.%\cite[grillet]
\stopdefinition

D'ara en endavant, si $G$ és un grup i $X$ és un subconjunt de $G$, indicarem amb $\langle \langle X \rangle \rangle$\symbol{$\langle \langle X \rangle \rangle$} la {\em clausura normal de $X$ en $G$}\index{clausura normal}, és a dir, el subgrup normal més petit que conté $X$.


\startdefinition Una {\em presentació {\cal P} amb generadors $X$ i relacions $R$}\index{presentació}, que indicarem amb ${\cal P} = \langle X \mid R \rangle$\symbol{${\cal P} = \langle X \mid R \rangle$}, és un parell ordenat $(X, R)$, on $X$ és un conjunt qualsevol i $R \subseteq F(X) \times F(X)$ és una relació binària sobre el grup lliure $F(X)$. Una presentació defineix el grup quocient $F(X)/\langle \langle R_* \rangle \rangle$, que indicarem amb $G({\cal P})$, on 
\startformula
R_* = \{uv^{-1} \mid (u, v) \in R\} \subseteq F(X).
\stopformula

Dues presentacions ${\cal P}$ i ${\cal P'}$ són {\em equivalents}\index{presentació+equivalent} si els seus grups $G({\cal P})$ i $G({\cal P^\prime})$ són isomorfs. Freqüentment, per abús de llenguatge, s'identifica la presentació ${\cal P}$ i el seu grup $G({\cal P})$.
\stopdefinition

Per exemple, si $X = \{a \}$ i $R = \{(a^8,1) \mid a \in X\}$, aleshores $\langle X \mid R \rangle = \integers_8$ (realment el que passa és que el grup que representa aquesta presentació és isomorf a $\integers_8$).

Per comoditat, sovint s'abusa de la notació i s'escriuen els parells ordenats de la relació $R$ com una igualtat. Així, l'exemple anterior s'ecriuria com $\langle a \mid a^8 = 1\rangle$. A més, moltes vegades les relacions del tipus $u = v$ són escrites en la forma $uv^{-1} = 1$. Per exemple, $\langle a, b \mid ab = ba \rangle = \langle a, b \mid aba^{-1}b^{-1} = 1\rangle$ i $\langle a \mid a^8 = a^3\rangle = \langle a \mid a^5 = 1\rangle$.

\startdefinition Sigui $G$ un grup i ${\cal P} = \langle X \mid R\rangle$ una presentació. Direm que ${\cal P}$ és una {\em presentació de $G$}\index{presentació+d'un grup} si $G({\cal P}) \cong G$.
\stopdefinition

\startdefinition Una presentació ${\cal P} = \langle X \mid R\rangle$ és {\em finita}\index{presentació+finita} quan $X$ i $R$ són ambdós finits. I un grup $G$ és {\em finitament presentable}\index{grup+finitament presentat} si existeix una presentació finita de $G$.
\stopdefinition

Notem que, pel Corol·lari \in[thme:gruplliure-imatge], tenim que tot grup és imatge del grup lliure. Per tant, aplicant el Primer Teorema d'Isomorfia, tenim que tot grup és isomorf a un grup d'una presentació.

D'altra banda, la definició que hem donat és equivalent a una definició basada en relacions d'equivalència (amb una construcció anàloga del grup lliure): si $X$ és un conjunt qualsevol i $R$ és un subconjunt de  ${(X \cup X^{-1})}^*$, es pot definir la relació d'equivalència $\approx$ definida de la manera següent: dues paraules $u, v \in {(X \cup X^{-1})}^*$ són tals que $u \approx v$ si, i només si, es pot passar d'una a l'altra amb un nombre finit de passes del tipus següent:
\startitemize[n]
\item Reducció: l'eliminació d'una ocurrència de $xx^{-1}$, per a qualque $x \in X\cup X^{-1}$, o d'una ocurrència d'una relació $r \in R$.
\item Amplificació: l'afegit d'una ocurrència de $xx^{-1}$, per a qualque $x \in X \cup X^{-1}$, o d'una ocurrència d'una relació $r \in R$.
\stopitemize
Es pot veure que $\approx$ és d'equivalència i que $F(X)/\approx$ és un grup, que coincideix amb $G({\cal P})$ amb ${\cal P} = \langle X \mid R'\rangle$, on $R' = \{(red(r),1) \mid r \in R\} \subseteq F(X) \times F(X)$ \cite[magnus].

Tot seguit, oferim diverses presentacions dels grups més usuals:
\startitemize[n]
\item El grup lliure $F(X)$ té presentació $\langle X \mid \emptyset\rangle$. En particular $\integers$ té $\langle a \mid \emptyset \rangle$ com a presentació (recordem que $\integers$ és isomorf al grup lliure $F_1$ de rang $1$).
\item El grup $\integers$ (com els altres grups) també té altres presentacions menys {\em naturals}, com, per exemple, $\langle a, b \mid ababa = 1\rangle$ \cite[millerIII].
\item Qualsevol grup finit $G = \{a_1, \ldots, a_n\}$ té una presentació finita: la corresponent a agafar tots els seus elements com a generadors i totes les relacions de la taula de productes de $G$ (aquestes tenen la forma $a_i a_j = a_k$ i n'hi ha $n^2$).
\item $\integers_n \cong \langle a \mid a^n = 1 \rangle$.
\item $\integers \oplus \integers$ té $\langle a, b \mid ab = ba\rangle$ com a presentació.
\item Una presentació de $\integers_n \oplus \integers$ és $\langle a, b \mid a^n = 1\rangle$.
\item El grup dièdric $D_n$ d'ordre $2n$ té com a presentació
\startformula
\langle a, b \mid a^2 = 1, b^n = 1, a^{-1}ba = b^{-1} \rangle.
\stopformula
\item El grup trivial té com a presentacions
\startformula
\langle a, b \mid a^{-1} b a = b^2, b^{-1}a b=a^2 \rangle
\stopformula
i
\startformula
\langle a, b \mid a^{-1} b^n a = b^{n+1}, a = w \rangle,
\stopformula
on $w$ és una paraula sobre $\{a, b\}$ tal que la suma dels exponents de $a$ és 0 i $n > 0$ \cite[millerIII, millerIII-article]. Per tant, no és gens senzill saber si una presentació correspon al grup trivial.
\item Siguin $m, n \in \integers$. El {\em grup de Baumslag-Solitar}\index{grup+Baumslag-Solitar,}, que indicarem amb $BS(m,n)$\symbol{$BS(m,n)$}, és el subgrup del grup $\text{Homeo}(\reals)$ de les funcions homeomorfes de $\reals$ generat per les funcions lineals $a(x) = nx$ i $b(x) = x + m$ \cite[meier]. Aquest grup té com a presentació $\langle a, b\mid ab^m a^{-1}= b^n \rangle$.
\stopitemize

Finalment, notem que si ${\cal P} = \langle X \mid R\rangle$ és una presentació, aleshores tenim l'aplicació $\iota \colon X \rightarrow G({\cal P})$ definida com la composició $p \circ \eta$ de la inclusió natural $\eta \colon X \to F(X)$, tal que $\eta(x) = [x]$ per a tot $x \in X \cup X^{-1}$, i la projecció natural $p \colon F(X) \to F(X)/N$, on $N = \langle \langle R_* \rangle \rangle$, tal que $p([w]) = [w]N$, per a tot $[w] \in F(X)$. Aquesta aplicació es pot estendre a ${(X \cup X^{-1})}^*$ com
\startformula
\iota(w) = \iota(w_1) \cdots \iota(w_r) \in G({\cal P}),
\stopformula
per a tota paraula $w = w_1 \ldots w_r$ sobre $X \cup X^{-1}$.

\starttheorem Per a tota presentació {\cal P} = \langle X \mid R \rangle, $\iota(X)$ genera $G({\cal P})$.
\stoptheorem

\startdemo Sigui $g \in G({\cal P})$, aleshores $g = [w]N$ per a alguna paraula $w = w_1 \ldots w_r$ sobre $X \cup X^{-1}$. Per tant,
\startformula
g = [w_1 \ldots w_r]N = ([w_1]\cdots [w_r])N = [w_1]N \cdots [w_r]N.
\stopformula
Cada $w_i$ és de $X$ o de $X^{-1}$. Si $w_i = x^{-1}$ per a algun $x \in X$, aleshores $[w_i]N = [x^{-1}]N = [x]^{-1}N = \iota(x)^{-1}$. Per tant, $g$ es pot posar com a producte d'elements de $\iota(X)$ i els seus inversos.
\stopdemo

De forma habitual s'identifica $X$ amb $\iota(X)$, denotant els seus elements amb els mateixos símbols i, per tant, de forma freqüent es diu que $X$ {\em genera} $G({\cal P})$. Per exemple, pel grup $\integers \oplus \integers = \langle a, b \mid ab = ba \rangle$, identifiquem $a$ i $b$ amb $\iota(a)=(1,0)$ i $\iota(b) = (0,1)$, respectivament.

\subsubsubject{El problema de la paraula}

Sigui $G$ un grup i $X$ un subconjunt de $G$. Aleshores l'aplicació $\pi \colon {(X \cup X^{-1})}^* \to G$\symbol{$\pi$} consistent a enviar cada lletra $x \in X$ a l'element corresponent $\pi(x) = x \in G$ es pot estendre de manera natural a totes les paraules de $X \cup X^{-1}$ de la forma següent:
\startitemize[1]
\item $\pi(x^{-1}) = \pi(x)^{-1}$ per a tot $x \in X$.
\item Per a tota paraula $w = w_1 \ldots w_r$ sobre $X \cup X^{-1}$,
\startformula
\pi(w) = \pi(w_1) \cdots \pi(w_r) \in G.
\stopformula
\stopitemize
Per tant, $\pi$ és un morfisme de monoides entre ${(X \cup X^{-1})}^*$ i $G$. De forma òbvia, si $X$ és un conjunt de generadors de $G$, aleshores $\pi$ és exhaustiva. En particular, si ${\cal P} = \langle X \mid R \rangle$ és una presentació, aleshores, com que $X$ és un conjunt de generadors de $G({\cal P})$, llavors $\pi \colon {(X \cup X^{-1})}^* \to G({\cal P})$ és un morfisme exhaustiu\footnote{Recordem que abusem del llenguatge, identificant $\iota(X)$ i $X$, i que, realment, $\iota(X)$ és el generador de $G({\cal P})$.}.

\startdefinition Sigui $G$ un grup i ${\cal P} = \langle X \mid R\rangle$ és una presentació de $G$. Una paraula $w$ sobre $X \cup X^{-1}$ és {\em nul-homotòpica per ${\cal P}$}\index{paraula+nul-homotòpica per una presentació} si, i només si, $\pi(w) = 1 \in G$.
\stopdefinition

\startdefinition Sigui $G$ un grup i ${\cal P} = \langle X \mid R\rangle$ una presentació {\em finita} de $G$. El {\em problema de la paraula per a {\cal P}}\index{problema de la paraula+per una presentació finita} consisteix en trobar un algorisme que, donada una paraula $w \in {(X \cup X^{-1})}^*$, decideixi si $\pi(w) = 1$ o $\pi(w) \neq 1$.
\stopdefinition

Donarem, tot seguit, un criteri per saber si una paraula és nul-homotòpica per una presentació donada.

\starttheorem Sigui ${\cal P} = \langle X \mid R \rangle$ amb $X  = \{ x_1, \ldots, x_n \}$ i $R = \{ r_1 = 1, \ldots, r_k = 1\}$ una presentació finita i $w$ una paraula sobre $X \cup X^{-1}$. Llavors tenim que $w$ és nul-homotòpica per ${\cal P}$ si, i només si, $w$ compleix la igualtat següent dins el grup lliure $F(X)$:
\startformula
w = \prod_{i=1}^N u_i^{-1} r_i^{e_i} u_i,
\stopformula
per a alguns $N \in \naturalnumbers$, $r_i \in R$, $e_i = \pm 1$ i $u_i \in F(X)$, amb $i \in \{1, \ldots, N\}$.
\stoptheorem

\startdemo
\stopdemo

El problema de la paraula no és decidible. Pel resultat anterior, el problema de la paraula és equivalent a fer una llista de totes les paraules de la forma
\startformula
a.
\stopformula
A


\subsubject{Eines geomètrics per fer front al problema de la paraula}

Posar la proposició 2.2 de l'article de Joe.
\completepublications[criterium=cite] %all per tots

\title{Llista de símbols}
\placesymbol

\title{Índex alfabètic}
\placeindex

\stoptext

\startitemize[1]
\item $\pi(x^{-1}) = \pi(x)^{-1}$ per a tot $x \in X$.
\item Per a tota paraula $w = w_1 \ldots w_r$ sobre $X \cup X^{-1}$,
\startformula
\pi(w) = \pi(w_1) \cdots \pi(w_r) \in G.
\stopformula
\stopitemize

\startdefinition
Sigui $X$ un conjunt qualsevol i $R \subseteq F(X) \times F(X)$ una relació binària sobre el grup lliure $F(X)$. Una {\em presentació ${\cal P}$ amb generadors $X$ i relacions $R$}\index{presentació}, que indicarem amb ${\cal P} = \langle X \mid R \rangle$, és el grup quocient $F(X)/\langle \langle R_* \rangle \rangle$, on
\startformula
R_* = \{uv^{-1} \mid (u, v) \in R\} \subseteq F(X).
\stopformula
Quan ens convengui diferenciar entre la presentació com a un parell ordenat de símbols i el grup quocient en si, indicarem amb ${\cal P}$ la presentació i $G({\cal P})$ el grup que aquesta representa.
\stopdefinition

[-- Attachment #3: memoria.log --]
[-- Type: text/plain, Size: 13649 bytes --]

This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=cont-en 2009.3.12)  23 JUL 2009 14:04
entering extended mode
 %&-line parsing enabled.
 (/usr/share/texmf/web2c/natural.tcx)
**memoria.context emergencyend
(./memoria.context

ConTeXt  ver: 2007.09.28 16:52 MKII  fmt: 2009.3.12  int: english/english

language        : language en is active
system          : cont-new loaded
(/usr/share/texmf/tex/context/base/cont-new.tex
systems         : beware: some patches loaded from cont-new.tex
(/usr/share/texmf/tex/context/base/cont-new.mkii)
(/usr/share/texmf/tex/context/base/cont-mtx.tex))
system          : cont-old loaded
(/usr/share/texmf/tex/context/base/cont-old.tex
loading         : Context Old Macros
)
system          : cont-fil loaded
(/usr/share/texmf/tex/context/base/cont-fil.tex
loading         : Context File Synonyms
)
system          : cont-sys.rme loaded
(/etc/texmf/tex/context/user/cont-sys.rme
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex))
bodyfont        : 12pt rm is loaded
language        : patterns en->ec:ec->1->2:3 uk->ec:ec->2->2:3 de->texnansi:tex
nansi->3->2:3 de->ec:ec->4->2:3 fr->texnansi:texnansi->5->2:3 fr->ec:ec->6->2:3
 es->ec:ec->7->2:3 pt->texnansi:texnansi->8->2:3 pt->ec:ec->9->2:3 it->texnansi
:texnansi->10->2:3 it->ec:ec->11->2:3 nl->texnansi:texnansi->12->2:3 nl->ec:ec-
>13->2:3 cz->il2:il2->14->2:3 cz->ec:ec->15->2:3 sk->il2:il2->16->2:3 sk->ec:ec
->17->2:3 pl->pl0:pl0->18->2:3 pl->ec:ec->19->2:3 pl->qx:qx->20->2:3 loaded
specials        : tex,postscript,rokicki loaded
\openout3 = `memoria.tui'.

system          : memoria.top loaded
(./memoria.top
specials        : loading definition file tpd
(/usr/share/texmf/tex/context/base/spec-tpd.tex
specials        : loading definition file fdf
(/usr/share/texmf/tex/context/base/spec-fdf.tex
(/usr/share/texmf/tex/context/base/spec-fdf.mkii))
specials        : fdf loaded
)
specials        : fdf,tpd loaded
)
\openout0 = `memoria-mpgraph.mp'.

\openout0 = `mpgraph.mp'.


systems         : system commands are disabled
(/usr/share/texmf/tex/context/base/type-pre.tex)
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex)
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex)
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex)
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex)
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex)
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex)
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex)
(/usr/share/texmf/tex/context/base/type-tmf.tex)
(/usr/share/texmf/tex/context/base/type-siz.tex)
(/usr/share/texmf/tex/context/base/type-one.tex)
(/usr/share/texmf/tex/context/base/type-akb.tex))
color           : mpcmyk color space is supported
color           : mpspot color space is supported
color           : system rgb is global activated
system          : module bib loaded
(/usr/share/texmf/tex/context/bib/t-bib.tex
publications    : loading formatting style from bibl-apa
(/usr/share/texmf/tex/context/bib/bibl-apa.tex))
system          : module bibltx loaded
(/usr/share/texmf/tex/context/bib/t-bibltx.tex)
publications    : wrote a new auxiliary file memoria.aux
publications    : loading formatting style from bibl-ams
(/usr/share/texmf/tex/context/bib/bibl-ams.tex)
system          : module newmat loaded
(/usr/share/texmf/tex/context/base/m-newmat.tex)
system          : module math-ams loaded
(/usr/share/texmf/tex/context/base/math-ams.tex)
system          : module tikz loaded
(/usr/share/texmf/tex/context/pgf/frontendlayer/t-tikz.tex
(/usr/share/texmf/tex/context/pgf/basiclayer/t-pgf.tex
(/usr/share/texmf/tex/context/pgf/basiclayer/t-pgfcor.tex
(/usr/share/texmf/tex/context/pgf/systemlayer/t-pgfsys.tex
(/usr/share/texmf/tex/context/pgf/utilities/t-pgfrcs.tex
(/usr/share/texmf/tex/context/pgf/utilities/t-pgfmod.tex)
(/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-common.tex)
(/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-context.def)
(/usr/share/texmf/tex/generic/pgf/utilities/pgfrcs.code.tex))
(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys.code.tex
(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeys.code.tex)
(/usr/share/texmf/tex/generic/pgf/systemlayer/pgf.cfg)
(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def))
(./memoria.pgf))
(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex)
(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex))
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcore.code.tex
(/usr/share/texmf/tex/generic/pgf/math/pgfmath.code.tex
(/usr/share/texmf/tex/generic/pgf/math/pgfmathcalc.code.tex
(/usr/share/texmf/tex/generic/pgf/math/pgfmathutil.code.tex)
(/usr/share/texmf/tex/generic/pgf/math/pgfmathparser.code.tex)
(/usr/share/texmf/tex/generic/pgf/math/pgfmathoperations.code.tex
(/usr/share/texmf/tex/generic/pgf/math/pgfmathtrig.code.tex)
(/usr/share/texmf/tex/generic/pgf/math/pgfmathrnd.code.tex))
(/usr/share/texmf/tex/generic/pgf/math/pgfmathbase.code.tex)))
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorequick.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex)
(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex)))
(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleshapes.code.tex)
(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleplot.code.tex))
(/usr/share/texmf/tex/context/pgf/utilities/t-pgffor.tex
(/usr/share/texmf/tex/context/pgf/utilities/t-pgfrcs.tex)
(/usr/share/texmf/tex/generic/pgf/utilities/pgffor.code.tex))
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
(/usr/share/texmf/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex)
(/usr/share/texmf/tex/generic/pgf/modules/pgfmodulematrix.code.tex)
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopat
hs.code.tex)))
system          : module pgfmath loaded
(/usr/share/texmf/tex/context/pgf/math/t-pgfmat.tex
(/usr/share/texmf/tex/generic/pgf/math/pgfmath.code.tex
(/usr/share/texmf/tex/generic/pgf/math/pgfmathcalc.code.tex
(/usr/share/texmf/tex/generic/pgf/math/pgfmathutil.code.tex)
(/usr/share/texmf/tex/generic/pgf/math/pgfmathparser.code.tex)
(/usr/share/texmf/tex/generic/pgf/math/pgfmathoperations.code.tex
(/usr/share/texmf/tex/generic/pgf/math/pgfmathtrig.code.tex)
(/usr/share/texmf/tex/generic/pgf/math/pgfmathrnd.code.tex))
(/usr/share/texmf/tex/generic/pgf/math/pgfmathbase.code.tex))))
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymindm
ap.code.tex
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytrees
.code.tex)
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecor
ations.code.tex
(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduledecorations.code.tex)))
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrow
s.code.tex
(/usr/share/texmf/tex/generic/pgf/libraries/pgflibraryarrows.code.tex))
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.
code.tex)
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecor
ations.pathmorphing.code.tex
(/usr/share/texmf/tex/generic/pgf/libraries/pgflibrarydecorations.pathmorphing.
code.tex))
(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecor
ations.markings.code.tex
(/usr/share/texmf/tex/generic/pgf/libraries/pgflibrarydecorations.markings.code
.tex)) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo)
(./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo) (./memoria.tuo)
(./memoria.tuo) (/usr/share/texmf/tex/context/base/sort-lan.tex
loading         : Context Sorting Macros (languages)
(/usr/share/texmf/tex/context/base/sort-lan.mkii)) (./memoria.tuo)
(./memoria.tuo) (/usr/share/texmf/tex/context/base/pdfr-def.tex)
publications    : loading database from memoria.bbl
(./memoria.bbl)
systems         : begin file memoria at line 231
subsubsubject   : - Paraules sobre un alfabet
subsubsubject   : - Grups lliures
fonts           : resetting map file list
{/usr/share/texmf/fonts/map/pdftex/context/original-empty.map}
fonts           : using map file: original-base
{/usr/share/texmf/fonts/map/pdftex/context/original-base.map}
fonts           : using map file: original-ams-base
{/usr/share/texmf/fonts/map/pdftex/context/original-ams-base.map}
fonts           : using map file: original-public-lm
{/usr/share/texmf/fonts/map/pdftex/context/original-public-lm.map}
fonts           : using map file: lm-ec
{/usr/share/texmf/fonts/map/dvips/lm/lm-ec.map}
fonts           : using map file: lm-math
{/usr/share/texmf/fonts/map/dvips/lm/lm-math.map}
fonts           : using map file: lm-rm
{/usr/share/texmf/fonts/map/dvips/lm/lm-rm.map}
fonts           : using map file: 8r-base
{/usr/share/texmf/fonts/map/pdftex/context/8r-base.map}
fonts           : using map file: ec-base
{/usr/share/texmf/fonts/map/pdftex/context/ec-base.map}
fonts           : using map file: t5-base
{/usr/share/texmf/fonts/map/pdftex/context/t5-base.map}
fonts           : using map file: original-ams-euler
{/usr/share/texmf/fonts/map/pdftex/context/original-ams-euler.map} [1.1
\openout0 = `memoria.aux'.

\openout7 = `memoria.pgf'.

]
[2.2]
subsubsubject   : - Presentacions de grups
[3.3] [4.4] [5.5]
subsubsubject   : - El problema de la paraula
! Argument of \dodoregister has an extra }.
<inserted text> 
                \par 
<to be read again> 
                   }
\doattributes ...name #1#2\@EA \endcsname \fi {#4}
                                                  \dostopattributes 
\dolistitem ...evel \c!style \c!color {\listitem }
                                                  \fi \fi }\ifconditional \f...

\complexdoitemgroupitem ...obreak \fi \dolistitem 
                                                  \relax \ifconditional \pac...
<to be read again> 
                   $
l.395 \item $
             \pi(x^{-1}) = \pi(x)^{-1}$ per a tot $x \in X$.
? x
 
Here is how much of TeX's memory you used:
 11847 strings out of 57878
 232954 string characters out of 558687
 4761464 words of memory out of 5693254
 50828 multiletter control sequences out of 10000+50000
 169502 words of font info for 77 fonts, out of 1200000 for 2000
 199 hyphenation exceptions out of 8191
 48i,19n,63p,1086b,650s stack positions out of 5000i,500n,6000p,200000b,5000s
{/usr/share/texmf/fonts/enc/dvips/lm/lm-mathit.enc}{/usr/share/texmf/fonts/enc/
dvips/lm/lm-rm.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}{/usr/share/t
exmf/fonts/enc/dvips/lm/lm-mathsy.enc}</usr/share/texmf/fonts/type1/public/lm/l
mbx10.pfb></usr/share/texmf/fonts/type1/public/lm/lmmi10.pfb></usr/share/texmf/
fonts/type1/public/lm/lmmi6.pfb></usr/share/texmf/fonts/type1/public/lm/lmmi8.p
fb></usr/share/texmf/fonts/type1/public/lm/lmr10.pfb></usr/share/texmf/fonts/ty
pe1/public/lm/lmr6.pfb></usr/share/texmf/fonts/type1/public/lm/lmr7.pfb></usr/s
hare/texmf/fonts/type1/public/lm/lmr8.pfb></usr/share/texmf/fonts/type1/public/
lm/lmri10.pfb></usr/share/texmf/fonts/type1/public/lm/lmro10.pfb></usr/share/te
xmf/fonts/type1/public/lm/lmsy10.pfb></usr/share/texmf/fonts/type1/public/lm/lm
sy8.pfb></usr/share/texmf-texlive/fonts/type1/bluesky/ams/msbm10.pfb>
Output written on memoria.pdf (5 pages, 230519 bytes).
PDF statistics:
 95 PDF objects out of 1000 (max. 8388607)
 59 compressed objects within 1 object stream
 0 named destinations out of 1000 (max. 131072)
 5 words of extra memory for PDF output out of 10000 (max. 10000000)


[-- Attachment #4: Type: text/plain, Size: 487 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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 12:06 I can't change startitemize[n]--> startitemize[1] Xan
@ 2009-07-23 12:45 ` Wolfgang Schuster
  2009-07-23 14:05   ` Hans Hagen
  0 siblings, 1 reply; 20+ messages in thread
From: Wolfgang Schuster @ 2009-07-23 12:45 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Xan

Hi Xan,

Have you ever considered to create a minimum example, your example is  
far away from
this and you would do not only other people a favor with this but you  
too.

Wolfgang
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 12:45 ` Wolfgang Schuster
@ 2009-07-23 14:05   ` Hans Hagen
  2009-07-23 14:33     ` Xan
  0 siblings, 1 reply; 20+ messages in thread
From: Hans Hagen @ 2009-07-23 14:05 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Xan

Wolfgang Schuster wrote:
> Hi Xan,
> 
> Have you ever considered to create a minimum example, your example is 
> far away from
> this and you would do not only other people a favor with this but you too.

indeed as it takes me 10 minutes of selective deletion to zoom in on the 
error (tip: use a bit more empty lines in your source)

\defineregister[symbol][symbols]

\starttext

\startitemize[1] \item test \stopitemize

\stoptext

as you redefine \symbol to be a register entry resolving \symbol[1] 
inside the itemize does not work any more as expected

so, when defining commands

- avoid built incommands
- for instance by using longer names
- or names that are unlikely to show up in the core
- or Symbol or MySymbol or so

furthermore, a few tips:

\setupbodyfont [cmr,11pt] % cmr, 11pt

% no need for cmr

\setuphead[chapter][style={\tfd\bf}]

% \bfd is a bit faster (no need for {} unless embedded [])

\usemodule[bib]
\usemodule[bibltx]
\setupbibtex[database=memoria,sort=author]

% avoid this in examples as we don't have your data

\usemodule[newmat]

% most math is in the core so that module is kind of obsolete

\usemodule[math-ams]

% not needed, as it is preloaded or loaded automatically

\hyphenation{do-cu-ment}
\hyphenation{pro-ble-ma}
\hyphenation{es-crip-tu-ra}
\hyphenation{ge-ne-ra-lit-za-ció}
\hyphenation{cor-res-po-nents}
\hyphenation{pa-rells}
\hyphenation{ge-ne-rat}

% collect these exceptions and send then to mojca or arthur

\usemodule[tikz]
\usemodule[pgfmath]
\usetikzlibrary[mindmap,arrows,calc,decorations.pathmorphing,decorations.markings]

% it seems that something is loaded twice (or at least dimension 
registers are redefined)

\setupunderbar[alternative=b] % Fix underline style

% you can use the textbackgrounds for this (see anch-bar)


Hans


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 14:05   ` Hans Hagen
@ 2009-07-23 14:33     ` Xan
  2009-07-23 14:37       ` Hans Hagen
  0 siblings, 1 reply; 20+ messages in thread
From: Xan @ 2009-07-23 14:33 UTC (permalink / raw)
  To: Hans Hagen; +Cc: mailing list for ConTeXt users

En/na Hans Hagen ha escrit:
> Wolfgang Schuster wrote:
>> Hi Xan,
>>
>> Have you ever considered to create a minimum example, your example is 
>> far away from
>> this and you would do not only other people a favor with this but you 
>> too.
>
> indeed as it takes me 10 minutes of selective deletion to zoom in on 
> the error (tip: use a bit more empty lines in your source)
>
> \defineregister[symbol][symbols]
>
> \starttext
>
> \startitemize[1] \item test \stopitemize
>
> \stoptext

Thank you VERY much Hans. I'm charmed. Thanks. I was crazy finding the 
error. I was convinced that it was a silly thing.....

>
> as you redefine \symbol to be a register entry resolving \symbol[1] 
> inside the itemize does not work any more as expected
>
> so, when defining commands
>
> - avoid built incommands
> - for instance by using longer names
> - or names that are unlikely to show up in the core
> - or Symbol or MySymbol or so
>
Really, I did not know that. It's a messy thing that we could not define 
what we like ;-)
> furthermore, a few tips:
>
> \setupbodyfont [cmr,11pt] % cmr, 11pt
>
> % no need for cmr
Yes I know.
>
> \setuphead[chapter][style={\tfd\bf}]
>
> % \bfd is a bit faster (no need for {} unless embedded [])
OKay.
>
> \usemodule[bib]
> \usemodule[bibltx]
> \setupbibtex[database=memoria,sort=author]
>
> % avoid this in examples as we don't have your data
Okay. Sorry.

>
> \usemodule[newmat]
>
> % most math is in the core so that module is kind of obsolete
>
> \usemodule[math-ams]
>
> % not needed, as it is preloaded or loaded automatically
Mmmm... interesting. I remember that I put because I just want to put 
one symbol. I don't remember why I have that....
>
> \hyphenation{do-cu-ment}
> \hyphenation{pro-ble-ma}
> \hyphenation{es-crip-tu-ra}
> \hyphenation{ge-ne-ra-lit-za-ció}
> \hyphenation{cor-res-po-nents}
> \hyphenation{pa-rells}
> \hyphenation{ge-ne-rat}
>
> % collect these exceptions and send then to mojca or arthur

Okay. It's a pleasure to give to you.
How can I see what is, if there is, the lists of hyphenated words?

>
> \usemodule[tikz]
> \usemodule[pgfmath]
> \usetikzlibrary[mindmap,arrows,calc,decorations.pathmorphing,decorations.markings] 
>
>
> % it seems that something is loaded twice (or at least dimension 
> registers are redefined)
>
> \setupunderbar[alternative=b] % Fix underline style
>
> % you can use the textbackgrounds for this (see anch-bar)

Thanks for this pointing....


Regards,
Xan.

>
>

___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 14:33     ` Xan
@ 2009-07-23 14:37       ` Hans Hagen
  2009-07-23 14:48         ` luigi scarso
  2009-07-23 15:42         ` Xan
  0 siblings, 2 replies; 20+ messages in thread
From: Hans Hagen @ 2009-07-23 14:37 UTC (permalink / raw)
  To: Xan; +Cc: mailing list for ConTeXt users

Xan wrote:

> Really, I did not know that. It's a messy thing that we could not define 
> what we like ;-)

it's the nature of a tex macro package; ok, i can add some strict 
testing for in in mkiv but even then it might just be that someone who 
knows th einternals (like wolfgang or wolfgang or wolfgang) wants to 
overload something built in by something better

>> % collect these exceptions and send then to mojca or arthur
> 
> Okay. It's a pleasure to give to you.
> How can I see what is, if there is, the lists of hyphenated words?

best ask mojca or arthur who to contact as they are in charge of pattern 
management for all tex distributions


Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 14:37       ` Hans Hagen
@ 2009-07-23 14:48         ` luigi scarso
  2009-07-23 14:58           ` Wolfgang Schuster
  2009-07-23 15:05           ` Aditya Mahajan
  2009-07-23 15:42         ` Xan
  1 sibling, 2 replies; 20+ messages in thread
From: luigi scarso @ 2009-07-23 14:48 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

On Thu, Jul 23, 2009 at 4:37 PM, Hans Hagen <pragma@wxs.nl> wrote:

> Xan wrote:
>
>  Really, I did not know that. It's a messy thing that we could not define
>> what we like ;-)
>>
>
> it's the nature of a tex macro package; ok, i can add some strict testing
> for in in mkiv but even then it might just be that someone who knows th
> einternals (like wolfgang or wolfgang or wolfgang) wants to overload
> something built in by something better
>
why not discipline ?

I mean something like
0) context macro are ok
1) \usemodule[foo] are ok (no collision with macros in 0)
2) define your macros inside
\startPrivate[namespace]
...
\stopPrivate
3) explicit  redefinition of macros in 0,1

by 3) should be no collision between 0,1,2


-- 
luigi

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

[-- Attachment #2: Type: text/plain, Size: 487 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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 14:48         ` luigi scarso
@ 2009-07-23 14:58           ` Wolfgang Schuster
  2009-07-23 15:05             ` luigi scarso
  2009-07-23 15:05           ` Aditya Mahajan
  1 sibling, 1 reply; 20+ messages in thread
From: Wolfgang Schuster @ 2009-07-23 14:58 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 23.07.2009 um 16:48 schrieb luigi scarso:

> 2) define your macros inside
> \startPrivate[namespace]
> ...
> \stopPrivate

And how do you want to access the macros in your document?

Wolfgang

___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 14:48         ` luigi scarso
  2009-07-23 14:58           ` Wolfgang Schuster
@ 2009-07-23 15:05           ` Aditya Mahajan
  2009-07-23 15:11             ` luigi scarso
  2009-07-23 15:16             ` Wolfgang Schuster
  1 sibling, 2 replies; 20+ messages in thread
From: Aditya Mahajan @ 2009-07-23 15:05 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Thu, 23 Jul 2009, luigi scarso wrote:

> On Thu, Jul 23, 2009 at 4:37 PM, Hans Hagen <pragma@wxs.nl> wrote:
>
>> Xan wrote:
>>
>>  Really, I did not know that. It's a messy thing that we could not define
>>> what we like ;-)
>>>
>>
>> it's the nature of a tex macro package; ok, i can add some strict testing
>> for in in mkiv but even then it might just be that someone who knows th
>> einternals (like wolfgang or wolfgang or wolfgang) wants to overload
>> something built in by something better
>>
> why not discipline ?
>
> I mean something like
> 0) context macro are ok
> 1) \usemodule[foo] are ok (no collision with macros in 0)
> 2) define your macros inside
> \startPrivate[namespace]
> ...
> \stopPrivate
> 3) explicit  redefinition of macros in 0,1
>
> by 3) should be no collision between 0,1,2

I think an easier thing to do will be to follow latex's style of 
\newcommand and \renewcommand. That is, all \definecommands should check 
if the macro is previously defined or not. If it is defined, issue a 
warning or an error. And maybe have some hook to disable the 
warning/error for those who know what they are doing.

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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 14:58           ` Wolfgang Schuster
@ 2009-07-23 15:05             ` luigi scarso
  2009-07-23 15:10               ` Wolfgang Schuster
  0 siblings, 1 reply; 20+ messages in thread
From: luigi scarso @ 2009-07-23 15:05 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

On Thu, Jul 23, 2009 at 4:58 PM, Wolfgang Schuster <
schuster.wolfgang@googlemail.com> wrote:

>
> Am 23.07.2009 um 16:48 schrieb luigi scarso:
>
>  2) define your macros inside
>> \startPrivate[namespace]
>> ...
>> \stopPrivate
>>
>
> And how do you want to access the macros in your document?
>
by namespace ?


-- 
luigi

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

[-- Attachment #2: Type: text/plain, Size: 487 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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:05             ` luigi scarso
@ 2009-07-23 15:10               ` Wolfgang Schuster
  2009-07-23 15:16                 ` luigi scarso
  0 siblings, 1 reply; 20+ messages in thread
From: Wolfgang Schuster @ 2009-07-23 15:10 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 23.07.2009 um 17:05 schrieb luigi scarso:

> On Thu, Jul 23, 2009 at 4:58 PM, Wolfgang Schuster <
> schuster.wolfgang@googlemail.com> wrote:
>
>> Am 23.07.2009 um 16:48 schrieb luigi scarso:
>>
>> 2) define your macros inside
>>> \startPrivate[namespace]
>>> ...
>>> \stopPrivate
>>
>> And how do you want to access the macros in your document?
>>
> by namespace ?

can you give a example!

Wolfgang

___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:05           ` Aditya Mahajan
@ 2009-07-23 15:11             ` luigi scarso
  2009-07-23 15:16             ` Wolfgang Schuster
  1 sibling, 0 replies; 20+ messages in thread
From: luigi scarso @ 2009-07-23 15:11 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

On Thu, Jul 23, 2009 at 5:05 PM, Aditya Mahajan <adityam@umich.edu> wrote:

> On Thu, 23 Jul 2009, luigi scarso wrote:
>
>  On Thu, Jul 23, 2009 at 4:37 PM, Hans Hagen <pragma@wxs.nl> wrote:
>>
>>  Xan wrote:
>>>
>>>  Really, I did not know that. It's a messy thing that we could not define
>>>
>>>> what we like ;-)
>>>>
>>>>
>>> it's the nature of a tex macro package; ok, i can add some strict testing
>>> for in in mkiv but even then it might just be that someone who knows th
>>> einternals (like wolfgang or wolfgang or wolfgang) wants to overload
>>> something built in by something better
>>>
>>>  why not discipline ?
>>
>> I mean something like
>> 0) context macro are ok
>> 1) \usemodule[foo] are ok (no collision with macros in 0)
>> 2) define your macros inside
>> \startPrivate[namespace]
>> ...
>> \stopPrivate
>> 3) explicit  redefinition of macros in 0,1
>>
>> by 3) should be no collision between 0,1,2
>>
>

>
> I think an easier thing to do will be to follow latex's style of
> \newcommand and \renewcommand. That is, all \definecommands should check if
> the macro is previously defined or not. If it is defined, issue a warning or
> an error. And maybe have some hook to disable the warning/error for those
> who know what they are doing.
>
yes, it's equivalent




-- 
luigi

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

[-- Attachment #2: Type: text/plain, Size: 487 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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:10               ` Wolfgang Schuster
@ 2009-07-23 15:16                 ` luigi scarso
  2009-07-23 15:26                   ` luigi scarso
  2009-07-23 15:33                   ` Wolfgang Schuster
  0 siblings, 2 replies; 20+ messages in thread
From: luigi scarso @ 2009-07-23 15:16 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

On Thu, Jul 23, 2009 at 5:10 PM, Wolfgang Schuster <
schuster.wolfgang@googlemail.com> wrote:

>
> Am 23.07.2009 um 17:05 schrieb luigi scarso:
>
>
>  On Thu, Jul 23, 2009 at 4:58 PM, Wolfgang Schuster <
>> schuster.wolfgang@googlemail.com> wrote:
>>
>>  Am 23.07.2009 um 16:48 schrieb luigi scarso:
>>>
>>> 2) define your macros inside
>>>
>>>> \startPrivate[namespace]
>>>> ...
>>>> \stopPrivate
>>>>
>>>
>>> And how do you want to access the macros in your document?
>>>
>>>  by namespace ?
>>
>

>
> can you give a example!
>

hmm, where do you see  the problem  ?

-- 
luigi

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

[-- Attachment #2: Type: text/plain, Size: 487 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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:05           ` Aditya Mahajan
  2009-07-23 15:11             ` luigi scarso
@ 2009-07-23 15:16             ` Wolfgang Schuster
  2009-07-23 15:52               ` Aditya Mahajan
  1 sibling, 1 reply; 20+ messages in thread
From: Wolfgang Schuster @ 2009-07-23 15:16 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 23.07.2009 um 17:05 schrieb Aditya Mahajan:

> I think an easier thing to do will be to follow latex's style of  
> \newcommand and \renewcommand. That is, all \definecommands should  
> check if the macro is previously defined or not. If it is defined,  
> issue a warning or an error.

There is \define and \redefine.

> And maybe have some hook to disable the warning/error for those who  
> know what they are doing.

In this case you can use \def, \edef ...

Wolfgang

___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:16                 ` luigi scarso
@ 2009-07-23 15:26                   ` luigi scarso
  2009-07-23 15:33                   ` Wolfgang Schuster
  1 sibling, 0 replies; 20+ messages in thread
From: luigi scarso @ 2009-07-23 15:26 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

On Thu, Jul 23, 2009 at 5:16 PM, luigi scarso <luigi.scarso@gmail.com>wrote:

>
>
> On Thu, Jul 23, 2009 at 5:10 PM, Wolfgang Schuster <
> schuster.wolfgang@googlemail.com> wrote:
>
>>
>> Am 23.07.2009 um 17:05 schrieb luigi scarso:
>>
>>
>>  On Thu, Jul 23, 2009 at 4:58 PM, Wolfgang Schuster <
>>> schuster.wolfgang@googlemail.com> wrote:
>>>
>>>  Am 23.07.2009 um 16:48 schrieb luigi scarso:
>>>>
>>>> 2) define your macros inside
>>>>
>>>>> \startPrivate[namespace]
>>>>> ...
>>>>> \stopPrivate
>>>>>
>>>>
>>>> And how do you want to access the macros in your document?
>>>>
>>>>  by namespace ?
>>>
>>
>
>>
>> can you give a example!
>>
>

>
> hmm, where do you see  the problem  ?
>
I mean, we already have \setvalue ....
-- 
luigi

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

[-- Attachment #2: Type: text/plain, Size: 487 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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:16                 ` luigi scarso
  2009-07-23 15:26                   ` luigi scarso
@ 2009-07-23 15:33                   ` Wolfgang Schuster
  2009-07-23 15:46                     ` luigi scarso
  1 sibling, 1 reply; 20+ messages in thread
From: Wolfgang Schuster @ 2009-07-23 15:33 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 23.07.2009 um 17:16 schrieb luigi scarso:

> hmm, where do you see  the problem  ?

As programmer it's no problem to use a namespace for macros but how
do you convince users to use them, should they write

     \startprivate[foo]

     \definenote[footnote][...]

     \defineregister[index][...]

     ...

     \stopprivate

and use them with

    'fooindex', 'foofootnote' ...

in their documents?


In this case it would be better to write to write commands like \MyNote


Wolfgang

___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 14:37       ` Hans Hagen
  2009-07-23 14:48         ` luigi scarso
@ 2009-07-23 15:42         ` Xan
  1 sibling, 0 replies; 20+ messages in thread
From: Xan @ 2009-07-23 15:42 UTC (permalink / raw)
  To: Hans Hagen; +Cc: mailing list for ConTeXt users

En/na Hans Hagen ha escrit:
> Xan wrote:
>
>> Really, I did not know that. It's a messy thing that we could not 
>> define what we like ;-)
>
> it's the nature of a tex macro package; ok, i can add some strict 
> testing for in in mkiv but even then it might just be that someone who 
> knows th einternals (like wolfgang or wolfgang or wolfgang) wants to 
> overload something built in by something better
In my modest opinion it could help: a warning that says you overload 
something predefined. And really I think it helps it the error message 
is more explicit. A normal user like me turn crazy trying to find the 
error....

But well, you are the boss ;-)
>
>>> % collect these exceptions and send then to mojca or arthur
>>
>> Okay. It's a pleasure to give to you.
>> How can I see what is, if there is, the lists of hyphenated words?
>
> best ask mojca or arthur who to contact as they are in charge of 
> pattern management for all tex distributions

Okay, In private or public mail?

Xan.
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:33                   ` Wolfgang Schuster
@ 2009-07-23 15:46                     ` luigi scarso
  0 siblings, 0 replies; 20+ messages in thread
From: luigi scarso @ 2009-07-23 15:46 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

On Thu, Jul 23, 2009 at 5:33 PM, Wolfgang Schuster <
schuster.wolfgang@googlemail.com> wrote:

>
> Am 23.07.2009 um 17:16 schrieb luigi scarso:
>
>  hmm, where do you see  the problem  ?
>>
>
> As programmer it's no problem to use a namespace for macros but how
> do you convince users to use them,

it's up to us make an easy convention.



> should they write
>



>    \startprivate[foo]
>
>    \definenote[footnote][...]
>
>    \defineregister[index][...]
>
>    ...
>
>    \stopprivate
>
> and use them with
>
>   'fooindex', 'foofootnote' ...
>
> in their documents?
>

true, but what about
   \startprivate[texns:Logo='www.logosrl.it/context']

   \definenote[Footnote][...]

   \defineregister[Index][...]

   ...

   \stopprivate

\LogoFootnote
\LogoIndex

Not so horrible; one can easily see in the
source own private macros.


>
>
> In this case it would be better to write to write commands like \MyNote
>

Yes, it's a discipline problem.

-- 
luigi

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

[-- Attachment #2: Type: text/plain, Size: 487 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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:16             ` Wolfgang Schuster
@ 2009-07-23 15:52               ` Aditya Mahajan
  2009-07-23 15:57                 ` luigi scarso
  2009-07-23 16:04                 ` Hans Hagen
  0 siblings, 2 replies; 20+ messages in thread
From: Aditya Mahajan @ 2009-07-23 15:52 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Thu, 23 Jul 2009, Wolfgang Schuster wrote:

>
> Am 23.07.2009 um 17:05 schrieb Aditya Mahajan:
>
>> I think an easier thing to do will be to follow latex's style of 
>> \newcommand and \renewcommand. That is, all \definecommands should check if 
>> the macro is previously defined or not. If it is defined, issue a warning 
>> or an error.
>
> There is \define and \redefine.

I know. What I am asking is that the core macros like \definedescription, 
\defineitemgroups, \definehead, which have the general form

\def\defineSOMETHING%
   {\dodoubleargument\dodefineSOMETHING}

\def\dodefineSOMETHING[#1][#2]%
  {\setvalue{#1}{\dododefineSOMETHING[#2]}

should do some check before the \setvalue. Maybe a universal solution will 
be to change \setvalue so that it uses \define (or a check like define) 
internally.

>> And maybe have some hook to disable the warning/error for those who know 
>> what they are doing.
>
> In this case you can use \def, \edef ...

I meant with commands like \defineSOMETHING above. For example, I once did 
\definecolor[page][s=0.9] instead of what I normally do: 
\definecolor[pagecolor][s=0.9]. Took a while to figure out what was going 
wrong. Some of Xan's error were due to similar things, 
\defineSOMETHING[note], \defineSOMETHING[symbol], etc. If all these 
commands issued a warning that you are redefining existing macro, 
debugging will be much easier. And if you know what you are doing, we 
could have

\redefinecolor[page][s=0.9]

that does not issue a warning. Or the easier to implemnet:

\setupcolors[check=error|warn|ignore]

for all \setupSOMETHING commands where the equivalent \defineSOMETHING 
defines a control sequence.

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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:52               ` Aditya Mahajan
@ 2009-07-23 15:57                 ` luigi scarso
  2009-07-23 16:04                 ` Hans Hagen
  1 sibling, 0 replies; 20+ messages in thread
From: luigi scarso @ 2009-07-23 15:57 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

On Thu, Jul 23, 2009 at 5:52 PM, Aditya Mahajan <adityam@umich.edu> wrote:

> On Thu, 23 Jul 2009, Wolfgang Schuster wrote:
>
>
>> Am 23.07.2009 um 17:05 schrieb Aditya Mahajan:
>>
>>  I think an easier thing to do will be to follow latex's style of
>>> \newcommand and \renewcommand. That is, all \definecommands should check if
>>> the macro is previously defined or not. If it is defined, issue a warning or
>>> an error.
>>>
>>
>> There is \define and \redefine.
>>
>
> I know. What I am asking is that the core macros like \definedescription,
> \defineitemgroups, \definehead, which have the general form
>
> \def\defineSOMETHING%
>  {\dodoubleargument\dodefineSOMETHING}
>
> \def\dodefineSOMETHING[#1][#2]%
>  {\setvalue{#1}{\dododefineSOMETHING[#2]}
>
> should do some check before the \setvalue. Maybe a universal solution will
> be to change \setvalue so that it uses \define (or a check like define)
> internally.

Or maybe
\Usersetvalue
I  think to an "user-space"
and a "kernel-space"

-- 
luigi

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

[-- Attachment #2: Type: text/plain, Size: 487 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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: I can't change startitemize[n]--> startitemize[1]
  2009-07-23 15:52               ` Aditya Mahajan
  2009-07-23 15:57                 ` luigi scarso
@ 2009-07-23 16:04                 ` Hans Hagen
  1 sibling, 0 replies; 20+ messages in thread
From: Hans Hagen @ 2009-07-23 16:04 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Aditya Mahajan wrote:

> \def\defineSOMETHING%
>   {\dodoubleargument\dodefineSOMETHING}
> 
> \def\dodefineSOMETHING[#1][#2]%
>  {\setvalue{#1}{\dododefineSOMETHING[#2]}

some do, but sometimes redefinition is quite legal; it happens that 
'note' and 'symbol' are pretty core

the convention (as mentioned) is more or less to use UpperCase names for 
your own commands and UPPERCASE for logo's and abbreviations (but these 
can have an optional namespace)

kind of tricky are colors and fonts as they have no namespace so i often 
end up with ThisColor or ThatFont

> I meant with commands like \defineSOMETHING above. For example, I once 
> did \definecolor[page][s=0.9] instead of what I normally do: 
> \definecolor[pagecolor][s=0.9]. Took a while to figure out what was 
> going wrong. Some of Xan's error were due to similar things, 
> \defineSOMETHING[note], \defineSOMETHING[symbol], etc. If all these 
> commands issued a warning that you are redefining existing macro, 
> debugging will be much easier. And if you know what you are doing, we 
> could have
> 
> \redefinecolor[page][s=0.9]
> 
> that does not issue a warning. Or the easier to implemnet:
> 
> \setupcolors[check=error|warn|ignore]

maybe later, as it clutters the code; maybe after the mkii->mkiv cleanup

Hans

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


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

end of thread, other threads:[~2009-07-23 16:04 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-23 12:06 I can't change startitemize[n]--> startitemize[1] Xan
2009-07-23 12:45 ` Wolfgang Schuster
2009-07-23 14:05   ` Hans Hagen
2009-07-23 14:33     ` Xan
2009-07-23 14:37       ` Hans Hagen
2009-07-23 14:48         ` luigi scarso
2009-07-23 14:58           ` Wolfgang Schuster
2009-07-23 15:05             ` luigi scarso
2009-07-23 15:10               ` Wolfgang Schuster
2009-07-23 15:16                 ` luigi scarso
2009-07-23 15:26                   ` luigi scarso
2009-07-23 15:33                   ` Wolfgang Schuster
2009-07-23 15:46                     ` luigi scarso
2009-07-23 15:05           ` Aditya Mahajan
2009-07-23 15:11             ` luigi scarso
2009-07-23 15:16             ` Wolfgang Schuster
2009-07-23 15:52               ` Aditya Mahajan
2009-07-23 15:57                 ` luigi scarso
2009-07-23 16:04                 ` Hans Hagen
2009-07-23 15:42         ` Xan

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