summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-02-15 21:22:35 +0000
committerKarl Berry <karl@freefriends.org>2015-02-15 21:22:35 +0000
commitd42d754b7221848c99e2b317971befc5b99e3f01 (patch)
treebee5777a70b20cb87c41597c498f4d0c3893bb49 /Master
parent0d7717ecf698ce267020b7f955fecfdf936d6fb3 (diff)
chemfig (15feb15)
git-svn-id: svn://tug.org/texlive/trunk@36283 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/generic/chemfig/README6
-rw-r--r--Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.pdfbin1076094 -> 1086903 bytes
-rw-r--r--Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.tex91
-rw-r--r--Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.pdfbin1093633 -> 1102098 bytes
-rw-r--r--Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.tex93
-rw-r--r--Master/texmf-dist/tex/generic/chemfig/chemfig.sty8
-rw-r--r--Master/texmf-dist/tex/generic/chemfig/chemfig.tex338
-rw-r--r--Master/texmf-dist/tex/generic/chemfig/t-chemfig.tex8
8 files changed, 413 insertions, 131 deletions
diff --git a/Master/texmf-dist/doc/generic/chemfig/README b/Master/texmf-dist/doc/generic/chemfig/README
index f186b5d5bc2..439efc47402 100644
--- a/Master/texmf-dist/doc/generic/chemfig/README
+++ b/Master/texmf-dist/doc/generic/chemfig/README
@@ -2,13 +2,13 @@ ___________________________________
The
ChemFig package
- v1.0g
+ v1.1
- 2013/11/28
+ 2015/02/15
___________________________________
Maintainer: Christian Tellechea
-E-mail : unbonpetit@gmail.com
+E-mail : unbonpetit@openmailbox.org
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
diff --git a/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.pdf b/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.pdf
index b3fabd82bd5..25c18c636e7 100644
--- a/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.pdf
+++ b/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.tex b/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.tex
index cba4c5d56ea..cfe76554a30 100644
--- a/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.tex
+++ b/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_en.tex
@@ -3,7 +3,7 @@
% | |
% | Chemfig manual |
% | |
-% | November 28, 2013 |
+% | 15 february 2015 |
% | |
% |__________________________________________________________________|
%
@@ -11,11 +11,11 @@
% documentation. Translation by Theo Hopman & Nikola Castillo
%
% Maintainer: Christian Tellechea
-% E-mail : unbonpetit@gmail.com
+% E-mail : unbonpetit@openmailbox.org
% 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-2013
+% Copyright : Christian Tellechea 2010-2015
%
% The "chemfig" package consists of the 8 following files:
% chemfig.tex (the code of the package)
@@ -306,6 +306,18 @@ Experience shows that is it has been difficult to combine drawing of molecules w
Finally, I wish to warmly thank Theo \textsc{Hopman} and more recently Nikola \textsc{Castillo} for offering to translate this manual into English.
+\section{New in v1.1}
+For those who find it ``ugly\footnote{see \texttt{\detokenize{http://tex.stackexchange.com/questions/161796/ugly-bond-joints-in-chemfig}}}'', it is now possible to join simple bonds with a slightly increased compilation time. The macro \idx\enablebondjoin{} enables this feature and \idx\disablebondjoin{} disables it (better behaviour, set by default).
+
+\exemple{Bond join}/\setbondstyle{line width=3pt}
+\chemfig{-[1]-[7]} and
+\enablebondjoin\chemfig{-[1]-[7]}\disablefixedbondlength/
+
+When a star follows the macro \verb|\ chemfig*|, the bonds have a fixed length and therefore, the distance between center to center atoms becomes variable. The macro \idx\enablefixedbondlength{} makes this behavior valid for all macros (starred or not) while \idx\disablefixedbondlength{} goes back to the default behavior.
+
+\exemple{Fixed length}/\chemfig{Cl-Cl}\par
+\chemfig*{Cl-Cl}/
+
\section{Presenting \protect\CF}
To use this package, start by adding the following code to the preamble:
\begin{itemize}
@@ -340,7 +352,7 @@ there are four groups of atoms: ``$\mathrm{H_3C}$'', ``C'', ``O'' and ``OH''. Fo
Therefore the first group of atoms ``$\mathrm{H_3C}$'' is split into two atoms: $\boxednode{H_3}{}$ and $\boxednode C{}$. In terms of chemistry, of course, these are not real atoms; $\mathrm{H_3}$, for example, consists of three hydrogen atoms. In what follows the word atom refers to \CF's definition. Thus \CF sees the preceding molecule as follows:
\renewcommand*\printatom[1]{\fbox{\ensuremath{\mathrm{#1}}}}
-\molht{H_3C-[,1.75]C(=[:30,1.5]O)(-[:-30,1.5]OH)}}
+\molht{H_3C-C(=[:30]O)(-[:-30]OH)}}
A space is ignored when at the begining of a group of atoms.
@@ -467,8 +479,61 @@ This aspect of the size of atoms becomes particularly acute when the atom involv
It is important to note that the exponent \verb+-+ is \emph{put inside braces}. If this were not done, \CF would stop the atom on this character, which is a bond character. The atom would then be ``\verb-B^-'', which would lead to unexpected results.
-We see in the example above that is it sometimes necessary to increase (or perhaps reduce) the interatomic distance associated with a bond. For this, the optional argument to bonds is actually made up of several comma-separated fields. As we have seen, the first field specifies the angle.
-The second field, if it is not empty, is a coefficient which multiplies the default interatomic distance $\Delta$. Thus, writing \verb+-[,2]+ asks that this bond have the default angle (first field is empty) and that the atoms it connects be separated by twice the default distance\idx*{bond!length}.
+It is possible to change the behavior of \CF about the interatomic spacing. Indeed, when the \verb+\chemfig+ macro is immediately followed by a star, the macro \verb-\setatomsep{<dimension>}-\idx*{\setatomsep} no longer defines the distance between the centers of atoms, denoted $\Delta$, but \emph{length of the bonds}. Consequently, the bonds have fixed lengths while the distance between the centers of the atoms is variable and depends on their size. Here is the diagram on page~\pageref{longueur.liaison} and what becomes with the macro \verb|\ chemfig*|:
+
+\begin{center}
+\begin{tabular}{c@{\kern2cm}c}
+ macro \verb|\chemfig|&macro \verb|\chemfig*|\\[2ex]
+ \begin{tikzpicture}[every node/.style={anchor=base,inner sep=1.5pt,outer sep=0pt,minimum size=0pt},baseline]
+ \node[draw] at(0,0)(aa){\huge A};
+ \node[draw]at(4,0)(bb){\huge B};
+ \path[shorten <=5pt,shorten >=5pt,draw](aa)--(bb)coordinate[pos=0](al) coordinate[pos=1](bl);
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at(al){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at([xshift=5pt]al){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at(bl){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at([xshift=-5pt]bl){};
+ \draw[blue,dash pattern=on 1pt off 1pt](bl)--([yshift=0.7cm]bl);
+ \draw[blue,dash pattern=on 1pt off 1pt]([xshift=-5pt]bl)--([xshift=-5pt,yshift=0.7cm]bl);
+ \draw[<->]([yshift=0.6cm]bl.center)--([xshift=-5pt,yshift=0.6cm]bl.center) node [midway,above,draw=none]{$\delta$};
+ \draw[blue,dash pattern=on 1pt off 1pt](al)--([yshift=0.7cm]al);
+ \draw[blue,dash pattern=on 1pt off 1pt]([xshift=5pt]al)--([xshift=5pt,yshift=0.7cm]al);
+ \draw[<->]([yshift=0.6cm]al.center)--([xshift=5pt,yshift=0.6cm]al.center) node [midway,above,draw=none]{$\delta$};
+ \node[draw,circle,fill,red,minimum size=2pt,inner sep=0pt]at(aa){};
+ \node[draw,circle,fill,red,minimum size=2pt,inner sep=0pt]at(bb){};
+ \draw[<->]([yshift=1cm]aa.center)--([yshift=1cm]bb.center) node [midway,above,draw=none] {$\Delta$} ;
+ \draw[red,dash pattern=on 2pt off2pt](aa.center)--([yshift=1.1cm]aa.center);
+ \draw[red,dash pattern=on 2pt off2pt](bb.center)--([yshift=1.1cm]bb.center);
+ \end{tikzpicture}
+ &
+ \begin{tikzpicture}[every node/.style={anchor=base,inner sep=1.5pt,outer sep=0pt,minimum size=0pt},baseline]
+ \node[draw] at(0,0)(aa){\huge A};
+ \node[draw]at(5,0)(bb){\huge B};
+ \path[shorten <=5pt,shorten >=5pt,draw](aa)--(bb)coordinate[pos=0](al) coordinate[pos=1](bl);
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at(al){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at([xshift=5pt]al){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at(bl){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at([xshift=-5pt]bl){};
+ \draw[blue,dash pattern=on 1pt off 1pt](bl)--([yshift=0.7cm]bl);
+ \draw[blue,dash pattern=on 1pt off 1pt]([xshift=-5pt]bl)--([xshift=-5pt,yshift=0.7cm]bl);
+ \draw[<->]([yshift=0.6cm]bl.center)--([xshift=-5pt,yshift=0.6cm]bl.center) node [midway,above,draw=none]{$\delta$};
+ \draw[blue,dash pattern=on 1pt off 1pt](al)--([yshift=0.7cm]al);
+ \draw[blue,dash pattern=on 1pt off 1pt]([xshift=5pt]al)--([xshift=5pt,yshift=0.7cm]al);
+ \draw[<->]([yshift=0.6cm]al.center)--([xshift=5pt,yshift=0.6cm]al.center) node [midway,above,draw=none]{$\delta$};
+ \draw[<->]([yshift=1cm]al)--([yshift=1cm]bl) node [midway,above,draw=none] {$\Delta$} ;
+ \draw[red,dash pattern=on 2pt off2pt](al)--([yshift=1.1cm]al);
+ \draw[red,dash pattern=on 2pt off2pt](bl)--([yshift=1.1cm]bl);
+ \end{tikzpicture}
+\end{tabular}
+\end{center}
+
+In rings, even with starred \verb|\chemfig*|, the default behaviour is restored in order to draw regular polygons.
+
+\exemple{Fixed length bonds}/\chemfig{Cl-Cl}\par
+\chemfig*{Cl-Cl}/
+
+The macro \idx\enablefixedbondlength{} enables the ``fixed bond length behaviour'', even for non starred \verb|\chemfig| while \idx\disablefixedbondlength{} goes back to the default behaviour (fixed interatomic distance).
+
+Especially with the default behavior, to avoid too short bonds, it is sometimes necessary to increase (or perhaps reduce) the interatomic distance. For this, the optional argument to bonds is actually made up of several comma-separated fields. As we have seen, the first field specifies the angle. The second field, if it is not empty, is a coefficient which multiplies the default interatomic distance $\Delta$. Thus, writing \verb+-[,2]+ asks that this bond have the default angle (first field is empty) and that the atoms it connects be separated by twice the default distance\idx*{bond!length}.
\exemple{Modified bond length}/\chemfig{A^{++}_{2}-[,2]B^{-}_3}\par
\chemfig{A-B-[,2]C=[,0.5]D}\par
\chemfig{-=[,1.5]-[,0.75]=[:-20,2]}/
@@ -1156,6 +1221,8 @@ They are sometimes useful for placing pseudo-exponents\idx*{ring!charge} which d
\label{Chemabove}Les commandes \idx{\Chemabove} et \idx{\Chembelow} fonctionnent de la même façon sauf que la boîte englobante \emph{tient compte} du \verb-<matériel>- placé au dessus ou au dessous.% NOUVEAU
\subsection{Chemical reactions}\idx*{chemical reaction}
+\textbf{warning}: macros in this section are no longer maintained and will be removed in a future version of \CF. Please, prefer a scheme construction with macros \verb|\schemestart| and \verb|\ schemestop| and between these two macros, use \verb|\arrow| and \verb|\+|.\bigskip
+
To write chemical reactions, \CF provides a command for the signs and a command for the arrows.
\label{chemsign}The command \verb-\chemsign[<dim>]<sign>-\idx*{\chemsign} typesets the \verb-<sign>-, which is surrounded on both sides by an unbreakable horizontal space \verb-<dim>- defaulting to 0.5em.
@@ -1851,7 +1918,11 @@ Although this is not clearly seen because of labels overlap, the box around the
\arrow
D
\schemestop/
-Note that since ``\idx\subscheme\verb-{<scheme>}-'' is only a convenient shortcut for \idx\schemestart\verb-<scheme>-\idx\schemestop, it can be used with the same optional arguments as \idx\schemestart.
+Note that since ``\idx\subscheme\verb-{<scheme>}-'' is only a convenient shortcut for
+\begin{center}
+\idx\schemestart\verb-<scheme>-\idx\schemestop
+\end{center}
+Consequently, it can be used with the same optional arguments as \idx\schemestart.
\idx*{reaction scheme!subscheme!delimiter|(}\label{chemleft}\CF provides the \idx{\chemleft} and \idx{\chemright} command pair. These allow to set expandable delimiters on either side of a material. The commands must be followed by delimiters, just like in the case of \TeX{} primitive commands \verb-\left- and \verb-\right-:
\centerverb/\chemleft<car1><material>\chemright<car2>/
@@ -2270,6 +2341,10 @@ The commands created by \CF are:
\begin{longtable}{>\footnotesize l>\footnotesize p{9cm}}\\\hline
\hfill\normalsize Commands\hfill\null &\hfill\normalsize Description\hfill\null\\\hline
\idx\chemfig\verb-<code>-& draws the molecule whose design is described by the \verb-<code>-\\
+\idx\chemfig\verb-*<code>-&same as above but bonds have fixed lengths\\
+\idx\enablefixedbondlength&enable fixed bonds lengths\\
+\idx\disablefixedbondlength&enable fixed interatomic distances\\
+\idx\enablebondjoin{} et \idx\disablebondjoin& enable ou disable simple bonds joining\\
\idx\printatom& displays the atoms within the molecules. It can be redefined to customize the output. See page~\pageref{perso.affichage}\\
\idx\setnodestyle\verb-{<style tikz>}-& using \TIKZ syntax, this macro defines the style of nodes containing the atoms. See page~\pageref{style.noeuds}\\
\idx\setbondestyle\verb-{<style tikz>}-& with the \TIKZ syntax, this macro defines the style of the bonds. See page~\pageref{setbondstyle}\\
@@ -2323,7 +2398,7 @@ This manual concludes with drawings of molecules of varying complexity.
The curious user can look at the \verb-<code>- of each molecule, though it does become less attractive the more complex the molecule gets. Indeed, beyond a certain level of complexity, though it it is fairly easy to write \verb-<code>-, it becomes much harder to read the \verb-<code>- to analyze it afterwards. We quickly reached the limits of immediate readability of the code of a complex drawing.
-Anyway, I hope that this package will help all \LaTeX{} users wishing to draw molecules. Although \CF has been thoroughly tested and although its version number is now greater than 1.0, I hope that you will be forgiving with bugs you encounter and send me an \href{mailto:unbonpetit@gmail.com}{\texttt{\textbf{email}}} to let me know of any malfunctions or suggestions for improvement.
+Anyway, I hope that this package will help all \LaTeX{} users wishing to draw molecules. Although \CF has been thoroughly tested and although its version number is now greater than 1.0, I hope that you will be forgiving with bugs you encounter and send me an \href{mailto:unbonpetit@openmailbox.org}{\texttt{\textbf{email}}} to let me know of any malfunctions or suggestions for improvement.
\hfill Christian \textsc{Tellechea}
\bigskip
diff --git a/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.pdf b/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.pdf
index b602eed4160..0440fc6f117 100644
--- a/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.pdf
+++ b/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.tex b/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.tex
index f51b06b7e60..d940fe8428f 100644
--- a/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.tex
+++ b/Master/texmf-dist/doc/generic/chemfig/chemfig_doc_fr.tex
@@ -3,7 +3,7 @@
% | |
% | Documentation de ChemFig |
% | |
-% | 28 novembre 2013 |
+% | 15 février 2015 |
% | |
% |__________________________________________________________________|
%
@@ -11,11 +11,11 @@
% français de chemfig.
%
% Maintainer: Christian Tellechea
-% E-mail : unbonpetit@gmail.com
+% E-mail : unbonpetit@openmailbox.org
% 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-2013
+% Copyright : Christian Tellechea 2010-2015
%
% L'extension "chemfig" est constituée de ces 8 fichiers :
% chemfig.tex (le code de l'extention)
@@ -306,6 +306,18 @@ L'expérience montre qu'il est toujours difficile d'associer le dessin des molé
Enfin, je tiens à chaleureusement remercier Theo \textsc{Hopman} qui m'a spontanément proposé d'effectuer la traduction de ce manuel en anglais.
+\section{Nouveau dans la v1.1}
+Pour ceux qui trouvent cela « affreux\footnote{Voir \texttt{\detokenize{http://tex.stackexchange.com/questions/161796/ugly-bond-joints-in-chemfig}}} », il est désormais possible de raccorder les liaisons simples entres-elles moyennant un temps de compilation légèrement augmenté. La macro \idx\enablebondjoin{} permet d'activer cette fonctionnalité et \idx\disablebondjoin{} la désactive (comportement préférable qui est celui par défaut).
+
+\exemple{Raccord entre liaisons}/\setbondstyle{line width=3pt}
+\chemfig{-[1]-[7]} et
+\enablebondjoin\chemfig{-[1]-[7]}\disablefixedbondlength/
+
+Lorsqu'une étoile suit la macro \verb|\chemfig*|, les liaisons ont une longueur fixe et par conséquent, les atomes ont des distances de centre à centre qui deviennent variables. La macro \idx\enablefixedbondlength{} rend ce comportement valable pour toutes les macros (étoilées ou pas) et \idx\disablefixedbondlength{} revient au comportement par défaut.
+
+\exemple{Longueur fixe}/\chemfig{Cl-Cl}\par
+\chemfig*{Cl-Cl}/
+
\section{Présentation}
Pour charger \CF, il faut écrire :
\begin{itemize}
@@ -340,7 +352,7 @@ on compte 4 groupes d'atomes : ``$\mathrm{H_3C}$'', ``C'', ``O'' et ``OH''. Pour
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 :
\renewcommand*\printatom[1]{\fbox{\ensuremath{\mathrm{#1}}}}
-\molht{H_3C-[,1.75]C(=[:30,1.5]O)(-[:-30,1.5]OH)}}
+\molht{H_3C-C(=[:30]O)(-[:-30]OH)}}
Un espace est ignoré s'il est au début d'un groupe d'atomes.
@@ -465,10 +477,63 @@ On peut ``casser'' un enchaînement d'angles relatifs en mettant un angle absolu
Cet aspect de l'encombrement des atomes se fait particulièrement sentir lorsqu'ils comportent les exposants ou des indices. Dans cet exemple, la liaison est bien plus courte, au point de se confondre avec un signe mathématique $-$ :
\exemple{Liaison trop courte}|\chemfig{A^{++}_{2}-B^{-}_3}|
-Il est important de remarquer que l'exposant \verb+-+ est \emph{mis entre accolades}. En effet si ce n'était pas le cas, \CF stopperait l'atome sur ce caractère qui est un caractère de liaison. L'atome serait donc ``\verb-B^-'', ce qui conduirait à des résultats inattendus.
+Il est important de remarquer que l'exposant «\verb+-+» est \emph{mis entre accolades}. En effet si ce n'était pas le cas, \CF stopperait l'atome sur ce caractère qui est un caractère de liaison. L'atome serait donc ``\verb-B^-'', ce qui conduirait à des résultats inattendus.
+
+Il est possible de changer le comportement de \CF quant à l'espace interatome. En effet, lorsque la commande \verb+\chemfig+ est immédiatement suivie d'une étoile, la macro \verb-\setatomsep{<dimension>}-\idx*{\setatomsep} ne spécifie plus la distance entre les centres des atomes, notée $\Delta$, mais \emph{la longueur des liaisons}. Dès lors, les liaisons ont des longueurs fixes tandis que la distance entre les centres des atomes devient variable et dépend de leur encombrement. Voici le schéma de la page~\pageref{longueur.liaison} et ce qu'il devient avec la macro \verb|\chemfig*| :
-On voit sur l'exemple ci-dessus qu'il est donc nécessaire de pouvoir augmenter (ou parfois réduire) la distance interatome par l'intermédiaire de leur liaison. Pour cela, l'argument optionnel des liaisons est en réalité constitué de plusieurs champs séparés par des virgules. Comme on l'a vu, le premier champ spécifie l'angle.
-Le deuxième champ, s'il est non vide, est un coefficient qui multipliera la distance interatome $\Delta$ par défaut. Ainsi, écrire \verb+-[,2]+ demandera à ce que cette liaison ait l'angle par défaut (1\ier{} champ vide) et que les atomes qu'elle relie soit espacés d'une distance double de celle par défaut.\idx*{liaison!longueur}
+\begin{center}
+\begin{tabular}{c@{\kern2cm}c}
+ macro \verb|\chemfig|&macro \verb|\chemfig*|\\[2ex]
+ \begin{tikzpicture}[every node/.style={anchor=base,inner sep=1.5pt,outer sep=0pt,minimum size=0pt},baseline]
+ \node[draw] at(0,0)(aa){\huge A};
+ \node[draw]at(4,0)(bb){\huge B};
+ \path[shorten <=5pt,shorten >=5pt,draw](aa)--(bb)coordinate[pos=0](al) coordinate[pos=1](bl);
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at(al){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at([xshift=5pt]al){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at(bl){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at([xshift=-5pt]bl){};
+ \draw[blue,dash pattern=on 1pt off 1pt](bl)--([yshift=0.7cm]bl);
+ \draw[blue,dash pattern=on 1pt off 1pt]([xshift=-5pt]bl)--([xshift=-5pt,yshift=0.7cm]bl);
+ \draw[<->]([yshift=0.6cm]bl.center)--([xshift=-5pt,yshift=0.6cm]bl.center) node [midway,above,draw=none]{$\delta$};
+ \draw[blue,dash pattern=on 1pt off 1pt](al)--([yshift=0.7cm]al);
+ \draw[blue,dash pattern=on 1pt off 1pt]([xshift=5pt]al)--([xshift=5pt,yshift=0.7cm]al);
+ \draw[<->]([yshift=0.6cm]al.center)--([xshift=5pt,yshift=0.6cm]al.center) node [midway,above,draw=none]{$\delta$};
+ \node[draw,circle,fill,red,minimum size=2pt,inner sep=0pt]at(aa){};
+ \node[draw,circle,fill,red,minimum size=2pt,inner sep=0pt]at(bb){};
+ \draw[<->]([yshift=1cm]aa.center)--([yshift=1cm]bb.center) node [midway,above,draw=none] {$\Delta$} ;
+ \draw[red,dash pattern=on 2pt off2pt](aa.center)--([yshift=1.1cm]aa.center);
+ \draw[red,dash pattern=on 2pt off2pt](bb.center)--([yshift=1.1cm]bb.center);
+ \end{tikzpicture}
+ &
+ \begin{tikzpicture}[every node/.style={anchor=base,inner sep=1.5pt,outer sep=0pt,minimum size=0pt},baseline]
+ \node[draw] at(0,0)(aa){\huge A};
+ \node[draw]at(5,0)(bb){\huge B};
+ \path[shorten <=5pt,shorten >=5pt,draw](aa)--(bb)coordinate[pos=0](al) coordinate[pos=1](bl);
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at(al){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at([xshift=5pt]al){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at(bl){};
+ \node[draw,circle,fill,blue,minimum size=1.5pt,inner sep=0pt]at([xshift=-5pt]bl){};
+ \draw[blue,dash pattern=on 1pt off 1pt](bl)--([yshift=0.7cm]bl);
+ \draw[blue,dash pattern=on 1pt off 1pt]([xshift=-5pt]bl)--([xshift=-5pt,yshift=0.7cm]bl);
+ \draw[<->]([yshift=0.6cm]bl.center)--([xshift=-5pt,yshift=0.6cm]bl.center) node [midway,above,draw=none]{$\delta$};
+ \draw[blue,dash pattern=on 1pt off 1pt](al)--([yshift=0.7cm]al);
+ \draw[blue,dash pattern=on 1pt off 1pt]([xshift=5pt]al)--([xshift=5pt,yshift=0.7cm]al);
+ \draw[<->]([yshift=0.6cm]al.center)--([xshift=5pt,yshift=0.6cm]al.center) node [midway,above,draw=none]{$\delta$};
+ \draw[<->]([yshift=1cm]al)--([yshift=1cm]bl) node [midway,above,draw=none] {$\Delta$} ;
+ \draw[red,dash pattern=on 2pt off2pt](al)--([yshift=1.1cm]al);
+ \draw[red,dash pattern=on 2pt off2pt](bl)--([yshift=1.1cm]bl);
+ \end{tikzpicture}
+\end{tabular}
+\end{center}
+
+Afin que les cycles soient des polygones réguliers, le comportement par défaut est rétabli, même si la macro \verb|\chemfig| est étoilée.
+
+\exemple{Liaisons de longueur fixe}/\chemfig{Cl-Cl}\par
+\chemfig*{Cl-Cl}/
+
+Si l'on souhaite que le comportement des macros étoilées devienne celui par défaut, on peut appeler la macro \idx\enablefixedbondlength. La macro \idx\disablefixedbondlength{} redonne aux liaisons des longueurs variables.
+
+Notamment lorsque le comportement par défaut est en vigueur et pour se prémunir de liaisons trop courtes, il est parfois nécessaire de pouvoir augmenter (ou parfois réduire) la distance interatome. Pour cela, l'argument optionnel des liaisons est en réalité constitué de plusieurs champs séparés par des virgules. Comme on l'a vu, le premier champ spécifie l'angle. Le deuxième champ, s'il est non vide, est un coefficient qui multipliera la distance interatome $\Delta$ par défaut. Ainsi, écrire \verb+-[,2]+ demandera à ce que cette liaison ait l'angle par défaut (1\ier{} champ vide) et que les atomes qu'elle relie soit espacés d'une distance double de celle par défaut.\idx*{liaison!longueur}
\exemple{Longueur de liaison modifiée}/\chemfig{A^{++}_{2}-[,2]B^{-}_3}\par
\chemfig{A-B-[,2]C=[,0.5]D}\par
\chemfig{-=[,1.5]-[,0.75]=[:-20,2]}/
@@ -1156,6 +1221,8 @@ Elles sont parfois utiles pour placer des pseudo exposants tenant lieu de charge
Les commandes \idx{\Chemabove} et \idx{\Chembelow} fonctionnent de la même façon sauf que la boîte englobante \emph{tient compte} du \verb-<matériel>- placé au dessus ou au dessous.
\subsection{Réactions chimiques}\idx*{reaction chimique@réaction chimique}
+\textbf{Avertissement} : les macros présentées dans cette section ne sont plus maintenues et seront supprimées dans une future version de \CF. Il est conseillé de construire des schémas réactionnels avec les macros \verb|\schemestart| et \verb|\schemestop| et entre ces deux balises, d'utiliser les macros \verb|\arrow| et \verb|\+|.\bigskip
+
Pour écrire des réactions chimiques, \CF fournit une commande pour les signes et une commande pour les flèches.
\label{chemsign}La commande \verb-\chemsign[<dim>]<signe>-\idx*{\chemsign} écrit le \verb-<signe>-, celui-ci étant entouré de part et d'autre d'un espacement horizontal insécable \verb-<dim>- qui vaut 0.5em par défaut.
@@ -1851,7 +1918,11 @@ Bien que ça ne soit pas clair car les noms se superposent, la boîte contenant
\arrow
D
\schemestop/
-Il faut noter que la commande \idx\subscheme\verb-{<scheme>}- n'étant rien d'autre qu'un raccourci pratique pour \idx\schemestart\verb-<scheme>-\idx\schemestop, elle admet les mêmes arguments optionnels que \idx\schemestart.
+Il faut noter que la commande \idx\subscheme\verb-{<scheme>}- n'étant rien d'autre qu'un raccourci pratique pour
+\begin{center}
+\idx\schemestart\verb-<scheme>-\idx\schemestop
+\end{center}
+Par conséquent, \idx\subscheme{} admet les mêmes arguments optionnels que \idx\schemestart.
\idx*{schéma réactionnel!sous schéma!délimiteur|(}\label{chemleft}\CF fournit la paire de commandes \idx{\chemleft} et \idx{\chemright} qui permettent de placer des délimiteurs extensibles de part et d'autre d'un matériel. Ces commandes doivent être suivies de délimiteurs, tout comme on en mettrait à la suite des primitives de \TeX{} \verb-\left- et \verb-\right- :
\centerverb/\chemleft<car1><matériel>\chemright<car2>/
@@ -2270,6 +2341,10 @@ Les commandes créées par \CF sont :
\begin{longtable}{>\footnotesize l>\footnotesize p{9cm}}\\\hline
\hfill\normalsize Commandes\hfill\null &\hfill\normalsize Description\hfill\null\\\hline
\idx\chemfig\verb-<code>-&dessine la molécule dont le dessin est décrit par le \verb-<code>-\\
+\idx\chemfig\verb-*<code>-&comme ci-dessus, mais les liaisons ont des longueurs fixes\\
+\idx\enablefixedbondlength&les molécules ont des liaisons de longueurs égales\\
+\idx\disablefixedbondlength&les molécules ont des espaces interatomes égaux\\
+\idx\enablebondjoin{} et \idx\disablebondjoin& active ou désactive le raccord entre les liaisons simples\\
\idx\printatom & cette macro affiche les atomes dans les molécules. Elle peut être redéfinie pour personnaliser l'affichage, voir page~\pageref{perso.affichage}\\
\idx\setnodestyle\verb-{<style tikz>}-& à l'aide de la syntaxe de \TIKZ, cette macro définit le style de nœuds contenant les atomes, voir page~\pageref{style.noeuds}\\
\idx\setbondestyle\verb-{<style tikz>}-& à l'aide de la syntaxe de \TIKZ, cette macro définit le style des liaisons voir page~\pageref{setbondstyle}\\
@@ -2323,7 +2398,7 @@ Ce manuel s'achève avec des dessins de molécules plus ou moins complexes.
L'utilisateur curieux pourra s'intéresser au \verb-<code>- de chaque molécule, bien que celui-ci devienne parfois rebutant lorsqu'elles deviennent complexes. En effet, au delà d'un certain niveau de complexité, bien qu'il soit est assez facile d'écrire un \verb-<code>- pour dessiner une molécule, il est assez ardu de relire ce \verb-<code>- pour l'analyser a posteriori. On atteint rapidement les limites de la lisibilité immédiate du code d'un dessin complexe.
-Quoi qu'il en soit, j'espère que cette extension aidera tous les utilisateurs de \LaTeX{} qui souhaitent dessiner des molécules chimiques. Bien que \CF ait été testé de façon approfondie et que le numéro de version soit supérieur à 1.0, j'espère que vous serez indulgent quant aux bugs rencontrés. Un \href{mailto:unbonpetit@gmail.com}{\texttt{\textbf{email}}} pour me signaler tout dysfonctionnement ou toute proposition d'amélioration sera bienvenu.\nobreak
+Quoi qu'il en soit, j'espère que cette extension aidera tous les utilisateurs de \LaTeX{} qui souhaitent dessiner des molécules chimiques. Bien que \CF ait été testé de façon approfondie et que le numéro de version soit supérieur à 1.0, j'espère que vous serez indulgent quant aux bugs rencontrés. Un \href{mailto:unbonpetit@openmailbox.org}{\texttt{\textbf{email}}} pour me signaler tout dysfonctionnement ou toute proposition d'amélioration sera bienvenu.\nobreak
\hfill Christian \textsc{Tellechea}
\bigskip
diff --git a/Master/texmf-dist/tex/generic/chemfig/chemfig.sty b/Master/texmf-dist/tex/generic/chemfig/chemfig.sty
index 7fa40b6993a..8afac04a939 100644
--- a/Master/texmf-dist/tex/generic/chemfig/chemfig.sty
+++ b/Master/texmf-dist/tex/generic/chemfig/chemfig.sty
@@ -1,20 +1,20 @@
% __________________________________________________________________
% | |
% | |
-% | chemfig v1.0h |
+% | chemfig v1.1 |
% | |
-% | November 28, 2013 |
+% | 15 february 2015 |
% | |
% |__________________________________________________________________|
%
% This is t-chemfig.tex, the package file for conTeXt.
%
% Maintainer: Christian Tellechea
-% E-mail : unbonpetit@gmail.com
+% E-mail : unbonpetit@openmailbox.org
% 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-2012
+% Copyright : Christian Tellechea 2010-2015
%
% The "chemfig" package consists of the 8 following files:
% chemfig.tex (the code of the package)
diff --git a/Master/texmf-dist/tex/generic/chemfig/chemfig.tex b/Master/texmf-dist/tex/generic/chemfig/chemfig.tex
index 4612414d9b9..a97657cdc9e 100644
--- a/Master/texmf-dist/tex/generic/chemfig/chemfig.tex
+++ b/Master/texmf-dist/tex/generic/chemfig/chemfig.tex
@@ -1,28 +1,28 @@
% __________________________________________________________________
% | |
% | |
-% | chemfig v1.0h |
+% | chemfig v1.1 |
% | |
-% | November 28, 2013 |
+% | 15 february 2015 |
% | |
% |__________________________________________________________________|
%
% This is chemfig.tex, the code of the "chemfig" package.
%
% Maintainer: Christian Tellechea
-% E-mail : unbonpetit@gmail.com
+% E-mail : unbonpetit@openmailbox.org
% 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-2013
+% Copyright : Christian Tellechea 2010-2015
%
% The "chemfig" package consists of the 8 following files:
-% chemfig.tex (this file)
-% chemfig.sty (the package file for LaTeX)
-% t-chemfig.tex (the package file for conTeXt)
-% README
-% chemfig_doc_en.tex, chemfig_doc_en.pdf (english manual)
-% chemfig_doc_fr.tex, chemfig_doc_fr.pdf (manual in french)
+% - chemfig.tex (this file)
+% - chemfig.sty (the package file for LaTeX)
+% - t-chemfig.tex (the package file for conTeXt)
+% - README
+% - chemfig_doc_en.tex, chemfig_doc_en.pdf (english manual)
+% - chemfig_doc_fr.tex, chemfig_doc_fr.pdf (manual in french)
%
% --------------------------------------------------------------------
% This work may be distributed and/or modified under the
@@ -40,32 +40,34 @@
% The Current Maintainer of this work is Christian Tellechea
% --------------------------------------------------------------------
-% Sauvegarde tous les catcodes des caract\`eres sp\'eciaux sauf #
-\begingroup
- \def\X#1{\catcode\number`#1=\number\catcode`#1\relax}
- \expandafter\xdef\csname CF@savedcatcode\endcsname{%
- \X\[\X\]\X\:\X\(\X\)\X\,\X\-\X\=\X\~\X\!\X\?\X\<\X\>\X\;\X\*\X\|\X\@\X\ %
- }
-\endgroup
+\def\usechemfigcatcode{%
+ \begingroup
+ \def\X##1{\catcode\number`##1=\number\catcode`##1\relax}
+ \xdef\chemfigrestorecatcode{%
+ \X\[\X\]\X\:\X\(\X\)\X\,\X\-\X\=\X\~\X\!\X\?\X\<\X\>\X\;\X\*\X\|\X\@\X\
+ \let\noexpand\chemfigrestorecatcode\relax
+ }%
+ \endgroup
+ \catcode`\[12 \catcode`\]12 \catcode`\:12 \catcode`\(12
+ \catcode`\)12 \catcode`\,12 \catcode`\-12 \catcode`\=12
+ \catcode`\~12 \catcode`\!12 \catcode`\?12 \catcode`\<12
+ \catcode`\>12 \catcode`\;12 \catcode`\*12 \catcode`\|12
+ \catcode`\@11 \catcode`\#6 \catcode`\ 10
+}
-% Pour la dur\'ee de lecture du package, changer les catcodes :
-\catcode`\[12 \catcode`\]12 \catcode`\:12 \catcode`\(12
-\catcode`\)12 \catcode`\,12 \catcode`\-12 \catcode`\=12
-\catcode`\~12 \catcode`\!12 \catcode`\?12 \catcode`\<12
-\catcode`\>12 \catcode`\;12 \catcode`\*12 \catcode`\|12
-\catcode`\@11 \catcode`\#6 \catcode`\ 10
+\usechemfigcatcode
% V\'erifie que eTeX est le moteur utilis\'e
\begingroup
-\edef\CF@ver{\meaning\eTeXversion}
-\edef\CF@date{\string\eTeXversion}
-\ifx\CF@ver\CF@date
- \endgroup
-\else
- \endgroup
- \errmessage{Package chemfig Error: you are not using the eTeX engine, chemfig cannot work and is not loaded.}%
- \expandafter\endinput
-\fi
+ \edef\CF@ver{\meaning\eTeXversion}
+ \edef\CF@date{\string\eTeXversion}
+ \ifx\CF@ver\CF@date
+ \endgroup
+ \else
+ \endgroup
+ \errmessage{Package chemfig Error: you are not using the eTeX engine, chemfig cannot work and is not loaded.}%
+ \expandafter\endinput
+ \fi
\def\CF@def#1{%
\ifdefined#1%
@@ -74,10 +76,10 @@
\def#1%
}
-\CF@def\CF@ver {1.0h}
-\CF@def\CF@date {2013/11/28}
-\CF@def\CF@fr@date {28 novembre 2013}
-\CF@def\CF@en@date {November 28, 2013}
+\CF@def\CF@ver {1.1}
+\CF@def\CF@date {2015/02/15}
+\CF@def\CF@fr@date {15 f\'evrier 2015}
+\CF@def\CF@en@date {15 february 2015}
\CF@def\CF@package@name{chemfig}
\expandafter\ifx\csname @latexerr\endcsname\relax% on n'utilise pas LaTeX ?
@@ -120,6 +122,8 @@
\CF@def\printatom#1{\ensuremath{\mathrm{#1}}}% \printatom pour LaTeX.
\fi
+\CF@def\CF@ifx#1#2{\ifx#1#2\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
+
\newcount\CF@cnt@atomingroup
\newcount\CF@cnt@groupnumber
\newcount\CF@cnt@atomnumber
@@ -129,6 +133,11 @@
\newif\ifCF@cyclearc
\newif\ifCF@definesubmol
\newif\ifCF@name@dp@adjust
+\newif\ifCF@macrofixedbondlength
+\newif\ifCF@globalfixedbondlength
+\def\enablefixedbondlength{\global\CF@globalfixedbondlengthtrue}
+\def\disablefixedbondlength{\global\CF@globalfixedbondlengthfalse}
+\disablefixedbondlength
\newdimen\CF@dim
@@ -265,7 +274,7 @@
\CF@def\CF@after@integer#1\relax{%
\endgroup
- \ifx\@empty#1\@empty\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ \CF@ifx{\@empty#1}\@empty
}
\CF@def\CF@swap@fi#1\fi{\fi#1}
@@ -311,7 +320,7 @@
\CF@def\CF@if@firsttokmatch#1#2{% est ce que #1 et #2 commencent par les m\^emes tokens ?
\futurelet\CF@toks@a\CF@gobble@tonil#1\relax\@nil
\futurelet\CF@toks@b\CF@gobble@tonil#2\relax\@nil
- \ifx\CF@toks@a\CF@toks@b\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ \CF@ifx\CF@toks@a\CF@toks@b
}
\CF@def\CF@if@firsttokin#1{% teste si le token qui commence #1 appartient aux tokens mis dans #2
@@ -353,11 +362,11 @@
\let#3\@empty
\else
\futurelet\CF@toks@a\CF@gobble@tonil#1\relax\@nil
- \ifx\CF@toks@a\@sptoken\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ \CF@ifx\CF@toks@a\@sptoken
{\CF@add@tocs#2{ }%
\CF@swap@fi\expandafter\CF@seek@node@i\expandafter{\CF@after@space#1\@nil}#2#3%
}%
- {\ifx\CF@toks@a\bgroup\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\CF@ifx\CF@toks@a\bgroup
{\CF@expadd@tocs#2{\expandafter{\@car#1\@nil}}%
\CF@swap@fi\expandafter\CF@seek@node@i\expandafter{\@gobble#1}#2#3%
}%
@@ -373,7 +382,7 @@
% on sait que #1 commence par -,=,~,<,>. On analyse cette liaison
% #2 reçoit le type de liaisons (1 pour -, 2 pour =, 3 pour ~)
-\CF@def\CF@bond@findnum#1#2{%
+\CF@def\CF@bond@findcode#1#2{%
\futurelet\CF@toks@a\CF@gobble@tonil#1\@nil
\edef#2{%
\ifx-\CF@toks@a1%
@@ -418,7 +427,7 @@
}
\CF@def\CF@analyse@bond#1#2{%
- \CF@bond@findnum{#1}#2%
+ \CF@bond@findcode{#1}#2%
\expandafter\def\expandafter\CF@remain@afterbond\expandafter{\@gobble#1}%mange le premier signe de la liaison
\let\CF@doublebond@type\z@
\ifnum#2=\tw@% si c'est une double liaison, regarde s'il y a un + ou - derri\`ere
@@ -454,6 +463,7 @@
}%
\ifCF@incycle
\pgfmathparse{360/\CF@cycle@num+\CF@initcycle@angle}%
+ \let\CF@cycle@increment@angle\pgfmathresult
\edef\CF@current@stringangle{::+\pgfmathresult}%
\def\CF@initcycle@angle{0}%
\let\CF@current@length\CF@default@length% et on ignore la longueur de liaison sp\'ecifi\'ee
@@ -534,6 +544,7 @@
}
\CF@def\CF@seek@submol{%
+ \expandafter\def\expandafter\CF@remain@molecule\expandafter{\romannumeral-`\.\expandafter\noexpand\CF@remain@molecule}%
\expandafter\CF@if@firsttokmatch\expandafter{\CF@remain@molecule}!%
{\expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter
\CF@remain@molecule\expandafter\expandafter\expandafter{\expandafter\@gobble\CF@remain@molecule}% enl\`eve le ``!''
@@ -553,11 +564,13 @@
\expandafter\def\expandafter#1\expandafter{\expandafter{\expandafter}#1}%
}
-\CF@def\chemfig{\@testopt\CF@chemfig@i{}}
+\CF@def\chemfig{\@ifstar{\CF@macrofixedbondlengthtrue\chemfig@i}{\CF@macrofixedbondlengthfalse\chemfig@i}}
-\CF@def\CF@chemfig@i[#1]{\@testopt{\CF@chemfig@ii[#1]}{}}
+\CF@def\chemfig@i{\ifCF@globalfixedbondlength\CF@macrofixedbondlengthtrue\fi\@testopt\CF@chemfig@ii{}}
-\CF@def\CF@chemfig@ii[#1][#2]{%
+\CF@def\CF@chemfig@ii[#1]{\@testopt{\CF@chemfig@iii[#1]}{}}
+
+\CF@def\CF@chemfig@iii[#1][#2]{%
\edef\CF@tmp@str{[remember picture,every node/.style={anchor=base,inner sep=\z@,outer sep=\z@,minimum size=\z@\ifx\@empty#2\@empty\else,#2\fi},baseline\ifx\@empty#1\@empty\else,#1\fi]}%
\expandafter\tikzpicture\CF@tmp@str
\begingroup
@@ -577,19 +590,22 @@
\let\CF@default@fromatom\@empty% numero de l'atome d'o\`u partent les liaisons par d\'efaut
\let\CF@default@toatom\@empty% num\'ero de l'atome o\`u arrivent les laisons par d\'efaut
\let\CF@default@tikz\@empty
+ \let\CF@previous@bondangle\empty
+ \let\CF@joinbond\z@
+ \let\CF@previous@tikz\empty
\everyeof{\@nil}\endlinechar\m@ne
\CF@sanitize@catcode
- \CF@chemfig@iii
+ \CF@chemfig@iv
}
-\CF@def\CF@chemfig@iii#1{%
+\CF@def\CF@chemfig@iv#1{%
\expandafter\assign@tonil\expandafter\CF@remain@molecule\scantokens{#1}%
- \expandafter\CF@chemfig@iv\expandafter{\CF@remain@molecule}%
+ \expandafter\CF@chemfig@v\expandafter{\CF@remain@molecule}%
\endtikzpicture
\let\CF@split@state\z@
}
-\CF@def\CF@chemfig@iv#1{% #1 est le code de la mol\'ecule
+\CF@def\CF@chemfig@v#1{% #1 est le code de la mol\'ecule
\ifnum\CF@last@action=\thr@@
\ifCF@incycle
\def\CF@default@angle{0}%
@@ -645,11 +661,11 @@
{\CF@insert@emptygroup\CF@remain@molecule}%
\relax
\fi
- \CF@chemfig@v
+ \CF@chemfig@vi
}
-\CF@def\CF@chemfig@v{%
- \let\CF@next@action\CF@chemfig@v% \`a priori, on reboucle
+\CF@def\CF@chemfig@vi{%
+ \let\CF@next@action\CF@chemfig@vi% \`a priori, on reboucle
\ifx\CF@remain@molecule\@empty
\let\CF@next@action\endgroup
\else
@@ -677,6 +693,10 @@
\ifnum\CF@cnt@cycle=\CF@cycle@num\relax
\expandafter\expandafter\expandafter\@firstoftwo
\else
+ \ifnum\CF@cnt@cycle=\@ne
+ \let\CF@cycle@firsttikz\CF@current@tikz
+ \unless\ifx\CF@start@offset\@empty\let\CF@cycle@joinlast\z@\fi
+ \fi
\expandafter\expandafter\expandafter\@secondoftwo
\fi
\else
@@ -685,7 +705,7 @@
{\let\CF@next@action\endgroup
\CF@draw@bond\CF@bond@type{\CF@bond@outnode}{\CF@hook@cycle}\CF@previous@atomgroup\CF@hook@atomgroup
}%
- {\node[at=(\CF@bond@outnode),shift=(\ifcase\CF@split@state\or180-\or-\fi\CF@current@angle:\CF@current@length*\CF@atom@sep)](CF@node){};
+ {\node[at=(\CF@bond@outnode\ifCF@incycle\else\ifCF@macrofixedbondlength.\CF@current@angle\fi\fi),shift=(\ifcase\CF@split@state\or180-\or-\fi\CF@current@angle:\CF@current@length*\CF@atom@sep)](CF@node){};
\let\CF@previous@angle\CF@current@angle
\let\CF@last@action\tw@
}%
@@ -696,7 +716,7 @@
\fi
}%
{\edef\CF@bond@outnode{\CF@bond@outnode}% \'evalue le l'atome de d\'epart de liaison
- \ifx(\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi% une parenth\`ese pour commencer ?
+ \CF@ifx(\CF@toks@a% une parenth\`ese pour commencer ?
{\ifnum\CF@last@action=\tw@% il y avait une liaison juste avant ?
\CF@insert@emptygroup\CF@remain@molecule
\else
@@ -704,14 +724,14 @@
\begingroup
\ifCF@incycle\let\CF@last@action\thr@@\fi% on \'etait dans un cycle
\CF@incyclefalse
- \aftergroup\CF@chemfig@v
- \def\CF@next@action{\expandafter\CF@chemfig@iv\expandafter{\CF@sub@mol}}%
+ \aftergroup\CF@chemfig@vi
+ \def\CF@next@action{\expandafter\CF@chemfig@v\expandafter{\CF@sub@mol}}%
\fi
}%
{\ifx\CF@remain@molecule\@empty
\let\CF@next@action\endgroup
\else% ce qui reste apr\`es le noeud courant n'est pas vide, ne commence pas par "-=~", ni par une parenth\`ese
- \ifx*\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi% un cycle ?
+ \CF@ifx*\CF@toks@a% un cycle ?
{\ifnum\CF@last@action=\tw@
\CF@insert@emptygroup\CF@remain@molecule% ins\`ere un groupe vide
\else
@@ -734,6 +754,11 @@
\CF@cnt@cycle\z@
\edef\CF@hook@cycle{\CF@bond@outnode}%
\let\CF@hook@atomgroup\CF@previous@atomgroup
+ \ifx\CF@hook@atomgroup\CF@empty@node
+ \let\CF@cycle@joinlast\@ne% joindre le dernier
+ \else
+ \let\CF@cycle@joinlast\z@
+ \fi
\CF@incycletrue
\ifnum\CF@last@action=\thr@@
\pgfmathparse{360/\CF@lastcycle@num-180}% c'est un cycle dans un cycle
@@ -741,8 +766,8 @@
\pgfmathparse{-180/\CF@cycle@num-90+\CF@cycle@anglecorrection}%
\fi
\let\CF@initcycle@angle\pgfmathresult
- \aftergroup\CF@chemfig@v
- \def\CF@next@action{\expandafter\CF@chemfig@iv\expandafter{\CF@sub@mol}}%
+ \aftergroup\CF@chemfig@vi
+ \def\CF@next@action{\expandafter\CF@chemfig@v\expandafter{\CF@sub@mol}}%
\fi
}%
{\errmessage{Package \CF@package@name\space Error: something went wrong here: \detokenize\expandafter{\CF@remain@molecule}^^JIf you think it's a bug, please, send a Minimal Example to the author.}}%
@@ -847,14 +872,14 @@
\pgfmathparse{\CF@start@offset/\CF@len@vector}\let\CF@start@coeff\pgfmathresult
\pgfmathparse{1-\CF@end@offset/\CF@len@vector}\let\CF@end@coeff\pgfmathresult
\path(#2@)--(#3@)coordinate[pos=\CF@start@coeff](#2@@)coordinate[pos=\CF@end@coeff](#3@@);%
- \unless\ifx\CF@movebond@name\@empty% on doit poser un nœud sur la liaison
+ \unless\ifx\CF@movebond@name\@empty% on doit poser un noeud sur la liaison
\path(#2@@)--(#3@@)coordinate[overlay,pos=\CF@movebond@coeff](\CF@movebond@name);
\let\CF@movebond@name\@empty
\fi
\ifcase#1\relax
\errmessage{Package \CF@package@name\space Error: unknown bond type, this error should not occur^^JIf you think it's a bug, send a Minimal Example to the author}%
\or% 1 = liaison simple
- \CF@draw@bond@i(#2@@)--(#3@@);
+ \CF@draw@axisbond{#2}{#3}% trace la liaison simple dans l'axe
\or% 2 = liaison double
\ifCF@incycle
\ifnum\CF@doublebond@type=\z@
@@ -870,9 +895,10 @@
\CF@create@normnodes{#2@@}{#3@@}{\CF@double@sep/2}{\CF@double@sep/2}%
\CF@draw@bond@i(#2@@1)--(#3@@1);
\CF@draw@bond@i(#2@@2)--(#3@@2);
+ \let\CF@joinbond\z@
\or
\CF@create@normnodes{#2@@}{#3@@}\CF@double@sep\CF@double@sep
- \CF@draw@bond@i(#2@@)--(#3@@);
+ \CF@draw@axisbond{#2}{#3}% trace la liaison simple dans l'axe\CF@draw@bond@i(#2@@)--(#3@@);
\begingroup% ajuste \'eventuellement les longueurs des liaisons doubles
\ifCF@incycle
\ifdim\CF@start@offset=\z@
@@ -886,7 +912,7 @@
\endgroup
\or
\CF@create@normnodes{#2@@}{#3@@}\CF@double@sep\CF@double@sep
- \CF@draw@bond@i(#2@@)--(#3@@);
+ \CF@draw@axisbond{#2}{#3}% trace la liaison simple dans l'axe\CF@draw@bond@i(#2@@)--(#3@@);
\begingroup% ajuste \'eventuellement les longueurs des liaisons doubles
\ifCF@incycle
\ifdim\CF@start@offset=\z@
@@ -901,40 +927,131 @@
\fi
\or% 3 = liaison triple
\CF@create@normnodes{#2@@}{#3@@}\CF@double@sep\CF@double@sep
- \CF@draw@bond@i(#2@@)--(#3@@);
+ \CF@draw@axisbond{#2}{#3}% trace la liaison simple dans l'axe\CF@draw@bond@i(#2@@)--(#3@@);
\CF@draw@bond@i(#2@@1)--(#3@@1);
\CF@draw@bond@i(#2@@2)--(#3@@2);
\or% 4 = liaison Cram pleine de #2 vers #3
\CF@create@normnodes{#2@@}{#3@@}{\CF@cram@basewidth/2}{}%
\expandafter\filldraw\expandafter[\CF@current@bondstyle,line join=bevel](#2@@1)--(#2@@2)--(#3@@)--(#2@@1);
+ \let\CF@joinbond\z@
\or% 5 = liaison Cram creuse de #3 vers #2
\CF@create@normnodes{#3@@}{#2@@}{\CF@cram@basewidth/2}{}%
\expandafter\filldraw\expandafter[\CF@current@bondstyle,line join=bevel](#3@@1)--(#3@@2)--(#2@@)--(#3@@1);
+ \let\CF@joinbond\z@
\or% 6 = liaison Cram pointill\'ee de #2 vers #3
\scope
\CF@create@normnodes{#2@@}{#3@@}{\CF@cram@basewidth/2}{}%
\clip(#2@@1)--(#2@@2)--(#3@@)--(#2@@1);
\expandafter\draw\expandafter[\CF@current@bondstyle,dash pattern=on \CF@cram@dashlength off \CF@cram@dashsep,line width=\CF@cram@basewidth](#2@@)--(#3@@);
\endscope
+ \let\CF@joinbond\z@
\or% 7 = liaison Cram pointill\'ee de #3 vers #2
\scope
\CF@create@normnodes{#3@@}{#2@@}{\CF@cram@basewidth/2}{}%
\clip(#3@@1)--(#3@@2)--(#2@@)--(#3@@1);
\expandafter\draw\expandafter[\CF@current@bondstyle,dash pattern=on \CF@cram@dashlength off \CF@cram@dashsep,line width=\CF@cram@basewidth](#3@@)--(#2@@);
\endscope
+ \let\CF@joinbond\z@
\or% 8 = liaison Cram triangle \'evid\'e de #2 vers #3
\CF@create@normnodes{#2@@}{#3@@}{\CF@cram@basewidth/2}{}%
\expandafter\draw\expandafter[\CF@current@bondstyle,line join=bevel](#2@@1)--(#2@@2)--(#3@@)--(#2@@1);
+ \let\CF@joinbond\z@
\or% 9 = liaison Cram triangle \'evid\'e de #3 vers #1
\CF@create@normnodes{#3@@}{#2@@}{\CF@cram@basewidth/2}{}%
\expandafter\draw\expandafter[\CF@current@bondstyle,line join=bevel](#3@@1)--(#3@@2)--(#2@@)--(#3@@1);
+ \let\CF@joinbond\z@
\else
\errmessage{Package \CF@package@name\space Error: unknown bond type, this error should not occur^^JIf you think it's a bug, send a Minimal Example to the author}%
\fi
\let\CF@start@offset\@empty
\let\CF@end@offset\@empty
+ \let\CF@previous@tikz\CF@current@tikz
+ \let\CF@previous@bondangle\CF@previous@angle
+ \def\CF@previous@bond{#1}%
+}
+
+
+\CF@def\CF@draw@axisbond@nojoin#1#2{\CF@draw@bond@i(#1@@)--(#2@@);}
+
+\CF@def\CF@draw@axisbond@join#1#2{% dessine une liaison simple dans l'axe avec raccord rétrograde
+ \ifCF@incycle\ifnum\CF@cnt@cycle=\CF@cycle@num\relax\let\CF@next@tikz\CF@cycle@firsttikz\fi\fi
+ \ifnum\CF@joinbond=\z@
+ \ifCF@incycle
+ \ifnum\CF@cnt@cycle=\CF@cycle@num\relax
+ \ifnum\CF@cycle@joinlast=\@ne
+ \CF@draw@bond@i(#1@@)--(#2@@)--%
+ ([shift=(\CF@previous@bondangle+2*\CF@cycle@increment@angle:.5\pgflinewidth)]#2@@);
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \let\CF@joinbond\@ne
+ \else
+ \ifx\CF@previous@tikz\CF@current@tikz
+ \let\CF@joinbond\@ne
+ \ifx\CF@previous@atomgroup\CF@empty@node
+ \ifx\CF@previous@bondangle\empty% si d\'ebut mol\'ecule
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \else
+ \ifdim\CF@start@offset=\z@
+ \ifCF@incycle
+ \ifnum\CF@cnt@cycle=\CF@cycle@num\relax
+ \ifnum\CF@cycle@joinlast=\@ne
+ \ifx\CF@cycle@firsttikz\CF@current@tikz
+ \CF@draw@bond@i([shift=(\CF@previous@bondangle:-.5\pgflinewidth)]#1@@)--(#1@@)--(#2@@)--%
+ ([shift=(\CF@previous@bondangle+2*\CF@cycle@increment@angle:.5\pgflinewidth)]#2@@);
+ \else
+ \CF@draw@bond@i([shift=(\CF@previous@bondangle:-.5\pgflinewidth)]#1@@)--(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i([shift=(\CF@previous@bondangle:-.5\pgflinewidth)]#1@@)--(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i([shift=(\CF@previous@bondangle:-.5\pgflinewidth)]#1@@)--(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i([shift=(\CF@previous@bondangle:-.5\pgflinewidth)]#1@@)--(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \fi
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \else
+ \ifCF@incycle
+ \ifnum\CF@cnt@cycle=\CF@cycle@num\relax
+ \ifnum\CF@cycle@joinlast=\@ne
+ \ifx\CF@next@tikz\CF@current@tikz
+ \CF@draw@bond@i(#1@@)--(#2@@)--%
+ ([shift=(\CF@previous@bondangle+2*\CF@cycle@increment@angle:.5\pgflinewidth)]#2@@);
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \else
+ \CF@draw@bond@i(#1@@)--(#2@@);
+ \fi
+ \fi
+ \fi
+ \ifdim\CF@end@offset=\z@\else\let\CF@joinbond\z@\fi
}
+\CF@def\enablebondjoin {\global\let\CF@draw@axisbond\CF@draw@axisbond@join}
+\CF@def\disablebondjoin{\global\let\CF@draw@axisbond\CF@draw@axisbond@nojoin}
+\disablebondjoin% par d\'efaut, d\'esactiver la jointure entre liaisons
+
\CF@def\CF@draw@bond@i{\expandafter\draw\expandafter[\CF@current@bondstyle]}
\CF@def\CF@hook@drawall{% dessine tous les crochets contenus dans la sc \CF@hook@draw
@@ -947,11 +1064,12 @@
\CF@def\CF@hook@drawfirst[#1,#2,#3]#4#5#6#7#8\@nil{%
\def\CF@hook@drawlist{#8}%
\begingroup
+ \let\CF@joinbond\z@
\def\CF@current@tikz{#3}%
\def\CF@hook@startcontent{#6}\def\CF@hook@endcontent{#7}%
\CF@if@integer{#2}%
{\CF@draw@bond{#2}{#4}{#5}\CF@hook@startcontent\CF@hook@endcontent}%
- {\CF@bond@findnum{#2}\CF@bond@currentnum
+ {\CF@bond@findcode{#2}\CF@bond@currentnum
\CF@draw@bond\CF@bond@currentnum{#4}{#5}\CF@hook@startcontent\CF@hook@endcontent
}%
\endgroup
@@ -965,8 +1083,7 @@
\CF@def\setbondstyle{\def\CF@bond@style}
\setbondstyle{}
-\expandafter\CF@def\expandafter\CF@gobble@movearg\string @#1#2\@nil#3%
-{%
+\expandafter\CF@def\expandafter\CF@gobble@movearg\string @#1#2\@nil#3{%
\expandafter\def\csname atom@\number\CF@cnt@atomnumber\endcsname{#2}%
\CF@if@instr{#1},%
{\CF@analyse@movearg#1\@nil#3\let\CF@movebond@coeff\@empty}%
@@ -1030,7 +1147,7 @@
\def\CF@node@strut{\vphantom\CF@bond@outcontentsaved}%
\fi
\fi
- \edef\CF@opt@string{anchor=\ifnum\CF@last@action=\z@ base\else center\fi,at=(CF@node),\CF@node@style}% premier atome de la mol\'ecule affich\'e
+ \edef\CF@opt@string{anchor=\ifnum\CF@last@action=\z@ base\else\ifCF@incycle center\else\ifCF@macrofixedbondlength 180+#1\else center\fi\fi\fi,at=(CF@node),\CF@node@style}% premier atome de la mol\'ecule affich\'e
\loop
\unless\ifnum\CF@cnt@atomnumber>\CF@cnt@atomingroup
\expandafter\expandafter\expandafter\futurelet\expandafter\expandafter\expandafter\CF@toks@a\expandafter\expandafter\expandafter
@@ -1077,7 +1194,7 @@
\else
\advance\CF@cnt@atomingroup\@ne
\futurelet\CF@toks@a\CF@gobble@tonil#1\@nil
- \expandafter\ifx\string @\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ \expandafter\CF@ifx\string @\CF@toks@a
{\CF@keep@movearg#1\@nil
\CF@swap@fi
\CF@remove@movearg@i#1\@nil\CF@after@movearg
@@ -1095,11 +1212,11 @@
\expandafter\let\csname atom@\number\CF@cnt@atomingroup\endcsname\CF@current@atom
\else
\futurelet\CF@toks@a\CF@gobble@tonil#1\@nil
- \ifx\bgroup\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ \CF@ifx\bgroup\CF@toks@a
{\CF@expadd@tocs\CF@current@atom{\expandafter{\@car#1\@nil}}%
\expandafter\CF@draw@atomgroup@iii\expandafter{\@gobble#1}%
}%
- {\ifx\@sptoken\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\CF@ifx\@sptoken\CF@toks@a
{\CF@add@tocs\CF@current@atom{ }%
\expandafter\CF@draw@atomgroup@iii\expandafter{\CF@after@space#1\@nil}%
}%
@@ -1134,21 +1251,21 @@
\let\CF@current@atom\@empty
\else
\futurelet\CF@toks@a\CF@gobble@tonil#1\@nil
- \expandafter\ifx\string @\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ \expandafter\CF@ifx\string @\CF@toks@a
{\expandafter\let\csname atom@\number\CF@cnt@atomingroup\endcsname\CF@current@atom
\let\CF@current@atom\@empty
\CF@swap@fi\CF@draw@atomgroup@i{#1}%
}%
- {\ifx|\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\CF@ifx|\CF@toks@a
{\expandafter\let\csname atom@\number\CF@cnt@atomingroup\endcsname\CF@current@atom
\let\CF@current@atom\@empty
\CF@swap@fi\expandafter\CF@draw@atomgroup@i\expandafter{\@gobble#1}%
}%
- {\ifx\@sptoken\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\CF@ifx\@sptoken\CF@toks@a
{\CF@add@tocs\CF@current@atom{ }%
\CF@swap@fi\expandafter\CF@draw@atomgroup@iii\expandafter{\CF@after@space#1\@nil}%
}%
- {\ifx\bgroup\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\CF@ifx\bgroup\CF@toks@a
{\CF@expadd@tocs\CF@current@atom{\expandafter{\@car#1\@nil}}%
\CF@swap@fi\expandafter\CF@draw@atomgroup@iii\expandafter{\@gobble#1}%
}%
@@ -1157,7 +1274,7 @@
\let\CF@current@atom\@empty
\CF@swap@fi\CF@draw@atomgroup@i{#1}%
}%
- {\ifx?\CF@toks@a\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\CF@ifx?\CF@toks@a
{\expandafter\CF@if@firsttokmatch\expandafter{\@gobble#1}[% un crochet apr\`es le "?"
{\expandafter\CF@grab@optarg\@gobble#1\@nil\CF@after@hook}%
{\expandafter\CF@grab@optarg\expandafter[\expandafter]\@gobble#1\@nil\CF@after@hook}%
@@ -1202,9 +1319,7 @@
}
\CF@def\CF@hook@parselist#1{% #1 est le nom du noeud \`a retrouver
- \def\CF@hook@parselist@i##1(#1)|##2|##3|##4\@nil{%
- \def\CF@hook@savedcoord{##2}\def\CF@hook@savedcontent{##3}%
- }%
+ \def\CF@hook@parselist@i##1(#1)|##2|##3|##4\@nil{\def\CF@hook@savedcoord{##2}\def\CF@hook@savedcontent{##3}}%
\expandafter\CF@hook@parselist@i\CF@hook@list\@nil
}
@@ -1246,7 +1361,8 @@
\CF@def\CF@lewis@i#1[#2]{%
\def\CF@lewis@diagcoeff{#2}%
\ifx\@empty\CF@lewis@diagcoeff\def\CF@lewis@diagcoeff{1}\fi
- \CF@lewis@ii{#1}}
+ \CF@lewis@ii{#1}%
+}
\CF@def\CF@lewis@ii#1#2{\CF@lewis@iii#2\@nil{#1}}
@@ -1360,7 +1476,10 @@
\setchemrel{}{}{}
-\CF@def\chemrel{\@testopt\CF@chemchemrel@i{}}
+\CF@def\chemrel{%
+ \immediate\write\CF@unused{Package \CF@package@name\space Warning: the macro \string\chemrel\space is deprecated. Please, build schemes with \string\schemestart\space and inside, use \string\arrow.}%
+ \@testopt\CF@chemchemrel@i{}%
+}
\CF@def\CF@chemchemrel@i[#1]{\@testopt{\CF@chemchemrel@ii[#1]}{}}
@@ -1393,9 +1512,7 @@
\CF@def\CF@remove@equichars#1<>#2\@nil{#1#2}
-\CF@def\chemmove{%
- \@testopt\CF@chemmove{}%
-}
+\CF@def\chemmove{\@testopt\CF@chemmove{}}
\CF@def\CF@chemmove[#1]#2{%
\ifx\@empty#2\@empty
@@ -1403,7 +1520,7 @@
\else
\expandafter\@firstofone
\fi
- {\expandafter\tikzpicture\romannumeral\ifx\@empty#1\@empty\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+ {\expandafter\tikzpicture\romannumeral\CF@ifx{\@empty#1}\@empty
{\z@[remember picture,overlay]}{\z@[remember picture,overlay,#1]}#2
\endtikzpicture
}%
@@ -1430,9 +1547,7 @@
{\CF@name@dp@adjusttrue\CF@chemnam@i}%
}
-\CF@def\CF@chemnam@i{%
- \@testopt\CF@chemname@ii{1.5ex}%
-}
+\CF@def\CF@chemnam@i{\@testopt\CF@chemname@ii{1.5ex}}
\CF@def\CF@chemname@ii[#1]#2#3{%
\setbox\CF@stuff@box\hbox{#2}%
@@ -1465,9 +1580,7 @@
\CF@def\CF@subscheme@i[#1]{\@testopt{\CF@subscheme@ii[#1]}{text}}
\CF@def\CF@subscheme@ii[#1][#2]#3{\schemestart[#1][#2]#3\schemestop}
-\CF@def\schemedebug#1{% #1=true ou false
- \ifcsname CF@reac@debug#1\endcsname\csname CF@reac@debug#1\endcsname\else\CF@reac@debugfalse\fi
-}
+\CF@def\schemedebug#1{\ifcsname CF@reac@debug#1\endcsname\csname CF@reac@debug#1\endcsname\else\CF@reac@debugfalse\fi}
\schemedebug{false}
\CF@def\setcompoundstyle{\def\CF@default@compound@style}
@@ -1749,15 +1862,14 @@
\fi
}
-{\def\:{\CF@arrow@gobspaces@ii}\expandafter}\expandafter
-\def\: {\futurelet\CF@toks@a\CF@arrow@gobspaces@i}
+{\def\:{\CF@arrow@gobspaces@ii}\expandafter}\expandafter\def\: {\futurelet\CF@toks@a\CF@arrow@gobspaces@i}
\CF@def\CF@arrow@vi#1#2#3#4{% #1=angle #2=longueur #3=ancre d\'epart #4=ancre arriv\'ee
\def\CF@next@action{\let\CF@compound\@empty\CF@schemestart@iii}%
\def\CF@arrow@current@angle{#1}\ifx\@empty\CF@arrow@current@angle\let\CF@arrow@current@angle\CF@arrow@angle\fi
\def\CF@current@arrow@length{#2}\ifx\@empty\CF@current@arrow@length\let\CF@current@arrow@length\CF@arrow@length\fi
- \node[at=(\CF@current@nodename.\ifx\@empty#3\@empty\CF@arrow@current@angle\else#3\fi),shift=(\CF@arrow@current@angle:\CF@current@arrow@length*\CF@compound@sep),cyan,fill](end@arrow@i){};%
- \edef\CF@arrow@end@name{end@arrow@i\ifx\@empty#4\@empty\else.4\fi}%
+ \node[at=(\CF@current@nodename.\ifx\@empty#3\@empty\CF@arrow@current@angle\else#3\fi),shift=(\CF@arrow@current@angle:\CF@current@arrow@length*\CF@compound@sep),cyan,fill](end@arrow@i@\number\CF@scheme@nest){};%
+ \edef\CF@arrow@end@name{end@arrow@i@\number\CF@scheme@nest\ifx\@empty#4\@empty\else.4\fi}%
\ifCF@reac@debug
\node[at=(\CF@current@nodename.\ifx\@empty#3\@empty\CF@arrow@current@angle\else#3\fi),shift=(\CF@arrow@current@angle:\CF@arrow@offset),red,fill](start@arrow){};%
\node[at=(\CF@current@nodename.\ifx\@empty#3\@empty\CF@arrow@current@angle\else#3\fi),shift=(\CF@arrow@current@angle:\CF@current@arrow@length*\CF@compound@sep-\CF@arrow@offset),red,fill](end@arrow){};%
@@ -1768,13 +1880,13 @@
\def\CF@arrow@start@node{start@arrow}\def\CF@arrow@end@node{end@arrow}%
\csname\expandafter\CF@grab@arrow@name\CF@current@arrowtype[\@nil\expandafter\expandafter\expandafter\endcsname
\expandafter\CF@grab@arrow@args\CF@current@arrowtype[]\@nil[][][][][][][][]\@nil
- \def\CF@current@nodename{end@arrow@i}%
+ \def\CF@current@nodename{end@arrow@i@\number\CF@scheme@nest}%
\edef\CF@next@nodeanchor{\ifx\@empty#4\@empty180+\CF@arrow@current@angle\else#4\fi}%
}
% trace un fl\`eche initi\'ee par (@nom--@nom)
% #1=type de fl\`eche #2=nom depart #3=ancre d\'epart #4=nom arriv\'ee #5=ancre arriv\'ee #6=style fl\`eche
-\def\CF@direct@arrow#1#2#3#4#5#6{%
+\CF@def\CF@direct@arrow#1#2#3#4#5#6{%
\expandafter\def\expandafter\CF@arrow@start@name\expandafter{\@gobble#2}%
\expandafter\def\expandafter\CF@arrow@end@name\expandafter{\@gobble#4}%
\path[sloped,allow upside down](\@gobble#2\ifx\@empty#3\@empty\else.#3\fi)--(\@gobble#4\ifx\@empty#5\@empty\else.#5\fi)%
@@ -1802,7 +1914,8 @@
\CF@def\CF@merge#1({%
\CF@merge@grab@chardir#1[][]\@nil
- \CF@merge@i(}
+ \CF@merge@i(%
+}
\CF@def\CF@merge@i#1--(#2){\@testopt{\CF@merge@ii#1--(#2)}{}}
@@ -2071,7 +2184,7 @@
\pgfpathlineto{\pgfpoint\z@\z@}%
\pgfusepathqfillstroke}
-\CF@savedcatcode
+\chemfigrestorecatcode
\endinput
@@ -2203,7 +2316,7 @@ v1.0g 2012/11/16
compos\'ee en dehors de l'environnement tikzpicture pour
\'eviter nullfont si jamais \printatom ne passe pas en mode
math.
- - correction d'un bug dans \CF@chemfig@iv : si une longueur par
+ - correction d'un bug dans \CF@chemfig@v : si une longueur par
d\'efaut est modifi\'ee par [,<l>] au d\'ebut d'une mol\'ecule
et si des cycles \'etaient emboit\'es, cette longueur n'\'etait
pas appliqu\'ee aux sous-cycles.
@@ -2216,7 +2329,26 @@ v1.0h 2013/11/28
- \chemname admet maintenant une version \'etoil\'e qui ne tient
pas compte des profondeurs pr\'ec\'edentes.
- \CF@dp@max est g\'er\'e globalement.
- - correction d'un bug dans "-U>" : le style de la flèche n'était
- pris en compte pour l'arc.
+ - correction d'un bug dans "-U>" : le style de la fl\`eche
+ n'\'etait pris en compte pour l'arc.
- correction d'un bug dans \CF@direct@arrow : l'angle de la
- fl\`eche n'\'etait pas calcul\'e \ No newline at end of file
+ fl\`eche n'\'etait pas calcul\'e
+----------------------------------------------------------------------
+v1.1 2015/02/13
+ - correction d'un bug dans \CF@seek@submol : la macro
+ \CF@remain@molecule est d\'epouill\'e de son \'eventuel espace
+ en premi\`ere position.
+ - correction d'un bug dans \CF@arrow@vi : le nom du prochain
+ noeud courant "end@arrow@i" \'etait erron\'e dans le cas o\`u une
+ fl\`eche contenait un sous sch\'ema. Ce nom doit d\'ependre de
+ \CF@scheme@nest.
+ - la jonction entre deux liaisons cons\'ecutives dans l'axe peut
+ \^etre activ\'e avec \enablebondjoin et d\'esactiv\'e avec
+ \disablebondjoin (pr\'ef\'erable, \'etat par d\'efaut).
+ - \chemfig suivi d'une "*" demande \`a ce que les liaisons aient
+ une longueur invariable : la distance inter-atome devient donc
+ variable. Cette fonctionnalit\'e est d\'esavctiv\'e dans les
+ cycles afin que les polygones soient r\'eguliers.
+ \enablefixedbondlength permet cette fonctionnalit\'e pour
+ toutes les macros \chemfig (m\^eme non \'etoil\'ee) tandis que
+ \disablefixedbondlength le d\'esactive. \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/chemfig/t-chemfig.tex b/Master/texmf-dist/tex/generic/chemfig/t-chemfig.tex
index bdcf9ab5ecc..84c6b51d39a 100644
--- a/Master/texmf-dist/tex/generic/chemfig/t-chemfig.tex
+++ b/Master/texmf-dist/tex/generic/chemfig/t-chemfig.tex
@@ -1,20 +1,20 @@
% __________________________________________________________________
% | |
% | |
-% | chemfig v1.0h |
+% | chemfig v1.1 |
% | |
-% | November 28, 2013 |
+% | 15 february 2015 |
% | |
% |__________________________________________________________________|
%
% This is t-chemfig.tex, the package file for conTeXt.
%
% Maintainer: Christian Tellechea
-% E-mail : unbonpetit@gmail.com
+% E-mail : unbonpetit@openmailbox.org
% 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-2012
+% Copyright : Christian Tellechea 2010-2015
%
% The "chemfig" package consists of the 8 following files:
% chemfig.tex (the code of the package)