From bc2d0660f4f460b55009ab4e525f2a0e4cde6187 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 8 Sep 2020 03:02:12 +0000 Subject: CTAN sync 202009080302 --- macros/latex/contrib/semtex/README.md | 37 ++++++ macros/latex/contrib/semtex/semtex.pdf | Bin 0 -> 77110 bytes macros/latex/contrib/semtex/semtex.sty | 83 ++++++++++++ macros/latex/contrib/semtex/semtex.tex | 229 +++++++++++++++++++++++++++++++++ 4 files changed, 349 insertions(+) create mode 100644 macros/latex/contrib/semtex/README.md create mode 100644 macros/latex/contrib/semtex/semtex.pdf create mode 100644 macros/latex/contrib/semtex/semtex.sty create mode 100644 macros/latex/contrib/semtex/semtex.tex (limited to 'macros/latex/contrib/semtex') diff --git a/macros/latex/contrib/semtex/README.md b/macros/latex/contrib/semtex/README.md new file mode 100644 index 0000000000..d74f5f9f5c --- /dev/null +++ b/macros/latex/contrib/semtex/README.md @@ -0,0 +1,37 @@ +semtex -- For stripped SemanTeX documents +-------------------------------------- + +The package semtex is a small LaTeX package that adds a collection +of simple macros for parentheses and bullets. It exists for +one purpose only: To be loaded by documents which were +originally typeset using the package SemanTeX, but which have +been stripped of SemanTeX markup using the package stripsemantex. +Therefore, unless your document is one of those, +simply **don't use this package**. + +And even if your document *is* one of those, there is a good +chance you will not have to load it after all. In most cases, +you will be able to replace the macros it provides by macros +from other packages. + +---------------------------------------------------------------- +semtex -- For stripped SemanTeX documents +Maintained by Sebastian Ørsted +E-mail: sorsted@gmail.com +Released under the LaTeX Project Public License v1.3c or later +See http://www.latex-project.org/lppl.txt +---------------------------------------------------------------- + +Copyright (C) 2020 by Sebastian Ørsted + +The package is loaded via \usepackage{semantex} + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License (LPPL), either +version 1.3c of this license or (at your option) any later +version. The latest version of this license is in the file: + +http://www.latex-project.org/lppl.txt + +This work is "maintained" (as per LPPL maintenance status) by +Sebastian Ørsted. \ No newline at end of file diff --git a/macros/latex/contrib/semtex/semtex.pdf b/macros/latex/contrib/semtex/semtex.pdf new file mode 100644 index 0000000000..5ac49589d8 Binary files /dev/null and b/macros/latex/contrib/semtex/semtex.pdf differ diff --git a/macros/latex/contrib/semtex/semtex.sty b/macros/latex/contrib/semtex/semtex.sty new file mode 100644 index 0000000000..1824d0389c --- /dev/null +++ b/macros/latex/contrib/semtex/semtex.sty @@ -0,0 +1,83 @@ +\RequirePackage{xparse} +\ProvidesExplPackage{semtex}{2020/09/07}{0.1beta}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% semtex -- for documents stripped of SemanTeX markup % +% https://ctan.org/pkg/semantex % +% (C) 2020 Sebastian Ørsted % +% sorsted@gmail.com % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Bullets: + +\box_new:N \g__semantex_bullet_box +\hbox_set:Nn \g__semantex_bullet_box { $\cdot$ } +\box_scale:Nnn \g__semantex_bullet_box {1.2} {1.2} +\tl_set:Nn\g_semantex_bullet +{ + \box_move_up:nn{-0.25ex}{\box_use:N \g__semantex_bullet_box} +} + +\tl_set:Nn\g_semantex_double_bullet{\g_semantex_bullet \g_semantex_bullet} + +\tl_set_eq:NN\SemantexBullet \g_semantex_bullet + +\tl_set_eq:NN \SemantexDoubleBullet \g_semantex_double_bullet + + +% Parentheses: + +\cs_new:Npn\SemantexLeft { \mathopen{}\mathclose\bgroup\left } + +\cs_new:Npn\SemantexRight { \aftergroup\egroup\right } + +\tl_new:N\SemantexDelimiterSize + +\DeclareDocumentCommand\SemantexParentheses { mmmm } +{ + \str_case:nnF { #1 } % This is where \big,\Big, etc. go. + { + { normal } { + \group_begin: + \tl_clear:N \SemantexDelimiterSize + \str_if_eq:nnF { #2 } { . } { \mathopen #2 } + #4 + \str_if_eq:nnF { #3 } { . } { \mathclose #3 } + \group_end: + } + { auto } { + \group_begin: + \tl_set_eq:NN \SemantexDelimiterSize \middle + \SemantexLeft #2 + #4 + \SemantexRight #3 + \group_end: + } + { * } { + \group_begin: + \tl_set_eq:NN \SemantexDelimiterSize \middle + \SemantexLeft #2 + #4 + \SemantexRight #3 + \group_end: + } + } + { + \group_begin: + \tl_set_eq:NN\SemantexDelimiterSize #1 + \mathopen #1 #2 + #4 + \mathclose #1 #3 + \group_end: + } +} + +\DeclareDocumentCommand\SemantexNoParentheses { m } +{ + \group_begin: + \tl_clear:N\SemantexDelimiterSize + #1 + \group_end: +} \ No newline at end of file diff --git a/macros/latex/contrib/semtex/semtex.tex b/macros/latex/contrib/semtex/semtex.tex new file mode 100644 index 0000000000..10805c37bd --- /dev/null +++ b/macros/latex/contrib/semtex/semtex.tex @@ -0,0 +1,229 @@ +\documentclass[a4paper,article,oneside,english,10pt]{memoir} + +\makeatletter + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{babel} +\usepackage[noDcommand,slantedGreeks]{kpfonts} + +\frenchspacing + +\usepackage{mathtools,etoolbox, microtype,xspace,color} + +\usepackage[shortlabels]{enumitem}%control lists + +\usepackage[draft]{fixme} + +%Setup of memoir: +\pagestyle{plain} %change to heading for running headings +\nouppercaseheads %running heads should not be capitalized +\captionnamefont{\small} %captions with small font +\captiontitlefont{\small} +\makeevenhead{headings}{\thepage}{}{\itshape\leftmark} %make headings italic instead of slanted (though we do not use headings right now) +\makeoddhead{headings}{\itshape\rightmark}{}{\thepage} + +\setlrmarginsandblock{4cm}{*}{*} +\setulmarginsandblock{4cm}{*}{*} +\checkandfixthelayout + +\raggedbottomsectiontrue%less harse than \raggedbottom +%\allowdisplaybreaks %long equations may break + +\g@addto@macro\bfseries{\boldmath} %make math in bold text automatically bold + +\usepackage[english=american]{csquotes} + +\usepackage[hidelinks]{hyperref} + +\usepackage[nameinlink]{cleveref} + +\title{\texttt{semtex}: For stripped Seman\!\TeX\ documents (v$0.1\beta$)} +\date{\today} +\author{Sebastian Ørsted (\href{mailto:sorsted@gmail.com}{sorsted@gmail.com})} + +\hypersetup{ + pdfauthor={Sebastian Ørsted}, + pdftitle={semtex: For stripped SemanTeX documents}, + %pdfsubject={}, + %pdfkeywords={}, + %pdfproducer={Latex with hyperref, or other system}, + %pdfcreator={pdflatex, or other tool}, +} + +\usepackage{showexpl} + +\lstset{% + language=[LaTeX]TeX, + basicstyle=\ttfamily\small, + commentstyle=\itshape\ttfamily\small, + alsoletter={\\}, + escapechar=@, + breaklines=true, + breakindent={0pt}, + captionpos=t, + pos=r, + tabsize=2, + %inputencoding=utf8, + explpreset={numbers=none,}, + texcl=false, + wide=false, + width=.45\textwidth, +} + +\newcommand\mylst{\lstinline[mathescape]} + +\def\<#1\>{\textrm{\textlangle\textit{#1}\textrangle}} + +\def\usercommand\<#1\>{\textrm{\textbackslash\textlangle\textit{#1}\textrangle}} + +\def\values\<#1\>{\textrm{\textlangle\textup{#1}\textrangle}} + +\def\num#1{\textsubscript{\textup{#1}}} + +\newcommand\default[1]{\smash{\underline{\smash{#1}}}} + +\newcommand\commandname[1]{\textbackslash\texttt{#1}} + +\let\pack=\texttt + +\newcommand\semantex{Seman\!\TeX\xspace} + +\newcommand\stripsemantex{\texttt{stripsemantex}\xspace} + +\usepackage{hologo} + +% Setting up SemanTeX: + +\usepackage{semtex} + +\makeatother + +\begin{document} + +\maketitle + +\noindent +The package~\pack{semtex} is a small package +that adds a collection of simple macros for parentheses +and bullets. +It exists for one purpose only: +To be loaded by documents which were originally typeset +using the package \semantex, but which have been stripped +of \semantex markup using the package~\pack{stripsemantex}. +Therefore, unless your document is one of those, +simply \textbf{don't use this package}. + + +And even if your document \emph{is} one of those, there is a good chance +you will not have to load it after all. In most cases, you will be able to replace +the macros it provides by macros from other packages. + +\chapter*{Bullet commands} + +The package provides the commands \mylst!\SemantexBullet! and \mylst!\SemantexDoubleBullet!. +These commands print bullets which are smaller (and prettier, in my opinion) +than the standard \lstinline!\bullet! command from~\LaTeX: +\begin{LTXexample} +$ H^{\SemantexBullet} $, +$ H^{\SemantexDoubleBullet} $ +(compare to $H^{\bullet}$) +\end{LTXexample} +You can recreate them yourself as follows, rendering +the package \pack{semtex} unnecessary for this purpose: +\begin{lstlisting} +\newcommand\SemantexBullet{% + \raisebox{-0.25ex}{\scalebox{1.2}{$\cdot$}}% +} +\newcommand\SemantexDoubleBullet{% + \SemantexBullet\SemantexBullet +} +\end{lstlisting} + +\chapter*{Replacements for \texorpdfstring{\textbackslash\texttt{left} and~\textbackslash\texttt{right}}{\left and \right}} + +The package provides the commands \mylst!\SemantexLeft! +and~\mylst!\SemantexRight! +These work just like \lstinline!\left...\right!, but fix some spacing issues +around these: +\begin{LTXexample} +\[ + \SemantexLeft( + \frac{1}{2} + \SemantexRight] +\] +\end{LTXexample} +They are completely equivalent to~\lstinline!\mleft! and~\lstinline!\mright! +from the package~\pack{mleftright}, so it is safe to just load that package +and replace the above commands by \lstinline!\mleft...\mright! instead. +Alternatively, you can recreate them yourself by +\begin{lstlisting} +\newcommand\SemantexLeft{% + \mathopen{}\mathclose\bgroup\left +} + +\newcommand\SemantexRight{% + \aftergroup\egroup\right +} +\end{lstlisting} + +\chapter*{Commands for scaled delimiters} + +First and foremost, the package provides the command +\begin{lstlisting} +\SemantexParentheses{@\values\@}{@\@}!\\ + {@\@}{@\@} +\end{lstlisting} +This one writes \ enclosed in the pair of parentheses +and with the size given by the first argument. +Here,~\lstinline!normal! means normal size +parentheses, +and \lstinline!auto! and~\lstinline!*! +mean auto-scaled parentheses using~\lstinline!\SemantexLeft...\SemantexRight!. +If another value is received, that value +is used for the parenthesis size, +so the intended values are~\lstinline!\big!, \lstinline!\Big!, +\lstinline!\bigg!,~\lstinline!\Bigg!: +\begin{LTXexample} +$\SemantexParentheses{normal}{(}{ + )}{\frac{a}{b}}$, +$\SemantexParentheses{auto}{[}{]}{ + \frac{a}{b}}$, +$\SemantexParentheses{\big}{ + \langle}{\rangle}{\frac{a}{b}}$, +$\SemantexParentheses{\Bigg}{\{}{ + \}}{\frac{a}{b}}$, +\end{LTXexample} +The important property of this command +is that inside the~\, you can access +the delimiter size at any point using +the command~\lstinline!\SemantexDelimiterSize!: +\begin{LTXexample} +$\SemantexParentheses{\Bigg}{\{}{\}}{ + \frac{a}{b} + \SemantexDelimiterSize| + \frac{u}{v} +}$ +\end{LTXexample} + +Secondly, the package provides the command +\begin{lstlisting} +\SemantexNoParentheses{@\@} +\end{lstlisting} +This command prints the content with no parentheses, but importantly, it also resets +the command \lstinline!\SemantexDelimiterSize! +to~\lstinline!{}!, i.e.~blank. +This makes the following work: +\begin{LTXexample} +$\SemantexParentheses{\Bigg}{\{}{\}}{ + \frac{a}{b} + \SemantexDelimiterSize| + \SemantexNoParentheses{ + a + \SemantexDelimiterSize| + b + } +}$ +\end{LTXexample} + +\end{document} \ No newline at end of file -- cgit v1.2.3