官术网_书友最值得收藏!

  • LaTeX Cookbook
  • Stefan Kottwitz
  • 463字
  • 2021-07-09 21:25:00

Converting numbers to words

Numbers are sometimes written in words rather than using numerals. LaTeX is capable of automatically converting numbers to words. This is especially useful for values which originate from LaTeX counters, such as page or section numbers.

How to do it...

Load the fmtcount package and use its commands for conversion:

  1. Start with any document class, such as article:
    \documentclass{article}
  2. Load the fmtcount package:
    \usepackage{fmtcount}
  3. Begin the document:
    \begin{document}
  4. Write some text. Use the following instructions:
    • Whenever you'd like to convert a number to a word, use the command \numberstringnum.
    • To print a counter value as a word, use \numberstring.
    • For a similar purpose, but in ordinal form, use \ordinalstringnum or \ordinalstring. Let's take a look at the following commands:
      This document should have \numberstringnum{32}
      pages, now we are on page \numberstring{page}
      in the \ordinalstring{section} section.
  5. End the document:
    \end{document}
  6. Compile the document. All numbers and counters are displayed as text, so you will get the following output:
    This document should have thirty-two pages. Now we are on page one in the first section.

How it works...

The fmtcount package provides a set of commands that print out numbers as words:

  • \ordinalstring{counter}: This prints the value of a counter as an ordinal in text
  • \numberstring{counter}: This prints the counter's value as text
  • \ordinalstringnum{number} and \numberstringnum{number}: These two commands do the same job, but based on an actual number instead of a counter
  • \Ordinalstring{counter}, \Numberstring{counter}, \Ordinalstringnum{number}, and \Numberstringnum{number}: These are the capitalized versions; they print the initial letter in uppercase

There's more...

The fmtcount package has even more to offer, such as multilingual capabilities, gender support, and support for new enumeration styles. We shall take a look at these features now.

Multilingual support

The fmtcount package supports several languages, such as English, Spanish, Portuguese, French, German, and Italian. It tries to detect the language option that has already been passed to the babel or polyglossia packages. You can explicitly load required definitions by typing the \FCloadlang{language} command in the preamble, with a language name understood by the babel package.

Gender

All the preceding commands support an optional gender argument at the end, taking one of the following values: m (masculine), f (feminine), or n (neuter). It is used such as in the \numberstring{section}[f] command. Masculine is the default.

Enumerated lists

The moreenum package provides new enumeration styles based on the fmtcount package. Here's an example:

\documentclass{article}
\usepackage{moreenum}
\begin{document}
\begin{enumerate}[label=\Nthwords*]
  \item live
  \item long
  \item prosper
\end{enumerate}
\end{document}

The items will be numbered first, second, and third, together with a dot. A label command \Nwords* would print One, Two, Three, with a dot. Also, here, there are lowercase versions, starting with a small letter n.

Besides the fmtcount command, this builds on the enumitem package, and so provides a similar key=value interface.

主站蜘蛛池模板: 合山市| 晋宁县| 榆树市| 盐边县| 安龙县| 卓尼县| 呼和浩特市| 当阳市| 富顺县| 尤溪县| 漠河县| 吉木乃县| 特克斯县| 湄潭县| 曲麻莱县| 洱源县| 永川市| 海宁市| 沧源| 南宁市| 罗平县| 中山市| 临沂市| 印江| 白山市| 钟山县| 迁安市| 年辖:市辖区| 儋州市| 永平县| 中超| 诸暨市| 安福县| 武陟县| 武鸣县| 那坡县| 内江市| 武定县| 阳高县| 英吉沙县| 永和县|