From 7339f8c2554ea56f79258fcee0aac72fd23f184d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 5 Oct 2013 21:31:22 +0000 Subject: cnltx (5oct13) git-svn-id: svn://tug.org/texlive/trunk@31843 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/cnltx/cnltx-tools.sty | 220 ++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/cnltx/cnltx-tools.sty (limited to 'Master/texmf-dist/tex/latex/cnltx/cnltx-tools.sty') diff --git a/Master/texmf-dist/tex/latex/cnltx/cnltx-tools.sty b/Master/texmf-dist/tex/latex/cnltx/cnltx-tools.sty new file mode 100644 index 00000000000..67765297dfd --- /dev/null +++ b/Master/texmf-dist/tex/latex/cnltx/cnltx-tools.sty @@ -0,0 +1,220 @@ +% -------------------------------------------------------------------------- +% the CNLTX bundle +% +% LaTeX source code and output +% +% -------------------------------------------------------------------------- +% Clemens Niederberger +% Web: https://github.com/cgnieder/cnltx/ +% E-Mail: contact@mychemistry.eu +% -------------------------------------------------------------------------- +% Copyright 2013 Clemens Niederberger +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Clemens Niederberger. +% -------------------------------------------------------------------------- +% If you have any ideas, questions, suggestions or bugs to report, please +% feel free to contact me. +% -------------------------------------------------------------------------- +\RequirePackage{cnltx-base} +\ProvidesPackage{cnltx-tools}[\cnltx@@date\space \cnltx@@version\space \cnltx@@info] + +% -------------------------------------------------------------------------- +\cnltx@create@bundle@message{tools}{Error} +\cnltx@create@bundle@message{tools}{Warning} +\cnltx@create@bundle@message{tools}{WarningNoLine} +\cnltx@create@bundle@message{tools}{Info} + +% -------------------------------------------------------------------------- +\newcommand*\cnltx@name@first[1]{#1} +\newcommand*\cnltx@name@last[1]{\textsc{#1}} +\newcommand*\cnltx@name@base[1]{#1} + +\pgfkeys{ + cnltx/.cd, + last-name-format/.code = \def\cnltx@name@last##1{#1} , + first-name-format/.code = \def\cnltx@name@first##1{#1} , + name-format/.code = \def\cnltx@name@base##1{#1} +} + +\newcommand*\cnltx@name@idx[1]{\index{#1@#1}} +\newrobustcmd*\cnltx@name@star[2][]{% + \ifblank{#1} + {\cnltx@name@base{\cnltx@name@last{#2}}} + {\cnltx@name@base{\cnltx@name@first{#1} \cnltx@name@last{#2}}}% +} +\newrobustcmd*\cnltx@name@nostar[2][]{% + \ifblank{#1} + {\cnltx@name@base{\cnltx@name@last{#2}}\cnltx@name@idx{#2}} + {% + \cnltx@name@base{\cnltx@name@first{#1} \cnltx@name@last{#2}}% + \cnltx@name@idx{#2, #1}% + }% +} +\def\cnltx@name{\@ifstar{\cnltx@name@star}{\cnltx@name@nostar}} + +\newrobustcmd*\cnltx@newname[3]{% + \csdef{\cnltx@stripbs#1@short}{\cnltx@name@base{#3}\cnltx@name@idx{#3, #2}}% + \csdef{\cnltx@stripbs#1@long}{\cnltx@name@base{#2 #3}\cnltx@name@idx{#3, #2}}% + \newrobustcmd*#1{% + \@ifstar + {\csuse{\cnltx@stripbs#1@short}} + {\csuse{\cnltx@stripbs#1@long}}% + }% +} + +\newrobustcmd*\newname{\cnltx@newname} + +% -------------------------------------------------------------------------- +\PassOptionsToPackage{space=true}{accsupp} +\RequirePackage{accsupp} +% #1: actual text +% #2: other options +% #3: TeX text +\newrobustcmd\cnltx@accsupp[3]{% + \begingroup + \BeginAccSupp{ ActualText = #1 , #2 }% + #3% + \EndAccSupp{}% + \endgroup +} + +\AtBeginDocument{% + \@ifpackageloaded{hyperref} + {} + {\providecommand\texorpdfstring[2]{#1}}% +} + +\def\cnltx@acronym@format{\scshape} + +\pgfkeys{ + cnltx/.cd, + acronym-format/.code = \def\cnltx@acronym@format{#1} +} + +\newcommand*\cnltx@acronym[2]{% + \ifblank{#1} + {% + \texorpdfstring + {% + \cnltx@accsupp{#2}{}{\cnltx@acronym@format#2}% + \index{#2@{\cnltx@acronym@format#2}}% + } + {#2}% + } + {% + \texorpdfstring + {% + \cnltx@accsupp{#1}{}{\cnltx@acronym@format#2}% + \index{#1@{\cnltx@acronym@format#2}}% + } + {#1}% + }% +} + +\newcommand*\cnltxacronym{\cnltx@acronym} + +% -------------------------------------------------------------------------- +% abbreviations: + +% \def\cnltx@abbr@ifdot{\ltx@ifnextchar@nospace.} +\protected\def\cnltx@abbr@dot#1{\cnltx@ifpunctuation*[.]{#1\@}{#1.\@}} + +% -------------------------------------------------------------------------- +% \defabbr +\protected\def\cnltx@defabbr@dot#1#2{\def#1{\cnltx@abbr@dot{#2}}} +\protected\def\cnltx@defabbr@nodot#1#2{\def#1{#2}} + +% \newabbr +\protected\def\cnltx@newabbr@dot#1#2{% + \cnltx@ifdef#1{}{\protected\def#1{\cnltx@abbr@dot{#2}}}} + +\protected\def\cnltx@newabbr@nodot#1#2{% + \cnltx@ifdef#1{}{\protected\def#1{#2}}} + +% \renewabbr +\protected\def\cnltx@renewabbr@dot#1#2{% + \cnltx@ifdef#1{\protected\def#1{\cnltx@abbr@dot{#2}}}{}} + +\protected\def\cnltx@renewabbr@nodot#1#2{% + \cnltx@ifdef#1{\protected\def#1{#2}}{}} + +\def\cnltx@ifdef#1{% + \ifcsname\expandafter\@gobble\string#1\endcsname + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} + +\newrobustcmd*\newabbr{% + \@ifstar{\cnltx@newabbr@nodot}{\cnltx@newabbr@dot}% +} + +\newrobustcmd*\renewabbr{% + \@ifstar{\cnltx@renewabbr@nodot}{\cnltx@renewabbr@dot}% +} + +\newrobustcmd*\defabbr{% + \@ifstar{\cnltx@defabbr@nodot}{\cnltx@defabbr@dot}% +} + +% -------------------------------------------------------------------------- +\RequirePackage{translations} + +\newcommand*\cnltxlatin[1]{\textit{#1}} + +\DeclareTranslationFallback{cnltx-i.e.}{\cnltxlatin{i.\,e}} +\DeclareTranslation{English}{cnltx-i.e.}{\cnltxlatin{i.\,e}} +\DeclareTranslation{German}{cnltx-i.e.}{d.\,h} + +\DeclareTranslationFallback{cnltx-e.g.}{\cnltxlatin{e.\,g}} +\DeclareTranslation{English}{cnltx-e.g.}{\cnltxlatin{e.\,g}} +\DeclareTranslation{German}{cnltx-e.g.}{z.\,B} + +\DeclareTranslationFallback{cnltx-cf.}{\cnltxlatin{cf}} +\DeclareTranslation{English}{cnltx-cf.}{\cnltxlatin{cf}} +\DeclareTranslation{German}{cnltx-cf.}{vgl} + +\DeclareTranslationFallback{cnltx-etc.}{\cnltxlatin{etc}} +\DeclareTranslation{English}{cnltx-etc.}{\cnltxlatin{etc}} +\DeclareTranslation{German}{cnltx-etc.}{etc} + +\newabbr\ie{\GetTranslation{cnltx-i.e.}} +\newabbr\eg{\GetTranslation{cnltx-e.g.}} +\newabbr\cf{\GetTranslation{cnltx-cf.}} +\newabbr\etc{\GetTranslation{cnltx-etc.}} + +\newabbr\zB{z.\,B} +\newabbr\ZB{Z.\,B} +\newabbr\usw{usw} +\newabbr\usf{usf} +\newabbr\uswusf{usw.\@\space usf} +\newabbr\dsh{d.\,h} +\newabbr\Dsh{D.\,h} +\newabbr\vgl{vgl} +\newabbr\Vgl{Vgl} + +\newcommand*\cnltxtimeformat[1]{\textsc{\,#1}} +\newabbr\PM{\cnltxtimeformat{p.m}} +\newabbr\AM{\cnltxtimeformat{a.m}} +\newabbr\BC{\cnltxtimeformat{b.c}} +\newabbr\AD{\cnltxtimeformat{a.d}} + +\endinput + +% -------------------------------------------------------------------------- +HISTORY: + +2013/09/10 v0.2 - first published version +2013/09/30 v0.7 - added abbreviations + -- cgit v1.2.3