Re: [dk-tug] Angivelse af intervaller
Lars Madsen <[email protected]>
| Newsgroups | gmane.comp.tex.danish |
|---|---|
| Message-ID | <[email protected]> |
Her er en fuldt konfigurerbar version, tænkte at det kunne være passende at smide på CTAN som en pakke, kan lige når det i tide til TL13.
Nogen forslag til pakke navn? Bare 'interval'?
Jeg har udvidet den således at der kan angives separate symboler for åben/lukket i begge sider, samt for separatortegnet i selve interfallet.
Vil have skrive forfatteren som 'The Danish TeX Collective', med mig selv som kontaktperson og dokumentør.
Jeg undrer mig lidt over at når jeg bruge nøgle/.link=anden nøgle, så skal 'anden nøgle' angives med fuld sti? Nogen der ved hvorfor?
\documentclass[12pt]{article}
\usepackage{pgfkeys}
\usepackage{amsmath}
\makeatletter
\newcommand\workhorse[1]{
\def\hest{auto}
\def\pony{#1}
\ifx\hest\pony
\def\openfence{\mathopen{}\mathclose\bgroup\left\leftfence}
\def\closefence{\aftergroup\egroup\right\rightfence}
\else
\def\openfence{\mathopen{#1\leftfence}}
\def\closefence{\mathclose{#1\rightfence}}
\fi
}
% setup
\pgfkeys{/interval/.is family,/interval,
open left fence/.initial={]},
closed left fence/.initial={[},
open right fence/.initial={[},
closed right fence/.initial={]},
left fence/.link=/interval/closed left fence,
right fence/.link=/interval/closed right fence,
separator symbol/.initial={,},
open left/.style={ left fence/.link=/interval/open left fence },
open right/.style={ right fence/.link=/interval/open right fence },
open/.style={open left,open right},
scaled/.code={\workhorse{#1}},
scaled/.default=auto
}
% bruger konfiguration
\pgfkeys{
interval,
separator symbol=;,
open left fence={(},
open right fence={)},
}
\makeatother
\newcommand\interval[3][]{%
\begingroup%
\def\openfence{\mathopen{\leftfence}}%
\def\closefence{\mathclose{\rightfence}}%
\pgfkeys{interval,#1}%
\pgfkeysgetvalue{/interval/left fence}{\leftfence}%
\pgfkeysgetvalue{/interval/right fence}{\rightfence}%
\openfence%
#2%
%,%
\pgfkeysvalueof{/interval/separator symbol}
#3%
\closefence%
\endgroup%
}
\begin{document}
\begin{align}
&A\in\interval{a}{b}\\
&A\in\interval[open]{a}{b}\\
&A\in\interval[open left]{a}{b}\\
&A\in\interval[open right,scaled]{a}{\frac12b}=B\\
&A\in\interval[scaled=\Big]{a}{b}\\
\end{align}
\end{document}
/Lars Madsen
Institut for Matematik / Department of Mathematics
Aarhus Universitet / Aarhus University
Mere info: http://au.dk/daleif@imf / More information: http://au.dk/en/daleif@imf