diff options
Diffstat (limited to 'macros/latex/contrib/romanbar')
-rw-r--r-- | macros/latex/contrib/romanbar/README | 164 | ||||
-rw-r--r-- | macros/latex/contrib/romanbar/romanbar-example.pdf | bin | 0 -> 70611 bytes | |||
-rw-r--r-- | macros/latex/contrib/romanbar/romanbar.dtx | 976 | ||||
-rw-r--r-- | macros/latex/contrib/romanbar/romanbar.pdf | bin | 0 -> 289679 bytes |
4 files changed, 1140 insertions, 0 deletions
diff --git a/macros/latex/contrib/romanbar/README b/macros/latex/contrib/romanbar/README new file mode 100644 index 0000000000..2309ad74b2 --- /dev/null +++ b/macros/latex/contrib/romanbar/README @@ -0,0 +1,164 @@ +README for romanbar package, 2012/01/01, v1.0f + + +TABLE OF CONTENTS +================= + +1 Introduction +2 Download +3 Installation +4 Additional Packages +5 Package Compatibility +6 Authors/Maintainer +7 Bug Reports +8 Known Problems + + +1 INTRODUCTION +============== + +This LaTeX package allows to write Roman numbers (or any +other text) with bars. (Additionally, commands for converting +Arabic numbers into Roman ones are provided and +an \ifnumeric test function.) +The original code for the bars was written by +Prof. Enrico Gregorio (egreg) and published at +http://tex.stackexchange.com/questions/24065/ +roman-numerals-formatting/24084#24084 +This material is subject to the LaTeX Project Public License +(LPPL). See http://www.ctan.org/tex-archive/help/Catalogue/ +licenses.lppl.html for the details of that license. + + +2 DOWNLOAD +========== + +`romanbar' should become available on CTAN soon: + CTAN:macros/latex/contrib/romanbar/ + +Running +tex romanbar.dtx +generates the files +romanbar.ins, romanbar.drv, romanbar.sty, +and romanbar-example.tex. + +Also a ZIP file is provided that contains these files, +the manual (romanbar.pdf), the compiled example +(romanbar-example.pdf), and this README, already +sorted in a TDS tree (to be available soon): + CTAN:install/macros/latex/contrib/romanbar.tds.zip + +`CTAN:' means one of the `Comprehensive TeX Archive Network' +nodes or one of its mirrors. This is explained in + http://www.tex.ac.uk/cgi-bin/texfaq2html?label=archives + +The CTAN stuff will be mirrored automatically from the +ftp server, so + ftp://ftp.tug.org/pub/tex/romanbar/ +corresponds to + CTAN:macros/latex/contrib/romanbar/ + + +3 INSTALLATION +============== + +Installation with ZIP file in TDS format +---------------------------------------- +The ZIP file `romanbar.tds.zip' contains the files +sorted in a TDS tree. Thus you can directly unpack the +ZIP file inside a TDS tree. +(See CTAN:tds.zip for an explanation of TDS.) +Example: + cd /...somewhere.../texmf + unzip /...downloadpath.../romanbar.tds.zip +Do not forget to refresh the file name database of this +TDS tree. +Example: + texhash /...somewhere.../texmf + +Manual installation +------------------- +a) Download the romanbar files from CTAN. + If necessary, unpack them. +b) Generate the package and driver files: + tex romanbar.dtx +c) Install the file `*.sty' in your TDS tree: + cp *.sty TDS:tex/latex/romanbar/ + Replace `TDS:' by the prefix of your TDS tree + (texmf directory). +d) Create the documentation (if necessary), e.g. + pdflatex romanbar.dtx + makeindex -s gind.ist romanbar.idx + pdflatex romanbar.dtx + makeindex -s gind.ist romanbar.idx + pdflatex romanbar.dtx +e) Update the databases if necessary, e.g. for teTeX: + mktexlsr .../texmf +f) Create the romanbar-example.pdf (if necessary), e.g. + pdflatex romanbar-example.tex +g) Copy the documentation files to + "TDS:doc/latex/romanbar/": + README, romanbar.pdf, romanbar-example.tex, + romanbar-example.pdf. + + +4 ADDITIONAL PACKAGES +===================== + +romanbar itself does not load other packages. +The romanbar-example.tex uses +* hyperref: http://ctan.org/pkg/hyperref +which again loads other packages +(see the result of the \listfiles command in the log-file + of the example). + + +5 PACKAGE COMPATIBILITY +======================= + +There are no known incompatibilities. + + +6 AUTHOR/MAINTAINER +===================== + +* Author of the original code for the bars: + Prof. Enrico Gregorio (egreg), see + http://tex.stackexchange.com/questions/24065/ + roman-numerals-formatting/24084#24084 +* Author of the recent package and current maintainer: + H.-Martin Münch + + +7 BUG REPORTS +============== + +A bug report should contain: +* Comprehensive problem description. This includes error or + warning messages. +* \errorcontextlines=\maxdimen can be added in the + TeX code to get more information in TeX error messages. +* Minimal test file that shows the problem, but does not + contain any unnecessary packages and code. +* Used drivers/programs. +* Version information about used packages and programs. +* If you are using LaTeX, then add "\listfiles". Then + a list of version information is printed at the end + of the LaTeX run. +* Please no other files than the minimal test file. + The other files .log, .dvi, .ps, .pdf are seldom + necessary, so send them only on request. +* Please .zip or .tar.gz your file(s) before sending them! + +Bug address +----------- +Bug reports can be send to the maintainer: + H.-Martin Münch + <Martin [dot] Muench [at] Uni-Bonn [dot] de> + + +8 KNOWN PROBLEMS +================= + +Depending on used pdf-viewer and zoom level +the bars might not look as good as when printed.
\ No newline at end of file diff --git a/macros/latex/contrib/romanbar/romanbar-example.pdf b/macros/latex/contrib/romanbar/romanbar-example.pdf Binary files differnew file mode 100644 index 0000000000..361c3c412d --- /dev/null +++ b/macros/latex/contrib/romanbar/romanbar-example.pdf diff --git a/macros/latex/contrib/romanbar/romanbar.dtx b/macros/latex/contrib/romanbar/romanbar.dtx new file mode 100644 index 0000000000..d4b40d4334 --- /dev/null +++ b/macros/latex/contrib/romanbar/romanbar.dtx @@ -0,0 +1,976 @@ +% \iffalse meta-comment +% +% File: romanbar.dtx +% Version: 2012/01/01 v1.0f +% +% Copyright (C) 2011 by +% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de> +% +% The original code for the bars was written by Prof. Enrico Gregorio +% (http://profs.sci.univr.it/~gregorio/), and published at +% http://tex.stackexchange.com/questions/24065/roman-numerals-formatting/24084#24084 +% I (H.-Martin Münch) submitted this package to CTAN +% (after diverse updates of the code and writing a documentation). +% +% 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. This version of this license is in +% http://www.latex-project.org/lppl/lppl-1-3c.txt +% and the latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c 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 H.-Martin Muench. +% +% This work consists of the main source file romanbar.dtx, +% the README, and the derived files +% romanbar.sty, romanbar.pdf, +% romanbar.ins, romanbar.drv, +% romanbar-example.tex, romanbar-example.pdf. +% +% Distribution: +% CTAN:macros/latex/contrib/romanbar/romanbar.dtx +% CTAN:macros/latex/contrib/romanbar/romanbar.pdf +% CTAN:install/macros/latex/contrib/romanbar.tds.zip +% +% Cf. http://ctan.org/pkg/romanbar and +% http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/romanbar.html +% (It might take some time for the entries to be created.) +% +% Unpacking: +% (a) If romanbar.ins is present: +% tex romanbar.ins +% (b) Without romanbar.ins: +% tex romanbar.dtx +% (c) If you insist on using LaTeX +% latex \let\install=y\input{romanbar.dtx} +% (quote the arguments according to the demands of your shell) +% +% Documentation: +% (a) If romanbar.drv is present: +% (pdf)latex romanbar.drv +% makeindex -s gind.ist romanbar.idx +% (pdf)latex romanbar.drv +% makeindex -s gind.ist romanbar.idx +% (pdf)latex romanbar.drv +% (b) Without romanbar.drv: +% (pdf)latex romanbar.dtx +% makeindex -s gind.ist romanbar.idx +% (pdf)latex romanbar.dtx +% makeindex -s gind.ist romanbar.idx +% (pdf)latex romanbar.dtx +% +% The class ltxdoc loads the configuration file ltxdoc.cfg +% if available. Here you can specify further options, e.g. +% use DIN A4 as paper format: +% \PassOptionsToClass{a4paper}{article} +% +% Installation: +% TDS:tex/latex/romanbar/romanbar.sty +% TDS:doc/latex/romanbar/romanbar.pdf +% TDS:doc/latex/romanbar/romanbar-example.tex +% TDS:doc/latex/romanbar/romanbar-example.pdf +% TDS:source/latex/romanbar/romanbar.dtx +% +%<*ignore> +\begingroup + \catcode123=1 % + \catcode125=2 % + \def\x{LaTeX2e}% +\expandafter\endgroup +\ifcase 0\ifx\install y1\fi\expandafter + \ifx\csname processbatchFile\endcsname\relax\else1\fi + \ifx\fmtname\x\else 1\fi\relax +\else\csname fi\endcsname +%</ignore> +%<*install> +\input docstrip.tex +\Msg{********************************************************************} +\Msg{* Installation *} +\Msg{* Package: romanbar 2012/01/01 v1.0f Roman numbers with bars (HMM) *} +\Msg{********************************************************************} + +\keepsilent +\askforoverwritefalse + +\let\MetaPrefix\relax +\preamble + +This is a generated file. + +Project: romanbar +Version: 2012/01/01 v1.0f + +Copyright (C) 2011 by + H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de> + +The usual disclaimer applies: +If it doesn't work right that's your problem. +(Nevertheless, send an e-mail to the maintainer + when you find an error in this package.) + +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. This version of this license is in + http://www.latex-project.org/lppl/lppl-1-3c.txt +and the latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3c 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 H.-Martin Muench. + +This work consists of the main source file romanbar.dtx, +the README, and the derived files + romanbar.sty, romanbar.pdf, + romanbar.ins, romanbar.drv, + romanbar-example.tex, romanbar-example.pdf. + +\endpreamble +\let\MetaPrefix\DoubleperCent + +\generate{% + \file{romanbar.ins}{\from{romanbar.dtx}{install}}% + \file{romanbar.drv}{\from{romanbar.dtx}{driver}}% + \usedir{tex/latex/romanbar}% + \file{romanbar.sty}{\from{romanbar.dtx}{package}}% + \usedir{doc/latex/romanbar}% + \file{romanbar-example.tex}{\from{romanbar.dtx}{example}}% +} + +\catcode32=13\relax% active space +\let =\space% +\Msg{************************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* file into a directory searched by TeX:} +\Msg{*} +\Msg{* romanbar.sty} +\Msg{*} +\Msg{* To produce the documentation run the file `romanbar.drv'} +\Msg{* through (pdf)LaTeX, e.g.} +\Msg{* pdflatex romanbar.drv} +\Msg{* makeindex -s gind.ist romanbar.idx} +\Msg{* pdflatex romanbar.drv} +\Msg{* makeindex -s gind.ist romanbar.idx} +\Msg{* pdflatex romanbar.drv} +\Msg{*} +\Msg{* At least three runs are necessary e.g. to get the} +\Msg{* references right!} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +%</install> +%<*ignore> +\fi +%</ignore> +% +% \section{The documentation driver file} +% +% The next bit of code contains the documentation driver file for +% \TeX{}, i.\,e., the file that will produce the documentation you +% are currently reading. It will be extracted from this file by the +% \texttt{docstrip} programme. That is, run \LaTeX{} on \texttt{docstrip} +% and specify the \texttt{driver} option when \texttt{docstrip} +% asks for options. +% +% \begin{macrocode} +%<*driver> +\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\ProvidesFile{romanbar.drv}% + [2012/01/01 v1.0f Roman numbers with bars (HMM)] +\documentclass{ltxdoc}[2007/11/11]% v2.0u +\usepackage{holtxdoc}[2011/02/04]% v0.21 +%% romanbar may work with earlier versions of LaTeX2e and those +%% class and package, but this was not tested. +%% Please consider updating your LaTeX, class, and package +%% to the most recent version (if they are not already the most +%% recent version). +\hypersetup{% + pdfsubject={Writing Roman numbers with bars (HMM)},% + pdfkeywords={LaTeX, romanbar, roman, Roman, bars, H.-Martin Muench},% + pdfencoding=auto,% + pdflang={en},% + breaklinks=true,% + linktoc=all,% + pdfstartview=FitH,% + pdfpagelayout=OneColumn,% + bookmarksnumbered=true,% + bookmarksopen=true,% + bookmarksopenlevel=2,% + pdfmenubar=true,% + pdftoolbar=true,% + pdfwindowui=true,% + pdfnewwindow=true% +} +\CodelineIndex +\hyphenation{docu-ment ana-lysed} +\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}% +\makeatletter +\@ifundefined{eTeX}{\gdef\eTeX{$\m@th \varepsilon $-\TeX }}{% else \relax +} +\makeatother +\begin{document} + \DocInput{romanbar.dtx}% +\end{document} +%</driver> +% \end{macrocode} +% +% \fi +% +% \CheckSum{179} +% +% \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 \~} +% +% \GetFileInfo{romanbar.drv} +% +% \begingroup +% \def\x{\#,\$,\^,\_,\~,\ ,\&,\{,\},\%}% +% \makeatletter +% \@onelevel@sanitize\x +% \expandafter\endgroup +% \expandafter\DoNotIndex\expandafter{\x} +% \expandafter\DoNotIndex\expandafter{\string\ } +% \begingroup +% \makeatletter +% \lccode`9=32\relax +% \lowercase{%^^A +% \edef\x{\noexpand\DoNotIndex{\@backslashchar9}}%^^A +% }%^^A +% \expandafter\endgroup\x +% +% \DoNotIndex{\\,\,} +% \DoNotIndex{\documentclass,\usepackage,\ProvidesPackage,\begin,\end} +% \DoNotIndex{\MessageBreak} +% \DoNotIndex{\NeedsTeXFormat,\DoNotIndex,\verb} +% \DoNotIndex{\def,\edef,\gdef,\global} +% \DoNotIndex{\ifx,\listfiles,\mathord,\mathrm} +% \DoNotIndex{\bigskip,\space,\thinspace,\ldots} +% \DoNotIndex{\indent,\noindent,\newline,\linebreak,\pagebreak,\newpage} +% \DoNotIndex{\textbf,\textit,\textsf,\texttt,\textquotedblleft,\textquotedblright} +% \DoNotIndex{\plainTeX,\TeX,\LaTeX,\pdfLaTeX} +% \DoNotIndex{\item} +% +% \title{The \xpackage{romanbar} package} +% \date{2012/01/01 v1.0f} +% \author{H.-Martin M\"{u}nch\\\xemail{Martin.Muench at Uni-Bonn.de}} +% +% \maketitle +% +% \begin{abstract} +% This \LaTeX{} package allows to write Roman numbers +% (or any other text) with bars. (Additionally, commands for converting Arabic numbers +% into Roman ones are provided and an |\ifnumeric| test function.) +% \end{abstract} +% +% \bigskip +% +% \noindent Disclaimer for web links: The author is not responsible for any contents +% referred to in this work unless he has full knowledge of illegal contents. +% If any damage occurs by the use of information presented there, only the +% author of the respective pages might be liable, not the one who has referred +% to these pages. +% +% \bigskip +% +% \noindent {\color{green} Save per page about $200\unit{ml}$ water, +% $2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\\ +% Therefore please print only if this is really necessary.} +% +% \pagebreak +% +% \tableofcontents +% +% \pagebreak +% +% \section{Introduction} +% +% \indent This \LaTeX{} package allows to write Roman numbers +% (or any other text) with bars. (Additionally, command for converting Arabic numbers +% into Roman ones are provided and an |\ifnumeric| test function.) +% +% \bigskip +% +% \section{Usage} +% +% \indent Just load the package placing +% \begin{quote} +% |\usepackage{romanbar}| +% \end{quote} +% \noindent in the preamble of your \LaTeXe{} source file.\\ +% |\Romanbar{...}| then produces a Roman number with bars (please see the example file). +% |\ifnumeric{test}{true}{false}| tests for |test| being numeric. +% |\romannum{...}| turns an Arabic number into a lowercase Roman one, and +% |\Romannum{...}| turns an Arabic number into an uppercase Roman one. +% +% \subsection*{Options} +% \DescribeMacro{options} +% \indent The \xpackage{romanbar} package takes no options. +% +% \section{Alternatives\label{sec:Alternatives}} +% +% \begin{description} +% \item[-] the original code written by Prof. Enrico Gregorio\\ +% (\url{http://profs.sci.univr.it/~gregorio/}),\\ +% \url{http://tex.stackexchange.com/questions/24065/roman-numerals-formatting/24084#24084} +%\begin{verbatim} +%\def\barroman#1{\sbox0{#1}\dimen0=\dimexpr\wd0+1pt\relax +% \makebox[\dimen0]{\rlap{\vrule width\dimen0 height 0.06ex depth 0.06ex}% +% \rlap{\vrule width\dimen0 height\dimexpr\ht0+0.03ex\relax +% depth\dimexpr-\ht0+0.09ex\relax}% +% \kern.5pt#1\kern.5pt}} +% +%\barroman{I} \barroman{XI} +%\end{verbatim} +% +% \item[-] Some fonts provide single characters for Roman numerals, +% cf.~e.\,g. +% \url{http://tex.stackexchange.com/questions/38695/using-unicode-roman-numerals-in-xetex}. +% \end{description} +% +% \noindent (You programmed or found another alternative, +% which is available at \CTAN{}?\\ +% OK, send an e-mail to me with the name, location at \CTAN{}, +% and a short notice, and I will probably include it in +% the list above.) +% +% \newpage +% +% \section{Example} +% +% \begin{macrocode} +%<*example> +\documentclass[british]{article}[2007/10/19]% v1.4h +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[extension=pdf,% + plainpages=false,% + pdfpagelabels=true,% + hyperindex=false,% + pdflang={en},% + pdftitle={romanbar package example},% + pdfauthor={H.-Martin Muench},% + pdfsubject={Example for the romanbar package},% + pdfkeywords={LaTeX, romanbar, roman, Roman, bars, H.-Martin Muench},% + pdfview={XYZ null null 1},% + pdfstartview={XYZ null null 1},% + pdfpagelayout=SinglePage]{hyperref}[2011/12/04]% v6.82m +\usepackage{romanbar}[2012/01/01]% v1.0f +\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}% +\listfiles +\begin{document} +\pagenumbering{arabic} +\section*{Example for romanbar} + +This example demonstrates the use of package\newline +\textsf{romanbar}, v1.0f as of 2012/01/01 (HMM).\newline +There are no options to be used.\newline + +\noindent For more details please see the documentation!\newline + +\noindent Save per page about $200\unit{ml}$ water, +$2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\newline +Therefore please print only if this is really necessary.\newline + +\noindent This package provides the command \verb|\Romanbar| +to print bars below and over the following: + +\begin{description} +\item[-] Roman numbers: \verb|\Romanbar{MMXII}| prints \Romanbar{MMXII} + +\item[-] Arabic numbers turned into upper-case Roman numbers:\newline + \verb|\Romanbar{2012}| prints \Romanbar{2012} + +\item[-] negative Arabic numbers turned into upper-case Roman numbers + \newline + (although historically there were no negative Roman numbers): + \newline + \verb|\Romanbar{-12}| prints \Romanbar{-12} + +\item[-] zero Arabic number ($0$; although historically + there was no Roman zero):\newline + \verb|\Romanbar{0}| prints \Romanbar{0} + +\item[-] some arbitrary text: + \verb|\Romanbar{Caesar}| prints \Romanbar{Caesar}\newline + (with descenders: \Romanbar{AgjpqyW}) + + +\newcounter{example} +\setcounter{example}{21} + +\item[-] some counter's value: + \verb|\Romanbar{\theexample}| prints \Romanbar{\theexample} + \newline + (where the value of \texttt{example} is \theexample) + +\item[-] Arabic numbers, without turning them into upper-case Roman + numbers:\newline + \verb|\Romanbar{\relax 2012}| prints \Romanbar{\relax 2012} +\end{description} + +Special care was taken for "L" (50), e.\,g. in 555/DLV: \Romanbar{555}.\\ + + +\verb|\romannum{...}| converts an Arabic number into a lower-case Roman one, +e.\,g. \verb|\romannum{2012}| prints \romannum{2012}, and +\verb|\Romannum{...}| converts an Arabic number into an upper-case Roman one, +e.\,g. \verb|\Romannum{2012}| prints \Romannum{2012}. + +\end{document} +%</example> +% \end{macrocode} +% +% \StopEventually{} +% +% \newpage +% +% \section{The implementation} +% +% We start off by checking that we are loading into \LaTeXe{} and +% announcing the name and version of this package. +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\ProvidesPackage{romanbar}[2012/01/01 v1.0f + Roman numbers with bars (HMM)] + +% \end{macrocode} +% +% A short description of the \xpackage{romanbar} package: +% +% \begin{macrocode} +%% Allows to write Roman numbers (or any other text) with bars +%% and to convert Arabic numbers into Roman ones. +% \end{macrocode} +% +% A last information for the user: +% +% \begin{macrocode} +%% romanbar may work with earlier versions of LaTeX, +%% but this was not tested. Please consider updating +%% your LaTeX to the most recent version +%% (if it is not already the most recent version). + +% \end{macrocode} +% +% \indent See subsection~\ref{ss:Downloads} about how to get it.\\ +% +% There are no options to be processed. +% +% A command to gobble a possible minus sign is needed and +% |\gobbleminus| from \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=isitanum} +% is used. +% +% \begin{macrocode} +\def\gobbleminus#1{\ifx-#1\else#1\fi} +%% from http://www.tex.ac.uk/cgi-bin/texfaq2html?label=isitanum + +% \end{macrocode} +% +% We want to test whether the argument passed to |\Romanbar| is numeric +% and therefore define |\ifnumeric{test}{true}{false}|, +% where |test| is to be analysed, |true| is the code to be executed, +% if |test| is numeric, and |false| is the code to be executed, +% if |test| is not numeric. This is done similar to\\ +% \url{http://tex.stackexchange.com/a/17119}. +% +% \begin{macrocode} +\newcommand{\ifnumeric}[3]{% +%% similar to http://tex.stackexchange.com/a/17119 +\sbox\z@{\@tempcnta=0\gobbleminus#1\relax}% +\ifdim\wd0>\z@\relax#3% is not numeric +\else#2% is numeric +\fi% +} + +% \end{macrocode} +% +% We define |\r@iseL| to raise any L (50), otherwise a good deal +% of the horizontal part of the letter would be swallowed by the lower bar +% under the \textquotedblleft{}number\textquotedblright{}. +% +% \begin{macrocode} +\def\r@iseL#1{\ifx @#1% then terminate +\else% +\if L#1\raisebox{0.05ex}{L}\else #1\fi% +\expandafter\r@iseL% +\fi% +} + +% \end{macrocode} +% +% \pagebreak +% +% We define the |\Romanbar| command. +% +% \begin{macrocode} +\DeclareRobustCommand{\Romanbar}[1]{% +\ifnumeric{#1}{% is numeric +% \end{macrocode} +% +% If its parameter is numeric, the temporary counter |\@tempcnta| is set to the value. +% +% \begin{macrocode} +\@tempcnta=#1\relax% +% \end{macrocode} +% +% Normally there are no non-positive Roman numbers, therefore we do some trick +% similar to |\XRoman| from the \url{http://ctan.org/pkg/pageslts} package. +% +% \begin{macrocode} +%% similar to \XRoman from the http://ctan.org/pkg/pageslts package +\ifnum\@tempcnta<1% + \ifnum #1>0% + \relax \Roman@bar{\Roman{#1}}% + \else% + \ifnum #1<0% + -\Roman@bar{\expandafter\@slowromancap\romannumeral\number-#1@% + }% + \else% + \Roman@bar{0}% + \fi% + \fi% +\else\Roman@bar{\@Roman\@tempcnta}% +\fi% +}{% is not numeric +\Roman@bar{#1}% +}% +} + +% \end{macrocode} +% +% Whether it is numeric or not, in the end |\Roman@bar| is applied to it. +% +% \begin{macrocode} +\DeclareRobustCommand{\Roman@bar}[1]{% #1 is in Roman, i.e. MMXII +%% (or any other text, "Caesar" would work, too). +%% similar to code of by Prof. Enrico Gregorio (egreg) at +%% http://tex.stackexchange.com/questions/24065/roman-numerals-formatting/24084#24084 +\@bsphack% +\edef\romanbartmp{#1}% +%% height: +\sbox0{\textsf{\romanbartmp}}% +%% top line: +%% + top of top line: +\@tempdima=\ht0% +\advance\@tempdima+0.05ex%0.03 +\dimen1=\@tempdima% +%% + bottom of top line: +\@tempdima=-\ht0% +\advance\@tempdima+0.05ex%0.07 +\dimen2=\@tempdima% +%% width: +\sbox0{\textsf{\expandafter\r@iseL\romanbartmp @}}% +\@tempdima=\wd0% +\advance\@tempdima+1pt% +\dimen0=\@tempdima% +\@esphack% +\makebox[\dimen0]{% +\rlap{\vrule width\dimen0 height\dimen1 depth\dimen2}% top line +\rlap{\vrule width\dimen0 height 0.06ex depth 0.03ex}% bottom line +\kern0.5pt\textsf{\expandafter\r@iseL\romanbartmp @}\kern0.5pt}% +} + +% \end{macrocode} +% +% While it is not needed for the bars, it is sometimes asked for a command +% to convert an Arabic number into a Roman one. |\roman{...}| can only be applied +% to a counter, i.\,e. |\roman{12}| does not work, but +%\begin{verbatim} +%\newcounter{examplecounter} +%\setcounter{examplecounter}{12} +%\roman{examplecounter} +%\end{verbatim} +% would be necessary. Further non-negative values would not work. +% |\romannum| accepts any number as argument. (If the argument is no number, +% an error message is given and the argument printed (executed) +% without applying anything to it.) +% +% \begin{macrocode} +\DeclareRobustCommand{\romannum}[1]{% +\ifnumeric{#1}{% is numeric +\@tempcnta=#1\relax% +%% similar to \xroman from the http://ctan.org/pkg/pageslts package +\ifnum\@tempcnta<1% + \ifnum #1>0% + \relax \roman{#1}% + \else% + \ifnum #1<0% + -\romannumeral\number-#1@% + \else% + 0% + \fi% + \fi% +\else\@roman\@tempcnta% +\fi% +}{% is not numeric +\PackageError{romanbar}{% +Argument of \string\romannum\space is not a number}{% +The command \string\romannum\space converts an Arabic number into a% + lower-case Roman one,\MessageBreak% +but the used argument of \string\romannum\space is not an Arabic number% + but\MessageBreak% +`#1`,\MessageBreak% +which will now be printed unchanged.}% +#1% +}% +} + +% \end{macrocode} +% +% The same for upper-case Roman numbers, |\Romannum| instead of |\Roman|: +% +% \begin{macrocode} +\DeclareRobustCommand{\Romannum}[1]{% +\ifnumeric{#1}{% is numeric +\@tempcnta=#1\relax% +%% similar to \XRoman from the http://ctan.org/pkg/pageslts package +\ifnum\@tempcnta<1% + \ifnum #1>0% + \relax \Roman{#1}% + \else% + \ifnum #1<0% + -\expandafter\@slowromancap\romannumeral\number-#1@% + \else% + 0% + \fi% + \fi% +\else\@Roman\@tempcnta% +\fi% +}{% is not numeric +\PackageError{romanbar}{% +Argument of \string\Romannum\space is not a number}{% +The command \string\Romannum\space converts an Arabic number into an% + upper-case Roman one,\MessageBreak% +but the used argument of \string\Romannum\space is not an Arabic number% + but\MessageBreak% +`#1`.}% +#1% +}% +} + +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \newpage +% +% \section{Installation} +% +% \subsection{Downloads\label{ss:Downloads}} +% +% Everything should be available on \CTAN{}, \url{http://www.ctan.org/tex-archive/}, +% but may need additional packages themselves.\\ +% +% \DescribeMacro{romanbar.dtx} +% For unpacking the |romanbar.dtx| file and constructing the documentation +% it is required: +% \begin{description} +% \item[-] \TeX{} Format \LaTeXe{}, \url{http://www.CTAN.org/} +% +% \item[-] document class \xpackage{ltxdoc}, 2007/11/11, v2.0u, +% \url{http://ctan.org/pkg/ltxdoc} +% +% \item[-] package \xpackage{holtxdoc}, 2011/02/04, v0.21, +% \url{http://ctan.org/pkg/holtxdoc} +% +% \item[-] package \xpackage{hypdoc}, 2010/03/26, v1.9, +% \url{http://ctan.org/pkg/hypdoc} +% \end{description} +% +% \DescribeMacro{romanbar.sty} +% The \texttt{romanbar.sty} for \LaTeXe{} (i.\,e.~each document using +% the \xpackage{romanbar} package) requires: +% \begin{description} +% \item[-] \TeX Format \LaTeXe{}, \url{http://www.CTAN.org/} +% \end{description} +% +% \DescribeMacro{romanbar-example.tex} +% The \texttt{romanbar-example.tex} requires the same files as all +% documents using the \xpackage{romanbar} package and additionally: +% \begin{description} +% \item[-] class \xpackage{article}, 2007/10/19, v1.4h, from \xpackage{classes.dtx}:\\ +% \CTAN{macros/latex/base/classes.dtx} +% +% \item[-] package \xpackage{romanbar}, 2012/01/01, v1.0f,\\ +% %%\url{http://ctan.org/pkg/romanbar}\\ +% \CTAN{macros/latex/contrib/romanbar/} +% (Well, it is the example file for this package, and because you are reading the +% documentation for the \xpackage{romanbar} package, it can be assumed that you already +% have some version of it -- is it the current one?) +% \end{description} +% +% \DescribeMacro{Alternative} +% As possible alternative package in section \ref{sec:Alternatives} there is listed +% \begin{description} +% \item[-] none. +% \end{description} +% +% \DescribeMacro{Oberdiek} +% \DescribeMacro{holtxdoc} +% All packages of \textsc{Heiko Oberdiek's} bundle `oberdiek' +% (especially \xpackage{holtxdoc}) are also available in a TDS compliant ZIP archive:\\ +% \CTAN{install/macros/latex/contrib/oberdiek.tds.zip}.\\ +% It is probably best to download and use this, because the packages in there +% are quite probably both recent and compatible among themselves.\\ +% +% \DescribeMacro{hyperref} +% \noindent \xpackage{hyperref} is not included in that bundle and needs to be +% downloaded separately,\\ +% \url{http://mirror.ctan.org/install/macros/latex/contrib/hyperref.tds.zip}.\\ +% +% \DescribeMacro{M\"{u}nch} +% A hyperlinked list of my (other) packages can be found at +% \url{http://www.Uni-Bonn.de/~uzs5pv/LaTeX.html}.\\ +% +% \pagebreak +% +% \subsection{Package, unpacking TDS} +% \paragraph{Package.} This package should become available on \CTAN{} soon: +% \begin{description} +% \item[\CTAN{macros/latex/contrib/romanbar/romanbar.dtx}]\hspace*{0.1cm} \\ +% The source file. +% \item[\CTAN{macros/latex/contrib/romanbar/romanbar.pdf}]\hspace*{0.1cm} \\ +% The documentation. +% \item[\CTAN{macros/latex/contrib/romanbar/romanbar-example.pdf}]\hspace*{0.1cm} \\ +% The compiled example file, as it should look like. +% \item[\CTAN{macros/latex/contrib/romanbar/README}]\hspace*{0.1cm} \\ +% The README file. +% \end{description} +% There is also a romanbar.tds.zip available: +% \begin{description} +% \item[\CTAN{install/macros/latex/contrib/romanbar.tds.zip}]\hspace*{0.1cm} \\ +% Everything in \xfile{TDS} compliant, compiled format. +% \end{description} +% which additionally contains\\ +% \begin{tabular}{ll} +% romanbar.ins & The installation file.\\ +% romanbar.drv & The driver to generate the documentation.\\ +% romanbar.sty & The \xext{sty}le file.\\ +% romanbar-example.tex & The example file. +% \end{tabular} +% +% \bigskip +% +% \noindent For required other packages, please see the preceding subsection. +% +% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting +% \docstrip{} archive. The files are extracted by running the +% \xext{.dtx} through \plainTeX{}: +% \begin{quote} +% \verb|tex romanbar.dtx| +% \end{quote} +% +% About generating the documentation see paragraph~\ref{GenDoc} below.\\ +% +% \paragraph{TDS.} Now the different files must be moved into +% the different directories in your installation TDS tree +% (also known as \xfile{texmf} tree): +% \begin{quote} +% \def\t{^^A +% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} +% romanbar.sty & tex/latex/romanbar/romanbar.sty\\ +% romanbar.pdf & doc/latex/romanbar/romanbar.pdf\\ +% romanbar-example.tex & doc/latex/romanbar/romanbar-example.tex\\ +% romanbar-example.pdf & doc/latex/romanbar/romanbar-example.pdf\\ +% romanbar.dtx & source/latex/romanbar/romanbar.dtx\\ +% \end{tabular}^^A +% }^^A +% \sbox0{\t}^^A +% \ifdim\wd0>\linewidth +% \begingroup +% \advance\linewidth by\leftmargin +% \advance\linewidth by\rightmargin +% \edef\x{\endgroup +% \def\noexpand\lw{\the\linewidth}^^A +% }\x +% \def\lwbox{^^A +% \leavevmode +% \hbox to \linewidth{^^A +% \kern-\leftmargin\relax +% \hss +% \usebox0 +% \hss +% \kern-\rightmargin\relax +% }^^A +% }^^A +% \ifdim\wd0>\lw +% \sbox0{\small\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\footnotesize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\scriptsize\t}^^A +% \ifdim\wd0>\linewidth +% \ifdim\wd0>\lw +% \sbox0{\tiny\t}^^A +% \ifdim\wd0>\linewidth +% \lwbox +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \else +% \lwbox +% \fi +% \else +% \usebox0 +% \fi +% \end{quote} +% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip{}'s +% \xfile{TDS} installing feature, then some files can already be in the right +% place, see the documentation of \docstrip{}. +% +% \subsection{Refresh file name databases} +% +% If your \TeX{}~distribution (\teTeX{}, \mikTeX{},\dots{}) relies on file name +% databases, you must refresh these. For example, \teTeX{} users run +% \verb|texhash| or \verb|mktexlsr|. +% +% \subsection{Some details for the interested} +% +% \paragraph{Unpacking with \LaTeX{}.} +% The \xfile{.dtx} chooses its action depending on the format: +% \begin{description} +% \item[\plainTeX:] Run \docstrip{} and extract the files. +% \item[\LaTeX:] Generate the documentation. +% \end{description} +% If you insist on using \LaTeX{} for \docstrip{} (really, +% \docstrip{} does not need \LaTeX{}), then inform the autodetect routine +% about your intention: +% \begin{quote} +% \verb|latex \let\install=y\input{romanbar.dtx}| +% \end{quote} +% Do not forget to quote the argument according to the demands +% of your shell. +% +% \paragraph{Generating the documentation.\label{GenDoc}} +% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate +% the documentation. The process can be configured by a +% configuration file \xfile{ltxdoc.cfg}. For instance, put the following +% line into this file, if you want to have A4 as paper format: +% \begin{quote} +% \verb|\PassOptionsToClass{a4paper}{article}| +% \end{quote} +% +% \noindent An example follows how to generate the +% documentation with \pdfLaTeX{}: +% +% \begin{quote} +%\begin{verbatim} +%pdflatex romanbar.dtx +%makeindex -s gind.ist romanbar.idx +%pdflatex romanbar.dtx +%makeindex -s gind.ist romanbar.idx +%pdflatex romanbar.dtx +%\end{verbatim} +% \end{quote} +% +% \subsection{Compiling the example} +% +% The example file, \textsf{romanbar-example.tex}, can be compiled via\\ +% |(pdf)(la)tex romanbar-example.tex|. +% +% \section{Acknowledgements} +% +% I would like to thank \textsc{Heiko Oberdiek} for providing +% the \xpackage{hyperref} as well as a~lot~(!) of other useful packages +% (from which I also got everything I know about creating a file in \xext{dtx} +% format, ok, say it: copying), +% Prof.~\textsc{Enrico Gregorio} (egreg) for his answer +% \url{http://tex.stackexchange.com/questions/24065/roman-numerals-formatting/24084#24084}, +% the \Newsgroup{comp.text.tex} and \Newsgroup{de.comp.text.tex} +% newsgroups as well as \url{http://tex.stackexchange.com} +% for their help in all things \TeX{}. +% +% \pagebreak +% +% \phantomsection +% \begin{History}\label{History} +% \begin{Version}{2011/07/25 v1.0a} +% \item First code by Prof.~\textsc{Enrico Gregorio} (egreg) at +% \url{http://tex.stackexchange.com/questions/24065/roman-numerals-formatting/24084#24084} +% \end{Version} +% \begin{Version}{2011/07/26 v1.0b} +% \item Packed into a \xext{sty} file. +% \item Removed the requirement of \eTeX{} for the package. +% \end{Version} +% \begin{Version}{2011/08/25 v1.0c} +% \item Renamed \xpackage{romanbar} package. +% \item Minor details. +% \end{Version} +% \begin{Version}{2011/09/16 v1.0d} +% \item Made commands robust. +% \item Minor details. +% \end{Version} +% \begin{Version}{2011/12/16 v1.0e} +% \item Additionally accepts now Arabic numbers and converts them to Roman ones with bars. +% \item Also non-positive numbers are now accepted. +% \end{Version} +% \begin{Version}{2012/01/01 v1.0f} +% \item Added |\romannum| and |\Romannum| to convert Arabic to Roman numbers (without bars). +% \item |\r@iseL|. +% \item Created a \xfile{dtx}, example, and README. +% \item Upload to \CTAN{}. +% \end{Version} +% \end{History} +% +% \bigskip +% +% When you find a mistake or have a suggestion for an improvement of this package, +% please send an e-mail to the maintainer, thanks! (Please see BUG REPORTS in the README.) +% +% \pagebreak +% +% \PrintIndex +% +% \Finale +\endinput
\ No newline at end of file diff --git a/macros/latex/contrib/romanbar/romanbar.pdf b/macros/latex/contrib/romanbar/romanbar.pdf Binary files differnew file mode 100644 index 0000000000..fca8226456 --- /dev/null +++ b/macros/latex/contrib/romanbar/romanbar.pdf |