summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/semtex/semtex.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/semtex/semtex.tex')
-rw-r--r--macros/latex/contrib/semtex/semtex.tex229
1 files changed, 229 insertions, 0 deletions
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\<normal|auto|*|{\textit{other}}\>@}{@\<left parenthesis\>@}!\\
+ {@\<right parenthesis\>@}{@\<content\>@}
+\end{lstlisting}
+This one writes \<content\> 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~\<content\>, 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{@\<content\>@}
+\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