From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/lccaps/lccaps.dtx | 156 +++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 macros/latex/contrib/lccaps/lccaps.dtx (limited to 'macros/latex/contrib/lccaps/lccaps.dtx') diff --git a/macros/latex/contrib/lccaps/lccaps.dtx b/macros/latex/contrib/lccaps/lccaps.dtx new file mode 100644 index 0000000000..ee11bbaed3 --- /dev/null +++ b/macros/latex/contrib/lccaps/lccaps.dtx @@ -0,0 +1,156 @@ +% \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 -- cgit v1.2.3