texlive[67513] Master/texmf-dist: chemfig (30jun23)
commits+karl at tug.org
commits+karl at tug.org
Fri Jun 30 22:50:47 CEST 2023
Revision: 67513
http://tug.org/svn/texlive?view=revision&revision=67513
Author: karl
Date: 2023-06-30 22:50:47 +0200 (Fri, 30 Jun 2023)
Log Message:
-----------
chemfig (30jun23)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/generic/chemfig/README
trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-en.pdf
trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-en.tex
trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-fr.pdf
trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-fr.tex
trunk/Master/texmf-dist/tex/generic/chemfig/chemfig.tex
Modified: trunk/Master/texmf-dist/doc/generic/chemfig/README
===================================================================
--- trunk/Master/texmf-dist/doc/generic/chemfig/README 2023-06-30 20:50:35 UTC (rev 67512)
+++ trunk/Master/texmf-dist/doc/generic/chemfig/README 2023-06-30 20:50:47 UTC (rev 67513)
@@ -2,9 +2,9 @@
The
Chemfig package
- v1.6d
+ v1.6e
- 2023/02/18
+ 2023/06/30
___________________________________
Maintainer: Christian Tellechea
Modified: trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-en.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-en.tex 2023-06-30 20:50:35 UTC (rev 67512)
+++ trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-en.tex 2023-06-30 20:50:47 UTC (rev 67513)
@@ -240,6 +240,9 @@
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 @@
\CFparam{angle increment}
\CFparam{node style}
\CFparam{bond style}
+ \CFparam{baseline}
\CFparam{debug}
\CFparam{cycle radius coeff}
\CFparam{stack sep}
@@ -355,6 +359,8 @@
\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 @@
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 @@
\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 @@
\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
Modified: trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-fr.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-fr.tex 2023-06-30 20:50:35 UTC (rev 67512)
+++ trunk/Master/texmf-dist/doc/generic/chemfig/chemfig-fr.tex 2023-06-30 20:50:47 UTC (rev 67513)
@@ -240,6 +240,9 @@
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 @@
\CFparam{angle increment}
\CFparam{node style}
\CFparam{bond style}
+ \CFparam{baseline}
\CFparam{debug}
\CFparam{cycle radius coeff}
\CFparam{stack sep}
@@ -355,6 +359,8 @@
\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 @@
\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 @@
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 @@
\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 @@
\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
Modified: trunk/Master/texmf-dist/tex/generic/chemfig/chemfig.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/chemfig/chemfig.tex 2023-06-30 20:50:35 UTC (rev 67512)
+++ trunk/Master/texmf-dist/tex/generic/chemfig/chemfig.tex 2023-06-30 20:50:47 UTC (rev 67513)
@@ -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,7 +945,7 @@
minimum size=0pt,%
\unexpanded\expandafter{\CF_atomstyle}%
},%
- baseline,%
+ baseline=\CF_baseline,%
\unexpanded\expandafter{\CF_chemfigstyle}%
]%
}%
@@ -948,12 +952,12 @@
\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 @@
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
More information about the tex-live-commits
mailing list.