% -------------------------------------------------------------------------- % 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