diff options
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/cmll/cmll.dtx | 221 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/cmll/cmll.ins | 21 |
2 files changed, 242 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/cmll/cmll.dtx b/Master/texmf-dist/source/latex/cmll/cmll.dtx new file mode 100644 index 00000000000..feb55efab5b --- /dev/null +++ b/Master/texmf-dist/source/latex/cmll/cmll.dtx @@ -0,0 +1,221 @@ +% \title{Linear Logic symbols for Computer Modern} +% \author{Emmanuel Beffara} +% \date{February 22, 2006} +% +% \maketitle +% +% \section{Documentation} +% +% \subsection{Installation} +% +% The installation consists in copying the |.mf| files from the |mf| +% subdirectory somewhere in Metafont's search path and the |.sty| and |.fd| +% files from the |latex| subdirectory somewhere in \LaTeX's search path. +% +% Call |TEXMF| the base directory of your installation (on Unix this should be +% something like |/usr/share/texmf| or |~/texmf| for a single user +% installation). Then copy the directories as follows: +% \begin{itemize} +% \item copy |mf| as |TEXMF/fonts/source/public/cmll| +% \item copy |latex| as |TEXMF/tex/latex/cmll| +% \end{itemize} +% If you want to install the fonts in Type1 format: +% \begin{itemize} +% \item copy |type1| as |TEXMF/fonts/type1/public/cmll| +% \item copy |tfm| as |TEXMF/fonts/tfm/public/cmll| +% \item copy |cmll.map| as |TEXMF/fonts/map/dvips/misc/cmll.map| +% \end{itemize} +% You may have to update \TeX's databases by running |texhash| or |mktexlsr| +% (this is for Kpathsea-based distributions like te\TeX) or a similar command. +% +% \subsection{Package loading} +% +% The package is loaded by simply saying |\usepackage{cmll}|. The variant of +% the font that should be used is chosen using the following package options: +% \begin{quote} +% \begin{tabular}{>{\ttfamily}ll} +% cm & Computer Modern serif \\ +% ss & Computer Modern sans serif \\ +% euler & AMS Euler \\ +% auto & automatic selection (default) +% \end{tabular} +% \end{quote} +% Automatic selection is done by looking at the loaded packages and the +% current font settings. Note that this works only when \texttt{cmll} is +% loaded \emph{after} changing those settings. +% +% \subsection{Symbols} +% +% The \texttt{cmll} font defines a handful of symbols useful in linear logic +% that were not defined in other fonts and packages. +% \begin{symbols}{Unary operators:} +% \dosymbol\oc \dosymbol\wn +% \dosymbol\shpos \dosymbol\shneg \dosymbol\shift +% \end{symbols} +% \begin{symbols}{Binary operators:} +% \dosymbol\parr \dosymbol\with +% \end{symbols} +% \begin{symbols}{Large operators:} +% \dosymbol\bigparr \dosymbol\bigwith +% \end{symbols} +% \begin{symbols}{Binary relations:} +% \dosymbol\coh \dosymbol\scoh +% \dosymbol\incoh \dosymbol\sincoh +% \end{symbols} +% The symbols $\oc$, $\wn$ and $\with$ are actually characters from the +% standard Computer Modern fonts declared with a new math code to get proper +% spacing. See the following examples: +% \[\begin{tabular}{ll@{\hspace{4em}}ll} +% \verb/A \& B/ & $A \& B$ & \verb/A \with B/ & $A \with B$ \\ +% \verb/A = !B/ & $A = !B$ & \verb/A = \oc B/ & $A = \oc B$ \\ +% \verb/A = ?B/ & $A = ?B$ & \verb/A = \wn B/ & $A = \wn B$ +% \end{tabular}\] +% +% +% \section{Files} +% +% \subsection{This document} +% +% \begin{macrocode} +%<*driver> +\documentclass{ltxdoc} +\usepackage{array,cmll} +\newenvironment{symbols}[1]{% + \par% + \def\dosymbol##1{\leavevmode\hbox to .5\textwidth{% + \kern.25\textwidth \hbox to 2em{\hss$##1$\hfil}% + \texttt{\string##1}\hss}\penalty10}% + \flushleft% + #1\strut\\}{\endflushleft} +\begin{document} +\DocInput{cmll.dtx} +\end{document} +%</driver> +% \end{macrocode} +% +% \subsection{Font definitions} +% +% The font definition file is deduced from the ones for Computer Modern. We +% provide an NFSS entry named \texttt{cmllr} in medium and bold extended +% versions. +% +% \begin{macrocode} +%<*ucmllr> +\DeclareFontShape{U}{cmllr}{m}{n}{% + <5><6><7><8><9>gen*cmllr% + <10->cmllr10}{} +\DeclareFontShape{U}{cmllr}{bx}{n}{% + <5><6><7><8><9>gen*cmllbx% + <10->cmllbx10}{} +%</ucmllr> +% \end{macrocode} +% +% The following is a definition for the sans-serif version, named +% \texttt{cmllss}. +% +% \begin{macrocode} +%<*ucmllss> +\DeclareFontShape{U}{cmllss}{m}{n}{% + <-8>cmllss8% + <9>cmllss9% + <10->cmllss10}{} +\DeclareFontShape{U}{cmllss}{bx}{n}{% + <->cmllssbx10}{} +%</ucmllss> +% \end{macrocode} +% +% The following is a definition for the Euler-style version, named +% \texttt{eull}. +% +% \begin{macrocode} +%<*ueull> +\DeclareFontShape{U}{eull}{m}{n}{% + <5><6><7><8><9>gen*eullr% + <10->eullr10}{} +\DeclareFontShape{U}{eull}{bx}{n}{% + <5><6><7><8><9>gen*eullbx% + <10->eullbx10}{} +%</ueull> +% \end{macrocode} +% +% \subsection{The package} +% +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{cmll}[2006/02/22 Linear Logic symbols for Computer Modern] +% \end{macrocode} +% +% The font is declared as a symbol font named \texttt{llsymbols}, in normal +% and bold versions. We provide package options to switch between the +% standard, sans-serif and Euler-style variants. +% +% \begin{macrocode} +\def\cmll@style{auto} +\DeclareOption*{\edef\cmll@style{\CurrentOption}} +\ProcessOptions\relax +% \end{macrocode} +% +% The following code is used to detect which family should be used. Euler is +% detected if its package is loaded, sans-serif is detected by looking at the +% default font family name. +% \begin{macrocode} +\RequirePackage{ifthen} +\def\cmll@use@auto{% + \@ifpackageloaded{euler}{% + \def\cmll@style{euler}}{% + \ifthenelse{\equal{\rmdefault}{cmss}}{% + \def\cmll@style{ss}}{% + \def\cmll@style{cm}}}% + \csname cmll@use@\cmll@style\endcsname} +% \end{macrocode} +% +% The following macros are used to set up the font families and symbols from +% other fonts. +% \begin{macrocode} +\def\cmll@use@cm{% + \DeclareSymbolFont{llsymbols}{U}{cmllr}{m}{n}% + \SetSymbolFont{llsymbols}{bold}{U}{cmllr}{bx}{n}% + \DeclareMathSymbol{\with}{\mathbin}{operators}{`\&}% + \DeclareMathSymbol{\oc}{\mathord}{operators}{`!}% + \DeclareMathSymbol{\wn}{\mathord}{operators}{`?}} +% \end{macrocode} +% Here is the sans-serif variant. +% \begin{macrocode} +\def\cmll@use@ss{% + \DeclareSymbolFont{llsymbols}{U}{cmllss}{m}{n}% + \SetSymbolFont{llsymbols}{bold}{U}{cmllss}{bx}{n}% + \DeclareMathSymbol{\with}{\mathbin}{operators}{`\&}% + \DeclareMathSymbol{\oc}{\mathord}{operators}{`!}% + \DeclareMathSymbol{\wn}{\mathord}{operators}{`?}} +% \end{macrocode} +% And here is the Euler variant. +% \begin{macrocode} +\def\cmll@use@euler{% + \DeclareSymbolFont{llsymbols}{U}{eull}{m}{n}% + \SetSymbolFont{llsymbols}{bold}{U}{eull}{bx}{n}% + \DeclareMathSymbol{\with}{\mathbin}{EulerFraktur}{"26}% + \DeclareMathSymbol{\oc}{\mathord}{EulerFraktur}{"21}% + \DeclareMathSymbol{\wn}{\mathord}{EulerFraktur}{"3F}} +% \end{macrocode} +% Finally we activate the proper variant. +% \begin{macrocode} +\csname cmll@use@\cmll@style\endcsname +% \end{macrocode} +% +% The new symbol definitions are the same for all variants. +% \begin{macrocode} +\DeclareMathSymbol{\parr}{\mathbin}{llsymbols}{0} +\DeclareMathSymbol{\shpos}{\mathord}{llsymbols}{1} +\DeclareMathSymbol{\shneg}{\mathord}{llsymbols}{2} +\DeclareMathSymbol{\shift}{\mathord}{llsymbols}{3} +\DeclareMathSymbol{\coh}{\mathrel}{llsymbols}{4} +\DeclareMathSymbol{\scoh}{\mathrel}{llsymbols}{5} +\DeclareMathSymbol{\incoh}{\mathrel}{llsymbols}{6} +\DeclareMathSymbol{\sincoh}{\mathrel}{llsymbols}{7} +\DeclareMathSymbol{\bigwith}{\mathop}{llsymbols}{8} +\DeclareMathSymbol{\bigparr}{\mathop}{llsymbols}{10} +%</package> +% \end{macrocode} +% +% \Finale diff --git a/Master/texmf-dist/source/latex/cmll/cmll.ins b/Master/texmf-dist/source/latex/cmll/cmll.ins new file mode 100644 index 00000000000..a38a7cfd655 --- /dev/null +++ b/Master/texmf-dist/source/latex/cmll/cmll.ins @@ -0,0 +1,21 @@ +\NeedsTeXFormat{LaTeX2e} + +\def\batchfile{cmll.ins} +\input{docstrip} + +\askforoverwritefalse +\keepsilent + +\preamble +\endpreamble + +\generateFile{cmll.sty}{f}{ + \from{cmll.dtx}{package}} +\generateFile{ucmllr.fd}{f}{ + \from{cmll.dtx}{ucmllr}} +\generateFile{ucmllss.fd}{f}{ + \from{cmll.dtx}{ucmllss}} +\generateFile{ueull.fd}{f}{ + \from{cmll.dtx}{ueull}} + +\endbatchfile |