From b58f8f909aeec6d28a8d78be1ea126744934c852 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 30 Jan 2018 00:05:57 +0000 Subject: aligned-overset (29jan18) git-svn-id: svn://tug.org/texlive/trunk@46479 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/aligned-overset/README.md | 4 + .../doc/latex/aligned-overset/aligned-overset.pdf | Bin 0 -> 360647 bytes .../latex/aligned-overset/aligned-overset.dtx | 197 +++++++++++++++++++++ .../tex/latex/aligned-overset/aligned-overset.sty | 109 ++++++++++++ Master/tlpkg/bin/tlpkg-ctan-check | 1 + Master/tlpkg/libexec/ctan2tds | 1 + Master/tlpkg/tlpsrc/aligned-overset.tlpsrc | 0 Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc | 1 + 8 files changed, 313 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/aligned-overset/README.md create mode 100644 Master/texmf-dist/doc/latex/aligned-overset/aligned-overset.pdf create mode 100644 Master/texmf-dist/source/latex/aligned-overset/aligned-overset.dtx create mode 100644 Master/texmf-dist/tex/latex/aligned-overset/aligned-overset.sty create mode 100644 Master/tlpkg/tlpsrc/aligned-overset.tlpsrc diff --git a/Master/texmf-dist/doc/latex/aligned-overset/README.md b/Master/texmf-dist/doc/latex/aligned-overset/README.md new file mode 100644 index 00000000000..31118d1c5bb --- /dev/null +++ b/Master/texmf-dist/doc/latex/aligned-overset/README.md @@ -0,0 +1,4 @@ +This package allows the base character of `\underset` or `\overset` to be used as the alignment position for the amsmath aligned math environments. + +To install, you can run `tex align-overset.dtx` and copy the generated file `aligned-overset.sty` to a directory in the search path of your TeX installation. +For quick evaluation, you can also rename `align-overset.dtx` to `align-overset.sty` and use that file directly. diff --git a/Master/texmf-dist/doc/latex/aligned-overset/aligned-overset.pdf b/Master/texmf-dist/doc/latex/aligned-overset/aligned-overset.pdf new file mode 100644 index 00000000000..bcac646c936 Binary files /dev/null and b/Master/texmf-dist/doc/latex/aligned-overset/aligned-overset.pdf differ diff --git a/Master/texmf-dist/source/latex/aligned-overset/aligned-overset.dtx b/Master/texmf-dist/source/latex/aligned-overset/aligned-overset.dtx new file mode 100644 index 00000000000..871622321b0 --- /dev/null +++ b/Master/texmf-dist/source/latex/aligned-overset/aligned-overset.dtx @@ -0,0 +1,197 @@ +% \iffalse meta-comment +% +%% Copyright (C) 2018 by Marcel Krueger +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +% +%<*batch> +%<*gobble> +\ifx\jobname\relax\let\documentclass\undefined\fi +\ifx\documentclass\undefined +\csname fi\endcsname +% +\input l3docstrip.tex +\keepsilent +\preamble +\endpreamble +\generate{\file{aligned-overset.sty}{\from{aligned-overset.dtx}{package}}} +\endbatchfile +% +%<*gobble> +\fi +\expandafter\ifx\csname @currname\endcsname\empty +\csname fi\endcsname +% +%<*driver> +\documentclass[full]{l3doc} +\usepackage{aligned-overset} +\begin{document} +\DocInput{aligned-overset.dtx} +\PrintIndex +\PrintChanges +\end{document} +% +%<*gobble> +\fi +% +% \fi +% +% \GetFileInfo{aligned-overset.dtx} +% \title{The \pkg{aligned-overset} package\thanks{This document +% corresponds to \pkg{aligned-overset}~0.0.1, dated~2018/01/18.}} +% \author{Marcel Kr\"uger \\ \href{mailto:tex@2krueger.de}{tex@2krueger.de}} +% +% \maketitle +% +% \begin{documentation} +% This package allows the base character of \cmd\underset{} or \cmd\overset{} to be used as the alignment position for the amsmath aligned math environments. +% +% \section{Example} +% The naive way to align at an operator annotated by \cmd\overset{} would be +% \begin{verbatim} +% \begin{align*} +% f(x)&\overset{\text{Def}}=x+x\\ +% & =2x +% \end{align*} +% \end{verbatim} +% This results in +% \begin{align*} +% f(x)&\overset{\text{Def}}=x+x\\ +% & =2x +% \end{align*} +% But here, the two equal signes are not aligned. +% +% Using this package, this can be fixed by writing +% \begin{verbatim} +% \begin{align*} +% f(x)\overset{\text{Def}}&=x+x\\ +% &=2x +% \end{align*} +% \end{verbatim} +% which result in correct alignment: +% \begin{align*} +% f(x)\overset{\text{Def}}&=x+x\\ +% &=2x +% \end{align*} +% \section{Usage} +% \begin{function}{\overset,\underset} +% To add an alignment point at an \cmd\overset{} or \cmd\underset, add a |&| before the base symbol. +% The |&| should not be enclosed in braces, even if the symbols are enclosed in braces. +% For example you have to write |\overset{\approx}&{\ge}| instead of |\overset{\approx}{&\ge}|. +% \end{function} +% \end{documentation} +% \begin{implementation} +% \section{The implementation} +% \begin{macrocode} +%<@@=alignedsets> +% \end{macrocode} +% \iffalse +%<*package> +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplPackage + {aligned-overset} + {2018/01/18} + {0.0.1} + {aligned overset and underset} + +\RequirePackage{xparse,amsmath,mathtools} +% +% \fi +% \begin{macrocode} +\box_new:N\l__alignedsets_clap_box +\box_new:N\l__alignedsets_full_box + +% \end{macrocode} +% \begin{macro}{\overset} +% \begin{macrocode} +\let\__alignedsets_original_overset:nn\overset +\cs_set:Npn\overset{ + \group_align_safe_begin: + \__alignedsets_modified_overset:nwn +} +\NewExpandableDocumentCommand\__alignedsets_modified_overset:nwn{mt{&}m}{ + \group_align_safe_end: + \IfBooleanTF{#2}{ + \group_begin: + \hbox_set:Nn\l__alignedsets_clap_box{ + $ + \displaystyle + {}\__alignedsets_original_overset:nn{\mathclap{#1}}{#3}{} + $ + } + \hbox_set:Nn\l__alignedsets_full_box{ + $ + \displaystyle + {}\__alignedsets_original_overset:nn{#1}{#3}{} + $ + } + \hspace{ + \dim_eval:n{(\box_wd:N\l__alignedsets_full_box-\box_wd:N\l__alignedsets_clap_box)/2} + } + \exp_args:NNNx + \group_end: + {&} + \hspace{ + -\dim_eval:n{ + (\box_wd:N\l__alignedsets_full_box-\box_wd:N\l__alignedsets_clap_box)/2 + } + } + \__alignedsets_original_overset:nn{#1}{#3} + }{ + \__alignedsets_original_overset:nn{#1}{#3} + } +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\underset} +% \begin{macrocode} +\let\__alignedsets_original_underset:nn\underset +\cs_set:Npn\underset{ + \group_align_safe_begin: + \__alignedsets_modified_underset:nwn +} +\NewExpandableDocumentCommand\__alignedsets_modified_underset:nwn{mt{&}m}{ + \group_align_safe_end: + \group_end_ee: + \IfBooleanTF{#2}{ + \group_begin: + \hbox_set:Nn\l__alignedsets_clap_box{ + $ + \displaystyle + {}\__alignedsets_original_underset:nn{\mathclap{#1}}{#3}{} + $ + } + \hbox_set:Nn\l__alignedsets_full_box{ + $ + \displaystyle + {}\__alignedsets_original_underset:nn{#1}{#3}{} + $ + } + \hspace{ + \dim_eval:n{(\box_wd:N\l__alignedsets_full_box-\box_wd:N\l__alignedsets_clap_box)/2} + } + \exp_args:NNNx + \group_end: + {&} + \hspace{ + -\dim_eval:n{ + (\box_wd:N\l__alignedsets_full_box-\box_wd:N\l__alignedsets_clap_box)/2 + } + } + \__alignedsets_original_underset:nn{#1}{#3} + }{ + \__alignedsets_original_underset:nn{#1}{#3} + } +} +% \end{macrocode} +% \end{macro} +% \end{implementation} diff --git a/Master/texmf-dist/tex/latex/aligned-overset/aligned-overset.sty b/Master/texmf-dist/tex/latex/aligned-overset/aligned-overset.sty new file mode 100644 index 00000000000..5495608cb83 --- /dev/null +++ b/Master/texmf-dist/tex/latex/aligned-overset/aligned-overset.sty @@ -0,0 +1,109 @@ +%% +%% This is file `aligned-overset.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% aligned-overset.dtx (with options: `package') +%% +%% Copyright (C) 2018 by Marcel Krueger +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplPackage + {aligned-overset} + {2018/01/18} + {0.0.1} + {aligned overset and underset} + +\RequirePackage{xparse,amsmath,mathtools} +\box_new:N\l__alignedsets_clap_box +\box_new:N\l__alignedsets_full_box + +\let\__alignedsets_original_overset:nn\overset +\cs_set:Npn\overset{ + \group_align_safe_begin: + \__alignedsets_modified_overset:nwn +} +\NewExpandableDocumentCommand\__alignedsets_modified_overset:nwn{mt{&}m}{ + \group_align_safe_end: + \IfBooleanTF{#2}{ + \group_begin: + \hbox_set:Nn\l__alignedsets_clap_box{ + $ + \displaystyle + {}\__alignedsets_original_overset:nn{\mathclap{#1}}{#3}{} + $ + } + \hbox_set:Nn\l__alignedsets_full_box{ + $ + \displaystyle + {}\__alignedsets_original_overset:nn{#1}{#3}{} + $ + } + \hspace{ + \dim_eval:n{(\box_wd:N\l__alignedsets_full_box-\box_wd:N\l__alignedsets_clap_box)/2} + } + \exp_args:NNNx + \group_end: + {&} + \hspace{ + -\dim_eval:n{ + (\box_wd:N\l__alignedsets_full_box-\box_wd:N\l__alignedsets_clap_box)/2 + } + } + \__alignedsets_original_overset:nn{#1}{#3} + }{ + \__alignedsets_original_overset:nn{#1}{#3} + } +} +\let\__alignedsets_original_underset:nn\underset +\cs_set:Npn\underset{ + \group_align_safe_begin: + \__alignedsets_modified_underset:nwn +} +\NewExpandableDocumentCommand\__alignedsets_modified_underset:nwn{mt{&}m}{ + \group_align_safe_end: + \group_end_ee: + \IfBooleanTF{#2}{ + \group_begin: + \hbox_set:Nn\l__alignedsets_clap_box{ + $ + \displaystyle + {}\__alignedsets_original_underset:nn{\mathclap{#1}}{#3}{} + $ + } + \hbox_set:Nn\l__alignedsets_full_box{ + $ + \displaystyle + {}\__alignedsets_original_underset:nn{#1}{#3}{} + $ + } + \hspace{ + \dim_eval:n{(\box_wd:N\l__alignedsets_full_box-\box_wd:N\l__alignedsets_clap_box)/2} + } + \exp_args:NNNx + \group_end: + {&} + \hspace{ + -\dim_eval:n{ + (\box_wd:N\l__alignedsets_full_box-\box_wd:N\l__alignedsets_clap_box)/2 + } + } + \__alignedsets_original_underset:nn{#1}{#3} + }{ + \__alignedsets_original_underset:nn{#1}{#3} + } +} +\endinput +%% +%% End of file `aligned-overset.sty'. diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 3d003d2fd73..301392e7f25 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -33,6 +33,7 @@ my @TLP_working = qw( ae aecc aeguill afparticle afthesis aguplus aiaa aichej ajl akktex akletter alegreya alertmessage alg algobox algolrevived algorithm2e algorithmicx algorithms + aligned-overset alkalami allrunes almfixed alnumsec alterqcm altfont ametsoc amiri amsaddr amscls amscls-doc amsfonts amslatex-primer amsldoc-it amsldoc-vn diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index feb75c549e0..e2dc0dec4ce 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -2426,6 +2426,7 @@ my $core_latex = "$Master/texmf-dist/tex/latex"; %specialinsrunner = ( 'actuarialsymbol' => 'pdflatex-preserve-pdf',# requires interaction + 'aligned-overset' => 'tex', 'antomega' => 'latex', # requires interaction 'apa6e' => 'latex', # requires interaction 'asciilist' => 'latex', # requires interaction diff --git a/Master/tlpkg/tlpsrc/aligned-overset.tlpsrc b/Master/tlpkg/tlpsrc/aligned-overset.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc b/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc index b305816657f..113c05ae53c 100644 --- a/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc @@ -12,6 +12,7 @@ depend algobox depend algorithm2e depend algorithmicx depend algorithms +depend aligned-overset depend amstex depend apxproof depend autobreak -- cgit v1.2.3