summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/chemfig/chemfig_doc_fr.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/chemfig/chemfig_doc_fr.tex')
-rw-r--r--Master/texmf-dist/doc/latex/chemfig/chemfig_doc_fr.tex444
1 files changed, 282 insertions, 162 deletions
diff --git a/Master/texmf-dist/doc/latex/chemfig/chemfig_doc_fr.tex b/Master/texmf-dist/doc/latex/chemfig/chemfig_doc_fr.tex
index 3e389018e96..7916a9bd907 100644
--- a/Master/texmf-dist/doc/latex/chemfig/chemfig_doc_fr.tex
+++ b/Master/texmf-dist/doc/latex/chemfig/chemfig_doc_fr.tex
@@ -3,7 +3,7 @@
% | |
% | Documentation de ChemFig |
% | |
-% | 21 novembre 2010 |
+% | 8 janvier 2011 |
% | |
% |_________________________________________________________________|
%
@@ -15,7 +15,7 @@
% Comments, bug reports and suggestions are welcome.
% Licence : Released under the LaTeX Project Public License v1.3c or
% later, see http://www.latex-project.org/lppl.txt
-% Copyright : Christian Tellechea 2010
+% Copyright : Christian Tellechea 2010-2011
%
% L'extension "chemfig" est constituée de ces 6 fichiers :
% chemfig.sty
@@ -43,14 +43,17 @@
\usepackage[T1]{fontenc}
\usepackage[a4paper,margin=2.5cm,head=5mm,headsep=5mm,footskip=10mm]{geometry}
\usepackage[bottom]{footmisc}
-\usepackage{lmodern}
+\usepackage{libertine}
+\renewcommand*\oldstylenums[1]{{\fontfamily{fxlj}\selectfont #1}}
+\usepackage[scaled=0.8]{luximono}
\usepackage{amsmath}
\usepackage{array}
+\usepackage{longtable}
\usepackage{xspace}
\usepackage{fancybox}
+\usepackage{boites}
\usepackage{textcomp}
\usepackage{enumitem}
-\usepackage{xstring}
\usepackage{chemfig}
\usetikzlibrary{decorations.pathmorphing}
\usepackage{emerald}
@@ -65,91 +68,90 @@
\makeatletter
-\newcommand\disable@lig[1]{%
+\long\def\grab@toks#1\relax{\endgroup\def\right@content{#1}}
+
+\newcommand\make@car@active[2]{%
\catcode`#1\active
\begingroup
\lccode`\~`#1\relax
- \lowercase{\endgroup\def~{\leavevmode\kern\z@\string#1}}%
+ \lowercase{\endgroup\def~{#2}}%
}
\newif\if@exstar
-\newcommand\exemple{\@ifstar{\@exstartrue\exemple@}{\@exstarfalse\exemple@}}
+\newcommand\exemple{%
+ \begingroup
+ \parskip\z@
+ \@makeother\;\@makeother\!\@makeother\?\@makeother\:% neutralise frenchb
+ \@ifstar{\@exstartrue\exemple@}{\@exstarfalse\exemple@}}
\newcommand\exemple@[2][65]{%
- \par\nobreak\vskip5pt
- \def\part@coeff{#1}%
- \def\code@name{#2}%
- \relax\leavevmode\null
- \bgroup
- \obeylines\frenchspacing
+ \medbreak\noindent
+ \begingroup
\let\do\@makeother\dospecials
- \@makeother:%
- \@vobeyspaces
- \disable@lig,\disable@lig-%
- \exemple@@
+ \make@car@active\ { {}}%
+ \make@car@active\^^M{\par\leavevmode}%
+ \make@car@active\,{\leavevmode\kern\z@\string,}%
+ \make@car@active\-{\leavevmode\kern\z@\string-}%
+ \exemple@@{#1}{#2}%
}
-\newcommand\exemple@@[1]{%
- \def\@tempa##1#1{%
- \xdef\left@content{##1}%
- \egroup
- \begingroup
- \endlinechar\m@ne\everyeof{\relax}\catcode`\^^M=10
- \@makeother:\@makeother~\@makeother!\@makeother?\@makeother;%
- \expandafter\grab@toks\scantokens{##1}%
- \endgroup
- \exemple@@@
- }%
+\newcommand\exemple@@[3]{%
+ \def\@tempa##1#3{\exemple@@@{#1}{#2}{##1}}%
\@tempa
}
-\begingroup
-\catcode`#=12
-\gdef\exemple@@@%
-{%
- \begingroup
- \StrSubstitute\left@content{##}#[\left@content]%
- \if@exstar
- \edef\part@left{\the\dimexpr\linewidth-2\fboxsep-2\fboxrule}%
- \let\part@right\part@left
- \else
- \edef\part@left{\the\dimexpr0.\part@coeff\linewidth-\fboxsep-\fboxrule}%
- \edef\part@right{\the\dimexpr\linewidth-0.\part@coeff\linewidth-\fboxsep-\fboxrule}%
- \fi
- \edef\saved@boxsep{\the\fboxsep}%
- \fboxsep1pt\relax
- \boxput*(0,1)%
- {\colorbox{black}{{%
- \leavevmode\kern1.5pt\relax
- \color{white}\ECFAugie\footnotesize
- \vphantom{Cp}\code@name
- }\kern1.5pt\relax}}%
- {\fboxsep\saved@boxsep
+\newcommand\exemple@@@[3]{%
+ \xdef\the@code{#3}%
+ \endgroup
+ \if@exstar
+ \begingroup
+ \fboxrule0.4pt
+ \let\breakboxparindent\z@
+ \def\bkvz@bottom{\hrule\@height\fboxrule}%
+ \let\bkvz@before@breakbox\relax
+ \def\bkvz@set@linewidth{\advance\linewidth\dimexpr-2\fboxrule-2\fboxsep}%
+ \def\bkvz@left{\vrule\@width\fboxrule\hskip\fboxsep}%
+ \def\bkvz@right{\hskip\fboxsep\vrule\@width\fboxrule}%
+ \def\bkvz@top{\hbox to \hsize{%
+ \vrule\@width\fboxrule\@height\fboxrule
+ \leaders\bkvz@bottom\hfill
+ \ECFAugie
+ \fboxsep\z@
+ \colorbox{black}{\kern0.25em\color{white}\footnotesize\lower0.5ex\hbox{\strut#2}\kern0.25em}%
+ \leaders\bkvz@bottom\hfill
+ \vrule\@width\fboxrule\@height\fboxrule}}%
+ \breakbox
+ \kern.5ex\relax
+ \ttfamily\footnotesize\the@code\par
+ \normalfont
+ \kern3pt
+ \hrule height0.1pt width\linewidth depth0.1pt
+ \vskip5pt
+ \rightskip0pt plus 1fill
+ \everypar{{\color{lightgray}\rlap{\vrule height0.1pt width\linewidth depth0.1pt}}\hskip0pt plus 1fill}%
+ \newlinechar`\^^M\everyeof{\noexpand}\scantokens{#3}\par
+ \endbreakbox
+ \endgroup
+ \else
+ \vskip0.5ex
+ \boxput*(0,1)
+ {\fboxsep\z@
+ \hbox{\ECFAugie\colorbox{black}{\leavevmode\kern0.25em{\color{white}\footnotesize\strut#2}\kern0.25em}}%
+ }%
+ {\fboxsep5pt
\fbox{%
- \if@exstar
- \parbox[c]\part@left{%
- \vskip5pt\relax\ttfamily\footnotesize\left@content
- \vskip3pt\hrule\vskip3pt
- \everypar{{\color{lightgray}\rlap{\vrule height0.1pt width\part@right depth0.1pt}}}%
- \par\normalfont
- \subst@in\right@content\par\def
- \subst@in\right@content\def{\hfill\null\par\hfill}%
- \hfill\right@content\hfill\null}%
- \else
- \parbox[c]\part@left{\vskip5pt\relax\ttfamily\footnotesize\left@content}%
- \parbox[c]\part@right{%
- \vskip5pt\relax
- \everypar{{\color{lightgray}\rlap{\vrule height0.1pt width\part@right depth0.1pt}}}%
- \normalfont\footnotesize
- \right@content}%
- \fi
+ $\vcenter{\hsize\dimexpr0.#1\linewidth-\fboxsep-\fboxrule\relax
+ \kern5pt\parskip0pt \ttfamily\footnotesize\the@code}%
+ \vcenter{\kern5pt\hsize\dimexpr\linewidth-0.#1\linewidth-\fboxsep-\fboxrule\relax
+ \everypar{{\color{lightgray}\rlap{\vrule height0.1pt width\dimexpr\linewidth-0.#1\linewidth-\fboxsep-\fboxrule depth0.1pt}}}%
+ \footnotesize\newlinechar`\^^M\everyeof{\noexpand}\scantokens{#3}}$%
}%
}%
- \vskip7.5pt\relax
+ \fi
+ \medbreak
\endgroup
}
-\endgroup
\long\def\if@instr#1#2{%
\long\def\if@instr@i##1#2##2\@nil{\ifx\@empty##2\@empty\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}%
@@ -164,8 +166,6 @@
}\relax
}
-\long\def\grab@toks#1\relax{\gdef\right@content{#1}}
-
\newcommand\falseverb[1]{{\ttfamily\detokenize{#1}}}
\long\def\centerverb#1{%
@@ -176,6 +176,7 @@
\let\do\@makeother\dospecials
\@vobeyspaces
\centerverb@i}
+
\makeatother
\usepackage[frenchb]{babel}
@@ -277,9 +278,10 @@
\item Mise en place de la représentation des mouvement d'électrons et des mécanismes réactionnels avec la syntaxe ``\verb-@{<nom>}-'' devant un atome ou
``\verb-@{<nom>,<coeff>}-'' au tout début de l'argument d'une liaison.\par
Cette syntaxe permet de placer un nœud (au sens de \TIKZ) qui deviendra l'extrémité des flèches dessinées. Le tracé des flèches est fait par la macro \verb-\chemmove- dont l'argument optionnel devient celui de l'environnement ``tikzpicture'' dans lequel sont faites les flèches. Lire page~\pageref{mecanismes-reactionnels};
- \item Pour le mécanisme d'alignement vertical des atomes sur une même horizontale, la commande \verb-\chemskipalign- permet d'ignorer ce mécanisme pour le groupe d'atomes dans lequel elle est écrite. Voir page~\pageref{chemskipalign};
+ \item Concernant le mécanisme d'alignement vertical des atomes sur une même horizontale, l'utilisation de la commande \verb-\chemskipalign- permet d'ignorer ce mécanisme pour le groupe d'atomes dans lequel elle est écrite. Voir page~\pageref{chemskipalign};
\item La commande \verb-\chemname- permet d'afficher un nom sous une molécule. La commande \verb-\chemnameinit- initialise l'alignement des noms. Lire page~\pageref{chemname};
- \item les dessins des décorations qu'effectue la commande \verb-\lewis- ont été améliorés;
+ \item Les commandes \verb-\hflipnext- et \verb-\vflipnext- provoquent un retournement horizontal ou vertical de la prochaine molécule. Voir page~\pageref{retournement};
+ \item Les dessins des décorations qu'effectue la commande \verb-\lewis- ont été améliorés;
\item Corrections de bugs et optimisation du code.
\end{enumerate}
@@ -443,7 +445,7 @@ Remarque : un cycle ne pas commencer ou finir par l'atome ou le groupe d'atomes
\exemple{Le bon codage}|\chemfig{A*4(-B-C-D-)}|
\exemple{Les mauvais codages}|\chemfig{*4(A-B-C-D-)}\hspace{1cm}
- \chemfig{*4(-B-C-D-A)}|
+\chemfig{*4(-B-C-D-A)}|
\section{Ions}
La commande \verb|\chemfig| vous place directement dans l'environnement mathématique\footnote{Il existe un problème de placement des groupes d'atomes contenant des exposants ou des indices. Voir page~\pageref{alignement.vertical}.} de \TeX, il est donc très simple d'écrire un ion. Il faut toutefois placer le signe $-$ entre accolades pour éviter à \CF qu'il le confonde avec le symbole d'une liaison covalente.
@@ -488,7 +490,6 @@ Intrinsèquement, le dessin d'une molécule chimique consiste à relier par des
{\fboxsep1pt
Mais dans cette molécule
\molht{H_3C-C(-[:-30]OH)=[:30]O}
-
on compte 4 groupes d'atomes : ``$\mathrm{H_3C}$'', ``C'', ``O'' et ``OH''. Pour des raisons que nous verrons plus tard, \CF examine chaque groupe d'atomes et le découpe en atomes. Chaque atome s'étend jusqu'à rencontrer une lettre majuscule ou un de ces caractères spéciaux : {\ttfamily \boxedfalseverb{-} \boxedfalseverb{=} \boxedfalseverb{~} \boxedfalseverb{(} \boxedfalseverb{!} \boxedfalseverb{*} \boxedfalseverb{<} \boxedfalseverb{>} \boxedfalseverb{@}}. Pour \CF, tous les caractères entre accolades sont ignorés pour le découpage en atomes.
Par conséquent, le premier groupe d'atomes ``$\mathrm{H_3C}$'' est découpé en 2 atomes : $\boxednode{H_3}{}$ et $\boxednode C{}$. Chimiquement, il arrive que ce ne soient pas de vrais atomes puisque $\mathrm{H_3}$ par exemple, est constitué de 3 atomes d'hydrogène. Par abus de langage, on parlera d'atomes par la suite. Par conséquent, \CF voit la molécule précédente ainsi :
@@ -561,7 +562,7 @@ Si l'un des argument est vide, il prend sa valeur par défaut. Les 3 arguments s
Voici un exemple où les 3 dimensions sont modifiées :
\exemple{Liaison de Cram modifiée}-\setcrambond{10pt}{0.4pt}{1pt}
- \chemfig{A>B>:C>|D}-
+\chemfig{A>B>:C>|D}-
\section{Angle d'une liaison}
Chaque liaison admet un argument optionnel qui se met entre crochet. Le contenu de cet argument optionnel permet de régler tout ce dont on a besoin pour la liaison. Cet argument optionnel est constitué de 5 champs séparés par des virgules qui sont autant d'arguments optionnels pour la liaison. Le premier de ces arguments définit l'angle optionnel de la liaison. Les angles vont croissant dans le sens trigonométrique et sont définis par rapport à l'horizontale. Si l'argument optionnel est vide, alors l'angle par défaut vaut 0\degres. Nous verrons plus loin comment modifier cet angle par défaut.
@@ -604,18 +605,26 @@ Le deuxième champ, s'il est non vide, est un coefficient qui multipliera la dis
\chemfig{A-B-[,2]C=[,0.5]D}\par
\chemfig{-=[,1.5]-[,0.75]=[:-20,2]}/
+On peut modifier la taille des molécules en jouant sur la taille de la police ou sur \verb-\setatomsep-, éventuellement sur les deux\footnote{On peut aussi utiliser le deuxième argument optionnel de la commande \texttt{\string\chemfig}, voir page~\pageref{arguments.optionnels}.}, en prenant soin de confiner ces changements à l'intérieur d'un groupe si on veut en limiter la portée :
+\exemple{Modifier la taille des molécules}/\normalsize \chemfig{H-[:30]O-[:-30]H}\par
+\setatomsep{2.5em}\chemfig{H-[:30]O-[:-30]H}\par
+\small \chemfig{H-[:30]O-[:-30]H}\par
+\footnotesize \chemfig{H-[:30]O-[:-30]H}\par
+\scriptsize \chemfig{H-[:30]O-[:-30]H}\par
+\tiny \chemfig{H-[:30]O-[:-30]H}/
+
\section{Atome de départ et d'arrivée}
Un groupe d'atomes peut contenir plusieurs atomes. Mettons que l'on veuille relier le groupe ``ABCD'' au groupe ``EFG'' avec une liaison. \CF calcule quel atome du premier groupe et quel atome de second groupe il faut relier en fonction de l'angle que fait la liaison avec l'horizontale. Si l'angle est compris entre $-90\degres$ et 90\degres{} (modulo 360\degres) ces valeurs étant \emph{non comprises}, alors, la liaison se fait entre le dernier atome du premier groupe et de premier atome du second groupe. Dans tous les autres cas, la liaison se fait par défaut entre le premier atome du premier groupe et le dernier atome du second groupe.
Voici des exemples où les angles sont dans l'intervalle $]-90\;;90[$, et où la liaison se fait donc entre D et E :
\exemple{Atomes liés par défaut}|\chemfig{ABCD-[:75]EFG}\quad
- \chemfig{ABCD-[:-85]EFG}\quad
- \chemfig{ABCD-[1]EFG}|
+\chemfig{ABCD-[:-85]EFG}\quad
+\chemfig{ABCD-[1]EFG}|
Dans les exemples suivants, les angles appartiennent à $[90\;;270]$ et donc la liaison se fait entre A et G :
\exemple[60]{Atomes liés par défaut}|\chemfig{ABCD-[:100]EFG}\quad
- \chemfig{ABCD-[:-110]EFG}\quad
- \chemfig{ABCD-[5]EFG}|
+\chemfig{ABCD-[:-110]EFG}\quad
+\chemfig{ABCD-[5]EFG}|
Dans certains cas, on peut désirer qu'une liaison parte d'autres atomes que ceux calculés par \CF On peut forcer un atome de départ ou un atome d'arrivée avec l'argument optionnel de la liaison. Il faut écrire :
\centerverb/[,,<entier 1>,<entier 2>]/
@@ -623,8 +632,8 @@ Dans certains cas, on peut désirer qu'une liaison parte d'autres atomes que ceu
où \verb-<entier 1>- et \verb-<entier 2>- sont les numéros des atomes de départ et d'arrivée souhaités. Il faut que ces atomes existent, sinon, un message d'erreur sera émis.
\exemple{Atomes liés forcés}|\chemfig{ABCD-[:75,,2,3]EFG}\qquad
- \chemfig{ABCD-[:75,,,2]EFG}\qquad
- \chemfig{ABCD-[:75,,3,2]EFG}|
+\chemfig{ABCD-[:75,,,2]EFG}\qquad
+\chemfig{ABCD-[:75,,3,2]EFG}|
\section{Personnalisation des liaisons}
Il existe un 5\ieme{} et dernier argument optionnel pour les liaisons qui se trouve à droite de la 4\ieme{} virgule :
@@ -633,9 +642,9 @@ Il existe un 5\ieme{} et dernier argument optionnel pour les liaisons qui se tro
Ce \verb-<code tikz>- est passé directement à \TIKZ lorsque la liaison est tracée. On peut y mettre des attributs de couleur comme ``\verb-red-'', de pointillés comme ``\verb-dash pattern=on 2pt off 2pt-'', d'épaisseur comme ``\verb-line width=2pt-'' ou même de décoration si on a chargé une librairie de décoration de \TIKZ. On peut aussi rendre une liaison invisible en écrivant ``\verb-draw=none-''. Si on veut spécifier plusieurs attributs, on utilise la syntaxe de \TIKZ en les séparant par une virgule :
\exemple{Passage de code tikz}|\chemfig{A-[,,,,red]B}\par
- \chemfig{A-[,,,,dash pattern=on 2pt off 2pt]B}\par
- \chemfig{A-[,,,,line width=2pt]B}\par
- \chemfig{A-[,,,,red,line width=2pt]B}|
+\chemfig{A-[,,,,dash pattern=on 2pt off 2pt]B}\par
+\chemfig{A-[,,,,line width=2pt]B}\par
+\chemfig{A-[,,,,red,line width=2pt]B}|
On peut ainsi avoir accès aux nombreuses librairies de décoration de \TIKZ. On peut par exemple utiliser la librairie ``\verb-pathmorphing-'' en écrivant \verb-\usetikzlibrary{decorations.pathmorphing}- dans le préambule pour tracer des liaisons ondulées :
\exemple{Liaison ondulée}|\chemfig{A-[,3,,,decorate,decoration=snake]B}|
@@ -764,8 +773,8 @@ où chaque champ de l'argument optionnel prend sa valeur par défaut s'il est vi
\end{itemize}
\exemple{Cycles et arcs de cercle}|\chemfig{**6(------)}\quad
- \chemfig{**[30,330]5(-----)}\quad
- \chemfig{**[0,270,dash pattern=on 2pt off 2pt]4(----)}|
+\chemfig{**[30,330]5(-----)}\quad
+\chemfig{**[0,270,dash pattern=on 2pt off 2pt]4(----)}|
\subsection{Position angulaire}
\subsubsection{Au départ}
@@ -774,8 +783,8 @@ Comme on le voit dans les exemples ci-dessous, la règle est que l'atome d'attac
Si cette position angulaire ne convient pas, il est possible de spécifier via l'argument optionnel du début de la molécule un autre angle par défaut. Voici un 6-cycle qui a été pivoté de $+30\degres$, de $-30\degres$ puis de $+60\degres$ :
\exemple[55]{Rotation des cycles}|\chemfig{[:30]A*6(------)}\qquad
- \chemfig{[:-30]A*6(------)}\qquad
- \chemfig{[:60]A*6(------)}|
+\chemfig{[:-30]A*6(------)}\qquad
+\chemfig{[:60]A*6(------)}|
\subsubsection{Après une liaison}
Lorsqu'un cycle ne commence pas une molécule et qu'une (ou plusieurs) liaisons ont été auparavant tracées, la position angulaire par défaut change : le cycle est tracé de telle sorte que la liaison qui arrive sur l'atome de rattachement soit la bissectrice du premier et du dernier côté du cycle.
@@ -785,7 +794,7 @@ Voici un cas simple :
La règle reste valable, quelque soit l'angle de la liaison précédente :
\exemple{Liaisons arrivant sur un cycle}|\chemfig{A-[:25]B*4(----)}\vskip5pt
- \chemfig{A=[:-30]*6(=-=-=-)}|
+\chemfig{A=[:-30]*6(=-=-=-)}|
\subsection{Ramifications partant d'un cycle}
Pour faire partir une ramification d'un des sommets du cycle, on emploie la syntaxe déjà vue :
@@ -800,8 +809,8 @@ On peut faire partir une sous molécule du premier sommet du cycle, ainsi que de
Si on souhaite que la liaison partant d'un sommet ne soit pas la bissectrice de ses côtés, on peut jouer sur le paramètre optionnel global ou le paramètre optionnel de la liaison :
\exemple[50]{Ramifications et angles spécifiés}|\chemfig{*5(---([:90]-A-B)--)}\qquad
- \chemfig{*5(---(-[:90]A-B)--)}\qquad
- \chemfig{*5(---([::+0]-A-B)--)}|
+\chemfig{*5(---(-[:90]A-B)--)}\qquad
+\chemfig{*5(---([::+0]-A-B)--)}|
Il est intéressant de constater au troisième exemple que si on spécifie un angle relatif de 0\degres, la liaison se fait dans le prolongement de la liaison qui précédait dans le cycle. C'est la règle de la page \pageref{angle.relatif} qui spécifiait que l'angle de référence était celui de la dernière liaison tracée.
@@ -841,7 +850,7 @@ Deux cas de figure peuvent se présenter, on peut poser :
\item un nœud de dimension nulle sur une liaison en utilisant la syntaxe ``\verb-@{<nom>,<coeff>}-'' placée immédiatement au début de l'argument optionnel de la liaison concernée sans être suivi d'une virgule s'il y a un premier argument optionnel. Dans ce cas, le nœud portera le nom ``\verb-<nom>-'' et le \verb-<coeff>-, compris entre 0 et 1, déterminera où le nœud se situera sur la liaison. Si on utilise ``\verb-@{<nom>}-'', le \verb-<coeff>- prend la valeur de 0.5 par défaut ce qui signifie que le nœud est posé au milieu de la liaison;
\item un nœud sur un atome en utilisant la syntaxe ``\verb-@{<nom>}-'' immédiatement avant l'atome concerné. Dans ce cas, le nœud a exactement le même encombrement que l'atome, il peut notamment être vide et donc avoir des dimensions nulles.
\end{itemize}
-Une fois que la commande \verb-\chemfig- a dessiné la (ou les) molécule(s) et a posé les nœuds avec la syntaxe décrite ci dessus, on peut relier ces nœuds entre eux avec les instructions de \TIKZ. Ces instructions seront placées dans l'argument de la commande \verb-\chemmove-\footnote{En réalité, la commande \texttt{\string\chemmove} met son argument dans un environnement ``tikzpicture'' avec les options ``\texttt{remember picture,overlay}''.} et auront la syntaxe suivante si par exemple, on doit relier un nœud portant le nom ``\verb-<nom1>-'' au nœud portant le nom ``\verb-<nom2>-'' :
+Une fois que la commande \verb-\chemfig- a dessiné la (ou les) molécule(s) et a posé les nœuds avec la syntaxe décrite ci dessus, on peut relier ces nœuds entre eux avec les instructions de \TIKZ. Ces instructions seront placées dans l'argument de la commande \verb-\chemmove-\footnote{En réalité, la commande \texttt{\string\chemmove} place son argument dans un environnement ``tikzpicture'' dans lequel les options sont ``\texttt{remember picture,overlay}''.} et auront la syntaxe suivante si par exemple, on doit relier un nœud portant le nom ``\verb-<nom1>-'' au nœud portant le nom ``\verb-<nom2>-'' :
\centerverb|\chemmove[<opt>]{\draw[<opt tikz>](<nom1>)<link tikz>(<nom2>);}|
\smallskip
@@ -878,7 +887,8 @@ Pour notre nouvelle flèche nous avons fixé les points de contrôle comme suit
\chemabove{X}{\scriptstyle\oplus}}
\chemmove[->]{
\draw(db).. controls +(100:5mm) and +(145:5mm).. (a1);
- \draw[shorten <=3pt,shorten >=1pt](dnl) .. controls +(90:4mm) and +(45:4mm).. (sb);}/
+ \draw[shorten <=3pt,shorten >=1pt](dnl) .. controls +(90:4mm)
+ and +(45:4mm) .. (sb);}/
L'option ``\verb|shorten <=3pt|'' indique que le point de départ de la flèche doit être raccourci de 3~pt de même ``\verb|shorten >=2pt|'' indique que le point d'arrivé doit être raccourci de 2~pt.
@@ -887,11 +897,12 @@ On peut utiliser toute la puissance des instructions de \TIKZ pour modifier le d
\chemrel{<->}
\chemfig{\chemabove{\vphantom{X}}{\ominus}-[::30]=_[::-60]
\chemabove{X}{\scriptstyle\oplus}}
-\chemmove{\draw[-stealth,thin,dash pattern= on 2pt off 2pt,red]
- (db).. controls +(100:5mm) and +(145:5mm)..
- node[sloped,above] {$\pi$} (a1);
+\chemmove{
+ \draw[-stealth,thin,dash pattern= on 2pt off 2pt,red]
+ (db).. controls +(100:5mm) and +(145:5mm)..
+ node[sloped,above] {$\pi$} (a1);
\draw[->, shorten <=3pt, shorten >= 1pt]
- (dnl).. controls +(90:4mm) and +(45:4mm).. (sb);}/
+ (dnl).. controls +(90:4mm) and +(45:4mm).. (sb);}/
Dans l'exemple suivant nous allons voir comment indiquer la position de l'ancre de départ ou d'arrivée. Si nous écrivons
\exemple{Ancre de départ et d'arrivée 1}/\chemfig{@{x1}\lewis{1:,X}}
@@ -925,16 +936,17 @@ Grâce à l'option \verb|remenber picture| qui est passée à tous les environne
\chemfig{R-@{atoc}C([6]-OH)=[@{db}]O}
\chemrel[\chemfig{@{atoh}\chemabove{H}{\scriptstyle\oplus}}]{<>}
\chemmove[->,shorten <=2pt]{
- \draw[shorten >=2pt](dnl).. controls +(90:1cm) and +(north:1cm).. (atoc);
- \draw[shorten >=6pt](db).. controls +(north:5mm) and +(100:1cm).. (atoh);}/
+ \draw[shorten >=2pt](dnl)..controls +(90:1cm)and+(north:1cm)..(atoc);
+ \draw[shorten >=6pt](db)..controls +(north:5mm)and+(100:1cm)..(atoh);}/
L'utilisation de la commande \verb|\chemabove{<code>}{<materiel>}| ne change pas les dimensions de la boite englobante du \verb|<code>|. Pour cette raison on peut rencontrer certaines difficultés pour pointer sur le matériel indiquant la charge portée ($\oplus$ ou $\ominus$). Dans l'exemple ci-dessus la solution est de créer un point de contrôle avec un angle de 110\degres{} à 1~cm de ``atoh'' et de raccourcir la flèche de 6pt. Dans l'exemple suivant, seconde étape de la réaction d'estérification, on peut voir que la flèche peut prendre des formes plus compliquées sans forcément surcharger le code.
\exemple{Estérification: étape 2}/\setatomsep{7mm}
\setchemrel{}{}{5mm}
\chemfig{R-O-C(-[2]R)(-[6]OH)-@{dnl}\lewis{26,O}H}\hspace{1cm}
\chemfig{@{atoh}\chemabove{H}{\scriptstyle\oplus}}
-\chemmove{\draw[->,shorten <=2pt, shorten >=7pt]
- (dnl).. controls +(south:1cm) and +(north:1.5cm).. (atoh);}/
+\chemmove{
+ \draw[->,shorten <=2pt, shorten >=7pt]
+ (dnl).. controls +(south:1cm) and +(north:1.5cm).. (atoh);}/
Nous laissons le soin au lecteur d'écrire la suite\ldots
@@ -953,8 +965,7 @@ Voici une réaction avec les noms sous les molécules :
\chemrel{->}
\chemname{\chemfig{R-C(-[:-30]OR')=[:30]O}}{Ester}
\chemsign{+}
-\chemname{\chemfig{H_2O}}{Eau}
-/
+\chemname{\chemfig{H_2O}}{Eau}/
Il y a quelques contraintes avec cette commande. Pour en pendre conscience, mettons que l'on ait inversé l'acide et l'alcool dans le membre de gauche :
\exemple*{Alignement des noms 1}/
@@ -964,8 +975,7 @@ Il y a quelques contraintes avec cette commande. Pour en pendre conscience, mett
\chemrel{->}
\chemname{\chemfig{R-C(-[:-30]OR')=[:30]O}}{Ester}
\chemsign{+}
-\chemname{\chemfig{H_2O}}{Eau}
-/
+\chemname{\chemfig{H_2O}}{Eau}/
En fait, au dessous de la ligne de base de chaque molécule (en gris clair sur les exemples de ce manuel), pour écrire le \verb-<nom>-, la commande \verb-\chemname- insère 1.5ex${}+{}$\emph{la plus grande des profondeurs\footnote{En langage \TeX{}, la profondeur est la dimension qui s'étend verticalement sous la ligne de base.} des molécules rencontrées}. La macro \verb-\chemnameinit{<argument>}- initialise cette plus grande profondeur avec le contenu de l'\verb-<argument>-. Il convient donc :
\begin{itemize}
@@ -983,8 +993,7 @@ Le code correct est donc d'utiliser \verb-\chemnameinit- avant et après la réa
\chemname{\chemfig{R-C(-[:-30]OR')=[:30]O}}{Ester}
\chemsign{+}
\chemname{\chemfig{H_2O}}{Eau}
-\chemnameinit{}
-/
+\chemnameinit{}/
Enfin, pour écrire un nom sur plusieurs lignes, la commande \verb-\\- rencontrée dans un \verb-<nom>- effectue un retour à la ligne\footnote{Par contre, la commande \texttt{\textbackslash par} est interdite et provoquera une erreur à la compilation.} :
\exemple*{Nom sur 2 lignes}/
@@ -995,8 +1004,7 @@ Enfin, pour écrire un nom sur plusieurs lignes, la commande \verb-\\- rencontrÃ
\chemname{\chemfig{R-C(-[:-30]OR')=[:30]O}}{Ester}
\chemsign{+}
\chemname{\chemfig{H_2O}}{Eau}
-\chemnameinit{}
-/
+\chemnameinit{}/
\newpage
\part{Utilisation avancée}\label{utilisation.avancee}
@@ -1024,11 +1032,11 @@ Une fois le découpage en atomes effectué, la macro \verb-\printatom- est appel
On peut modifier le code de cette macro pour personnaliser l'affichage de atomes. Dans l'exemple ci-dessous, on redéfinit \verb-\printatom- de façon à ce que chaque atome soit contenu dans une boîte rectangulaire :
\exemple{Redéfinition de \string\printatom}/\fboxsep=1pt
-\renewcommand*\printatom[1]{\fbox{\ensuremath{\mathrm{##1}}}}
+\renewcommand*\printatom[1]{\fbox{\ensuremath{\mathrm{#1}}}}
\chemfig{H_3C-C(=[:30]O)(-[:-30]OH)}/
Voici comment la redéfinir pour utiliser de la police ``sf'' du mode math :
-\exemple{Atomes affichés en police ``sf''}/\renewcommand*\printatom[1]{\ensuremath{\mathsf{##1}}}
+\exemple{Atomes affichés en police ``sf''}/\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\chemfig{H_3C-C(=[:30]O)(-[:-30]OH)}/
\section{Arguments optionnels}\label{arguments.optionnels}
@@ -1043,11 +1051,12 @@ Par l'intermédiaire du premier argument optionnel, on peut choisir par exemple
\chemfig[line width=1.5pt]{A-B-[2]C}\par\medskip
\chemfig[red]{A-B-[2]C}/
-Avec le second argument optionnel, on peut choisir la couleur des nœud dessinés par \TIKZ, et même modifier l'inclinaison du dessin :
+Avec le second argument optionnel, on peut choisir la couleur des nœud dessinés par \TIKZ, modifier l'inclinaison du dessin ou changer l'échelle :
\exemple{Choix des styles}/\chemfig{A-B-[2]C}\par\medskip
\chemfig[][red]{A-B-[2]C}\par\medskip
\chemfig[dash pattern=on 1pt off 2pt][red]{A-B-[2]C}\par\medskip
-\chemfig[][rotate=20]{A-B-[2]C}/
+\chemfig[][rotate=20]{A-B-[2]C}\par\medskip
+\chemfig[][scale=0.5]{A-B-[2]C}/
\section{Alignement vertical}\label{alignement.vertical}
Dans certains cas de molécules semi développées dont les liaisons sont horizontales, le placement des groupes d'atomes est incorrect.
@@ -1066,7 +1075,7 @@ On peut donc mieux expliquer l'alignement défectueux constaté. Les atomes ``\v
On peut mettre en évidence ce phénomène en rendant visible les boîtes englobantes des atomes où l'on voit clairement que les atomes ``\verb-B-'' et ``\verb-F-'' ont des boîtes englobantes dont la hauteur qui tient compte des hauteurs des atomes précédents :
\exemple*{Placement horizontal et boîtes englobantes}/\Huge\setatomsep{2em}
\fboxsep=0pt
-\renewcommand\printatom[1]{\fbox{\ensuremath{\mathrm##1}}}
+\renewcommand\printatom[1]{\fbox{\ensuremath{\mathrm#1}}}
\chemfig{A^1-B-C-D}\qquad
\chemfig{E_1-F-G-H}/
@@ -1081,14 +1090,14 @@ Aucune solution automatique n'étant satisfaisante, on peut contourner manuellem
\chemfig{A-.-B}\quad
\chemfig{A-\chemskipalign.-B}\par\bigskip
\fboxsep=0pt
-\renewcommand\printatom[1]{\fbox{\ensuremath{\mathrm{##1}}}}
+\renewcommand\printatom[1]{\fbox{\ensuremath{\mathrm{#1}}}}
\chemfig{A-.-B}\quad
\chemfig{A-\chemskipalign.-B}/
Cette commande est à utiliser avec précaution car l'alignement des atomes dans le groupe d'atomes à venir peut être perturbé. En règle générale, tout se passera bien si le groupe d'atomes dans lequel figure \verb-\chemskipalign- contient \emph{un seul atome} dont la hauteur et la profondeur sont \emph{inférieures} à celles de l'atome qui précède et qui suit, et si les atomes qui précèdent et suivent ont leur profondeur et hauteur égales. Voici par exemple la mésaventure qui arrive lorsque le groupe d'atomes contient 2 atomes, ici ``\verb-\chemskipalign.-'' et ``\verb-B-'' :
\exemple{Conséquence de la commande \string\chemskipalign}/\large
\fboxsep=0pt
-\renewcommand\printatom[1]{\fbox{\ensuremath{\mathrm{##1}}}}
+\renewcommand\printatom[1]{\fbox{\ensuremath{\mathrm{#1}}}}
\chemfig{A-\chemskipalign.B-C}/
Cette fonctionnalité peut parfois s'avérer utile. Mettons que l'on veuille dessiner la molécule
@@ -1167,7 +1176,7 @@ Dans tous les cas, si l'alias est déjà défini il est déconseillé de l'écra
Voici un code qui dessine la molécule de pentane. On a pris soin auparavant de définir un alias ``\verb/xy/'' pour le code \verb/CH_2/ :
\exemple{Pentane}|\definesubmol{xy}{CH_2}
- \chemfig{H_3C-!{xy}-!{xy}-!{xy}-CH_3}|
+\chemfig{H_3C-!{xy}-!{xy}-!{xy}-CH_3}|
Ici, la manœuvre n'est pas très intéressante puisque ``\verb/!{xy}/'' est aussi long à taper que le code qu'il remplace.
@@ -1181,7 +1190,7 @@ Mais dans certains cas, cette fonctionnalité fait gagner beaucoup de place dans
Dans la cas où l'argument optionnel est présent, l'alias ``\verb-!<nom>-'' sera remplacé par \verb'<code1>' si la liaison qui arrive sur l'alias vient de droite, c'est à dire si l'angle que fait la liaison entrante est compris entre $-90$\degres{} et 90\degres{}, ces valeurs étant non comprises. Pour tous les autres cas où la liaison arrive de gauche ou verticalement, l'alias sera remplacé par \verb-<code2>-.
-On va définir une séquence de contrôle \verb-\Me- pour ``méthyl'' de telle sorte que l'alias ``\verb-!\Me-'' soit remplacé par ``\verb-H_3C-'' lorsque la liaison arrive de droite et par ``\verb-CH_3-'' lorsqu'elle arrive de gauche. Avec cet alias, on peut observer sur l'exemple que l'on n'a plus à s'occuper de l'angle (que dans certaines molécules plus complexes on ne connait même pas) :
+On va définir une séquence de contrôle \verb-\Me- pour ``méthyl'' de telle sorte que l'alias ``\verb-!\Me-'' soit remplacé par ``\verb-H_3C-'' lorsque la liaison arrive de droite et par ``\verb-CH_3-'' lorsqu'elle arrive de gauche. Avec cet alias, on peut observer sur l'exemple que l'on n'a plus à s'occuper de l'angle (que dans certaines molécules plus complexes on ne connaît même pas) :
\exemple{Alias dual}/\definesubmol\Me[H_3C]{CH_3}
\chemfig{*6((-!\Me)=(-!\Me)-(-!\Me)=(-!\Me)-(-!\Me)=(-!\Me)-)}/
@@ -1195,38 +1204,39 @@ où les \verb-<n1>-\ldots\verb-<ni>- représentent les positions (en multiples d
Cette commande peut également être utilisée en dehors de l'argument de \verb-\chemfig- :
\exemple{La macro \string\lewis}|\lewis{0246,A}\par\medskip
- \lewis{1357,B}\par\medskip
- \chemfig{H-\lewis{26,O}-S(=[2]\lewis{13,O})
- (=[6]\lewis{57,O})-\lewis{26,O}-H}|
+\lewis{1357,B}\par\medskip
+\chemfig{H-\lewis{26,O}-S(=[2]\lewis{13,O})
+(=[6]\lewis{57,O})-\lewis{26,O}-H}|
Si au lieu d'une paire représentée par une ligne, on souhaite deux points, on fait suivre l'entier par ``\verb-:-''. Si on veut dessiner un électron, il suffit de le faire suivre par un ``\verb-.-''. Pour dessiner une lacune, on le fait suivre d'un ``\verb-|-'' :
\exemple{Décorations de Lewis}*\lewis{0:2:4:6:,C}\qquad\lewis{1:3:5:7:,C}\par\bigskip
- \lewis{0.2.4.6.,C}\qquad\lewis{1.3.5.7.,C}\par\bigskip
- \lewis{0:2.4|,X}\par\bigskip
- Ion oxonuim : \chemfig{H-\lewis{5|7,O^+}(-[2]H)-H}*
+\lewis{0.2.4.6.,C}\qquad\lewis{1.3.5.7.,C}\par\bigskip
+\lewis{0:2.4|,X}\par\bigskip
+Ion oxonuim : \chemfig{H-\lewis{5|7,O^+}(-[2]H)-H}*
Toutes les décorations dessinées par l'intermédiaire de \verb-\lewis- ne sont pas comptabilisées dans la boîte englobante de l'atome. Les décorations sont faites en surimpression. On en voit une conséquence dans les deux exemples ci-dessus où les cadre ne semblent ne plus être correctement ajustés au dessin de la molécule qui dépasse légèrement vers le bas. Ceci sera parfois observable dans ce chapitre ``Décorations'' où l'on présente des commandes qui ne modifient pas la boîte englobante.
On peut le constater de façon plus évidente en traçant une \verb-\fbox- autour des atomes décorés :
\exemple{Boîte englobante et macro \string\lewis}*\fboxsep0pt
- \fbox{\lewis{0.2.4.6.,A}}\par\medskip
- \fbox{\lewis{13,B}}*
+\fbox{\lewis{0.2.4.6.,A}}\par\medskip
+\fbox{\lewis{13,B}}*
\label{setlewis}On peut régler plusieurs paramètres à l'aide la macro
-\centerverb|\setlewis{<dim1>}{<dim2>}{<code tikz>}|
+\centerverb|\setlewis[<dim1>]{<dim2>}{<dim3>}{<code tikz>}|
\smallskip
Si un argument est vide, il prend sa valeur par défaut.
\begin{itemize}
- \item \verb-<dim1>- est la distance entre la boîte englobant l'atome et la décoration. Elle vaut 0.4ex par défaut;
- \item \verb-<dim2>- est la longueur du trait représentant la paire d'électrons. Elle vaut 1.5ex par défaut;
+ \item \verb-<dim1>- est la largeur du rectangle représentant une lacune obtenue avec le caractère ``|''. Elle vaut 0.3ex par défaut;
+ \item \verb-<dim2>- est la distance entre la boîte englobant l'atome et la décoration. Elle vaut 0.4ex par défaut;
+ \item \verb-<dim3>- est la longueur du trait représentant la paire d'électrons. Elle vaut 1.5ex par défaut;
\item \verb-<code tikz>- est le code qui sera passé directement à \TIKZ. Ce code est vide par défaut.
\end{itemize}
\exemple{Les paramètres de la macro \string\lewis}*\setlewis{4pt}{1.5em}{red}
- \chemfig{A-\lewis{26,B}-C}\par\bigskip
- \setlewis{}{}{line width=0.4pt}
- \chemfig{A-\lewis{2|,B}-C}*
+\chemfig{A-\lewis{26,B}-C}\par\bigskip
+\setlewis[0.8ex]{}{}{line width=1pt}
+\chemfig{A-\lewis{2|,B}-C}*
\subsection{Empilement de caractères}
Les macros\label{chemabove}
@@ -1281,12 +1291,12 @@ Et en voici une autre :
\section{Utilisation de {\ttfamily\textbackslash chemfig} dans l'environnement \ttfamily tikzpicture}
Il est possible d'appeler la commande \verb-\chemfig- à l'intérieur d'un environnement \verb-tikzpicture- :
\exemple{\textbackslash chemfig dans tikzpicture}|\begin{tikzpicture}[help lines/.style={thin,draw=black!50}]
- \draw[help lines] (0,0) grid (4,4);
- \draw(0,0) -- (2,1);
- \draw(2,2) circle (0.5);
- \node at (1,3) {\chemfig{A=B-[:30]C}};
- \node[draw,red,anchor=base] at(3,2){\chemfig{X>[2,,,,blue]Y}};
- \end{tikzpicture}|
+\draw[help lines] (0,0) grid (4,4);
+\draw(0,0) -- (2,1);
+\draw(2,2) circle (0.5);
+\node at (1,3) {\chemfig{A=B-[:30]C}};
+\node[draw,red,anchor=base] at(3,2){\chemfig{X>[2,,,,blue]Y}};
+\end{tikzpicture}|
\section{Au delà de la chimie}\label{style.noeuds}
Intrinsèquement, \CF est un outil pour tracer des graphes, et cet outil a été programmé pour qu'il soit adapté à la chimie. Dans une certaine mesure, il est possible de détourner \CF de son usage premier pour tracer des organigrammes ou autres schémas se ramenant à des graphes.
@@ -1297,14 +1307,14 @@ Dans cet exemple, on spécifie simplement ``draw,inner sep=2pt'' ce qui a pour e
\exemple*{Un organigramme}/\setnodestyle{draw,inner sep=2pt}
\setbondoffset{0pt}
\setatomsep{75pt}
-\renewcommand\printatom[1]{##1}
+\renewcommand\printatom[1]{#1}
\chemfig{Le chef-[6]Moi(-[4]Eux(-[6]Les autres)(-[7,2]Groupe 1))-Toi(-[:-120,0.5]Lui)(-[:-60,0.5]Elle)}/
Voici un autre organigramme où les nœuds sont circulaires et colorés en bleu cyan :
\exemple*{Schéma de famille}/\setnodestyle{draw,circle,fill=cyan,minimum size=25pt}
\setbondoffset{0pt}
\setatomsep{80pt}
-\renewcommand\printatom[1]{\textsf{##1}}
+\renewcommand\printatom[1]{\textsf{#1}}
\chemfig{Moi(-[:-50,1.2]Frère)(-[:-10]Frère(-[:15]Nièce)(-[:-35]Nièce))
(-[:-155,0.8]Sœur-[:-80]Neveu)(-[:95,1.25]Père(-[:-25,0.8]Oncle)(-[:-65,0.8]Tante))
(-[:135]Mère-[:-95,0.5]Oncle)}/
@@ -1472,14 +1482,133 @@ Il suffit de rajouter les ramifications aux bons sommets. On peut notamment rema
On aurait aussi pu dessiner cette même molécule avec un 5-cycle \emph{régulier}, comme cela se fait parfois :
\exemple{Guanine avec 5-cycle}|\chemfig{*6((-H_2N)=N-*5(-\chembelow{N}{H}-=N-)=-(=O)-HN-[,,2])}|
+\section{Comment faire\ldots}
+\subsection{Écrire un atome en couleur}
+Comme le package \verb-xcolor- est chargé par \TIKZ, lui même chargé par \CF, on peut donc mettre dans le code d'une molécule des instructions de couleur, principalement \verb-\color- et \verb-\textcolor-. Les atomes étant affichés dans des nœuds de \TIKZ qui se comportent comme des boîtes de \TeX{}, tout se passe comme si ces atomes étaient confinés dans un groupe ce qui fait que le changement de couleur reste local à l'atome.
+
+\exemple{Couleurs}/\chemfig{C\color{blue}H_3-C(=[1]O)-[7]O\color{red}H}/
+
+On constate que ce code ne fonctionne pas, toujours à cause de la règle de découpage des atomes qu'utilise \CF : ici, le premier atome de la molécule commence à ``\verb-C-'' et s'étend jusqu'à la prochaine lettre majuscule. Cet atome est donc ``\verb-C\color{blue}-'' et donc, le changement de couleur se fait en fin d'atome et reste sans effet. Il faut forcer \CF à couper le premier atome juste après ``\verb-C-'' avec le caractère ``\verb-|-'' et ensuite, englober \verb-\color{blue}H_3- entre accolades de façons à ce que \CF ne stoppe pas l'atome \no2 avant le ``\verb-H-'' ce qui laisserait le changement de couleur seul et donc inefficace dans un atome :
+
+\exemple{Couleurs}/\chemfig{C|{\color{blue}H_3}-C(=[1]O)-[7]O|{\color{red}H}}/
+
+On peut obtenir le même effet avec \verb-\textcolor- :
+
+\exemple{Couleurs}/\chemfig{C|\textcolor{blue}{H_3}-C(=[1]O)-[7]O|\textcolor{red}{H}}/
+
+Le principal inconvénient est qu'il faut répéter l'opération pour chaque atome que l'on veut colorer, même si ceux-ci sont contigus.
+
+\subsection{Dessiner une liaison courbe}
+Nous avons déjà vu qu'avec la librairie ``\verb-decorations.pathmorphing-'' de \TIKZ, on peut dessiner une liaison ondulée :
+
+\exemple{Liaison ondulée}|\chemfig{A-[,3,,,decorate,decoration=snake]B}
+
+\chemfig{A-[,3,,,decorate,decoration={snake,amplitude=1.5mm,
+ segment length=2.5mm}]B}|
+
+Pour plus de souplesse, on peut aussi poser des nœuds avec le marqueur ``\verb-@-'' et réutiliser ces nœuds après que la molécule ait été tracée pour les relier avec une ligne courbe à l'aide de \verb-\chemmove- :
+
+\exemple{Liaisons courbes}/\chemfig{@{a}A-[,,,,draw=none]@{b}B}
+\chemmove{\draw[-](a)..controls +(45:7mm) and +(225:7mm)..(b);}
+\bigskip
+
+\chemfig{*6(@{a}---@{b}---)}
+\chemmove{\draw[-](a)..controls +(60:3em) and +(240:3em)..(b);}
+\quad
+\chemfig{*6(@{a}---@{b}---)}
+\chemmove{\draw[-](a)..controls +(60:3em) and +(30:1em)..
+ ++(20:2em) ..controls +(210:3em) and +(-120:4em) ..(b);}/
+
+\subsection{Modifier la taille d'une molécule}
+Deux paramètres déterminent par défaut la taille d'une molécule : la taille de la police et le paramètre de \verb-\setatomsep- qui est de 3em par défaut. On peut jouer indépendamment sur ces deux paramètres pour modifier la taille d'une molécule :
+
+\exemple{Modification de la taille}/\definesubmol\hho{H-[:30]O-[:-30]H}
+\chemfig{!\hho}
+
+\setatomsep{2.5em}\chemfig{!\hho}
+
+\scriptsize\chemfig{!\hho}
+
+\tiny\chemfig{!\hho}\setatomsep{5em}\chemfig{!\hho}/
+
+Il est possible d'utiliser le second argument optionnel de \verb-\chemfig- pour agrandir ou réduire une molécule, et ceci globalement, c'est-à-dire que le texte et les liaisons seront réduits selon la même proportion :
+
+\exemple{Modification globale de la taille}/\definesubmol\hho{H-[:30]O-[:-30]H}
+\chemfig{!\hho}
+
+\chemfig[][scale=0.75]{!\hho}
+
+\chemfig[][scale=0.5]{!\hho}
+
+\chemfig[][scale=0.33]{!\hho}/
+
+\subsection{Dessiner un élément de polymère}
+La difficulté réside dans le fait d'afficher des délimiteurs (parenthèses ou crochets) sur des liaisons. Pour cela, on va encore définir avec le caractère ``\verb-@-'' des nœuds globaux que l'on utilisera ensuite pour qu'ils servent d'ancre aux délimiteurs. Nous partirons du principe que le nœud marquant l'emplacement du délimiteur ouvrant porte le nom ``opbr'' et celui du délimiteur fermant le nom ``clbr''.
+
+Nous allons écrire une macro toute simple \verb-\setpolymerbracket- dont les deux caractères qui suivent définissent le délimiteur ouvrant et le délimiteur fermant.
+
+Ensuite, la macro \verb-\makebraces- admettra un argument optionnel de la forme``\verb-<dim up>,<dim down>-''. Ces deux dimensions seront la hauteur et la profondeur des délimiteurs par rapport à la ligne de base. L'argument obligatoire de \verb-\makebraces- sera l'indice placé après le délimiteur fermant.
+
+\exemple*{Polymères}|\newcommand\setpolymerdelim[2]{%
+ \def\delimleft{#1}\def\delimright{#2}}
+
+\def\definedelimdim#1,#2\enddefinedelim{\def\delimht{#1}\def\delimdp{#2}}
+
+\newcommand\makebraces[2][0pt,0pt]{%
+ \definedelimdim#1\enddefinedelim
+ \chemmove{%
+ \node[at=(opbr),yshift=(\delimht-\delimdp)/2]
+ {\llap{$\left\delimleft\strut\vrule height\delimht depth\delimdp width0pt \right.$}};%
+ \node[at=(clbr),yshift=(\delimht-\delimdp)/2]
+ {\rlap{$\left.\strut\vrule height\delimht depth\delimdp width0pt \right\delimright_{#2}$}};%
+ }%
+}
+\setpolymerdelim()
+Polyéthylène:
+\chemfig{\vphantom{CH_2}-[@{opbr,1}]CH_2-CH_2-[@{clbr,0}]}\makebraces{n}
+\bigskip
+
+Polyvinyl chloride:
+\chemfig{\vphantom{CH_2}-[@{opbr,1}]CH_2-CH(-[6]Cl)-[@{clbr,0}]}
+\makebraces[0pt,15pt]{\!\!\!n}
+\bigskip
+
+Nylon 6:
+\chemfig{\phantom{N}-[@{opbr,1}]{N}(-[2]H)-C(=[2]O)-{(}CH_2{)_5}-[@{clbr,0}]}
+\makebraces[20pt,0pt]{}
+\bigskip
+
+Polycaprolactame:\setatomsep{2em}
+\chemfig{[:-30]-[@{opbr,1}]N(-[6]H)-[:30](=[2]O)--[:30]--[:30]--[@{clbr,0}:30]}
+\makebraces[5pt,5pt]{n}
+
+\setpolymerdelim[]
+Polyphénylène sulfide:
+\chemfig{\vphantom{S}-[@{opbr,1}]S-(**6(---(-[@{clbr,0}])---))}
+\makebraces[15pt,15pt]{}|
+
+\subsection{Dessiner le symétrique d'une molécule}\label{retournement}
+Il existe deux commandes \verb-\hflipnext- et \verb-\vflipnext- qui permettent de tracer le symétrique de la prochaine molécule par rapport à un axe horizontal ou vertical. Si on souhaite construire le symétrique de plusieurs molécules, il faut écrire les commandes avant chaque molécule concernée.
+
+\exemple{Symétriques}/\chemfig{H_3C-C(=[:30]O)-[:-30]OH}% original
+
+\vflipnext% dessine le symétrique vertical de :
+\chemfig{H_3C-C(=[:30]O)-[:-30]OH}\medskip
+
+\chemfig{H_3C-C(=[:30]O)-[:-30]OH}% original
+\hflipnext% dessine le symétrique horizontal de :
+\chemfig{H_3C-C(=[:30]O)-[:-30]OH}/
+
\section{Liste des commandes}
Les commandes créées par \CF sont :
\begin{center}
-\begin{tabular}{>\footnotesize l>\footnotesize p{9cm}}\\\hline
+\begin{longtable}{>\footnotesize l>\footnotesize p{9cm}}\\\hline
\hfill\normalsize Commandes\hfill\null &\hfill\normalsize Description\hfill\null\\\hline
\verb-\chemfig<code>-&dessine la molécule dont le dessin est décrit par le \verb-<code>-\\
\verb-\printatom- & cette macro affiche les atomes dans les molécules. Elle peut être redéfinie pour personnaliser l'affichage, voir~\pageref{perso.affichage}\\
\verb-\setnodestyle{<style tikz>}-& à l'aide de la syntaxe de \TIKZ, cette macro définit le style de nœuds contenant les atomes, voir~\pageref{style.noeuds}\\
+\verb-\hflipnext-&la prochaine molécule sera inversée horizontalement\\
+\verb-\vflipnext-&la prochaine molécule sera inversée verticalement\\
\verb-\definesubmol{<nom>}[code1]{<code2>}- & créé un alias \verb-!<nom>- que l'on peut placer dans le code des molécules à dessiner qui remplace le \verb-<code1>- ou le \verb-<code2>- selon l'inclinaison de la dernière liaison. Voir page~\pageref{definesubmol}\\
\verb-\chemskipalign- & Ignore le groupe d'atomes en cours pour le mécanisme d'alignement vertical. Voir page~\pageref{chemskipalign}.\\
\verb-\redefinesubmol{<nom>}{<code>}- & remplace l'alias déjà existant \verb-!<nom>- par le nouveau \verb-<code>-. Voir page~\pageref{redefinesubmol}\\[2ex]\hline
@@ -1501,7 +1630,7 @@ Les commandes créées par \CF sont :
\verb-\chembelow[<dim>]{<txt1>}{txt2}- & écrit le \verb-{txt1}- et positionne le \verb-<txt2>- au dessous en laissant \verb-<dim>- d'espacement vertical. Cette commande ne change pas la boîte englobante de \verb-<txt1>-. Voir page~\pageref{chemabove}\\
\verb-\chemname[<dim>]{<molécule>}{<nom>}- & Affiche le \verb-<nom>- sous la \verb-<molécule>-\\
\verb-\chemnameinit- & Initialise la plus grande profondeur des molécules rencontrées pour avoir un alignement correct de leurs noms\\\hline
-\end{tabular}
+\end{longtable}
\end{center}
\newpage
@@ -1648,25 +1777,16 @@ $\star\quad\star$
\exemple*{Mécanismes réactionnels de la chloration}/\scriptsize
\setbondoffset{1pt}\setatomsep{2em}
-\chemfig{Cl-[4]@{a0}(=[@{a1}:120]@{a2}O)-[:-120](=[:-60]O)-[4]Cl}
-\chemsign{+}
-\chemfig{*6(-=-=(-@{oh1}OH)-=)}
-\chemrel{-stealth}
+\chemfig{Cl-[4]@{a0}(=[@{a1}:120]@{a2}O)-[:-120](=[:-60]O)-[4]Cl}\chemsign{+}
+\chemfig{*6(-=-=(-@{oh1}OH)-=)}\chemrel{-stealth}
\chemfig{*6((-O-[:150](-[@{o0}:150]@{o1}\lewis{6.,O})(-[@{cl0}:60]@{cl1}Cl)-[:240](-[4]Cl)=[6]O)=-=-=-)}
-\chemrel{-stealth}
-\chemfig{*6((-O-[:150](=[2]O)-[:-150](=[6]O)-[:150]Cl)=-=-=-)}
-\chemsign{+}
-\chemfig{HCl}
-\par
-\chemfig{*6(-=*6(-O-*6(-@{o2}(=[@{o3}]@{o4}O)-Cl)=)-=-=)}
-\chemsign{+}
-\chemfig{*6(-=-=(-@{oh2}OH)-=)}
-\chemrel{-stealth}
+\chemrel{-stealth}\chemfig{*6((-O-[:150](=[2]O)-[:-150](=[6]O)-[:150]Cl)=-=-=-)}\chemsign{+}
+\chemfig{HCl}\par
+\chemfig{*6(-=*6(-O-*6(-@{o2}(=[@{o3}]@{o4}O)-Cl)=)-=-=)}\chemsign{+}
+\chemfig{*6(-=-=(-@{oh2}OH)-=)}\chemrel{-stealth}
\chemfig{*6(-=*6(-O-(-(-[@{cl2}:60]@{cl3}Cl)(-[@{o5}:-120]@{o6}\lewis{6.,O})-O-[::-40]*6(=-=-=-))=)-=-=)}
-\kern-3em \chemrel{-stealth}
-\chemfig{[:30]*6(=-(-O-[:-60](=O)-[:-120](=[4]O)-[:-60]O-*6(=-=-=-))=-=-)}
-\kern-3em \chemsign{+}
-\chemfig{HCl}
+\kern-3em \chemrel{-stealth}\chemfig{[:30]*6(=-(-O-[:-60](=O)-[:-120](=[4]O)-[:-60]O-*6(=-=-=-))=-=-)}
+\kern-3em \chemsign{+}\chemfig{HCl}
\chemmove[line width=0.2pt,-stealth,dash pattern = on 2pt off 1pt]{
\draw[shorten <=2pt](a1)..controls+(200:5mm)and+(200:5mm)..(a2);
\draw[shorten >=2pt](oh1.west)..controls+(180:15mm)and+(60:5mm)..(a0);
@@ -1731,7 +1851,7 @@ $\left[\begin{tabular}{c}
/
\endgroup
-\exemple*{Sulfonation de la naphtalène}/\newcommand\putchemnode[1]{\begin{tikzpicture}[remember picture]\node(##1){};\end{tikzpicture}}
+\exemple*{Sulfonation de la naphtalène}/\newcommand\putchemnode[1]{\begin{tikzpicture}[remember picture]\node(#1){};\end{tikzpicture}}
\definesubmol\cycleoplus{-[,0.25,,,draw=none]\oplus}
\definesubmol{so2oh}{S(=[::90]O)(=[::-90]O)-OH}
\footnotesize
@@ -1773,7 +1893,7 @@ $\left[\begin{tabular}{c}
\exemple*{Cristallographie}/\newcommand\disk{\tikz\draw[fill=black,overlay](0,0)circle(2pt);}
\setatomsep{20pt}
-\renewcommand\printatom[1]{##1}
+\renewcommand\printatom[1]{#1}
\setbondoffset{2pt}
\definesubmol{hat}{-[:40,1.5]\disk-[::-30,2]\disk-[::-30,2]\disk-[::-120,2]\disk-[::-30,2]\disk}
\definesubmol{motif}{-[:40,1.5]\disk(-[2,3])-[::-30,2]\disk