Sebastian Walz 860d31cee1
Tohu vaBohu
2023-04-21 00:22:52 +02:00

358 lines
12 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\definesubmol\nobond{-[,0.2,,,draw=none]}
\def\hammond{\text{\textit{\ddag}}}
\def\rotate{0}
\newcommand{\setpolymerdelim}[2]
{%
\def\delimleft{#1}%
\def\delimright{#2}%
}
\setpolymerdelim[]
\newcommand{\reaction}[2]{\arrow{->[\tiny\begin{tabular}{@{}l@{\,}l@{}}#1\end{tabular}][\tiny\begin{tabular}{@{}l@{\,}l@{}}#2\end{tabular}]}}
\let\@chemfig=\chemfig
\let\@chemmove=\chemmove
\renewcommand{\chemfig}[1]{{\@ResetSymbols\@chemfig{#1}}}
\renewcommand{\chemmove}[1]{{\@ResetSymbols\@chemmove{#1}}}
\def\@WrapChemSide{o}
\def\@WrappedOrScheme{wrapped}
\def\enableWrapped{\def\@WrappedOrScheme{wrapped}}
\def\disableWrapped{\def\@WrappedOrScheme{scheme}}
\newcommand{\initAngle}[2]{[:#2]}
\def\MayHorizontalChem{\quad}
\def\@WrappendEnvironment{\renewcommand{\initAngle}[2]{[:##1]}\def\MayHorizontalChem{\arrow{0}[-90,0.1]}}
\def\@Cheme@DefaultScale{1.5}
\newcommand{\chemeDefaultScale}[1][1.5]{\def\@Cheme@DefaultScale{#1}}
\definesubmol\nobond{[,0.2,,,draw=none]}
%\definesubmol\numAtom{-[,0.4,,,draw=none]\scriptstyle}
\newcommand{\NumAtom}[2]{}
\newcommand{\numAtom}[1]{\NumAtom{,0.4}{#1}}
\newcommand{\numAtomWith}[2]{\NumAtom{::#1,0.4}{#2}}
\def\numAtoms{\renewcommand{\NumAtom}[2]{-[##1,,,draw=none]{##2}}}
\setchemfig
{
atom sep = 14.4pt,
double bond sep = 2.6pt,
bond style = {line width=0.6pt},
cram rectangle = false,
cram width = 2.0pt,
cram dash width = 0.6pt,
cram dash sep = 1.0pt,
bond offset = 1.6pt,
bond join = true,
lewis length = 1.0ex,
compound sep = 5.0em,
arrow offset = 5.0pt,
scheme debug = false,
}
\renewcommand*\printatom[1]{{\scriptsize\ensuremath{\mathsf{#1}}}}
%\AtBeginDocument
%{
% \RenewDocumentCommand\ch{O{}m}{\directlua
% {
% if chLevel == 0
% then
% tex.print
% (
% bs.."csname chemformula_ch:nn"..bs.."endcsname {#1}"
% )
% end
% chLevel = chLevel + 1
% }{#2}\directlua
% {
% chLevel = chLevel - 1
% }}
%}
\tikzset
{
onehalf/.style args={#1}
{
draw=none,
decoration=
{
markings,
mark=at position 0 with
{
\coordinate (CF@startdeloc) at (0,\dimexpr#1\CF@double@sep/2) coordinate (CF@startaxis) at (0,\dimexpr-#1\CF@double@sep/2);
},
mark=at position 1 with
{
\coordinate (CF@enddeloc) at (0,\dimexpr#1\CF@double@sep/2) coordinate (CF@endaxis) at (0,\dimexpr-#1\CF@double@sep/2);
\draw[dash pattern=on 2pt off 1.5pt] (CF@startdeloc)--(CF@enddeloc);
\draw (CF@startaxis)--(CF@endaxis);
}
},
postaction={decorate}
}
}
\newcommand{\arrowText}[1]{\begin{tabular}{@{}c@{\,}l@{}}#1\end{tabular}}
\newcommand{\cheme}[3][\@Cheme@DefaultScale]
{%sorry for this pun :D
\scalebox{#1}%
{%
%\setchemfig{scheme debug=true}%
\schemestart#2\schemestop%
\chemmove{#3}%
}%
\chemnameinit{}%
}
%\newcommand{\chem}[3][\@Cheme@DefaultScale]
%{
% \begin{subfigure}[b]{\linewidth}
% \centering
% \cheme[#1]{#2}{#3}
% \end{subfigure}
%}
\newcommand{\thecchem}[5]
{
%1 float
%2 short caption
%3 content
%4 long caption
%5 label
\begin{scheme}[#1]
\centering
#3
\ifthenelse{\isempty{#4}}
{}
{
\ifthenelse{\isempty{#2}}
{\caption[\nolink{#4}]{\adjustCaption{#4}}}
{\caption[\nolink{#2}]{\adjustCaption{#4}}}
}
\labelScheme{#5}
\end{scheme}
}
\newcommand{\thelchem}[5]
{
%1 float
%2 short caption
%3 content
%4 long caption
%5 label
\begin{scheme}[#1]
#3
\ifthenelse{\isempty{#4}}
{}
{
\ifthenelse{\isempty{#2}}
{\caption[\nolink{#4}]{\adjustCaption{#4}}}
{\caption[\nolink{#2}]{\adjustCaption{#4}}}
}
\labelScheme{#5}
\end{scheme}
}
\newcommand{\cchem}[1][]{\thecchem{!htbp}{#1}}
\newcommand{\hchem}[1][]{\thecchem{H}{#1}}
\newcommand{\lchem}[1][]{\thelchem{H}{#1}}
\newcommand{\thesubchem}[5]
{
%1 float
%2 relative width
%3 content
%4 long caption
%5 beamer settings
\begin{subfigure}[#1]{#2}%
\centering%
\ifthenelse{\isempty{#5}}%
{%
\cheme#3%
\ifthenelse{\isempty{#4}}{}{\caption[\nolink{#4}]{\adjustCaption{#4}}}%
}%
{%
\uncover#5%
{%
\cheme#3%
\ifthenelse{\isempty{#4}}{}{\caption[\nolink{#4}]{\adjustCaption{#4}}}%
}%
}%
\end{subfigure}%
}
\newcommand{\subchem}[4][b]{\thesubchem{#1}{#2}{#3}{#4}{}}
\newcommand{\Wrapchem}[3][]
{{
\@WrappendEnvironment%
%\begin{samepage}
\ifthenelse{\equal{#1}{}}
{\begin{wrapfigure}{\@WrapChemSide}{\widthof{\cheme{#2}{}}}\cheme{#2}{}\end{wrapfigure}}
{\begin{wrapfigure}{\@WrapChemSide}{#1\linewidth}\centering\cheme{#2}{}\end{wrapfigure}}%
#3\par
%\end{samepage}
}}
\newcommand{\wrapchem}[3][]{\Wrapchem[#1]{\chemfig{#2}}{#3}}
\newcommand{\MayWrapchem}[5][]
{%
\ifthenelse{\equal{\@WrappedOrScheme}{wrapped}}%
{\Wrapchem[#1]{#2}{#5}}%
{\hchem{\cheme{#2}{}}{#3}{#4}#5\par}%
}
\newcommand{\MayRefchem}[1]
{%
\ifthenelse{\equal{\@WrappedOrScheme}{wrapped}}%
{}%
{ (\refScheme{#1})}%
}
\def\makebraces(#1,#2)#3#4#5%
{%
% 1 Offset 1
% 2 Offset 2
% 3 Index
% 4 Left Node
% 5 Right Node
%\edef\delimhalfdim{\the\dimexpr(#1+#2)/2}%
%\edef\delimvshift{\the\dimexpr(#1-#2)/2}%
%\node[at=(#4),yshift=(\delimvshift)]
%{$\left\delimleft\vrule height\delimhalfdim depth\delimhalfdim width0pt\right.$};%
%\node[at=(#5),yshift=(\delimvshift)]%
%{$\left.\vrule height\delimhalfdim depth\delimhalfdim width0pt\right\delimright_{\rlap{$\scriptstyle#3$}}$};%
\polymerdelim[delimiters ={[]}, height = 5pt, depth = 10pt, indice = #3]{#4}{#5}%
}
\def\Makebraces(#1,#2)#3#4#5%
{%
% 1 Offset 1
% 2 Offset 2
% 3 Index
% 4 Left Node
% 5 Right Node
\edef\delimhalfdim{\the\dimexpr(#1+#2)/2}%
\edef\delimvshift{\the\dimexpr(#1-#2)/2}%
\node[at=(#4),yshift=(\delimvshift)]
{$\left\delimleft\vrule height\delimhalfdim depth\delimhalfdim width0pt\right.$};%
\node[at=(#5),yshift=(\delimvshift)]%
{$\left.\vrule height\delimhalfdim depth\delimhalfdim width0pt\right\delimright^{\rlap{$\scriptstyle#3$}}$};%
}
\catcode`\_11
\definearrow3{s>}{%
\ifx\empty#1\empty
\expandafter\draw\expandafter[\CF_arrowcurrentstyle,-CF](\CF_arrowstartnode)--(\CF_arrowendnode);%
\else
\def\curvedarrow_style{shorten <=\CF_arrowoffset,shorten >=\CF_arrowoffset,}%
\CF_eaddtomacro\curvedarrow_style\CF_arrowcurrentstyle
\expandafter\draw\expandafter[\curvedarrow_style,-CF](\CF_arrowstartname)..controls#1..(\CF_arrowendname);
\ifx\empty#2\empty\else
abc
\fi
\fi
}
\definearrow7{-u>}{%
\CF_arrowshiftnodes{#3}%
\CF_expafter{\draw[}\CF_arrowcurrentstyle](\CF_arrowstartnode)--(\CF_arrowendnode)node[midway](Uarrow@arctangent){};%
\CF_ifempty{#4}
{\def\CF_Uarrowradius{0.333}}
{\def\CF_Uarrowradius{#4}}%
\CF_ifempty{#5}%
{\def\CF_Uarrowabsangle{60}}
{\pgfmathsetmacro\CF_Uarrowabsangle{abs(#5)}}
\expandafter\draw\expanded{[\CF_ifempty{#1}{draw=none}{\unexpanded\expandafter{\CF_arrowcurrentstyle}},-]}(Uarrow@arctangent)%
arc[radius=\CF_compoundsep*\CF_currentarrowlength*\CF_Uarrowradius,start angle=\CF_arrowcurrentangle+90,delta angle=\CF_Uarrowabsangle]node(Uarrow@start){};
\expandafter\draw\expanded{[\CF_ifempty{#2}{draw=none}{\unexpanded\expandafter{\CF_arrowcurrentstyle}}]}(Uarrow@arctangent)%
arc[radius=\CF_compoundsep*\CF_currentarrowlength*\CF_Uarrowradius,start angle=\CF_arrowcurrentangle+90,delta angle=-\CF_Uarrowabsangle]node(Uarrow@end){};
\pgfmathsetmacro\CF_temp{\CF_Uarrowradius*cos(\CF_arrowcurrentangle)<0?"+":"-"}%
\ifdim\CF_Uarrowradius pt>0pt
\CF_arrowdisplaylabel{#1}{0}\CF_temp{Uarrow@start}{#2}{1}\CF_temp{Uarrow@end}%
\else
\CF_arrowdisplaylabel{#2}{0}\CF_temp{Uarrow@start}{#1}{1}\CF_temp{Uarrow@end}%
\fi%
\CF_arrowdisplaylabel{#6}{0.5}+\CF_arrowstartnode{#7}{0.5}-\CF_arrowendnode
}
\definearrow7{-U>}{%
\CF_arrowshiftnodes{#3}%
\CF_expafter{\draw[}\CF_arrowcurrentstyle](\CF_arrowstartnode)--(\CF_arrowendnode)node[midway](Uarrow@arctangent){};%
\CF_ifempty{#4}
{\def\CF_Uarrowradius{0.333}}
{\def\CF_Uarrowradius{#4}}%
\CF_ifempty{#5}%
{\def\CF_Uarrowabsangle{60}}
{\pgfmathsetmacro\CF_Uarrowabsangle{abs(#5)}}% ne prendre en compte que la valeur absolue de l'angle
\expandafter\draw\expanded{[\CF_ifempty{#1}{draw=none}{\unexpanded\expandafter{\CF_arrowcurrentstyle}},-]}(Uarrow@arctangent)%
arc[radius=\CF_compoundsep*\CF_currentarrowlength*\CF_Uarrowradius,start angle=\CF_arrowcurrentangle-90,delta angle=-\CF_Uarrowabsangle]node(Uarrow@start){};
\expandafter\draw\expanded{[\CF_ifempty{#2}{draw=none}{\unexpanded\expandafter{\CF_arrowcurrentstyle}}]}(Uarrow@arctangent)%
arc[radius=\CF_compoundsep*\CF_currentarrowlength*\CF_Uarrowradius,start angle=\CF_arrowcurrentangle-90,delta angle=\CF_Uarrowabsangle]node(Uarrow@end){};
\pgfmathsetmacro\CF_temp{\CF_Uarrowradius*cos(\CF_arrowcurrentangle)<0?"-":"+"}%
\ifdim\CF_Uarrowradius pt>0pt
\CF_arrowdisplaylabel{#1}{0}\CF_temp{Uarrow@start}{#2}{1}\CF_temp{Uarrow@end}%
\else
\CF_arrowdisplaylabel{#2}{0}\CF_temp{Uarrow@start}{#1}{1}\CF_temp{Uarrow@end}%
\fi%
\CF_arrowdisplaylabel{#6}{0.5}+\CF_arrowstartnode{#7}{0.5}-\CF_arrowendnode
}
\catcode`\_8
% From https://tex.stackexchange.com/questions/260884/chemfig-how-to-do-these-wavy-markings
\pgfdeclaredecoration{complete sines}{initial}{
\state{initial}[
width=+0pt,
next state=sine,
persistent precomputation={
\pgfmathsetmacro\matchinglength{
\pgfdecoratedinputsegmentlength /
int(\pgfdecoratedinputsegmentlength/\pgfdecorationsegmentlength)
}
\setlength{\pgfdecorationsegmentlength}{\matchinglength pt}
}]{}
\state{sine}[width=\pgfdecorationsegmentlength]{
\pgfpathsine{
\pgfpoint
{0.125\pgfdecorationsegmentlength}
{0.25\pgfdecorationsegmentamplitude}
}
\pgfpathcosine{
\pgfpoint
{0.125\pgfdecorationsegmentlength}
{-0.25\pgfdecorationsegmentamplitude}
}
\pgfpathsine{
\pgfpoint
{0.125\pgfdecorationsegmentlength}
{-0.25\pgfdecorationsegmentamplitude}
}
\pgfpathcosine{
\pgfpoint
{0.125\pgfdecorationsegmentlength}
{0.25\pgfdecorationsegmentamplitude}
}
}
\state{final}{}
}
\tikzset{wv/.style={decorate,decoration=complete sines}}
\definesubmol{chainRest}2{#1[#2,.5]((-[::90,1,,,wv])-[::-90,1,,,wv])}
\definesubmol{chainStart}2{[#2](-[::90,1,,,wv])(-[::-90,1,,,wv])#1[,.5]}
\definesubmol{weakBond}2{-[#1,#2,,,dash pattern=on 2pt off 2pt]}
%ferrocene
%\wrapchem
%{
% -[:\rotate-303.51,0.4476]%(-[::96.755]4')%
% -[::303.51,,,,]%(-[::26.755]5')%
% -[::303.51,0.4476]%(-[::35.835]1')%
% <[::251.67,0.7741]@{r5}{}%(-[::74.820]2')%
% >[::329.64,0.7741]%(-[::35.835]3')%
% -[::205.18,0.7472,,,draw=none]@{r1}{}-[::80,0.70]%
% Fe
% -[:: 0,0.85]\ -[::0,0]@{r2}{}-[::85,0.7472,,,draw=none]
% <[::128.51,0.4476]@{r3}{}%(-[::263.245]3)%
% -[:: 56.49,,,,line width=2pt]@{r4}{}%(-[::333.245]2)%
% >[:: 56.49,0.4476]%(-[::324.165]1)%
% -[::108.33,0.7741]%(-[::285.180]5)%
% -[::30.36,0.7741]%(-[::334.255]4)
%}
%{
% \draw[rotate=\rotate] (r1) ellipse (6pt and 2pt);
% \draw[rotate=\rotate] (r2) ellipse (6pt and 2pt);
% \draw[-,rotate=\rotate,line width=0.6pt] (r2) -- ++(270:2pt);
% \fill[rotate=\rotate] (r3) ellipse (1.3pt and 1pt);
% \fill[rotate=\rotate] (r4) ellipse (1.3pt and 1pt);
% \fill[rotate=\rotate] (r5) ellipse (1pt and 1.3pt);
%}