Deprecated \phone, \mobile and \fax in favour of \phone[type]

This commit is contained in:
Xavier Danaux
2013-02-22 19:21:52 -05:00
parent 6bfc2a032b
commit 3dd1fd22ea
13 changed files with 103 additions and 14 deletions

View File

@ -1,6 +1,4 @@
*xdanaux* *xdanaux*
*.sh *.sh
examples/*.sh examples/*.sh
examples/template_casual_orange.tex examples/template_*.tex
examples/template_classic_green.tex
examples/template_multibib.tex

View File

@ -1,4 +1,6 @@
version 1.4.0 (dd MMM 2013) version 1.4.0 (dd MMM 2013)
- deprecated \phone, \mobile and \fax in favour of \phone[<type>], where <type>
can be "mobile", "fixed" (default) or "fax".
- deprecated \firstname and \familyname in favour of \name{<first>}{<last>}. - deprecated \firstname and \familyname in favour of \name{<first>}{<last>}.
- removed the use of the suffix package. - removed the use of the suffix package.

85
collection.sty Normal file
View File

@ -0,0 +1,85 @@
%% start of file `collection.sty'.
%% Copyright 2013-2013 Xavier Danaux (xdanaux@gmail.com).
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c,
% available at http://www.latex-project.org/lppl/.
%-------------------------------------------------------------------------------
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{collection}[2013/02/19 v1.0.0 collections]
%-------------------------------------------------------------------------------
% requirements
%-------------------------------------------------------------------------------
\RequirePackage{ifthen}
%-------------------------------------------------------------------------------
% code
%-------------------------------------------------------------------------------
% creates a new collection
% usage: \collectionnew{<collection name>}
\newcommand*{\collectionnew}[1]{%
\newcounter{collection@#1@count}}
% adds an item to a collection
% usage: \collectionadd[<optional key>]{<collection name>}{<item to add>}
\newcommand*{\collectionadd}[3][]{%
\expandafter\def\csname collection@#2@item\roman{collection@#2@count}\endcsname{#3}%
\if\relax\noexpand#1\relax% if #1 is empty
\else\expandafter\def\csname collection@#2@key\roman{collection@#2@count}\endcsname{#1}\fi%
\stepcounter{collection@#2@count}}
% returns the number of items in a collection
% usage: \collectioncount{<collection name>}
\newcommand*{\collectioncount}[1]{%
\value{collection@#1@count}}
% gets an item from a collection
% usage: \collectiongetitem{<collection name>}{<element id>}
% where <element id> is an integer between 0 and (collectioncount-1)
\newcommand*{\collectiongetitem}[2]{%
\csname collection@#1@item\romannumeral #2\endcsname}
% gets a key from a collection
% usage: \collectiongetkey{<collection name>}{<element id>}
% where <element id> is an integer between 0 and (collectioncount-1)
\newcommand*{\collectiongetkey}[2]{%
\csname collection@#1@key\romannumeral #2\endcsname}
% loops through a collection and perform the given operation on every element
% usage: \collectionloop{<collection name>}{<operation sequence>}
% where <operation sequence> is the code sequence to be evaluated for each collection item,
% code which can refer to \collectionloopid, \collectionloopkey, \collectionloopitem and
% \collectionloopbreak
\newcounter{collection@iterator}
\newcommand*{\collectionloopbreak}{\let\iterate\relax}
\newcommand*{\collectionloop}[2]{%
\setcounter{collection@iterator}{0}%
\loop\ifnum\value{collection@iterator}<\value{collection@#1@count}%
\def\collectionloopid{\arabic{collection@iterator}}%
\def\collectionloopitem{\collectiongetitem{#1}{\collectionloopid}}%
\def\collectionloopkey{\collectiongetkey{#1}{\collectionloopid}}%
#2%
\stepcounter{collection@iterator}%
\repeat}
% loops through a collection and finds the (first) element matching the given key
% usage: \collectionfindbykey{<collection name>}{key>}
\newcommand*{\collectionfindbykey}[2]{%
\collectionloop{#1}{%
\ifthenelse{\equal{\collectionloopkey}{#2}}{\collectionloopitem\collectionloopbreak}{}}}
\endinput
%% end of file `collection.cls'.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -235,17 +235,12 @@
% usage: \address{<street>}{<city>}{<country>} % usage: \address{<street>}{<city>}{<country>}
% where the <city> and <country> arguments can be omitted or provided empty % where the <city> and <country> arguments can be omitted or provided empty
\NewDocumentCommand{\address}{mG{}G{}}{\def\@addressstreet{#1}\def\@addresscity{#2}\def\@addresscountry{#3}} \NewDocumentCommand{\address}{mG{}G{}}{\def\@addressstreet{#1}\def\@addresscity{#2}\def\@addresscountry{#3}}
% defines one's mobile phone number (optional) % adds a mobile/fixed/fax number to one's personal information (optional)
% usage: \mobile{<number>} % usage: \phone[<optional type>]{<number>}
\newcommand*{\mobile}[1]{\def\@mobile{#1}} % where <optional type> should be either "mobile", "fixed" or "fax
% defines one's fixed phone number (optional) \RequirePackage{collection}
% usage: \phone{<number>} \collectionnew{phones}
\newcommand*{\phone}[1]{\def\@phone{#1}} \newcommand*{\phone}[2][fixed]{\collectionadd[#1]{phones}{#2}}
% defines one's fax number (optional)
% usage: \fax{<number>}
\newcommand*{\fax}[1]{\def\@fax{#1}}
% defines one's email address (optional)
% usage: \email{<email>}
\newcommand*{\email}[1]{\def\@email{#1}} \newcommand*{\email}[1]{\def\@email{#1}}
% defines one's home page (optional) % defines one's home page (optional)
% usage: \homepage{<url>} % usage: \homepage{<url>}

View File

@ -86,6 +86,15 @@
\newcommand*{\familyname}[1]{\def\@lastname{#1}} \newcommand*{\familyname}[1]{\def\@lastname{#1}}
\def\@familyname{\@lastname} \def\@familyname{\@lastname}
% compatibility with versions <= 1.4.0
\newcommand*{\mobile}[1]{\collectionadd[mobile]{phones}{#1}}
%\newcommand*{\phone}[1]{\collectionadd[fixed]{phones}{#1}}% implicit, as \phone{...} defaults to \phone[fixed]{...}
\newcommand*{\fax}[1]{\collectionadd[fax]{phones}{#1}}
\newcommand*{\@mobile}{\collectionfindbykey{phones}{mobile}}
\newcommand*{\@phone}{\collectionfindbykey{phones}{fixed}}
\newcommand*{\@fax}{\collectionfindbykey{phones}{fax}}
\endinput \endinput