%\iffalse %<*package> %% \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 \~} % %\fi % \iffalse % Doc-Source file to use with LaTeX2e % Copyright (C) 2017-18 Sebastian Friedl % % This work is subject to the LaTeX Project Public License, Version 1.3c or -- at % your option -- any later version of this license. % The work consists of the files textualicomma.dtx, textualicomma.ins, % textualicomma-doc.dtx and the derived file textualicomma.sty % % This work has the LPPL maintenance status 'maintained'. % Current maintainer of the work is Sebastian Friedl. % \fi % % % % \changes{1.0}{2017/12/03}{Initial release} % \changes{1.1}{2018/08/23}{Take care of dependencies and requirements} % % % \subsubsection*{Initialization} % \begin{macrocode} \ProvidesPackage{textualicomma}% [2018/08/23 v1.1 Use textual comma characters as decimal separators] \NeedsTeXFormat{LaTeX2e} % \end{macrocode} % % % % \bigskip % \subsubsection*{Load dependencies and check requirements} % Load the \sty{amstext} package to enable escaping to horizontal mode: % \begin{macrocode} \RequirePackage{amstext} % \end{macrocode} % % Check whether "\rmfamily", "\sffamily" and "\ttfamily" are available: % \begin{macrocode} \AtBeginDocument{% \ifx\rmfamily\@undefined% \PackageError{textualicomma}% {\noexpand\rmfamily is undefined. textualicomma doesn't work}% {textualicomma requires the \noexpand\rmfamily command to be defined; otherwise, this package won't work properly}% \PackageWarning{textualicomma}{Emergency stop}% \stop% \fi% \ifx\sffamily\@undefined% \PackageError{textualicomma}% {\noexpand\sffamily is undefined. textualicomma doesn't work}% {textualicomma requires the \noexpand\sffamily command to be defined; otherwise, this package won't work properly}% \PackageWarning{textualicomma}{Emergency stop}% \stop% \fi% \ifx\ttfamily\@undefined% \PackageError{textualicomma}% {\noexpand\ttfamily is undefined. textualicomma doesn't work}% {textualicomma requires the \noexpand\ttfamily command to be defined; otherwise, this package won't work properly}% \PackageWarning{textualicomma}{Emergency stop}% \stop% \fi% } % \end{macrocode} % % % % \subsubsection*{Package options} % Provide a \opt{sffamily} option for using the sans serif font: % \begin{macrocode} \newif\if@txticmma@sffamily \@txticmma@sffamilyfalse \DeclareOption{sffamily}{\@txticmma@sffamilytrue} % \end{macrocode} % % Provide a \opt{ttfamily} option for using the typewriter font: % \begin{macrocode} \newif\if@txticmma@ttfamily \@txticmma@ttfamilyfalse \DeclareOption{ttfamily}{\@txticmma@ttfamilytrue} % \end{macrocode} % % Process all options passed to \sty{textualicomma}: % \begin{macrocode} \ProcessOptions % \end{macrocode} % % % % \subsubsection*{Configuration} % Use the roman text font family by default: % \begin{macrocode} \def\txticmma@ffamily{\rmfamily} % \end{macrocode} % % If one of the \opt{sffamily} or \opt{ttfamily} options has been used, changes are applied: % \begin{macrocode} \if@txticmma@sffamily\def\txticmma@ffamily{\sffamily}\fi \if@txticmma@ttfamily\def\txticmma@ffamily{\ttfamily}\fi % \end{macrocode} % % \begin{macro}{\textualicommafont} % Provide a command for switching the font family inside the document: % \begin{macrocode} \def\textualicommafont#1{\def\txticmma@ffamily{#1}} % \end{macrocode} % \end{macro} % % % % \subsubsection*{Defining the \enquote{textual intelligent comma}} % At the very beginning, provide access to the textual comma character. % Also, define a math character referring to the comma contained in the math font, % to be used in enumerations: % \begin{macrocode} \AtBeginDocument{% \def\m@thtextcomma{\text{\txticmma@ffamily,}} \mathchardef\mathcomma\mathcode`\,% \mathcode`\,="8000 % } % \end{macrocode} % % Make the comma character active and map it to the \enquote*{smart comma}: % \begin{macrocode} {\catcode`,=\active \gdef,{\futurelet\@let@token\sm@rtcomma} } % \end{macrocode} % % Last but not least, define the \enquote*{smart comma} \dots % \begin{macrocode} \def\sm@rtcomma{% \ifx\@let@token\@sptoken\m@thtextcomma\protect\,\else \ifx\@let@token\space \else \m@thtextcomma\fi\fi} % \end{macrocode} % % \dots\ and allow changing the period's font: % \begin{macrocode} \DeclareMathSymbol{.}{\mathalpha}{operators}{`.} % \end{macrocode} % % % % \subsubsection*{Famous last words} % That's enough code. "\endinput". % \begin{macrocode} \endinput % \end{macrocode}