Compare commits
5
Commits
90b01a491f
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
104be68bf7
|
||
|
|
b90d3dd001
|
||
|
|
fe2412987f
|
||
|
|
0a85566e56
|
||
|
|
c2628bde37
|
@@ -13,3 +13,9 @@
|
||||
[submodule "ws2022/rav/lecture"]
|
||||
path = ws2022/rav/lecture
|
||||
url = git@git.mathi.uni-heidelberg.de:cmerten/ravlecture
|
||||
[submodule "ws2023/groupschemes"]
|
||||
path = ws2023/groupschemes
|
||||
url = https://git.flavigny.de/christian/groupschemes-lecture
|
||||
[submodule "ws2023/groupschemes-lecture"]
|
||||
path = ws2023/groupschemes-lecture
|
||||
url = https://git.flavigny.de/christian/groupschemes-lecture
|
||||
|
||||
+1
-1
Submodule ws2022/rav/lecture updated: 40409ed872...2f326caf56
Submodule
+1
Submodule ws2023/groupschemes-lecture added at ff678c3b5c
Binary file not shown.
@@ -1,24 +0,0 @@
|
||||
\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}
|
||||
Binary file not shown.
@@ -1,226 +0,0 @@
|
||||
\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}
|
||||
@@ -1,280 +0,0 @@
|
||||
\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}}
|
||||
Reference in New Issue
Block a user