summaryrefslogtreecommitdiff
path: root/macros/generic
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-07-01 03:01:25 +0000
committerNorbert Preining <norbert@preining.info>2023-07-01 03:01:25 +0000
commit3a29216caca37803e25b84a50fd5f7f91ebc04d3 (patch)
tree45c329c33b2bc8601810e0983b3590448a3279ec /macros/generic
parent711112a97f2a98854236304a216213632d61eeb7 (diff)
CTAN sync 202307010301
Diffstat (limited to 'macros/generic')
-rw-r--r--macros/generic/chemfig/README4
-rw-r--r--macros/generic/chemfig/chemfig-en.pdfbin714456 -> 716706 bytes
-rw-r--r--macros/generic/chemfig/chemfig-en.tex42
-rw-r--r--macros/generic/chemfig/chemfig-fr.pdfbin727414 -> 731831 bytes
-rw-r--r--macros/generic/chemfig/chemfig-fr.tex44
-rw-r--r--macros/generic/chemfig/chemfig.tex35
6 files changed, 97 insertions, 28 deletions
diff --git a/macros/generic/chemfig/README b/macros/generic/chemfig/README
index b3ec8d1b81..035b0b045a 100644
--- a/macros/generic/chemfig/README
+++ b/macros/generic/chemfig/README
@@ -2,9 +2,9 @@ ___________________________________
The
Chemfig package
- v1.6d
+ v1.6e
- 2023/02/18
+ 2023/06/30
___________________________________
Maintainer: Christian Tellechea
diff --git a/macros/generic/chemfig/chemfig-en.pdf b/macros/generic/chemfig/chemfig-en.pdf
index e4de3cc058..1b8d9d2ca8 100644
--- a/macros/generic/chemfig/chemfig-en.pdf
+++ b/macros/generic/chemfig/chemfig-en.pdf
Binary files differ
diff --git a/macros/generic/chemfig/chemfig-en.tex b/macros/generic/chemfig/chemfig-en.tex
index a5c68c4b6f..a6a640256f 100644
--- a/macros/generic/chemfig/chemfig-en.tex
+++ b/macros/generic/chemfig/chemfig-en.tex
@@ -240,6 +240,9 @@ The values (empty by default) contained in these two keys are executed at the ve
For example, we can write \verb|schemestart code=\chemnameint{}| to reset the name depth at the beginning of each reaction scheme.
+\subsection{Key "baseline"}
+The value passed to this key sets the vertical position of the molecule. See page~\pageref{baseline}.
+
\section{Presenting \protect\CF}
To use this package, start by adding the following code to the preamble:
\begin{itemize}
@@ -294,6 +297,7 @@ Here is the complete list of parameters as well as their default values\label{li
\CFparam{angle increment}
\CFparam{node style}
\CFparam{bond style}
+ \CFparam{baseline}
\CFparam{debug}
\CFparam{cycle radius coeff}
\CFparam{stack sep}
@@ -355,6 +359,8 @@ It is important to understand that the placement of the entire molecule depends
\chemfig{-B}\qquad
\chemfig{A^1-B}/
+To set an arbitrary vertical offset or place a group of atoms on the baseline, use the \chevrons{baseline} key (see page~\pageref{baseline}).
+
\section{Different types of bonds}
For \CF, bonds between two atoms are one of nine types, represented by the characters \boxedfalseverb-, \boxedfalseverb=, \boxedfalseverb~, \boxedfalseverb>, \boxedfalseverb<, \boxedfalseverb{>:}, \boxedfalseverb{<:}, \boxedfalseverb{>|} and \boxedfalseverb{<|} :\label{types.liaisons}
\begin{center}
@@ -1142,12 +1148,6 @@ Except in cases where the character "\verb|#|" is followed by a number between 1
In this example, only \verb|#1| and \verb|#2| are understood as the arguments of the sub molecule \verb|\X|. The other "\verb|#|" are displayed as they are in the molecule (case of \verb|#3| and \verb|#4|) or understood as the character specifying the fine adjustment of the offset of the bonds.
\section{Placement of Atoms}
-\subsection{First Atom}\label{premieratome}
-As explained on page~\pageref{first atom}, the first atom encountered (whether empty or not) is the one that is placed on the baseline, represented in gray on the examples of this manual. The choice of this first atom thus conditions the placement of all the others and often influences the placement of the whole molecule.
-
-\exemple{First atom}/\chemfig{H-[7]C(-[5]H)=C(-[1]H)-[7]H}\qquad
-\chemfig{C(-[3]H)(-[5]H)=C(-[1]H)-[7]H}/
-
\subsection{Groups of atoms}\label{placementatomes}
In a group of atoms, the atoms are placed one after the other in a well-established order:
\begin{itemize}
@@ -1171,6 +1171,35 @@ In the example below whose code would be "\verb|\chemfig{A[:-60,,,3]BCDEF}|" the
\chemfig{A-[:-60,,,3]\0{B}{5}|\0{C}{4}|\0{D}{1}|\0{E}{2}|\0{F}{3}}
\end{center}
+\subsection{Vertical alignment}\label{baseline}
+The \CFkey{baseline} is used to finely control the vertical placement of the molecule in relation to the baseline of the current paragraph.
+
+It is set to \CFval{0pt} by default, and in this case, the first atom encountered (whether empty or not) is the one placed on the baseline of the current paragraph, shown in gray on the examples in this manual. The choice of this first atom therefore conditions the placement of all the others, and often influences the placement of the entire molecule.
+
+\exemple{First atom}/\chemfig{H-[7]C(-[5]H)=C(-[1]H)-[7]H}\qquad
+\chemfig{C(-[3]H)(-[5]H)=C(-[1]H)-[7]H}/
+
+An arbitrary dimension can be specified to vertically shift the molecule by this value with the syntax \CFkv{baseline}{dimension}:
+
+\exemple{Vertical shift}/\chemfig{A(-[:-60]-[:30]C)-[:45]B}\qquad
+\chemfig[baseline=5pt]{A(-[:-60]-[:30]C)-[:45]B}\qquad
+\chemfig[baseline=-5pt]{A(-[:-60]-[:30]C)-[:45]B}/
+
+With the syntax \CFkv{baseline}{(name)} (the name must be in parentheses), we specify that the baseline of the molecule is at the node named \chevrons{name}. The name of the atom can be the one assigned automatically by \CF (of the form \Verb|n<a>-<b>|) or a name given by the user using the syntax \Verb|@{<name >}| (see page~\pageref{mecanismes-reactionnels}).
+
+\exemple*{Alignment on atoms}/Default alignment : \chemfig{A(-[:-60]-[:30]C)-[:45]B}\medbreak
+Alignment on B: \chemfig[baseline=(b.base)]{A(-[:-60]-[:30]C)-[:45]@{b}B}\medbreak
+Alignment on empty atom: \chemfig[baseline=(vide)]{A(-[:-60]@{vide}-[:30]C)-[:45]B}\medbreak
+Alignment on C: \chemfig[baseline=(c.base)]{A(-[:-60]-[:30]@{c}C)-[:45]B}/
+
+It is possible to name \TIKZ nodes. Thus, if we want to vertically center several molecules on the current baseline, we set \CFkey{baseline} to \CFval{(current bounding box.center)}.
+
+\exemple*{Centered Alignment}/1) \chemfig{A-[:-45]B} et 2) \chemfig{B-[:45]C}\bigbreak
+
+\setchemfig{baseline=(current bounding box.center)}% vertical centering of the following molecules
+1) \chemfig{A-[:-45]B} et 2) \chemfig{B-[:45]C}
+\setchemfig{baseline=0pt}% back to default value/
+
\subsection{Bonds between atoms}\label{liaisonentreatomes}
A bond starting from an atom would, if extended, pass through the centre of its bounding box. The atom placed at the end of the bond has its center of its bounding box is in the extension of the bond. Therefore, a bond between two atoms extends through the centers of their bounding boxes, as shown in this example:
\begin{center}
@@ -2446,6 +2475,7 @@ The commands created by \CF are:
\item \CFkv{cycle radius coeff} {0.75}: shrinkage ratio of the circle or arc inside cycles
\item \CFkv{stack sep} {1.5pt}: vertical gap between arguments of \verb-\chemabove- and \verb-\chembelow- macros
\item \CFkv{show cntcycle} {false}: show rings numbers
+ \item \CFkv{baseline} {0pt}: dimension or name of node to set the vertical position
\item \CFkv{debug} {false}: show atoms ans groups of atoms
\item \CFkv{autoreset cntcycle} {true}: reset ring counter at \verb|\chemfig| execution
\item \CFkv{compound style} {{}}: style of compounds
diff --git a/macros/generic/chemfig/chemfig-fr.pdf b/macros/generic/chemfig/chemfig-fr.pdf
index 0de1a1679d..78f90d47e2 100644
--- a/macros/generic/chemfig/chemfig-fr.pdf
+++ b/macros/generic/chemfig/chemfig-fr.pdf
Binary files differ
diff --git a/macros/generic/chemfig/chemfig-fr.tex b/macros/generic/chemfig/chemfig-fr.tex
index 18001f3619..9250e57d17 100644
--- a/macros/generic/chemfig/chemfig-fr.tex
+++ b/macros/generic/chemfig/chemfig-fr.tex
@@ -240,6 +240,9 @@ Les valeurs, vides par défaut, contenues dans ces deux clés sont exécutées a
On peut, par exemple, écrire «\verb|schemestart code=\chemnameint{}|» pour réinitialiser la profondeur des noms au début de chaque schéma réactionnel.
+\subsection{Clé «baseline»}
+La valeur passée à cette clé permet de contrôler la position verticale de la molécule tracée par rapport à la ligne de base. Voir page~\pageref{baseline}.
+
\section{Présentation}
Pour charger \CF, il faut écrire :
\begin{itemize}
@@ -294,6 +297,7 @@ Voici la liste exhaustive des paramètres ainsi que leurs valeurs par défaut\la
\CFparam{angle increment}
\CFparam{node style}
\CFparam{bond style}
+ \CFparam{baseline}
\CFparam{debug}
\CFparam{cycle radius coeff}
\CFparam{stack sep}
@@ -355,6 +359,8 @@ Il est important de comprendre que le placement de la molécule entière dépend
\chemfig{-B}\qquad
\chemfig{A^1-B}/
+Pour spécifier un décalage vertical arbitraire ou placer sur la ligne de base un groupe d'atome, il faut utiliser la clé \CFkey{baseline} (voir page~\pageref{baseline}).
+
\section{Différents types de liaisons}
Pour \CF, les liaisons entre 2 atomes sont de 9 types, correspondant aux caractères \boxedfalseverb-, \boxedfalseverb=, \boxedfalseverb~, \boxedfalseverb>, \boxedfalseverb<, \boxedfalseverb{>:}, \boxedfalseverb{<:}, \boxedfalseverb{>|} et \boxedfalseverb{<|} :\label{types.liaisons}
\begin{center}
@@ -425,7 +431,7 @@ Ce marqueur doit se situer \emph{immédiatement} après le signe de liaison et d
\chemfig{A-#(,0pt)B-#(0pt)C}/
\endgroup
-Par défaut, tous les atomes se trouvant dans les groupes d'atomes sont composés en mode mathématique (les espaces sont ignorés). Ils peuvent donc contenir des caractères propres à ce mode comme la mise en indice ou en exposant\footnote{Il existe un problème de placement des groupes d'atomes contenant des exposants ou des indices. Voir page~\pageref{alignement.vertical}.}:
+Par défaut, tous les atomes se trouvant dans les groupes d'atomes sont composés en mode mathématique (les espaces sont ignorés). Ils peuvent donc contenir des caractères propres à ce mode comme la mise en indice ou en exposant\footnote{Il existe un problème de placement des groupes d'atomes contenant des exposants ou des indices.}:
\exemple{Mode mathématique}|\chemfig{A_1B^2-C _ 3 ^ 4}|
Il existe des réglages spécifiques aux liaisons de Cram:
@@ -1142,12 +1148,6 @@ En dehors des cas où le caractère «\verb|#|» est suivi d'un chiffre compris
Dans cet exemple, seuls \verb|#1| et \verb|#2| sont compris comme les arguments de la sous molécule \verb|\X|. Les autres «\verb|#|» sont affichés tels quels dans la molécule (cas de \verb|#3| et \verb|#4|) ou compris comme le caractère spécifiant le réglage fin du retrait des liaisons.
\section{Placement des atomes}
-\subsection{Premier atome}\label{premieratome}
-Comme expliqué à la page~\pageref{premieratome1}, le premier atome rencontré (qu'il soit vide ou pas) est celui qui est placé sur la ligne de base, représentée en gris sur les exemples de ce manuel. Le choix de ce premier atome conditionne donc le placement de tous les autres relativement à lui et influe souvent sur le placement de la molécule toute entière.
-
-\exemple{Premier atome}/\chemfig{H-[7]C(-[5]H)=C(-[1]H)-[7]H}\qquad
-\chemfig{C(-[3]H)(-[5]H)=C(-[1]H)-[7]H}/
-
\subsection{Groupe d'atomes}\label{placementatomes}
Dans un groupe d'atomes, les atomes sont placés les uns après les autres, dans un ordre bien établi:
\begin{itemize}
@@ -1171,6 +1171,35 @@ Dans l'exemple ci-dessous dont le code serait «\verb|\chemfig{A[:-60,,,3]BCDEF}
\chemfig{A-[:-60,,,3]\0{B}{5}|\0{C}{4}|\0{D}{1}|\0{E}{2}|\0{F}{3}}
\end{center}
+\subsection{Alignement vertical}\label{baseline}
+La clé \CFkey{baseline} permet de contrôler finement le placement vertical de la molécule par rapport à la ligne de base du paragraphe en cours.
+
+Elle vaut \CFval{0pt} par défaut et dans ce cas, le premier atome rencontré (qu'il soit vide ou pas) est celui qui est placé sur la ligne de base du paragraphe en cours, représentée en gris sur les exemples de ce manuel. Le choix de ce premier atome conditionne donc le placement de tous les autres relativement à lui et influe souvent sur le placement de la molécule toute entière.
+
+\exemple{Premier atome}/\chemfig{H-[7]C(-[5]H)=C(-[1]H)-[7]H}\qquad
+\chemfig{C(-[3]H)(-[5]H)=C(-[1]H)-[7]H}/
+
+On peut spécifier une dimension arbitraire pour décaler verticalement la molécule de cette valeur avec la syntaxe \CFkv{baseline}{dimension} :
+
+\exemple{Décalage vertical}/\chemfig{A(-[:-60]-[:30]C)-[:45]B}\qquad
+\chemfig[baseline=5pt]{A(-[:-60]-[:30]C)-[:45]B}\qquad
+\chemfig[baseline=-5pt]{A(-[:-60]-[:30]C)-[:45]B}/
+
+Avec la syntaxe \CFkv{baseline}{(nom)} (le nom doit se trouver entre parenthèses), on spécifie que la ligne de base de la molécule est sur le nœud nommé \chevrons{nom} Le nom de l'atome peut être celui attribué automatiquement par \CF (de la forme \Verb|n<a>-<b>|) ou bien un nom donné par l'utilisateur par la syntaxe \Verb|@{<nom>}| (voir page~\pageref{mecanismes-reactionnels}).
+
+\exemple*{Alignement sur des atomes}/Alignement par défaut : \chemfig{A(-[:-60]-[:30]C)-[:45]B}\medbreak
+Alignement sur B : \chemfig[baseline=(b.base)]{A(-[:-60]-[:30]C)-[:45]@{b}B}\medbreak
+Alignement sur atome vide : \chemfig[baseline=(vide)]{A(-[:-60]@{vide}-[:30]C)-[:45]B}\medbreak
+Alignement sur C : \chemfig[baseline=(c.base)]{A(-[:-60]-[:30]@{c}C)-[:45]B}/
+
+Il est possible de nommer de nœuds de \TIKZ. Ainsi, si l'on veut centrer verticalement plusieurs molécules sur la ligne de base courante, met la valeur \CFval{(current bounding box.center)} dans la clé \CFkey{baseline}.
+
+\exemple*{Alignement centré}/1) \chemfig{A-[:-45]B} et 2) \chemfig{B-[:45]C}\bigbreak
+
+\setchemfig{baseline=(current bounding box.center)}% centrage vertical de toutes les molécules
+1) \chemfig{A-[:-45]B} et 2) \chemfig{B-[:45]C}
+\setchemfig{baseline=0pt}% retour à la valeur par défaut/
+
\subsection{Liaisons entre atomes}\label{liaisonentreatomes}
Une liaison partant d'un atome passerait, si on la prolongeait, par le centre de sa boite englobante. L'atome d'arrivée est placé au bout de la liaison de telle sorte que le centre de sa boite englobante soit dans le prolongement de la liaison. Par conséquent, une liaison entre deux atomes passe, par prolongement, par les centres de leurs boites englobantes, comme l'illustre cet exemple:
\begin{center}
@@ -2446,6 +2475,7 @@ Les commandes créées par \CF sont :
\item \CFkv{cycle radius coeff} {0.75}: coefficient du cercle ou de l'arc de cercle tracé dans les cycles
\item \CFkv{stack sep} {1.5pt}: espacement vertical pour les arguments des macros \verb-\chemabove- et \verb-\chembelow-
\item \CFkv{show cntcycle} {false}: affichage des numéros des cycles
+ \item \CFkv{baseline} {0pt}: dimension ou nom du nœud pour régler la position verticale
\item \CFkv{debug} {false}: affichage des atomes et des groupes d'atomes
\item \CFkv{autoreset cntcycle} {true}: remise à 0 du compteur de cycles à chaque exécution de \verb|\chemfig|
\item \CFkv{compound style} {{}}: style des composés
diff --git a/macros/generic/chemfig/chemfig.tex b/macros/generic/chemfig/chemfig.tex
index 8dfc68592a..f3f78f3968 100644
--- a/macros/generic/chemfig/chemfig.tex
+++ b/macros/generic/chemfig/chemfig.tex
@@ -4,9 +4,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
\def\CFname {chemfig} %
-\def\CFver {1.6d} %
+\def\CFver {1.6e} %
% %
-\def\CFdate {2023/02/18} %
+\def\CFdate {2023/06/30} %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -71,7 +71,9 @@
\def\CF_warning#1{\immediate\write-1{Package \CFname\space Warning: #1^^J}}
\def\CF_checkprimitive#1#2{% Vérifie que #1 est une primitive et sinon, émet le message #2 et exécute \endinput
\begingroup
- \edef\__tempa{\meaning#1}\edef\__tempb{\string#1}\expandafter
+ \edef\__tempa{\meaning#1}%
+ \edef\__tempb{\string#1}%
+ \expandafter
\endgroup
\ifx\__tempa\__tempb\else
\CF_error{#2}%
@@ -414,6 +416,7 @@
\def\CF_defifempty#1#2#3{\CF_ifempty{#2}{\def#1{#3}}{\def#1{#2}}}
\defKV[chemfig]{%
atom style = \def\CF_atomstyle {#1},
+ baseline = \CF_defifempty\CF_baseline {#1}{0pt},% nouveau v 1.6e
chemfig style = \def\CF_chemfigstyle {#1},
cram width = \CF_defifempty\CF_crambasewidth {#1}{1.5ex},
cram dash width = \CF_defifempty\CF_cramdashlength {#1}{1pt},
@@ -444,6 +447,7 @@
\def\resetchemfig{\restoreKV[chemfig]}
\setKVdefault[chemfig]{%
atom style = {},% code tikz mis à la fin de every node/.style
+ baseline = {0pt},% nouveau v 1.6e
chemfig style = {},% code tikz mis à la fin de l'arugment optionnel de \tikzpicture
bond join = false,
fixed length = false,
@@ -941,19 +945,19 @@
minimum size=0pt,%
\unexpanded\expandafter{\CF_atomstyle}%
},%
- baseline,%
+ baseline=\CF_baseline,%
\unexpanded\expandafter{\CF_chemfigstyle}%
]%
}%
\begingroup% \endgroup rajouté en sortie de tracé par \CF_chemfigd
\let\CF_hooklist\empty
\ifboolKV[chemfig]{fixed length}
- {%
- \CF_macro_fixed_bond_lengthtrue
- }
- {%
- \CF_macro_fixed_bond_lengthfalse
- }%
+ {%
+ \CF_macro_fixed_bond_lengthtrue
+ }
+ {%
+ \CF_macro_fixed_bond_lengthfalse
+ }%
\ifboolKV[chemfig]{bond join}
{%
\let\CF_drawaxisbond\CF_drawaxisbondjoin
@@ -1154,7 +1158,7 @@
\CF_ifx*\CF_toksa% un cycle ?
{%
\ifnum\CF_lastaction=2
- \def\CF_currentfromatom{1}% Bugfix 1.6e
+ \def\CF_currentfromatom{1}% Bugfix 1.6d
\CF_insertemptygroup\CF_molecule% insère un groupe vide
\else
\ifCF_in_cycle
@@ -1171,7 +1175,8 @@
\expandafter\CF_parsecyclepreamblewithoptarg\CF_molecule\_nil% \begingroup inclus
}%
{%
- \def\CF_cycle_arcstartangle{0}\def\CF_cycle_arcendangle{360}%
+ \def\CF_cycle_arcstartangle{0}%
+ \def\CF_cycle_arcendangle{360}%
\let\CF_cycle_arcdirecttikz\empty
\expandafter\CF_parsecyclepreamble\CF_molecule\_nil% \begingroup inclus
}%
@@ -3545,4 +3550,8 @@ v1.6d 2023/02/18
réactionnels
- correction d'un bug : \CF_currentfromatom n'était pas
initialisé au début d'un cycle et donc le code suivant plantait
- \chemfig{AB-[,,2]*3(---)} \ No newline at end of file
+ \chemfig{AB-[,,2]*3(---)}
+----------------------------------------------------------------------
+v1.6e 2023/06/30
+ - nouvelle clé "baseline" pour régler finement l'alignement
+ vertical d'une molécule \ No newline at end of file