Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  NUMBER::WITHERROR::LATEX (3)

.ds Aq ’


Number::WithError::LaTeX - LaTeX output for Number::WithError



  use Number::WithError::LaTeX;
  my $num = Number::WithError::LaTeX->new(5.647, 0.31);
  print $num . "\n";
  # prints 5.65e+00 +/- 3.1e-01
  # (I.e. it automatically does scientific rounding)
  print $num->latex() . "\n";
  # prints 5.65 \cdot 10^{0} \pm 3.1 \cdot 10^{-1}
  print $num->latex(radix => ,, enclose => $) . "\n";
  # prints $5,\!65 \cdot 10^{0} \pm 3,\!1 \cdot 10^{-1}$
  print $num->encode("This will encode an e-acute (".chr(0xe9).") as \\e") . "\n";
  # Delegated to TeX::Encode::encode().
  # prints This is a German umlaut: \"a


This class is a subclass of Number::WithError. It provides the same interface and the same exports.

It adds several methods to every object. The main functionality is provided by latex(), which dumps the object as valid LaTeX code. Also, encode() is a convenient way to encode any UTF-8 string into TeX. It is just a convenience thing since it is delegated to TeX::Encode.

Unlike Number::WithError, this module requires perl version 5.8 or later. (That is the rationale for creating a separate distribution, too.)


This module exports the following subroutines on demand. It supports the :all Exporter tag to export all of them. The subroutines are documented in Number::WithError.




This is a list of public methods.


This method stringifies the object as valid LaTeX code. The returned string is valid in a LaTeX math mode. That means, you will have to enclose it in dollars or in an equation environment by default.

The method takes named parameters. All parameters are optional.

The enclose parameter can set a string to enclose the produced latex code in. This can be either a simple string like $ or an array reference containing two strings. Those two strings will be used for the start and end respectively. (For environments.)

Example: (let $obj be ’5.6e-01 +/- 2.3e-02’)

  $obj->latex(enclose => $);
  # returns $5.6 \cdot 10^{-1} \pm 2.3 \cdot 10^{-2}$

The asymmetric environment-like enclose can be used as follows:

  $obj->latex(enclose => [\begin{equation}, \end{equation}]);
  # returns\begin{equation}5.6 \cdot 10^{-1} \pm 2.3 \cdot 10^{-2}\end{equation}

There are two convenience methods latex_math and latex_equation which do exactly what the above examples demonstrated.

The radix parameter can set the radix (decimal point) used. The default is a dot (.). If you use a comma, LaTeX will generally typeset it in a way that results in a space after the comma. Since that is not desireable, using a , as the radix results in the radix being set as ,\!. An example can be found in the synopsis.


Works exactly like latex() except that the enclose string defaults to $.


Works exactly like latex() except that the enclose string defaults to the environment \begin{equation}\n and \n\end{equation}.


This method encodes an arbitrary UTF-8 string as TeX. Syntax:

  my $encoded = $obj->encode($string);

For detailed documentation, please refer to TeX::Encode.


Bugs should be reported via the CPAN bug tracker at


For other issues, contact the author.


It is important that you have a look at the TeX::Encode module if you use the encode() method. The decode() operation from that module, however, is not supported by Number::WithError::LaTeX.

You may use Math::BigFloat with this module. Also, it should be possible to use Math::Symbolic to calculate larger formulas. Just assign a Number::WithError::LaTeX object to the Math::Symbolic variables and it should work.

You also possibly want to have a look at the prefork pragma.

The test suite is implemented using the Test::LectroTest module. In order to keep the total test time in reasonable bounds, the default number of test attempts to falsify the test properties is kept at a low number of 100. You can enable more rigorous testing by setting the environment variable PERL_TEST_ATTEMPTS to a higher value. A value in the range of 1500 to 3000 is probably a good idea, but takes a long time to test.


Steffen Mueller <modules at steffen-mueller dot net>, <>


Copyright 2006 Steffen Mueller. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 NUMBER::WITHERROR::LATEX (3) 2006-12-20

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.