| @@ -41,6 +41,41 @@ | |||
| }, | |||
| } | |||
| \usetikzlibrary{quotes, angles, math} | |||
| \pgfplotsset{ | |||
| compat=1.15, | |||
| axis lines = middle, | |||
| ticks = none, | |||
| %default 2d plot/.style={% | |||
| % ticks=none, | |||
| % axis lines = middle, | |||
| % grid=both, | |||
| % minor tick num=4, | |||
| % grid style={line width=.1pt, draw=gray!10}, | |||
| % major grid style={line width=.2pt,draw=gray!50}, | |||
| % axis lines=middle, | |||
| % enlargelimits={abs=0.2} | |||
| } | |||
| \newcounter{curve} | |||
| \NewDocumentCommand{\algebraiccurve}{ O{} O{$#5 = 0$} O{-4:4} O{-4:4} m }{ | |||
| \addplot[id=curve\arabic{curve}, raw gnuplot, smooth, #1] function{% | |||
| f(x,y) = #5; | |||
| set xrange [#3]; | |||
| set yrange [#4]; | |||
| set view 0,0; | |||
| set isosample 1000,1000; | |||
| set size square; | |||
| set cont base; | |||
| set cntrparam levels incre 0,0.1,0; | |||
| unset surface; | |||
| splot f(x,y) | |||
| }; | |||
| \addlegendentry{#2} | |||
| \stepcounter{curve} | |||
| }% | |||
| % PAGE GEOMETRY | |||
| \geometry{ | |||
| top=1.2in,bottom=1.4in,left=1.3in,right=1.3in, | |||
| @@ -1 +1 @@ | |||
| Subproject commit 868e4cab60566f5d8dfaeb565c65f4041751c40a | |||
| Subproject commit 40409ed872ac4db0567ba9fac20e2dd955744e27 | |||
| @@ -0,0 +1,24 @@ | |||
| \documentclass{lecture} | |||
| \usepackage{standalone} | |||
| \usepackage{tikz} | |||
| \usepackage{subcaption} | |||
| \title{Groupschemes} | |||
| \author{Christian Dahlhausen\\[5mm] | |||
| Transcript of\\[1mm] | |||
| Christian Merten (\href{mailto:cmerten@mathi.uni-heidelberg.de}{cmerten@mathi.uni-heidelberg.de})\\ | |||
| } | |||
| \date{WiSe 2023} | |||
| \begin{document} | |||
| \newgeometry{right=15mm, left=15mm} | |||
| \maketitle | |||
| \restoregeometry | |||
| \tableofcontents | |||
| \input{lec01} | |||
| \end{document} | |||
| @@ -0,0 +1,226 @@ | |||
| \documentclass{lecture} | |||
| \title{Groupschemes} | |||
| \begin{document} | |||
| \chapter{Introduction} | |||
| Literature: Görtz-Wedhorn: Algebraic Geometry I and II | |||
| The goal of this lecture is a brief introduction to the theory of group schemes. | |||
| \begin{definition}[Group object] | |||
| Let $\mathcal{C}$ be a category with finite products. A \emph{group object in $\mathcal{C}$} is the | |||
| data $(G, m, e, i)$ where | |||
| \begin{itemize} | |||
| \item $G$ is an object of $\mathcal{C}$ | |||
| \item $m\colon G \times G \to G$ is the multiplication map | |||
| \item $e\colon 1 \to G$ is the unit | |||
| \item $i\colon G \to G$ is the inversion map | |||
| \end{itemize} | |||
| such that the following diagrams commute | |||
| \[ | |||
| \begin{tikzcd} | |||
| G \times G \times G \arrow{r}{m \times \text{id}} \arrow{d}{\text{id} \times m} & | |||
| G \times G \arrow{d}{m} \\ | |||
| G \times G \arrow{r}{m} & G | |||
| \end{tikzcd}, \quad | |||
| \begin{tikzcd} | |||
| G \times G \arrow{r}{m} & G \arrow{dl} \\ | |||
| G \times 1 \arrow{u}{\text{id} \times e} | |||
| \end{tikzcd} | |||
| \text{ and } | |||
| \begin{tikzcd} | |||
| G \arrow{r}{\text{id} \times i} \arrow{d} & G \times G \arrow{d}{m} \\ | |||
| 1 \arrow{r}{e} & G | |||
| \end{tikzcd} | |||
| .\] $G$ is called \emph{commutative}, if additionally the diagram | |||
| \[ | |||
| \begin{tikzcd} | |||
| G \times G \arrow{d}{m} \arrow{r}{\text{swap}} & G \times G \arrow{dl}{m} \\ | |||
| G & | |||
| \end{tikzcd} | |||
| \] commutes. | |||
| A \emph{morphism of group objects} $(G, m, e, i) \to (G', m', e', i')$ | |||
| is a morphism $f\colon G \to G'$ in $\mathcal{C}$ such that the diagrams | |||
| \[ | |||
| \begin{tikzcd} | |||
| G \times G \arrow{r}{f \times f} \arrow{d}{m} & G' \times G' \arrow{d}{m'} \\ | |||
| G \arrow{r}{f} & G' | |||
| \end{tikzcd} | |||
| , \quad | |||
| \begin{tikzcd} | |||
| G \arrow{r}{f} & G' \\ | |||
| 1 \arrow{u}{e} \arrow[swap]{ur}{e'} | |||
| \end{tikzcd} | |||
| \text{ and } | |||
| \begin{tikzcd} | |||
| G \arrow{d}{i} \arrow{r}{f} & G' \arrow{d}{i'} \\ | |||
| G \arrow{r}{f} & G' | |||
| \end{tikzcd} | |||
| .\] | |||
| This defines the category $\operatorname{Grp}(\mathcal{C})$ of group objects in $\mathcal{C}$. | |||
| \end{definition} | |||
| \begin{bsp}[] | |||
| \begin{itemize} | |||
| \item $\operatorname{Grp}(\text{Set}) \simeq \mathrm{Grp}$ | |||
| \item $\operatorname{Grp}(\text{Grp}) \simeq \mathrm{Ab}$ | |||
| \item $\operatorname{Grp}(\text{Ab}) \simeq ?$ | |||
| \item $\operatorname{Grp}(Top) \simeq \text{topological Groups}$ | |||
| \item $\operatorname{Grp}(Mfd_{\infty}) \simeq \text{Lie Groups}$ | |||
| \end{itemize} | |||
| \end{bsp} | |||
| \begin{definition}[group scheme] | |||
| Let $S$ be a scheme. | |||
| An \emph{S-group scheme} or an \emph{S-group} is a group object in the category of schemes over $S$. | |||
| \end{definition} | |||
| \begin{bem} | |||
| Let $S$ be a scheme. The structure of a group scheme over $S$ on a $S$-scheme $G$ is equivalent to a | |||
| factorisation of the functor of points | |||
| \[ | |||
| \begin{tikzcd} | |||
| \mathrm{Sch}_S \arrow{r} \arrow[dashed]{d} & \mathrm{Set} \\ | |||
| \mathrm{Grp} \arrow{ur} | |||
| \end{tikzcd} | |||
| \] via the forgetful functor from groups to sets. | |||
| \end{bem} | |||
| \begin{bsp} | |||
| Let $S$ be a scheme. | |||
| \begin{enumerate}[(i)] | |||
| \item Let $\Gamma$ be a group. Then $G = \Gamma_S$ where | |||
| $G(T) \coloneqq \{ \text{ locally constant maps $T \to \Gamma$ }\} $ | |||
| \item (additive group) $\mathbb{G}_{a, S}$ where $\mathbb{G}_{a,S}(T) = \mathcal{O}_T(T)$. We have | |||
| $\mathbb{G}_{a, S} \simeq \mathbb{A}^{1}_S$. | |||
| \item (multiplicative group) $\mathbb{G}_{m, S}$ where | |||
| $\mathbb{G}_{m, S}(T) \coloneqq \mathcal{O}_{T}(T)^{\times}$. | |||
| \item (roots of unity) $\mu_{n, S}$ ($n \ge 1$) where | |||
| $\mu_{n,S}(T) = \{ x \in \mathcal{O}_T(T)^{\times } \mid x^{n} = 1\}$. | |||
| \item $S = \mathrm{Spec}(R)$. $\mathrm{GL}_{n,R} = \mathrm{Spec}(A)$ where | |||
| $A = R[T_{ij} \mid 1 \le i, j \le n][\mathrm{det}^{-1}]$ where | |||
| $\mathrm{det} = \sum_{\sigma \in S_n} \mathrm{sgn}(\sigma) T_{1 \sigma(1)} \cdots T_{n \sigma(n)}$. | |||
| We obtain $\mathrm{GL}_{n,S}$ by base changing $\mathrm{GL}_{n, \Z}$. | |||
| \end{enumerate} | |||
| \end{bsp} | |||
| \begin{lemma} | |||
| Let $G$ be a $S$-group. Then | |||
| $G \to S$ is separated if and only if $S \xrightarrow{e} G$ is a closed immersion. | |||
| \end{lemma} | |||
| \begin{definition}[] | |||
| Let $R$ be a ring. A \emph{(commutative) Hopf-Algebra} over $R$ is a group object | |||
| in $\mathrm{Alg}_R^{\text{op}}$, where $\mathrm{Alg}_R = \mathrm{CRing}_R$. | |||
| \end{definition} | |||
| \begin{bem} | |||
| For a $R$-Hopf-Algebra $A$, we denote the canonical maps by | |||
| \begin{itemize} | |||
| \item $\mu \colon A \to A \otimes_R A $ (Comultiplication) | |||
| \item $\epsilon \colon A \to R$ (Counit) | |||
| \item $\iota\colon A \to A$ (Antipode) | |||
| \end{itemize} | |||
| A Hopf-Algebra is called \emph{cocommutative}, if the associated group object in $\mathrm{Alg}_R^{\text{op}}$ | |||
| kommutativ ist. | |||
| \end{bem} | |||
| \begin{bem} | |||
| For a ring $R$, by construction we have an equivalence of categories between | |||
| the category of affine $R$-group schemes and the opposite category of $R$-Hopf-Algebras. | |||
| \end{bem} | |||
| \begin{bsp}[] | |||
| The additive group $\mathbb{G}_{a,R} = \mathrm{Spec}(R[t])$ | |||
| has | |||
| \begin{itemize} | |||
| \item comultiplication $\mu\colon R[t] \to R[t] \otimes_R R[t], t \mapsto t \otimes 1 - 1 \otimes t$. | |||
| \item counit $\epsilon\colon R[t] \to R, t \mapsto 0$ | |||
| \item antipode $\iota\colon R[t] \to R[t], t \mapsto -t$ | |||
| \end{itemize} | |||
| \end{bsp} | |||
| \begin{proof} | |||
| For any $R$-algebra $A$ we have $\mathbb{G}_{a,R}(A) = A$ and the diagram | |||
| \[ | |||
| \begin{tikzcd} | |||
| \mathbb{G}_{a, R}(A) \times \mathbb{G}_{a, R}(A) \arrow{r}{m} \arrow{d}{\simeq} | |||
| & \mathbb{G}_{a,R}(A) \arrow{d}{\simeq} \\ | |||
| \mathrm{Hom}_R(R[s_1, s_2], A) \arrow{r}{\mu^{*}} & \mathrm{Hom}_{R}(R[t], A) | |||
| \end{tikzcd} | |||
| .\] | |||
| \end{proof} | |||
| \begin{definition} | |||
| Let $G$ be a $S$-group. A \emph{subgroupscheme} of $G$ is a subscheme $H \subseteq G$ such that | |||
| \begin{enumerate}[1)] | |||
| \item for all $T \in \mathrm{Sch}_S$, we have $H(T) \subseteq G(T)$ a subgroup, | |||
| \item We have commutative diagrams | |||
| \[ | |||
| \begin{tikzcd} | |||
| H \times_S H \arrow{r} \arrow[dashed]{d} & G \times_S G \arrow{r}{m} & G \\ | |||
| H \arrow{urr} | |||
| \end{tikzcd} | |||
| \text{ and } | |||
| \begin{tikzcd} | |||
| S \arrow{r}{e} \arrow[dashed]{d} & G \\ | |||
| H \arrow{ur} | |||
| \end{tikzcd} | |||
| \] | |||
| \end{enumerate} | |||
| A subgroup scheme $H \subseteq G $ is \emph{normal} if $H(T)$ is a normal subgroup of $G(T)$ for all | |||
| $T \in \mathrm{Sch}_S$. | |||
| For a morphism $f\colon G \to G'$ of $S$-groups and a subgroup $H' \subseteq G'$, let | |||
| $f^{-1}(H')$ be $G \times_G' H$. For $H' = {1} \xrightarrow{e} G'$, we obtain the | |||
| \emph{kernel of $f$} and the cartesian square | |||
| \[ | |||
| \begin{tikzcd} | |||
| \operatorname{Ker}(f) \arrow{r} \arrow{d} & G \arrow{d}{f} \\ | |||
| S \arrow{r}{e} & G' | |||
| \end{tikzcd} | |||
| .\] | |||
| \end{definition} | |||
| \begin{bem}[] | |||
| The kernel of a homomorphism $f$ of $S$-groups is for any $S$-scheme $T$ given by | |||
| \[ | |||
| \text{Ker}(f)(T) = \text{ker}\left(f(T)\right) | |||
| .\] In particular, the $\text{Ker}(f)$ is normal. | |||
| \end{bem} | |||
| \begin{definition} | |||
| Let $G$ be a $S$-group, $T$ a $S$-scheme and $g \in G(T) = \mathrm{Hom}_S(T, G)$. Define | |||
| the \emph{lefttranslation by $g$} as | |||
| \[ | |||
| \begin{tikzcd} | |||
| G_T \arrow[dashed]{d}{t_g} & \arrow[swap]{l}{=} T \times_T G_T \arrow{d}{g \times \text{id}} \\ | |||
| G_T & \arrow{l}{m} G_T \times_T G_T | |||
| \end{tikzcd} | |||
| .\] | |||
| \label{def:left-translation} | |||
| \end{definition} | |||
| \begin{bem} | |||
| In the situation of \ref{def:left-translation}, for every $T' \xrightarrow{f} T$, the map | |||
| \[ | |||
| t_g(T')\colon G_T(T') = G(T') \longrightarrow G(T') = G_T(T') | |||
| \] is the lefttranslation by the element $f^{*}(g) \in G(T')$. | |||
| \end{bem} | |||
| \begin{bem} | |||
| Consider | |||
| \[ | |||
| \begin{tikzcd} | |||
| G \times_S G \arrow{d}{m} \arrow{r}{(g, h) \mapsto (gh, h)} & G \times_S G \arrow{dl}{\mathrm{pr}_1} \\ | |||
| G | |||
| \end{tikzcd} | |||
| .\] Let $\mathcal{P}$ be a property of morphisms stable under base change and composition with | |||
| isomorphisms. Then whenever $G \to S$ satisfies $\mathcal{P}$, then $m$ satisfies $\mathcal{P}$. | |||
| \end{bem} | |||
| \end{document} | |||
| @@ -0,0 +1,280 @@ | |||
| \ProvidesClass{lecture} | |||
| \LoadClass[a4paper]{book} | |||
| \RequirePackage{faktor} | |||
| \RequirePackage{xparse} | |||
| \RequirePackage{stmaryrd} | |||
| \RequirePackage[utf8]{inputenc} | |||
| \RequirePackage[T1]{fontenc} | |||
| \RequirePackage{textcomp} | |||
| \RequirePackage{babel} | |||
| \RequirePackage{amsmath, amssymb, amsthm} | |||
| \RequirePackage{mdframed} | |||
| \RequirePackage{tikz-cd} | |||
| \RequirePackage{geometry} | |||
| \RequirePackage{import} | |||
| \RequirePackage{pdfpages} | |||
| \RequirePackage{transparent} | |||
| \RequirePackage{xcolor} | |||
| \RequirePackage{array} | |||
| \RequirePackage[shortlabels]{enumitem} | |||
| \RequirePackage{tikz} | |||
| \RequirePackage{pgfplots} | |||
| \RequirePackage[pagestyles, nobottomtitles]{titlesec} | |||
| \RequirePackage{listings} | |||
| \RequirePackage{mathtools} | |||
| \RequirePackage{forloop} | |||
| \RequirePackage{totcount} | |||
| \RequirePackage[hidelinks, unicode]{hyperref} %[unicode, hidelinks]{hyperref} | |||
| \RequirePackage{bookmark} | |||
| \RequirePackage{wasysym} | |||
| \RequirePackage{environ} | |||
| \RequirePackage{stackrel} | |||
| \RequirePackage{subcaption} | |||
| \usetikzlibrary{quotes, angles, math} | |||
| \pgfplotsset{ | |||
| compat=1.15, | |||
| axis lines = middle, | |||
| ticks = none, | |||
| %default 2d plot/.style={% | |||
| % ticks=none, | |||
| % axis lines = middle, | |||
| % grid=both, | |||
| % minor tick num=4, | |||
| % grid style={line width=.1pt, draw=gray!10}, | |||
| % major grid style={line width=.2pt,draw=gray!50}, | |||
| % axis lines=middle, | |||
| % enlargelimits={abs=0.2} | |||
| } | |||
| \newcounter{curve} | |||
| \NewDocumentCommand{\algebraiccurve}{ O{} O{$#5 = 0$} O{-4:4} O{-4:4} m }{ | |||
| \addplot[id=curve\arabic{curve}, raw gnuplot, smooth, #1] function{% | |||
| f(x,y) = #5; | |||
| set xrange [#3]; | |||
| set yrange [#4]; | |||
| set view 0,0; | |||
| set isosample 1000,1000; | |||
| set size square; | |||
| set cont base; | |||
| set cntrparam levels incre 0,0.1,0; | |||
| unset surface; | |||
| splot f(x,y) | |||
| }; | |||
| \addlegendentry{#2} | |||
| \stepcounter{curve} | |||
| }% | |||
| %\newcommand{\algebraiccurve}[3][][hi]{% | |||
| % %\addlegendentry{#2} | |||
| % \stepcounter{curve} | |||
| %}% | |||
| \geometry{ | |||
| bottom=35mm | |||
| } | |||
| %\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} | |||
| \DeclareOption{uebung}{ | |||
| \makeatletter | |||
| \lhead{\@title} | |||
| \rhead{\@author} | |||
| \makeatother | |||
| } | |||
| \ProcessOptions\relax | |||
| % PARAGRAPH no indent but skip | |||
| %\setlength{\parskip}{3mm} | |||
| %\setlength{\parindent}{0mm} | |||
| \newtheorem{satz}{Proposition}[chapter] | |||
| \newtheorem{theorem}[satz]{Theorem} | |||
| \newtheorem{lemma}[satz]{Lemma} | |||
| \newtheorem{korollar}[satz]{Corollary} | |||
| \theoremstyle{definition} | |||
| \newtheorem{definition}[satz]{Definition} | |||
| \newtheorem{bsp}[satz]{Example} | |||
| \newtheorem{bem}[satz]{Remark} | |||
| \newtheorem{aufgabe}[satz]{Exercise} | |||
| \counterwithin{figure}{chapter} | |||
| % enable aufgaben counting | |||
| %\regtotcounter{aufgabe} | |||
| \newcommand{\N}{\mathbb{N}} | |||
| \newcommand{\R}{\mathbb{R}} | |||
| \newcommand{\Z}{\mathbb{Z}} | |||
| \newcommand{\Q}{\mathbb{Q}} | |||
| \newcommand{\C}{\mathbb{C}} | |||
| % I(V(I)) | |||
| \newcommand{\ivkr}{\mathcal{I}_k(\mathcal{V}_{(k^{(r)})^n}(I))} | |||
| % HEADERS | |||
| %\newpagestyle{main}[\small]{ | |||
| % \setheadrule{.55pt}% | |||
| % \sethead[\thepage]% even-left | |||
| % []% even-center | |||
| % [\thechapter~\chaptertitle]% even-right | |||
| % {\thesection~\sectiontitle}% odd-left | |||
| % {}% odd-center | |||
| % {\thepage}% odd-right | |||
| %} | |||
| %\pagestyle{main} | |||
| \newcommand{\incfig}[1]{% | |||
| \def\svgwidth{\columnwidth} | |||
| \import{./figures/}{#1.pdf_tex} | |||
| } | |||
| \pdfsuppresswarningpagegroup=1 | |||
| % horizontal rule | |||
| \newcommand\hr{ | |||
| \noindent\rule[0.5ex]{\linewidth}{0.5pt} | |||
| } | |||
| % code listings, define style | |||
| \lstdefinestyle{mystyle}{ | |||
| commentstyle=\color{gray}, | |||
| keywordstyle=\color{blue}, | |||
| numberstyle=\tiny\color{gray}, | |||
| stringstyle=\color{black}, | |||
| basicstyle=\ttfamily\footnotesize, | |||
| breakatwhitespace=false, | |||
| breaklines=true, | |||
| captionpos=b, | |||
| keepspaces=true, | |||
| numbers=left, | |||
| numbersep=5pt, | |||
| showspaces=false, | |||
| showstringspaces=false, | |||
| showtabs=false, | |||
| tabsize=2 | |||
| } | |||
| % activate my colour style | |||
| \lstset{style=mystyle} | |||
| % better stackrel | |||
| \let\oldstackrel\stackrel | |||
| \renewcommand{\stackrel}[3][]{% | |||
| \oldstackrel[\mathclap{#1}]{\mathclap{#2}}{#3} | |||
| }% | |||
| % integral d sign | |||
| \makeatletter \renewcommand\d[2][]{\ensuremath{% | |||
| \,\mathrm{d}^{#1}#2\@ifnextchar^{}{\@ifnextchar\d{}{\,}}}} | |||
| \makeatother | |||
| % remove page before chapters | |||
| \let\cleardoublepage=\clearpage | |||
| %josua | |||
| \newcommand{\norm}[1]{\left\Vert#1\right\Vert} | |||
| % contradiction | |||
| \newcommand{\contr}{\text{\Large\lightning}} | |||
| % people seem to prefer varepsilon over epsilon | |||
| \renewcommand{\epsilon}{\varepsilon} | |||
| \ExplSyntaxOn | |||
| % S-tackrelcompatible ALIGN environment | |||
| % some might also call it the S-uper ALIGN environment | |||
| % uses regular expressions to calculate the widest stackrel | |||
| % to put additional padding on both sides of relation symbols | |||
| \NewEnviron{salign} | |||
| { | |||
| \begin{align} | |||
| \lec_insert_padding:V \BODY | |||
| \end{align} | |||
| } | |||
| % starred version that does no equation numbering | |||
| \NewEnviron{salign*} | |||
| { | |||
| \begin{align*} | |||
| \lec_insert_padding:V \BODY | |||
| \end{align*} | |||
| } | |||
| % some helper variables | |||
| \tl_new:N \l__lec_text_tl | |||
| \seq_new:N \l_lec_stackrels_seq | |||
| \int_new:N \l_stackrel_count_int | |||
| \int_new:N \l_idx_int | |||
| \box_new:N \l_tmp_box | |||
| \dim_new:N \l_tmp_dim_a | |||
| \dim_new:N \l_tmp_dim_b | |||
| \dim_new:N \l_tmp_dim_c | |||
| \dim_new:N \l_tmp_dim_needed | |||
| % function to insert padding according to widest stackrel | |||
| \cs_new_protected:Nn \lec_insert_padding:n | |||
| { | |||
| \tl_set:Nn \l__lec_text_tl { #1 } | |||
| % get all stackrels in this align environment | |||
| \regex_extract_all:nnN { \c{stackrel}(\[.*?\])?{(.*?)}{(.*?)} } { #1 } \l_lec_stackrels_seq | |||
| % get number of stackrels | |||
| \int_set:Nn \l_stackrel_count_int { \seq_count:N \l_lec_stackrels_seq } | |||
| \int_set:Nn \l_idx_int { 1 } | |||
| \dim_set:Nn \l_tmp_dim_needed { 0pt } | |||
| % iterate over stackrels | |||
| \int_while_do:nn { \l_idx_int <= \l_stackrel_count_int } | |||
| { | |||
| % calculate width of text | |||
| \hbox_set:Nn \l_tmp_box {$\seq_item:Nn \l_lec_stackrels_seq { \l_idx_int + 1 }$} | |||
| \dim_set:Nn \l_tmp_dim_a {\box_wd:N \l_tmp_box} | |||
| \hbox_set:Nn \l_tmp_box {$\seq_item:Nn \l_lec_stackrels_seq { \l_idx_int + 2 }$} | |||
| \dim_set:Nn \l_tmp_dim_c {\box_wd:N \l_tmp_box} | |||
| \dim_set:Nn \l_tmp_dim_a {\dim_max:nn{ \l_tmp_dim_c} {\l_tmp_dim_a}} | |||
| % calculate width of relation symbol | |||
| \hbox_set:Nn \l_tmp_box {$\seq_item:Nn \l_lec_stackrels_seq { \l_idx_int + 3 }$} | |||
| \dim_set:Nn \l_tmp_dim_b {\box_wd:N \l_tmp_box} | |||
| % check if 0.5*(a-b) > minimum padding, if yes updated minimum padding | |||
| \dim_compare:nNnTF | |||
| { 1pt * \dim_ratio:nn { \l_tmp_dim_a - \l_tmp_dim_b } { 2pt } } > { \l_tmp_dim_needed } | |||
| { \dim_set:Nn \l_tmp_dim_needed { 1pt * \dim_ratio:nn { \l_tmp_dim_a - \l_tmp_dim_b } { 2pt } } } | |||
| { } | |||
| % increment list index by three, as every stackrel produces three list entries | |||
| \int_incr:N \l_idx_int | |||
| \int_incr:N \l_idx_int | |||
| \int_incr:N \l_idx_int | |||
| \int_incr:N \l_idx_int | |||
| } | |||
| % replace all relations with align characters (&) and add the needed padding | |||
| \regex_replace_all:nnN | |||
| { (\c{simeq}&|&\c{simeq}|\c{leq}&|&\c{leq}|\c{geq}&|&\c{geq}|\c{iff}&|&\c{iff}|\c{impliedby}&|&\c{impliedby}|\c{implies}&|&\c{implies}|\c{approx}&|&\c{approx}|\c{equiv}&|&\c{equiv}|=&|&=|\c{le}&|&\c{le}|\c{ge}&|&\c{ge}|&\c{stackrel}(\[.*?\])?{.*?}{.*?}|\c{stackrel}(\[.*?\])?{.*?}{.*?}&|&\c{neq}|\c{neq}&|>&|&>|<&|&<) } | |||
| { \c{kern} \u{l_tmp_dim_needed} \1 \c{kern} \u{l_tmp_dim_needed} } | |||
| \l__lec_text_tl | |||
| \l__lec_text_tl | |||
| } | |||
| \cs_generate_variant:Nn \lec_insert_padding:n { V } | |||
| \NewEnviron{leftright} | |||
| { | |||
| \lec_replace_parens:V \BODY | |||
| } | |||
| % function to replace parens with left right | |||
| \cs_new_protected:Nn \lec_replace_parens:n | |||
| { | |||
| \tl_set:Nn \l__lec_text_tl { #1 } | |||
| % replace all parantheses with \left( \right) | |||
| \regex_replace_all:nnN { \( } { \c{left}( } \l__lec_text_tl | |||
| \regex_replace_all:nnN { \) } { \c{right}) } \l__lec_text_tl | |||
| \regex_replace_all:nnN { \[ } { \c{left}[ } \l__lec_text_tl | |||
| \regex_replace_all:nnN { \] } { \c{right}] } \l__lec_text_tl | |||
| \l__lec_text_tl | |||
| } | |||
| \cs_generate_variant:Nn \lec_replace_parens:n { V } | |||
| \ExplSyntaxOff | |||
| % add one equation tag to the current line to otherwise unnumbered environment | |||
| \newcommand{\tageq}{\stepcounter{equation}\tag{\theequation}} | |||