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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.