Merge branch 'master' of hartley.uberspace.de:christian/ana-lecture
This commit is contained in:
+11
-11
@@ -25,6 +25,7 @@
|
|||||||
\RequirePackage{bookmark}
|
\RequirePackage{bookmark}
|
||||||
\RequirePackage{wasysym}
|
\RequirePackage{wasysym}
|
||||||
\RequirePackage{environ}
|
\RequirePackage{environ}
|
||||||
|
\RequirePackage{stackrel}
|
||||||
|
|
||||||
\usetikzlibrary{quotes, angles}
|
\usetikzlibrary{quotes, angles}
|
||||||
|
|
||||||
@@ -134,8 +135,8 @@
|
|||||||
|
|
||||||
% better stackrel
|
% better stackrel
|
||||||
\let\oldstackrel\stackrel
|
\let\oldstackrel\stackrel
|
||||||
\renewcommand{\stackrel}[2]{%
|
\renewcommand{\stackrel}[3][]{%
|
||||||
\oldstackrel{\mathclap{#1}}{#2}
|
\oldstackrel[\mathclap{#1}]{\mathclap{#2}}{#3}
|
||||||
}%
|
}%
|
||||||
|
|
||||||
% integral d sign
|
% integral d sign
|
||||||
@@ -183,6 +184,7 @@
|
|||||||
\box_new:N \l_tmp_box
|
\box_new:N \l_tmp_box
|
||||||
\dim_new:N \l_tmp_dim_a
|
\dim_new:N \l_tmp_dim_a
|
||||||
\dim_new:N \l_tmp_dim_b
|
\dim_new:N \l_tmp_dim_b
|
||||||
|
\dim_new:N \l_tmp_dim_c
|
||||||
\dim_new:N \l_tmp_dim_needed
|
\dim_new:N \l_tmp_dim_needed
|
||||||
|
|
||||||
% function to insert padding according to widest stackrel
|
% function to insert padding according to widest stackrel
|
||||||
@@ -190,7 +192,7 @@
|
|||||||
{
|
{
|
||||||
\tl_set:Nn \l__lec_text_tl { #1 }
|
\tl_set:Nn \l__lec_text_tl { #1 }
|
||||||
% get all stackrels in this align environment
|
% get all stackrels in this align environment
|
||||||
\regex_extract_all:nnN { \c{stackrel}{(.*?)}{(.*?)} } { #1 } \l_lec_stackrels_seq
|
\regex_extract_all:nnN { \c{stackrel}(\[.*?\])?{(.*?)}{(.*?)} } { #1 } \l_lec_stackrels_seq
|
||||||
% get number of stackrels
|
% get number of stackrels
|
||||||
\int_set:Nn \l_stackrel_count_int { \seq_count:N \l_lec_stackrels_seq }
|
\int_set:Nn \l_stackrel_count_int { \seq_count:N \l_lec_stackrels_seq }
|
||||||
\int_set:Nn \l_idx_int { 1 }
|
\int_set:Nn \l_idx_int { 1 }
|
||||||
@@ -201,30 +203,28 @@
|
|||||||
% calculate width of text
|
% calculate width of text
|
||||||
\hbox_set:Nn \l_tmp_box {$\seq_item:Nn \l_lec_stackrels_seq { \l_idx_int + 1 }$}
|
\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}
|
\dim_set:Nn \l_tmp_dim_a {\box_wd:N \l_tmp_box}
|
||||||
% calculate width of relation symbol
|
|
||||||
\hbox_set:Nn \l_tmp_box {$\seq_item:Nn \l_lec_stackrels_seq { \l_idx_int + 2 }$}
|
\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}
|
\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
|
% check if 0.5*(a-b) > minimum padding, if yes updated minimum padding
|
||||||
\dim_compare:nNnTF
|
\dim_compare:nNnTF
|
||||||
{ 1pt * \dim_ratio:nn { \l_tmp_dim_a - \l_tmp_dim_b } { 2pt } } > { \l_tmp_dim_needed }
|
{ 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 } } }
|
{ \dim_set:Nn \l_tmp_dim_needed { 1pt * \dim_ratio:nn { \l_tmp_dim_a - \l_tmp_dim_b } { 2pt } } }
|
||||||
{ }
|
{ }
|
||||||
\quad
|
|
||||||
% increment list index by three, as every stackrel produces three list entries
|
% 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
|
||||||
\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
|
% replace all relations with align characters (&) and add the needed padding
|
||||||
\regex_replace_all:nnN
|
\regex_replace_all:nnN
|
||||||
{ (\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{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} }
|
{ \c{kern} \u{l_tmp_dim_needed} \1 \c{kern} \u{l_tmp_dim_needed} }
|
||||||
\l__lec_text_tl
|
\l__lec_text_tl
|
||||||
% 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
|
\l__lec_text_tl
|
||||||
}
|
}
|
||||||
\cs_generate_variant:Nn \lec_insert_padding:n { V }
|
\cs_generate_variant:Nn \lec_insert_padding:n { V }
|
||||||
|
|||||||
Reference in New Issue
Block a user