many changes to documentation, including complete list of commands gleaned from the source code and restururing of the chapter on commands

This commit is contained in:
Craig Earls 2011-10-26 15:35:45 -07:00
parent 46a2b6d390
commit 937a004ae7

View file

@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@titlepage @titlepage
@title Ledger: Command-Line Accounting @title Ledger: Command-Line Accounting
@subtitle For Version 3.0 of Ledger @subtitle For Version 3.0 of Ledger
@subtitle Draft Manual Time-stamp: <2011-10-22 09:48 (cpearls)> @subtitle Draft Manual Time-stamp: <2011-10-26 15:20 (cpearls)>
@author John Wiegley @author John Wiegley
@end titlepage @end titlepage
@ -72,7 +72,7 @@ twinkling in their father's CRT.
* Principles of Accounting:: * Principles of Accounting::
* Keeping a Journal:: * Keeping a Journal::
* Command-line Syntax:: * Command-line Syntax::
* Basic Reporting Commands:: * Reporting Commands::
* Budgeting and Forecasting:: * Budgeting and Forecasting::
* Value Expressions:: * Value Expressions::
* Format Strings:: * Format Strings::
@ -2478,7 +2478,7 @@ doing it.
@node Command-line Syntax, Basic Reporting Commands, Keeping a Journal, Top @node Command-line Syntax, Reporting Commands, Keeping a Journal, Top
@chapter Command-line Syntax @chapter Command-line Syntax
@ -2719,7 +2719,7 @@ Valid Ledger invocations look like:
ledger [OPTIONS] <COMMAND> <SEARCH-TERMS> ledger [OPTIONS] <COMMAND> <SEARCH-TERMS>
@end smallexample @end smallexample
Where @samp{COMMAND} is any command verb (@pxref{Basic Reporting Commands}), @samp{OPTIONS} can occur Where @samp{COMMAND} is any command verb (@pxref{Reporting Commands}), @samp{OPTIONS} can occur
anywhere, and @samp{SEARCH-TERM} is one or more of the following: anywhere, and @samp{SEARCH-TERM} is one or more of the following:
@smallexample @smallexample
@ -3038,43 +3038,48 @@ weekly last august
@end smallexample @end smallexample
@node Basic Reporting Commands, Budgeting and Forecasting, Command-line Syntax, Top @node Reporting Commands, Budgeting and Forecasting, Command-line Syntax, Top
@chapter Basic Reporting Commands @chapter Reporting Commands
@menu @menu
* balance:: * Primary Financial Reports::
* register:: * Reports in other formats::
* print:: * Reports about your Journals::
* output:: * Developer Commands::
* xml::
* emacs::
* equity::
* prices::
* xact::
* payees::
* accounts::
* csv::
* convert::
* commodities::
* entry::
* echo::
* org::
* pricemap::
* reload::
* source::
* precommands::
@end menu @end menu
@node balance, register, Basic Reporting Commands, Basic Reporting Commands @node Primary Financial Reports, Reports in other formats, Reporting Commands, Reporting Commands
@section balance @section Primary Financial Reports
@menu
* balance::
* equity::
* register::
* print::
@end menu
@node balance, equity, Primary Financial Reports, Primary Financial Reports
@subsection balance
The @command{balance} command reports the current balance of all The @command{balance} command reports the current balance of all
accounts. It accepts a list of optional regexps, which confine the accounts. It accepts a list of optional regexps, which confine the
balance report to the matching accounts. If an account contains balance report to the matching accounts. If an account contains
multiple types of commodities, each commodity's total is reported multiple types of commodities, each commodity's total is reported
separately. separately.
@node equity, register, balance, Primary Financial Reports
@subsection equity
@node register, print, balance, Basic Reporting Commands The @command{equity} command prints out accounts balances as if they
@section register were transactions. This makes it easy to establish the starting balances
for an account, such as when @ref{Archiving Previous Years}.
@menu
* register::
* print::
@end menu
@node register, print, equity, Primary Financial Reports
@subsection register
The @command{register} command displays all the postings occurring The @command{register} command displays all the postings occurring
in a single account, line by line. The account regexp must be in a single account, line by line. The account regexp must be
@ -3094,8 +3099,8 @@ included in the Ledger distribution. The only requirement is that you
add either @option{-j} or @option{-J} to your register command, in add either @option{-j} or @option{-J} to your register command, in
order to plot either the amount or total column, respectively. order to plot either the amount or total column, respectively.
@node print, output, register, Basic Reporting Commands @node print, , register, Primary Financial Reports
@section print @subsection print
The @command{print} command prints out ledger transactions in a textual The @command{print} command prints out ledger transactions in a textual
format that can be parsed by Ledger. They will be properly formatted, format that can be parsed by Ledger. They will be properly formatted,
@ -3106,33 +3111,22 @@ postings which match in some way to be printed.
The @command{print} command can be a handy way to clean up a ledger The @command{print} command can be a handy way to clean up a ledger
file whose formatting has gotten out of hand. file whose formatting has gotten out of hand.
@node output, xml, print, Basic Reporting Commands @node Reports in other formats, Reports about your Journals, Primary Financial Reports, Reporting Commands
@section output @section Reports in other formats
@menu
* csv::
* emacs::
* org::
* pricemap::
* xml::
* prices and pricedb::
@end menu
The @command{output} command is very similar to the @command{print} @node csv, emacs, Reports in other formats, Reports in other formats
command, except that it attempts to replicate the specified ledger @subsection csv
file exactly. The format of the command is:
@smallexample @node emacs, org, csv, Reports in other formats
ledger -f FILENAME output FILENAME @subsection emacs
@end smallexample
Where @file{FILENAME} is the name of the ledger file to output. The
reason for specifying this command is that only transactions contained
within that file will be output, and not an included transactions (as can
happen with the @command{print} command).
@node xml, emacs, output, Basic Reporting Commands
@section xml
The @command{xml} command outputs results similar to what
@command{print} and @command{register} display, but as an XML form.
This data can then be read in and processed. Use the
@option{--totals} option to include the running total with each
posting.
@node emacs, equity, xml, Basic Reporting Commands
@section emacs
The @command{emacs} command outputs results in a form that can be read The @command{emacs} command outputs results in a form that can be read
directly by Emacs Lisp. The format of the sexp is: directly by Emacs Lisp. The format of the sexp is:
@ -3143,15 +3137,169 @@ directly by Emacs Lisp. The format of the sexp is:
...) ; list of transactions ...) ; list of transactions
@end smallexample @end smallexample
@node equity, prices, emacs, Basic Reporting Commands @node org, pricemap, emacs, Reports in other formats
@section equity @subsection org
The @code{org} command produces a journal file suitable for use in the
emacs org mode. More details on using org mode can be found at
@url{http://www.orgmode.org}.
The @command{equity} command prints out accounts balances as if they @node pricemap, xml, org, Reports in other formats
were transactions. This makes it easy to establish the starting balances @subsection pricemap
for an account, such as when @ref{Archiving Previous Years}.
@node prices, xact, equity, Basic Reporting Commands @node xml, prices and pricedb, pricemap, Reports in other formats
@section prices @subsection xml
By default, Ledger uses a human-readable data format, and displays its
reports in a manner meant to be read on screen. For the purpose of
writing tools which use Ledger, however, it is possible to read and
display data using XML. This section documents that format.
The general format used for Ledger data is:
@smallexample
<?xml version="1.0"?>
<ledger>
<xact>...</xact>
<xact>...</xact>
<xact>...</xact>...
</ledger>
@end smallexample
The data stream is enclosed in a @samp{ledger} tag, which contains a
series of one or more transactions. Each @samp{xact} describes the transaction
and contains a series of one or more postings:
@smallexample
<xact>
<en:date>2004/03/01</en:date>
<en:cleared/>
<en:code>100</en:code>
<en:payee>John Wiegley</en:payee>
<en:postings>
<posting>...</posting>
<posting>...</posting>
<posting>...</posting>...
</en:postings>
</xact>
@end smallexample
The date format for @samp{en:date} is always @samp{YYYY/MM/DD}. The
@samp{en:cleared} tag is optional, and indicates whether the
posting has been cleared or not. There is also an
@samp{en:pending} tag, for marking pending postings. The
@samp{en:code} and @samp{en:payee} tags both contain whatever text the
user wishes.
After the initial transaction data, there must follow a set of postings
marked with @samp{en:postings}. Typically these postings will
all balance each other, but if not they will be automatically balanced
into an account named @samp{<Unknown>}.
Within the @samp{en:postings} tag is a series of one or more
@samp{posting}'s, which have the following form:
@smallexample
<posting>
<tr:account>Expenses:Computer:Hardware</tr:account>
<tr:amount>
<value type="amount">
<amount>
<commodity flags="PT">$</commodity>
<quantity>90.00</quantity>
</amount>
</value>
</tr:amount>
</posting>
@end smallexample
This is a basic posting. It may also be begin with
@samp{tr:virtual} and/or @samp{tr:generated} tags, to indicate virtual
and auto-generated postings. Then follows the @samp{tr:account}
tag, which contains the full name of the account the posting is
related to. Colons separate parent from child in an account name.
Lastly follows the amount of the posting, indicated by
@samp{tr:amount}. Within this tag is a @samp{value} tag, of which
there are four different kinds, each with its own format:
@enumerate
@item boolean
@item integer
@item amount
@item balance
@end enumerate
The format of a boolean value is @samp{true} or @samp{false}
surrounded by a @samp{boolean} tag, for example:
@smallexample
<boolean>true</boolean>
@end smallexample
The format of an integer value is the numerical value surrounded by an
@samp{integer} tag, for example:
@smallexample
<integer>12036</integer>
@end smallexample
The format of an amount contains two members, the commodity and the
quantity. The commodity can have a set of flags that indicate how to
display it. The meaning of the flags (all of which are optional) are:
@table @strong
@item P
The commodity is prefixed to the value.
@item S
The commodity is separated from the value by a space.
@item T
Thousands markers are used to display the amount.
@item E
The format of the amount is European, with period used as a thousands
marker, and comma used as the decimal point.
@end table
The actual quantity for an amount is an integer of arbitrary size.
Ledger uses the GNU multi-precision math library to handle such
values. The XML format assumes the reader to be equally capable.
Here is an example amount:
@smallexample
<value type="amount">
<amount>
<commodity flags="PT">$</commodity>
<quantity>90.00</quantity>
</amount>
</value>
@end smallexample
Lastly, a balance value contains a series of amounts, each with a
different commodity. Unlike the name, such a value does need to
balance. It is called a balance because it sums several amounts. For
example:
@smallexample
<value type="balance">
<balance>
<amount>
<commodity flags="PT">$</commodity>
<quantity>90.00</quantity>
</amount>
<amount>
<commodity flags="TE">DM</commodity>
<quantity>200.00</quantity>
</amount>
</balance>
</value>
@end smallexample
That is the extent of the XML data format used by Ledger. It will
output such data if the @command{xml} command is used, and can read
the same data.
@node prices and pricedb, , xml, Reports in other formats
@subsection prices and pricedb
The @command{prices} command displays the price history for matching The @command{prices} command displays the price history for matching
commodities. The @option{-A} flag is useful with this report, to commodities. The @option{-A} flag is useful with this report, to
@ -3159,15 +3307,44 @@ display the running average price, or @option{-D} to show each price's
deviation from that average. deviation from that average.
There is also a @command{pricedb} command which outputs the same There is also a @command{pricedb} command which outputs the same
information as @command{prices}, but does in a format that can be information as @command{prices}, but does in a format that can be parsed
parsed by Ledger. by Ledger. This is useful for generating and tidying up pricedb
databasefiles.
@node xact, payees, prices, Basic Reporting Commands
@section xact
The @command{xact} commands simplifies the creation of new transactions. @node Reports about your Journals, Developer Commands, Reports in other formats, Reporting Commands
It works on the principle that 80% of all postings are variants of @section Reports about your Journals
earlier postings. Here's how it works:
@menu
* accounts::
* convert::
* commodities::
* entry and xact::
* payees::
@end menu
@node accounts, convert, Reports about your Journals, Reports about your Journals
@subsection accounts
The @command{accounts} reports all of the accounts in the journal.
Following the command with a regular expression will limit the output to
accounts matching the regex.
@node convert, commodities, accounts, Reports about your Journals
@subsection convert
@node commodities, entry and xact, convert, Reports about your Journals
@subsection commodities
Report all commodities present in the journals under consideration.
@node entry and xact, payees, commodities, Reports about your Journals
@subsection entry and xact
The @code{entry} and @command{xact} commands simplify the creation of
new transactions. It works on the principle that 80% of all postings
are variants of earlier postings. Here's how it works:
Say you currently have this posting in your ledger file: Say you currently have this posting in your ledger file:
@ -3183,7 +3360,7 @@ Italiano} again. The exact amounts are different, but the overall
form is the same. With the @command{xact} command you can type: form is the same. With the @command{xact} command you can type:
@smallexample @smallexample
ledger xact 2004/4/9 viva food 11 tips 2.50 ledger entry 2004/4/9 viva food 11 tips 2.50
@end smallexample @end smallexample
This produces the following output: This produces the following output:
@ -3201,64 +3378,60 @@ be similar to that earlier posting. If Ledger does not succeed in
generating a new transaction, an error is printed and the exit code is set generating a new transaction, an error is printed and the exit code is set
to @samp{1}. to @samp{1}.
There is a shell script in the distribution's @file{scripts} directory
called @file{xact}, which simplifies the task of adding a new transaction
to your ledger. It launches @command{vi} to confirm that the transaction
looks appropriate.
Here are a few more examples of the @command{xact} command, assuming Here are a few more examples of the @command{xact} command, assuming
the above journal transaction: the above journal transaction:
@smallexample @smallexample
ledger xact 4/9 viva 11.50 ledger entry 4/9 viva 11.50
ledger xact 4/9 viva 11.50 checking # (from `checking') ledger entry 4/9 viva 11.50 checking # (from `checking')
ledger xact 4/9 viva food 11.50 tips 8 ledger entry 4/9 viva food 11.50 tips 8
ledger xact 4/9 viva food 11.50 tips 8 cash ledger xact 4/9 viva food 11.50 tips 8 cash
ledger xact 4/9 viva food $11.50 tips $8 cash ledger xact 4/9 viva food $11.50 tips $8 cash
ledger xact 4/9 viva dining "DM 11.50" ledger xact 4/9 viva dining "DM 11.50"
@end smallexample @end smallexample
@node payees, accounts, xact, Basic Reporting Commands @command{xact} is identical to @command{entry} and is provide for
@section payees backwards compatibility with Ledger 2.X.
The @command{payees} reports all of the unique payees in the journal.
@node accounts, csv, payees, Basic Reporting Commands @node payees, , entry and xact, Reports about your Journals
@section accounts @subsection payees
The @command{payees} reports all of the unique payees in the journal. To filter the payes displayed you must use the @@ prefix:
The @command{accounts} reports all of the accounts in the journal. @smallexample
Following the command with a regular expression will limit the output to macbook-2:$ ledger payees '@@Tar.+t'
accounts matching the regex. El Dorade Restaraunt
My Big Fat Greek Restaraunt
@node csv, convert, accounts, Basic Reporting Commands Target
@section csv macbook-2:$
@end smallexample
@node convert, commodities, csv, Basic Reporting Commands
@section convert
@node commodities, entry, convert, Basic Reporting Commands
@section commodities
@node entry, echo, commodities, Basic Reporting Commands @node Developer Commands, , Reports about your Journals, Reporting Commands
@section entry @section Developer Commands
@menu
* echo::
* reload::
* source::
* Pre-commands::
@end menu
@node echo, org, entry, Basic Reporting Commands @node echo, reload, Developer Commands, Developer Commands
@section echo @subsection echo
This command simply echos its argument back to the output.
@node org, pricemap, echo, Basic Reporting Commands
@section org
@node pricemap, reload, org, Basic Reporting Commands @node reload, source, echo, Developer Commands
@section pricemap @subsection reload
Forces ledger to reload any journal files. This function exists to
support external programs controlling a running ledger process and does
nothing for a command line user.
@node reload, source, pricemap, Basic Reporting Commands @node source, Pre-commands, reload, Developer Commands
@section reload @subsection source
@node source, precommands, reload, Basic Reporting Commands @node Pre-commands, , source, Developer Commands
@section source @subsection Pre-Commands
@node precommands, , source, Basic Reporting Commands
@section Pre-Commands
@table @code @table @code
@item args @item args
@item eval @item eval
@ -3271,11 +3444,12 @@ accounts matching the regex.
@item template @item template
@end table @end table
@menu @menu
* Budgeting and Forecasting:: * Budgeting and Forecasting::
@end menu @end menu
@node Budgeting and Forecasting, Value Expressions, Basic Reporting Commands, Top @node Budgeting and Forecasting, Value Expressions, Reporting Commands, Top
@chapter Budgeting and Forecasting @chapter Budgeting and Forecasting
@menu @menu
@ -3769,7 +3943,7 @@ same format string is used for all postings.
As an example of how flexible the --format strings can be, the default balance format looks like this: As an example of how flexible the --format strings can be, the default balance format looks like this:
@smallexample @smallexample
"%(justify(scrub(display_total), 20, -1, true, color))'' "%(justify(scrub(display_total), 20, -1, true, color))"
" %(!options.flat ? depth_spacer : \"\")" " %(!options.flat ? depth_spacer : \"\")"
"%-(ansify_if(partial_account(options.flat), blue if color))\n%/" "%-(ansify_if(partial_account(options.flat), blue if color))\n%/"
"%$1\n%/" "%$1\n%/"
@ -3790,28 +3964,25 @@ As an example of how flexible the --format strings can be, the default balance f
@node Field Widths, Colors, New formatting codes, New formatting codes @node Field Widths, Colors, New formatting codes, New formatting codes
@subsection Field Widths @subsection Field Widths
@table @code @multitable @columnfractions .3 .2 .5
@item date_width @item @strong{Function} @tab @strong{Abbrev.} @tab @strong{Description}
@item payee_width @item @code{date_width}
@item account_width @item @code{payee_width}
@item amount_width @item @code{account_width}
@item total_width @item @code{amount_width}
@end table @item @code{total_width}
@end multitable
@node Colors, Quantities and Calculations, Field Widths, New formatting codes @node Colors, Quantities and Calculations, Field Widths, New formatting codes
@subsection Colors @subsection Colors
@table @code
@item red The character based formatting ledger can do is limited to the ANSI terminal character colors and font highlight in a normal TTY seesion.
@item green @multitable @columnfractions .3 .3 .3
@item yellow @item @code{red} @tab @code{magenta} @tab @code{bold}
@item blue @item @code{green } @tab @code{cyan} @tab @code{underline}
@item magenta @item @code{yellow } @tab @code{white} @tab @code{blink}
@item cyan @item @code{blue }
@item white @end multitable
@item bold
@item underline
@item blink
@end table
@ -3820,107 +3991,118 @@ As an example of how flexible the --format strings can be, the default balance f
@table @code @multitable @columnfractions .3 .2 .5
@item amount_expr @item @strong{Function} @tab @strong{Abbrev.} @tab @strong{Description}
@item abs --> U @item @code{amount_expr } @tab @code{} @tab
@item commodity @item @code{abs} @tab @code{U} @tab
@item display_amount --> t @item @code{commodity } @tab @code{} @tab
@item display_total --> T @item @code{display_amount } @tab @code{t} @tab
@item floor @item @code{display_total } @tab @code{T} @tab
@item get_at @item @code{floor } @tab @code{} @tab
@item is_seq @item @code{get_at } @tab @code{} @tab
@item market --> P @item @code{is_seq } @tab @code{} @tab
@item percent @item @code{market } @tab @code{P} @tab
@item price @item @code{percent } @tab @code{} @tab
@item quantity @item @code{price } @tab @code{} @tab
@item rounded @item @code{quantity } @tab @code{} @tab
@item truncated @item @code{rounded } @tab @code{} @tab
@item total_expr @item @code{truncated } @tab @code{} @tab
@item t --> display_amount @item @code{total_expr } @tab @code{} @tab
@item top_amount @item @code{top_amount } @tab @code{} @tab
@item tp_boolean @item @code{to_boolean } @tab @code{} @tab
@item to_int @item @code{to_int } @tab @code{} @tab
@item to_amount @item @code{to_amount } @tab @code{} @tab
@item to_balance @item @code{to_balance } @tab @code{} @tab
@item T --> display_total @item @code{unrounded } @tab @code{} @tab
@item unrounded @end multitable
@end table
@node Dates, Text Formatting, Quantities and Calculations, New formatting codes @node Dates, Text Formatting, Quantities and Calculations, New formatting codes
@subsection Dates @subsection Dates
@table @code @multitable @columnfractions .3 .2 .5
@item date @item @strong{Function} @tab @strong{Abbrev.} @tab @strong{Description}
@item format_date @item @code{date } @tab @code{} @tab
@item now --> d m @item @code{format_date } @tab @code{} @tab
@item today @item @code{now } @tab @code{} @tab --> d m
@item to_datetime @item @code{today } @tab @code{} @tab
@item to_date @item @code{to_datetime } @tab @code{} @tab
@item value_date @item @code{to_date } @tab @code{} @tab
@end table @item @code{value_date } @tab @code{} @tab
@end multitable
@node Text Formatting, Misc, Dates, New formatting codes @node Text Formatting, Misc, Dates, New formatting codes
@subsection Text Formatting @subsection Text Formatting
@subsubsection Summary
@multitable @columnfractions .6 .4
@item @strong{Function} @tab @strong{Description}
@item @code{ansify_if(str,color) } @tab Colorize the string
@item @code{justify(str, fwidth, lwidth, right, colorize) } @tab Right or left justify the string.
@item @code{join(str) } @tab Remove line feeds from the input string. Mainly used internaally for org-mode output
@item @code{quoted(str) } @tab Returns @code{"<str>"}.
@item @code{strip } @tab @code{Removes additional annotations from values.}
@item @code{scrub } @tab @code{S}
@item @code{should_bold } @tab @code{}
@end multitable
@subsubsection Detailed Descriptions
@table @code @table @code
@item ansify_if @item ansify_if(value, color)
@item justify Surrounds the string representing value with ANSI codes to give it @code{color} on an TTY display. Has no effect if directed to a file.
@item join @item justify(value, first_width, latter_width, right_justify, colorize)
@item quoted Right or left justify the string representing @code{value}. The width of the field in the first line is given by @code{first_width}. For subsequent lines the width is given by @code{latterwidth}. If @code{latter_width=-1}, then @code{first_width} is use for all lines. If @code{right_justify=true} then the field is right justify within the width of the field. If it is @code{false}, then the field is left justified and padded to the full width of the field. If @code{colorize} is true then ledger will hone color settings.
@item scrub @item join(str)
@item strip --> S Replaces line feeds in str with @code{\n}.
@item should_bold @item quoted(str)
Return str surounded by double quotes, @code{"<str>"}.
@item strip(value)
Values can have numerous annotations, such as effective dates and lot prices. @code{strip} removes these annotations.
@end table @end table
@node Misc, , Text Formatting, New formatting codes @node Misc, , Text Formatting, New formatting codes
@subsection Miscellaneous @subsection Miscellaneous
@table @code @multitable @columnfractions .3 .2 .5
@item amount_expr @item @strong{Function} @tab @strong{Abbrev.} @tab @strong{Description}
@item ansify_if @item @code{amount_expr } @tab @code{} @tab
@item abs --> U @item @code{abs } @tab @code{} @tab --> U
@item commodity @item @code{commodity } @tab @code{} @tab
@item display_amount --> t @item @code{display_amount } @tab @code{} @tab --> t
@item display_total --> T @item @code{display_total } @tab @code{} @tab --> T
@item date @item @code{date } @tab @code{} @tab
@item format_date @item @code{format_date } @tab @code{} @tab
@item format @item @code{format } @tab @code{} @tab
@item floor @item @code{floor } @tab @code{} @tab
@item get_at @item @code{get_at } @tab @code{} @tab
@item is_seq @item @code{is_seq } @tab @code{} @tab
@item justify @item @code{justify } @tab @code{} @tab
@item join @item @code{join } @tab @code{} @tab
@item market --> P @item @code{market --> P } @tab @code{} @tab
@item null @item @code{null } @tab @code{} @tab
@item now --> d m @item @code{now --> d m } @tab @code{} @tab
@item options @item @code{options } @tab @code{} @tab
@item post @item @code{post } @tab @code{} @tab
@item percent @item @code{percent } @tab @code{} @tab
@item price @item @code{price } @tab @code{} @tab
@item print @item @code{print } @tab @code{} @tab
@item quoted @item @code{quoted } @tab @code{} @tab
@item quantity @item @code{quantity } @tab @code{} @tab
@item rounded @item @code{rounded } @tab @code{} @tab
@item scrub @item @code{scrub } @tab @code{} @tab
@item strip --> S @item @code{strip --> S } @tab @code{} @tab
@item should_bold @item @code{should_bold } @tab @code{} @tab
@item truncated @item @code{truncated } @tab @code{} @tab
@item total_expr @item @code{total_expr } @tab @code{} @tab
@item today @item @code{today } @tab @code{} @tab
@item t --> display_amount @item @code{top_amount } @tab @code{} @tab
@item top_amount @item @code{to_boolean } @tab @code{} @tab
@item tp_boolean @item @code{to_int } @tab @code{} @tab
@item to_int @item @code{to_datetime } @tab @code{} @tab
@item to_datetime @item @code{to_date } @tab @code{} @tab
@item to_date @item @code{to_amount } @tab @code{} @tab
@item to_amount @item @code{to_balance } @tab @code{} @tab
@item to_balance @item @code{to_spring } @tab @code{} @tab
@item to_spring @item @code{to_mask } @tab @code{} @tab
@item to_mask @item @code{to_sequence } @tab @code{} @tab
@item to_sequence @item @code{unrounded } @tab @code{} @tab
@item T --> display_total @item @code{value_date } @tab @code{} @tab
@item unrounded @end multitable
@item value_date
@end table
@node Journal File Format, Extending with Python, Format Strings, Top @node Journal File Format, Extending with Python, Format Strings, Top
@chapter Journal File Format for Developers @chapter Journal File Format for Developers