% \iffalse meta-comment % % Copyright (C) 2018 by Ruben Giannotti % % ------------------------------------------------------- % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either % version 1.3c 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 Ruben Giannotti. % % This work consists of the files % lccaps.dtx % lccaps.ins % and the derived file lccaps.sty. % % \fi % % \iffalse %<*driver> \ProvidesFile{lccaps.dtx} % %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{lccaps} %<*package> [2018/01/21 v1.0 Lowercased (spaced) small capitals (RG)] % % %<*driver> \documentclass{ltxdoc} \usepackage{amssymb,parskip} \usepackage{lccaps} \providecommand*\pkg{\textsf} \providecommand*\option{\textit} \providecommand*\url{\texttt} \providecommand*\email{\texttt} \providecommand*\important{$\blacktriangleright$\space Important note:\space} \EnableCrossrefs \CodelineIndex \begin{document} \DocInput{lccaps.dtx} \end{document} % % \fi % % \CheckSum{60} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % % \changes{v1.0}{2018/01/21}{Initial version} % % \GetFileInfo{lccaps.dtx} % % \DoNotIndex{\newcommand,\newenvironment,\!,\@empty,\@gobble,\@gobbletwo} % \DoNotIndex{\@ifpackageloaded,\@ifpackagewith,\@ifundefined,\@namedef} % \DoNotIndex{\@nil,\@onlypreamble,\@tempa,\@tempb,\@tempswafalse,\def} % \DoNotIndex{\@tempswatrue,\^,\-,\active,\begingroup,\catcode,\@car,\@cdr} % \DoNotIndex{\edef,\else,\endgroup,\endinput,\expandafter,\fi,\if} % \DoNotIndex{\if@tempswa,\ifcase,\ifnum,\ifx,\lccode,\let,\lowercase} % \DoNotIndex{\MessageBreak,\next,\number,\numexpr,\or,\PackageError} % \DoNotIndex{\PackageWarning,\PackageWarningNoLine,\strip@prefix,\@@end} % \DoNotIndex{\relax,\space,\string,\DeclareOption,\ProcessOptions} % \DoNotIndex{\meaning,\ifdefined,\csname,\chardef,\endcsname,\protect} % \DoNotIndex{\input,\RequirePackage,\global,\ifcsname,\makeatother} % \DoNotIndex{\@makeother,\the,\toks@} % % \title{The \pkg{lccaps} package\thanks{This document % corresponds to \pkg{lccaps}~\fileversion, dated \filedate.}} % \author{Ruben Giannotti\thanks{\email{ruben dot giannotti at gmx dot net}}} % % \maketitle % % This tiny package serves the mere purpose of % providing a uniform method to use % lowercased small capitals (and spaced lowercased small capitals). % It relies on the \pkg{iftex}, \pkg{textcase} and \pkg{microtype} package % and comes with four new user macros. % % \DescribeMacro{\textlcc} % This is the main feature. % It produces forced lowercased \textlcc{small capitals}. % % \DescribeMacro{\spacedcaps} % This is more of an auxiliary macro. % But, it can be used at the user level of course. % It is meant to be used as a prefix to |\textlcc| or |\textsc| % which results in a slightly wider spacing between small capitals: % % \begin{center} % |\spacedcaps\textlcc{Spaced capitals}| \(\leadsto\) % \spacedcaps\textlcc{Spaced capitals} % \end{center} % % \DescribeMacro{\textslcc} % \DescribeMacro{\textssc} % Those two are just shorthands for the last mentioned. % Technically the very last one exceeds the scope of this package. % It is a simple byproduct that should not be harmful. % % \StopEventually{} % % \begin{macrocode} \RequirePackage{iftex} \RequirePackage{textcase} \RequirePackage{microtype} \protected\def\lcc@warning{\PackageWarning{lccaps}} \DeclareRobustCommand\textlcc[1]{\textsc{\MakeTextLowercase{#1}}} \def\spacedcaps#1{% \let\reserved@a=#1% \ifnum \ifx\reserved@a\textsc1\else \ifx\reserved@a\textlcc1\else 0\fi\fi =1 \expandafter\reserved@lcc \else \lcc@warning{The token preceeding \noexpand\spacedcaps wasn't meant to typeset small capitals, so nothing happend.}% \expandafter\reserved@a \fi } \def\reserved@lcc#1{% \expandafter\@spacedcaps\expandafter{\reserved@a{#1}}% } \ifXeTeX \def\@spacedcaps#1{\bgroup\addfontfeature{LetterSpace=5.0}#1\egroup} \else \def\@spacedcaps{\textls[50]} \fi \DeclareRobustCommand\textslcc{\spacedcaps\textlcc} \DeclareRobustCommand\textssc{\spacedcaps\textsc} % \end{macrocode} %\Finale \endinput