summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/CMakeLists.txt70
-rw-r--r--doc/DEVELOP.md4
-rw-r--r--doc/DEVELOP.md.new0
-rw-r--r--doc/Doxyfile.in2
-rw-r--r--doc/GLOSSARY.md2
-rw-r--r--doc/INSTALL234
-rw-r--r--doc/LICENSE2
-rw-r--r--doc/LICENSE.rtfbin1718 -> 1719 bytes
-rw-r--r--doc/NEWS33
-rw-r--r--doc/ledger-mode.texi202
-rw-r--r--doc/ledger.12
-rw-r--r--doc/ledger3.texi456
12 files changed, 460 insertions, 547 deletions
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 9bf1bffe..46c3f73f 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -27,27 +27,34 @@ endif()
########################################################################
-if (NOT BUILD_DOCS)
- add_custom_target(doc DEPENDS doc.doxygen)
- return()
+# BUILD_WEB_DOCS implies BUILD_DOCS
+if (BUILD_WEB_DOCS)
+ set(BUILD_DOCS 1)
endif()
-set(info_files ledger3.texi ledger-mode.texi)
+if (BUILD_DOCS)
+ find_program(MAKEINFO makeinfo)
+ find_program(TEXI2PDF texi2pdf)
+ find_program(TEX tex)
+ find_program(MAN2HTML man2html)
+ find_program(GROFF groff)
+ set(ledger_info_files ledger3.texi ledger-mode.texi)
+
+ if (NOT MAKEINFO)
+ message(WARNING "Could not find makeinfo. Info version of documentation cannot be built.")
+ endif()
-find_program(MAKEINFO makeinfo)
-find_program(TEXI2PDF texi2pdf)
-find_program(TEX tex)
-find_program(MAN2HTML man2html)
-find_program(GROFF groff)
+ if (NOT TEXI2PDF OR NOT TEX)
+ message(WARNING "Could not find texi2pdf or tex. PDF version of documentation will not be built.")
+ endif()
+endif()
########################################################################
-foreach(file ${info_files})
+foreach(file ${ledger_info_files})
get_filename_component(file_base ${file} NAME_WE)
- if (NOT MAKEINFO)
- message(WARNING "Could not find makeinfo. Info version of documentation cannot be built.")
- else()
+ if (MAKEINFO)
add_custom_command(OUTPUT ${file_base}.info
COMMAND makeinfo --force --no-split -o ${file_base}.info ${CMAKE_CURRENT_SOURCE_DIR}/${file}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
@@ -55,20 +62,15 @@ foreach(file ${info_files})
list(APPEND ledger_doc_files ${file_base}.info)
endif()
- if (BUILD_WEB_DOCS)
- if (NOT MAKEINFO)
- message(WARNING "Could not find makeinfo. HTML version of documentation cannot be built.")
- endif()
+ if (BUILD_WEB_DOCS AND MAKEINFO)
add_custom_command(OUTPUT ${file_base}.html
COMMAND makeinfo --force --html --no-split -o ${file_base}.html ${CMAKE_CURRENT_SOURCE_DIR}/${file}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
VERBATIM)
list(APPEND ledger_doc_files ${file_base}.html)
- endif(BUILD_WEB_DOCS)
+ endif()
- if (NOT TEXI2PDF OR NOT TEX)
- message(WARNING "Could not find texi2pdf or tex. PDF version of documentation will not be built.")
- else()
+ if (TEXI2PDF AND TEX)
if (BUILD_A4_PDF)
set(papersize --texinfo=@afourpaper)
endif()
@@ -117,22 +119,16 @@ if (CMAKE_INSTALL_MANDIR)
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT doc)
endif(CMAKE_INSTALL_MANDIR)
-foreach(file ${info_files})
- get_filename_component(file_base ${file} NAME_WE)
+foreach(file ${ledger_doc_files})
+ get_filename_component(file_ext ${file} EXT)
- if (CMAKE_SOURCE_DIR STREQUAL BUILD_DIR)
- set(doc_dir ${CMAKE_CURRENT_SOURCE_DIR})
- else()
- get_filename_component(dir_base ${CMAKE_CURRENT_SOURCE_DIR} NAME_WE)
- set(doc_dir "${CMAKE_SOURCE_DIR}/${BUILD_DIR}/${dir_base}")
- endif()
-
- install(FILES ${doc_dir}/${file_base}.info
- DESTINATION ${CMAKE_INSTALL_INFODIR} COMPONENT doc)
- install(FILES ${doc_dir}/${file_base}.pdf
- DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc OPTIONAL)
- if (BUILD_WEB_DOCS)
- install(FILES ${doc_dir}/${file_base}.html
+ if(file_ext STREQUAL ".info")
+ if(CMAKE_INSTALL_INFODIR)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}
+ DESTINATION ${CMAKE_INSTALL_INFODIR} COMPONENT doc)
+ endif()
+ elseif(CMAKE_INSTALL_DOCDIR)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc)
- endif(BUILD_WEB_DOCS)
+ endif()
endforeach()
diff --git a/doc/DEVELOP.md b/doc/DEVELOP.md
index e3a479d7..ce897741 100644
--- a/doc/DEVELOP.md
+++ b/doc/DEVELOP.md
@@ -14,7 +14,7 @@ used by *./python/server.py*.
from source code. It uses the *CMakeLists.txt* files.
[**DOxygen**](http://doxygen.org): generates programming documentation from
-source code files. Primarly used on C++ sources, but works on all. Uses
+source code files. Primarily used on C++ sources, but works on all. Uses
the *doc/Doxyfile.in* file.
[**GCC**](http://gcc.gnu.org): Gnu Compiler Collection, which includes the
@@ -58,7 +58,7 @@ orientation:
for more information.
**./README.md**: user readme file in markdown format, also used as the project
- discription on GitHub.
+ description on GitHub.
**./contrib/**: contributed scripts of random quality and completion. They
usually require editing to run.
diff --git a/doc/DEVELOP.md.new b/doc/DEVELOP.md.new
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/doc/DEVELOP.md.new
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
index e340d84a..95373660 100644
--- a/doc/Doxyfile.in
+++ b/doc/Doxyfile.in
@@ -938,7 +938,7 @@ HTML_STYLESHEET =
# user-defined cascading style sheet that is included after the standard
# style sheets created by doxygen. Using this option one can overrule
# certain style aspects. This is preferred over using HTML_STYLESHEET
-# since it does not replace the standard style sheet and is therefor more
+# since it does not replace the standard style sheet and is therefore more
# robust against future updates. Doxygen will copy the style sheet file to
# the output directory.
diff --git a/doc/GLOSSARY.md b/doc/GLOSSARY.md
index 507958c1..263a3cff 100644
--- a/doc/GLOSSARY.md
+++ b/doc/GLOSSARY.md
@@ -33,7 +33,7 @@ ACCOUNTING GLOSSARY
This data of where money goes can be collated into reports. This used to be
done with a physical book, called a ledger, where each account was on one
page. Each debit or credit in the journal was transferred to the
- appropriate account page and the pages were totalled to produce reports.
+ appropriate account page and the pages were totaled to produce reports.
This process is now done with the Ledger software which creates reports from
the journal. A journal is sometimes called a register.
diff --git a/doc/INSTALL b/doc/INSTALL
deleted file mode 100644
index 5458714e..00000000
--- a/doc/INSTALL
+++ /dev/null
@@ -1,234 +0,0 @@
-Installation Instructions
-*************************
-
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006 Free Software Foundation, Inc.
-
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
-
-Basic Installation
-==================
-
-Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
-more-detailed instructions are generic; see the `README' file for
-instructions specific to this package.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
-
- It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
-may remove or edit it.
-
- The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system.
-
- Running `configure' might take a while. While running, it prints
- some messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about. Run `./configure --help' for
-details on some of the pertinent environment variables.
-
- You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment. Here
-is an example:
-
- ./configure CC=c99 CFLAGS=-g LIBS=-lposix
-
- *Note Defining Variables::, for more details.
-
-Compiling For Multiple Architectures
-====================================
-
-You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you can use GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- With a non-GNU `make', it is safer to compile the package for one
-architecture at a time in the source code directory. After you have
-installed the package for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
-Installation Names
-==================
-
-By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc. You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
-PREFIX as the prefix for installing programs and libraries.
-Documentation and other data files still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
-`--build=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
-
- CPU-COMPANY-SYSTEM
-
-where SYSTEM can have one of these forms:
-
- OS KERNEL-OS
-
- See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the machine type.
-
- If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
-produce code for.
-
- If you want to _use_ a cross compiler, that generates code for a
-platform different from the build platform, you should specify the
-"host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
-
-Sharing Defaults
-================
-
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Defining Variables
-==================
-
-Variables not defined in a site shell script can be set in the
-environment passed to `configure'. However, some packages may run
-configure again during the build, and the customized values of these
-variables may be lost. In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'. For example:
-
- ./configure CC=/usr/local2/bin/gcc
-
-causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).
-
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug. Until the bug is fixed you can use this workaround:
-
- CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
-
-`configure' Invocation
-======================
-
-`configure' recognizes the following options to control how it operates.
-
-`--help'
-`-h'
- Print a summary of the options to `configure', and exit.
-
-`--version'
-`-V'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`--cache-file=FILE'
- Enable the cache: use and save the results of the tests in FILE,
- traditionally `config.cache'. FILE defaults to `/dev/null' to
- disable caching.
-
-`--config-cache'
-`-C'
- Alias for `--cache-file=config.cache'.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`configure' also accepts some other, not widely useful, options. Run
-`configure --help' for more details.
-
diff --git a/doc/LICENSE b/doc/LICENSE
index df1a0028..92be3a1d 100644
--- a/doc/LICENSE
+++ b/doc/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2003-2009, John Wiegley. All rights reserved.
+Copyright (c) 2003-2015, John Wiegley. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
diff --git a/doc/LICENSE.rtf b/doc/LICENSE.rtf
index 8da96b65..471065fe 100644
--- a/doc/LICENSE.rtf
+++ b/doc/LICENSE.rtf
Binary files differ
diff --git a/doc/NEWS b/doc/NEWS
index 1a433228..45596ddc 100644
--- a/doc/NEWS
+++ b/doc/NEWS
@@ -1,12 +1,21 @@
Ledger NEWS
-* 3.x
+* 3.1
+
+- Changed the definition of cost basis to preserve the original cost basis
+ when a gain or loss is made (if you bought 1 AAA for $10 and then sold
+ it for $12, ledger would previously take $12 as the cost; the original
+ cost of $10 is preserved as the cost basis now, which addresses strange
+ behavior with -B after a capital gain or loss is made).
+
+- Incorrect automatic Equity:Capital Gains and Equity:Capital Loss entries
+ are no longer generated when a commodity is sold for loss or profit.
- Support for virtual posting costs.
- The option --permissive now quiets balance assertions
-- Remove SHA1 files due to license issues and use boost instead.
+- Removed SHA1 files due to license issues and use boost instead.
- Added option --no-pager to disable the pager.
@@ -14,8 +23,24 @@
- Added option --recursive-aliases to expand aliases recursively
+- Support payee "uuid" directive.
+
+- Bug fix: when a status flag (! or *) is explicitly specified for an
+ individual posting, it always has a priority over entire transaction
+ status.
+
+- Bug fix: don't lose commodity when cost is not separated by whitespace
+
+- Improved backwards compatibility with ledger 2.x
+
- Build fix for GCC 4.9
+- Build fix for boost 1.56
+
+- Many improvements to ledger-mode, including fontification
+
+- More test cases and unit tests
+
- Contrib: Added script to generate commodities from ISO 4217
* 3.0
@@ -314,7 +339,7 @@ features, please see the manual.
This flag limits computation to *only transactions whose amount
is greater than 100 of a given commodity*. It means that if you
scan your dining expenses, for example, only individual bills
- greater than $100 would be caculated by the report.
+ greater than $100 would be calculated by the report.
--only "a>100"
@@ -556,7 +581,7 @@ features, please see the manual.
* 2.4.1
-- Corrected an issue that had inadvertantly disabled Gnucash support.
+- Corrected an issue that had inadvertently disabled Gnucash support.
* 2.4
diff --git a/doc/ledger-mode.texi b/doc/ledger-mode.texi
index c8af96cb..b76cb309 100644
--- a/doc/ledger-mode.texi
+++ b/doc/ledger-mode.texi
@@ -119,9 +119,9 @@ initialization file (@file{~/.emacs}, @file{~/.emacs.d/init.el}, or
@file{~/.Aquamacs/Preferences.el}).
@lisp
+(autoload 'ledger-mode "ledger-mode" "A major mode for Ledger" t)
(add-to-list 'load-path
(expand-file-name "/path/to/ledger/source/lisp/"))
-(load "ledger-mode")
(add-to-list 'auto-mode-alist '("\\.ledger$" . ledger-mode))
@end lisp
@@ -175,6 +175,13 @@ typing a close match to the payee. Ledger-mode will call @command{ledger
xact} with the data you enter and place the transaction in the proper
chronological place in the ledger.
+If you need to add a lot of transactions that are not near your current
+date you can set the current year and month so that using @samp{Add
+Transaction} will prompt you with a more convenient month and year. To
+set the month type @kbd{C-c RET} and enter the month you want. @kbd{C-c
+C-y} will prompt you for the year. These settings only effect the
+@samp{Add Transaction} command.
+
@node Reconciliation, Reports, Quick Add, Quick Demo
@subsection Reconciliation
@kindex C-c C-r
@@ -218,10 +225,10 @@ Emacs will prompt for a report name. There are a few built-in reports,
and you can add any report you need @xref{Adding and Editing Reports}.
In the Minibuffer type @samp{account}. When prompted for an account
-type @samp{checking}. In another buffer you will see a Ledger register
-report. You can move around the buffer, with the point on a transaction,
-type @kbd{C-c C-c}. Ledger-mode will take you directly to that
-transaction in the @file{demo.ledger} buffer.
+type @samp{checking}. In a buffer named @file{*Ledger Report*}, you
+will see a Ledger register report. You can move around the buffer, with
+the point on a transaction, type @kbd{RET}. Ledger-mode will take you
+directly to that transaction in the @file{demo.ledger} buffer.
Another built-in report is the balance report. In the
@file{demo.ledger} buffer, type @kbd{C-c C-o C-r}. When prompted for
@@ -231,13 +238,15 @@ will be shown.
@node Narrowing, , Reports, Quick Demo
@subsection Narrowing
@kindex C-c C-f
+@kindex C-c C-g
A ledger file can get very large. It can be helpful to collapse the
buffer to display only the transactions you are interested in.
Ledger-mode copies the @command{occur} mode functionality. Typing
@kbd{C-c C-f} and entering any regex in the Minibuffer will show only
transactions that match the regex. The regex can be on any field, or
-amount.
+amount. Use @kbd{C-c C-g} after editing transactions to re-apply the
+current regex. Cancel the narrowing by typing @kbd{C-c C-f} again.
@node The Ledger Buffer, The Reconcile Buffer, Introduction to Ledger-mode, Top
@chapter The Ledger Buffer
@@ -247,17 +256,12 @@ amount.
* Copying Transactions::
* Editing Amounts::
* Marking Transactions::
+* Formatting Transactions::
* Deleting Transactions::
* Sorting Transactions::
* Narrowing Transactions::
@end menu
-@c TODO
-@c Describe also:
-@c - Align Region
-@c - Set effective date C-c C-t
-@c - Set Year C-c C-t
-@c - Set Month C-c RET
@node Adding Transactions, Copying Transactions, The Ledger Buffer, The Ledger Buffer
@section Adding Transactions
@@ -273,17 +277,35 @@ payees and accounts. Included files are not currently included in the
completion scan. Repeatedly hitting @kbd{TAB} will cycle through the
possible completions.
-Ledger-mode can also help you keep your amounts in alignment. Setting
+Ledger-mode can also help you keep your amounts aligned. Setting
@option{ledger-post-auto-adjust-amounts} to true tells Ledger-mode to
automatically place any amounts such that their last digit is aligned to
the column specified by @option{ledger-post-amount-alignment-column},
which defaults to @samp{52}. @xref{Ledger Post Customization Group}.
@menu
+* Setting a Transactions Effective Date::
* Quick Balance Display::
@end menu
-@node Quick Balance Display, , Adding Transactions, Adding Transactions
+@node Setting a Transactions Effective Date, Quick Balance Display, Adding Transactions, Adding Transactions
+@subsection Setting a Transactions Effective Date
+@kindex C-c C-t
+@cindex effective date
+
+Ledger provides for adding information to a transaction that add details
+to the dates. For example, you can specify when the transaction was
+entered, when the transaction was cleared, or when individual postings
+were cleared.
+Ledger-mode refers to these additional dates as @emph{effective} dates.
+To set the effective date of a transaction, place the point in the first
+line of a transaction and type @kbd{C-c C-t}. The effective date will
+be added to the transaction. To set the effective date for an
+individual posting, place point in the posting and type @kbd{C-c C-t} and
+the effective date for that posting will be added at the end of the
+posting.
+
+@node Quick Balance Display, , Setting a Transactions Effective Date, Adding Transactions
@subsection Quick Balance Display
@kindex C-c C-p
@cindex balance
@@ -327,7 +349,7 @@ but it cannot intercept the value being yanked form the @command{Calc}
stack, so decimal-comma users will have to manually replace the period
with a comma.
-@node Marking Transactions, Deleting Transactions, Editing Amounts, The Ledger Buffer
+@node Marking Transactions, Formatting Transactions, Editing Amounts, The Ledger Buffer
@section Marking Transactions
@cindex transaction, marking
@cindex uncleared
@@ -369,7 +391,20 @@ point in a transaction. This places an asterisk @samp{*} after the
date. Clearing individual postings is done by typing @kbd{C-c C-c}
while in a posting. This places an asterisk prior to the posting.
-@node Deleting Transactions, Sorting Transactions, Marking Transactions, The Ledger Buffer
+@node Formatting Transactions, Deleting Transactions, Marking Transactions, The Ledger Buffer
+@section Formatting Transactions
+@cindex transaction, formatting
+
+When editing a transaction, liberal use of the @kbd{TAB} key can keep
+the transaction well formatted. If you want to have Ledger-mode cleanup
+the formatting of a transaction you can use @samp{Align Transaction} or
+@samp{Align Region} from the menu bar.
+
+The menu item @samp{Clean-up Buffer} sorts all transactions in the buffer
+by date, removes extraneous empty lines and aligns every transaction.
+
+
+@node Deleting Transactions, Sorting Transactions, Formatting Transactions, The Ledger Buffer
@section Deleting Transactions
@kindex C-c C-d
@cindex transaction, deleting
@@ -421,6 +456,7 @@ automatically delete old markers and put new new marker at point.
@node Narrowing Transactions, , Sorting Transactions, The Ledger Buffer
@section Narrowing Transactions
@kindex C-c C-f
+@kindex C-c C-g
@cindex transaction, narrowing
@cindex transaction, display filtering
@@ -436,12 +472,11 @@ The regular expression can match on any part of the transaction. If you
want to find all transactions whose amount ends in @samp{.37}, you can
do that (I don't know why, but hey, whatever ever floats you aerostat).
-Using @kbd{C-c C-f} or the @samp{Narrow to Regex} menu entry, enter
-a regular expression in the Minibuffer. Ledger-mode will hide all other
-transactions. For details of the regular expression syntax, see
-@ref{(emacs)Regexps, Syntax of Regular Expressions} or
-@ref{(elisp)Regular Expressions, Regular Expressions}. A few examples
-using the @file{demo.ledger} are given here:
+Using @kbd{C-c C-f} or the @samp{Narrow to Regex} menu entry, enter a
+regular expression in the Minibuffer. Ledger-mode will hide all other
+transactions. For details of the regular expression syntax, see your
+Emacs documentation. A few examples using the @file{demo.ledger} are
+given here:
@table @samp
@@ -467,6 +502,10 @@ Show only transactions with any line ending with @samp{harley}.
To show back all transactions simply invoke @samp{Narrow to Regex} or
@kbd{C-c C-f} again.
+If you've edited some transactions after narrowing such that they would
+no longer match the regular expression, you can refresh the narrowed
+view using @kbd{C-c C-g}.
+
@node The Reconcile Buffer, The Report Buffer, The Ledger Buffer, Top
@chapter The Reconcile Buffer
@@ -602,22 +641,18 @@ type @kbd{t} and enter the new target value.
* Reversing Report Order::
@end menu
-@c TODO Describe also:
-@c - Goto Report C-c C-o C-g
-@c - Re-run Report C-c C-o C-a
-@c - Save Report C-c C-o C-s
-@c - Kill Report C-c C-o C-k
-
@node Running Basic Reports, Adding and Editing Reports, The Report Buffer, The Report Buffer
@section Running Reports
@kindex C-c C-o C-r
+@kindex C-c C-o C-g
+@kindex C-c C-o C-a
@cindex report, running
The real power behind Ledger is in its amazing reporting capability.
Ledger-mode provides easy facility to run reports directly from Emacs.
It has four reports built-in and facilities for adding custom reports.
-Typing @kbd{C-c C-o C-r} or using menu @samp{Ledger Run Report} prompt
+Typing @kbd{C-c C-o C-r} or using menu @samp{Run Report} prompts
for the name of a saved report. The built-in reports are:
@table @var
@@ -638,6 +673,18 @@ transactions involving that account.
@end table
+While viewing reports you can easily switch back and forth between the
+ledger buffer and the @file{*Ledger Report*} buffer. In @file{*Ledger
+Report*} buffer, typing @kbd{RET} will take you to that transaction in
+the ledger buffer. While in the ledger buffer @kbd{C-c C-o C-g} returns
+you to the @file{*Ledger Report*} buffer.
+
+By default Ledger-mode will refresh the report buffer when the ledger
+buffer is saved. If you want to rerun the report at another time
+@kbd{C-c C-o C-a}. This is useful if you have other programs altering
+your ledger file outside of Emacs.
+
+
@node Adding and Editing Reports, Reversing Report Order, Running Basic Reports, The Report Buffer
@section Adding and Editing Reports
@findex ledger-reports
@@ -667,18 +714,21 @@ buffer you will have the option to give it a new name, or overwrite the
old report.
Deleting reports is accomplished by typing @kbd{C-c C-o C-e} or using
-@samp{Edit Reports} menu in the ledger buffer, or typing @kbd{e} in the
+@samp{Edit Report} menu in the ledger buffer, or typing @kbd{e} in the
@file{*Ledger Report*} buffer. This takes you to the Emacs
customization window for the Ledger Reports variables. Use the widgets
to delete the report you want removed.
+Typing @kbd{C-c C-o C-s} will prompt for a name and save the current
+report.
+
@node Expansion Formats, Make Report Transactions Active, Adding and Editing Reports, Adding and Editing Reports
@subsection Expansion Formats
@cindex report, custom variable
It is sometimes convenient to leave room to customize a report without
saving the command line every time. For example running a register
-report for a specific account, enter at runtime by the user. The
+report for a specific account entered at runtime by the user. The
built-in report @var{account} does exactly that, using a variable
expansion to prompt the user for the account to use. There are four
variables that can be expanded to run a report:
@@ -694,9 +744,11 @@ Prompts for a payee.
@item account
Prompt for an account.
-@c FIXME : is it 'value' or 'tag' for '@item value' just below?
-@item value
-Prompt for a tag value.
+@item tagname
+Prompt for a meta-data tag name.
+
+@item tagvalue
+Prompt for a meta-data tag value.
@end table
@@ -742,14 +794,14 @@ maintain the proper mathematical sense.
@node Scheduling Transactions, Customizing Ledger-mode, The Report Buffer, Top
@chapter Scheduling Transactions
-The Ledger program provide for automating transactions but these
+The Ledger program provides for automating transactions but these
transaction aren't ``real'', they only exist inside a ledger session and
are not reflected in the actual data file. Many transactions are very
repetitive, but may vary slightly in the date they occur on, or the
amount. Some transactions are weekly, monthly, quarterly or annually.
Ledger mode provides a way to schedule upcoming transaction with a
flexible scheduler that allows you to specify the transactions in a
-separate ledger file and calculate the upcoming occurences of those
+separate ledger file and calculate the upcoming occurrences of those
transactions. You can then copy the transactions into your live data
file.
@@ -757,13 +809,66 @@ file.
* Specifying Upcoming Transactions::
@end menu
-@node Specifying Upcoming Transactions
+@node Specifying Upcoming Transactions, , Scheduling Transactions, Scheduling Transactions
@section Specifying Upcoming Transactions
The format for specifying transactions is identical to Ledger's file
format with the exception of the date field. The data field is modified
-by surrounding it with brackets and using wild cards to specity free
-months or years.
+by surrounding it with brackets and using wild cards and special
+characters to specify when the transactions should appear.
+
+@menu
+* Transactions that occur on specific dates::
+* Transactions that occur on specific days::
+@end menu
+
+@node Transactions that occur on specific dates, Transactions that occur on specific days, Specifying Upcoming Transactions, Specifying Upcoming Transactions
+@subsection Transactions that occur on specific dates
+
+Many times you will enter repetitive transactions that occur on the same
+day of the month each month. These can be specified using a wild card
+in the year and month with a fixed date in the day. The following entry
+specifies a transaction that occurs on the first and fifteenth of every
+month in every year.
+@example
+[*/*/1,15] Paycheck
+ Income:Job $1000.00
+ Assets:Checking
+@end example
+
+Some transactions do not occur every month. Comma separated lists of
+the months, or @samp{E} for even, or @samp{O} for odd number months can
+also be specified. The following entry specifies a bi-monthly
+exterminator bill that occurs in the even months:
+@example
+[*/E/01] Exterminator
+ Expenses:Home $100.00
+ Assets:Checking
+@end example
+
+@node Transactions that occur on specific days, , Transactions that occur on specific dates, Specifying Upcoming Transactions
+@subsection Transactions that occur on specific days
+
+Some transactions occur every relative to the day of the week rather
+than the date of the month. For example, many people are paid every two
+weeks without regard to the day of the month. Other events may occur on
+specific days regardless of the date. For example the following
+transactions creates a transaction every other Thursday:
+
+@example
+[2014/11/27+2Th] Paycheck
+ Income:Job $1000.00
+ Assets:Checking
+@end example
+
+It is necessary to specify a starting date in order for this type of
+recurrence relation to be specified. The day names are two character
+codes that default to Mo, Tu, We, Th, Fr, Sa, Su, for Monday, Tuesday,
+Wednesday, Thursday, Friday, Saturday, Sunday respectively. You can
+change the codes to something more convenient for your locale by
+customizing the ledger @var{ledger-schedule-week-days}. They must be two
+characters long.
+
@node Customizing Ledger-mode, Generating Ledger Regression Tests, Scheduling Transactions, Top
@@ -837,11 +942,11 @@ the reconcile regex.
@item ledger-buffer-tracks-reconcile-buffer
If non-nil, then when the cursor is moved to a new transaction in the
-reconcile window.
+@file{*Reconcile*} window.
@item ledger-reconcile-force-window-bottom
-If non-nil, make the reconcile window appear along the bottom of the
-register window and resize.
+If non-nil, make the @file{*Reconcile*} window appear along the bottom
+of the register window and resize.
@item ledger-reconcile-toggle-to-pending
If non-nil, then toggle between uncleared and pending @samp{!}. If
@@ -909,13 +1014,15 @@ Default face for Ledger occur mode shown transactions.
Face for Ledger comments.
@item ledger-font-reconciler-uncleared-face
-Default face for uncleared transactions in the reconcile window.
+Default face for uncleared transactions in the @file{*Reconcile*} buffer.
@item ledger-font-reconciler-cleared-face
-Default face for cleared @samp{*} transactions in the reconcile window.
+Default face for cleared @samp{*} transactions in the @file{*Reconcile*}
+buffer.
@item ledger-font-reconciler-pending-face
-Default face for pending @samp{!} transactions in the reconcile window.
+Default face for pending @samp{!} transactions in the @file{*Reconcile*}
+buffer.
@item ledger-font-report-clickable-face
FIXME
@@ -1024,3 +1131,8 @@ Work in Progress.
@printindex ky
@bye
+
+@c Local Variables:
+@c mode: texinfo
+@c TeX-master: t
+@c End:
diff --git a/doc/ledger.1 b/doc/ledger.1
index cde81248..b4746eb9 100644
--- a/doc/ledger.1
+++ b/doc/ledger.1
@@ -439,7 +439,7 @@ statement will print balances only for account with
two levels, i.e.
.Nm Expenses:Entertainment
but not
-.Nm Expenses:entertainemnt:Dining .
+.Nm Expenses:entertainment:Dining .
This is a display predicate, which
means it only affects display, not the total calculations.
.It Fl \-deviation Pq Fl D
diff --git a/doc/ledger3.texi b/doc/ledger3.texi
index c7613c0e..62869a29 100644
--- a/doc/ledger3.texi
+++ b/doc/ledger3.texi
@@ -14,7 +14,7 @@
@c | @var | | Ledger CLI option Variable (like -f FILE) |
@c | | | Ledger file Syntax |
@c | @samp | | Valued example or single char |
-@c | @file | | File |
+@c | @file | | File, Buffer |
@c | @file | | Program (like ledger, report, acprep) |
@c Restructuring manual ideas
@@ -22,53 +22,53 @@
@c How to make documented ledger examples validate automatically.
@c
-@c The test/DocTests.py script will be run along the with the other
-@c tests when using ctest or acprep check.
+@c The test/DocTests.py script will be run along with the other tests
+@c when using ctest or acprep check.
@c The script parses the texinfo file and looks for three kinds of
@c specially marked @smallexamples, then it will run the ledger
-@c command from the exmaple, and compare the results with the output
+@c command from the example, and compare the results with the output
@c from the documentation.
@c
@c To specially mark a @smallexample append @c command:UUID, where
@c UUID is the first 7 digits from the commands sha1sum, e.g.:
-@c
+@c
@c @smallexample @c command:CDE330A
@c $ ledger -f sample.dat reg expenses
@c @end smallexample
-@c
+@c
@c Then DocTests.py will look for corresponding documented output,
@c which may appear anywhere in the file, and is marked with
@c @smallexample @c output:UUID where UUID is the UUID from the
@c corresponding ledger command example, e.g.:
-@c
+@c
@c @smallexample @c output:CDE330A
@c 04-May-27 Book Store Expenses:Books $20.00 $20.00
@c Expenses:Cards $40.00 $60.00
@c Expenses:Docs $30.00 $90.0
@c @end smallexample
-@c
+@c
@c Now where does this data in sample.dat come from?
@c DocTests.py is a bit smart about ledger's file argument, since
@c it will check if the given filename exists in the test/input/
@c directory.
-@c
+@c
@c Sometimes the journal data for an example is specified within
@c the documentation itself, in that case the journal example data
@c needs to be specially marked as well using @smallexample @c input:UUID,
@c again with the UUID being the UUID of the corresponding ledger example
@c command. If multiple inputs with the same UUID are found they will be
@c concatenated together and given as one set of data to the example command.
-@c
+@c
@c @smallexample @c input:35CB2A3
@c 2014/02/09 The Italian Place
@c Expenses:Food:Dining $ 36.84
@c Assets:Cash
@c @end smallexample
-@c
+@c
@c @smallexample @c command:35CB2A3
@c $ ledger -f inline.dat accounts
@c @end smallexample
-@c
+@c
@c @smallexample @c output:35CB2A3
@c Assets:Cash
@c Expenses:Food:Dining
@@ -86,17 +86,16 @@
@c $ 36.84 Expenses:Food:Dining
@c @end smallexample
@c
-@c Additionally DocTests.py will pass --init-file /dev/null to ledger to
-@c ignore any default arguments to ledger the user running the tests
-@c has configured.
-@c
+@c Additionally DocTests.py will pass --args-only and --columns 80 to ledger
+@c to ignore any default arguments from the environment or .ledgerrc.
+@c
@c To manually run the tests in this file run:
@c $ ./test/DocTests.py -vv --ledger ./ledger --file ./doc/ledger3.texi
-
+
@copying
-Copyright @copyright{} 2003–2014, John Wiegley. All rights reserved.
+Copyright @copyright{} 2003–2015, John Wiegley. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -147,7 +146,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@titlepage
@title Ledger: Command-Line Accounting
-@subtitle For Version 3.0 of Ledger
+@subtitle For Version 3.1 of Ledger
@author John Wiegley
@page
@vskip 0pt plus 1filll
@@ -1756,7 +1755,7 @@ both liquid and commodity assets. Now, on the day of the sale:
@smallexample @c input:validate
2005/08/01 Stock sale
- Assets:Broker -50 APPL @{$30.00@} @@ $50.00
+ Assets:Broker -50 AAPL @{$30.00@} @@ $50.00
Expenses:Broker:Commissions $19.95
Income:Capital Gains $-1,000.00
Assets:Broker $2,480.05
@@ -1858,7 +1857,7 @@ A valuation function receives three arguments:
@table @code
-@item source
+@item source
A string identifying the commodity whose price is being asked for
(example: @samp{EUR}).
@@ -1995,8 +1994,8 @@ freeform text editor to enter transactions makes it easy to keep the
data, but also easy to enter accounts or payees inconsistently or with
spelling errors.
-In order to combat inconsistency you can define allowable accounts and
-payees. For simplicity, create a separate text file and define accounts
+In order to combat inconsistency you can define allowable accounts and
+payees. For simplicity, create a separate text file and define accounts
and payees like
@smallexample
@@ -2023,7 +2022,8 @@ $ ledger accounts >> Accounts.dat
@end smallexample
@noindent
-You will have to edit this file to add the @code{account} directive in front of every line.
+You will have to edit this file to add the @code{account} directive in
+front of every line.
@node Journal Format, Converting from other formats, Keeping it Consistent, Keeping a Journal
@section Journal Format
@@ -2148,8 +2148,8 @@ account Expenses:Food
@end smallexample
The @code{note} sub-directive associates a textual note with the
-account. This can be accessed later using the @code{note} value expression
-function in any account context.
+account. This can be accessed later using the @code{note} value
+expression function in any account context.
The @code{alias} sub-directive, which can occur multiple times, allows
the alias to be used in place of the full account name anywhere that
@@ -2226,9 +2226,9 @@ $ ledger bal --no-total ^Exp
$10.00 Expenses:Entertainment:Dining
@end smallexample
-With the option @option{--recursive-aliases}, aliases can refer to other aliases,
-the following example produces exactly the same transactions and account names
-as the preceding one:
+With the option @option{--recursive-aliases}, aliases can refer to other
+aliases, the following example produces exactly the same transactions
+and account names as the preceding one:
@smallexample @c input:validate
alias Entertainment=Expenses:Entertainment
@@ -2248,7 +2248,7 @@ $ ledger balance --no-total --recursive-aliases ^Exp
$10.00 Expenses:Entertainment:Dining
@end smallexample
-The option @option{--no-aliases} completely disables alias expansion.
+The option @option{--no-aliases} completely disables alias expansion.
All accounts are read verbatim as they are in the ledger file.
@item assert
@@ -2268,7 +2268,7 @@ balance to zero. Ledger allows you to leave one posting with no
amount and automatically balance the transaction in the
posting. The @code{bucket} allows you to fill in all postings and
automatically generate an additional posting to the bucket account
-balancing the transaction. If any transaction is unbalanced, it
+balancing the transaction. If any transaction is unbalanced, it
will automatically be balanced against the @code{bucket} account.
The following example sets @samp{Assets:Checking} as the bucket:
@@ -2316,8 +2316,8 @@ check <VALUE EXPRESSION BOOLEAN RESULT>
Start a block comment, closed by @code{end comment}.
@item commodity
-Pre-declare commodity names. This only has an effect if @option{--strict}
-or @option{--pedantic} is used (see below).
+Pre-declare commodity names. This only has an effect if
+@option{--strict} or @option{--pedantic} is used (see below).
@smallexample @c input:validate
commodity $
@@ -2325,7 +2325,7 @@ commodity CAD
@end smallexample
The @code{commodity} directive supports several optional
-sub-directives, if they immediately follow the commodity directive
+sub-directives, if they immediately follow the commodity directive
and---if they are on successive lines---begin with whitespace:
@smallexample @c input:validate
@@ -2344,8 +2344,8 @@ format this commodity. In the future, using this directive will disable
Ledger's observation of other ways that commodity is used, and will
provide the ``canonical'' representation.
-The @code{nomarket} sub-directive states that the commodity's price should
-never be auto-downloaded.
+The @code{nomarket} sub-directive states that the commodity's price
+should never be auto-downloaded.
The @code{default} sub-directive marks this as the ``default'' commodity.
@@ -2388,7 +2388,7 @@ fixed CAD $0.90
2012-04-11 Second day Dinner in Canada
Assets:Wallet -25.75 CAD
Expenses:Food 25.75 CAD
-endfixed
+endfixed CAD
@end smallexample
is equivalent to this:
@@ -2517,8 +2517,8 @@ tag CSV
@end smallexample
The @code{tag} directive supports two optional sub-directives, if they
-immediately follow the tag directive and---if on a successive line---begin
-with whitespace:
+immediately follow the tag directive and---if on a successive
+line---begin with whitespace:
@smallexample @c input:validate
tag Receipt
@@ -2529,8 +2529,8 @@ tag Receipt
The @code{check} and @code{assert} sub-directives warn or error
(respectively) if the given value expression evaluates to false within
the context of any use of the related tag. In such a context,
-``value'' is bound to the value of the tag (which may be something else
-but a string if typed metadata is used!). Such checks or assertions are
+``value'' is bound to the value of the tag (which may be something else
+but a string if typed metadata is used!). Such checks or assertions are
not called if no value is given.
@item test
@@ -2815,9 +2815,9 @@ you a place to put those codes:
@findex --uncleared
@findex --pending
-A transaction can have a ``state'': cleared, pending, or uncleared.
-The default is uncleared. To mark a transaction cleared, put an asterisk (*)
-before the payee, after the date or code:
+A transaction can have a ``state'': cleared, pending, or uncleared. The
+default is uncleared. To mark a transaction cleared, put an asterisk
+@samp{*} before the payee, after the date or code:
@smallexample @c input:validate
2012-03-10 * KFC
@@ -2975,9 +2975,10 @@ used as the payee name for that posting. This affects the
@command{register} report, the @command{payees} report, and the
@option{--by-payee} option.
-This is useful when for example you deposit 4 checks at a time to
-the bank. On the bank statement, there is just one amount @samp{$400},
-but you can specify from whom each check came from, as shown by example below:
+This is useful when for example you deposit 4 checks at a time to the
+bank. On the bank statement, there is just one amount @samp{$400}, but
+you can specify from whom each check came from, as shown by example
+below:
@smallexample @c input:validate
2010-06-17 Sample
@@ -3138,8 +3139,8 @@ A balance assignment has this form:
Assets:Cash = $500.00
@end smallexample
-This sets the amount of the second posting to whatever it would need
-to be for the total in @samp{Assets:Cash} to be $500.00 after the posting.
+This sets the amount of the second posting to whatever it would need to
+be for the total in @samp{Assets:Cash} to be $500.00 after the posting.
If the resulting amount is not $-20.00 in this case, it is an error.
@node Resetting a balance, Balancing transactions, Balance assignments, Balance verification
@@ -3174,9 +3175,9 @@ As a consequence of all the above, consider the following transaction:
@end smallexample
What this says is: set the amount of the posting to whatever value is
-needed so that @samp{Assets:Brokerage} contains 10 AAPL. Then, because this
-posting must balance, ensure that its value is zero. This can only be
-true if Assets:Brokerage does indeed contain 10 AAPL at that point in
+needed so that @samp{Assets:Brokerage} contains 10 AAPL. Then, because
+this posting must balance, ensure that its value is zero. This can only
+be true if Assets:Brokerage does indeed contain 10 AAPL at that point in
the input file.
A balanced virtual transaction is used simply to indicate to Ledger that
@@ -3246,9 +3247,10 @@ Said another way, whenever Ledger sees a posting cost of the form
"AMOUNT @@ AMOUNT", the commodity used in the second amount is marked
``primary''.
-The only meaning a primary commodity has is that the @option{--market (-V)}
-flag will never convert a primary commodity into any other commodity.
-@option{--exchange @var{COMMODITY} (-X)} still will, however.
+The only meaning a primary commodity has is that the @option{--market
+(-V)} flag will never convert a primary commodity into any other
+commodity. @option{--exchange @var{COMMODITY} (-X)} still will,
+however.
@node Posting cost expressions, Total posting costs, Explicit posting costs, Transactions
@section Posting cost expressions
@@ -3325,10 +3327,10 @@ For example, consider the stock sale given above:
@end smallexample
The commodity transferred into @samp{Assets:Brokerage} is not actually 10
-AAPL, but rather 10 AAPL @{$5.00@}. The figure in braces after the
+AAPL, but rather 10 AAPL @{$50.00@}. The figure in braces after the
amount is called the ``lot price''. It's Ledger's way of remembering
that this commodity was transferred through an exchange, and that
-$5.00 was the price of that exchange.
+$50.00 was the price of that exchange.
This becomes significant if you later sell that commodity again. For
example, you might write this:
@@ -3386,12 +3388,12 @@ but is not required to be used with them:
@end smallexample
It should be noted that this is a convenience only for cases where you
-buy and sell whole lots. The @{@{$500.00@}@} is @emph{not} an
-attribute of the commodity, whereas @{$5.00@} is. In fact, when you write
+buy and sell whole lots. The @{@{$500.00@}@} is @emph{not} an attribute
+of the commodity, whereas @{$5.00@} is. In fact, when you write
@{@{$500.00@}@}, Ledger just divides that value by 10 and sees
@{$50.00@}. So if you use the print command to look at this
-transaction, you'll see the single braces form in the output.
-The double braces price form is a shorthand only.
+transaction, you'll see the single braces form in the output. The
+double braces price form is a shorthand only.
Plus, it comes with dangers. This works fine:
@@ -3522,8 +3524,8 @@ indicate a virtual cost:
Income:Capital Gains $-125.00
@end smallexample
-You can specify any combination of lot prices, dates or notes, in any order.
-They are all optional.
+You can specify any combination of lot prices, dates or notes, in any
+order. They are all optional.
To show all lot information in a report, use @option{--lots}.
@@ -3714,9 +3716,9 @@ This becomes:
@node Referring to the matching posting's account, Applying metadata to every matched posting, Accessing the matching posting's amount, Automated Transactions
@subsection Referring to the matching posting's account
-Sometimes you want to refer to the account that was matched
-in some way within the automated transaction itself. This is
-done by using the string @samp{$account}, anywhere within the
+Sometimes you want to refer to the account that was matched
+in some way within the automated transaction itself. This is
+done by using the string @samp{$account}, anywhere within the
account part of the automated posting:
@smallexample @c input:validate
@@ -3881,8 +3883,8 @@ This entry accomplishes this. Every month you'll see an
automatic $37.50 deficit like you should, while your checking account
really knows that it debited $225 this month.
-And using the @option{--effective} option, the initial date will be overridden
-by the effective dates.
+And using the @option{--effective} option, the initial date will be
+overridden by the effective dates.
@smallexample @c command:6453542
$ ledger --effective register Groceries
@@ -4401,10 +4403,11 @@ report -J -l "Ua>=@{\$0.01@}" -d "d>=[last feb]" reg ^assets ^liab
The last report uses both a calculation predicate @option{--limit
@var{EXPR} (-l)} and a display predicate @option{--display @var{EXPR}
(-d)}. The calculation predicate limits the report to postings whose
-amount is greater than or equal to $1 (which can only happen if the posting amount
-is in dollars). The display predicate limits the transactions
-@emph{displayed} to just those since last February, even though those
-transactions from before will be computed as part of the balance.
+amount is greater than or equal to $1 (which can only happen if the
+posting amount is in dollars). The display predicate limits the
+transactions @emph{displayed} to just those since last February, even
+though those transactions from before will be computed as part of the
+balance.
@node Reporting Commands, Command-line Syntax, Building Reports, Top
@chapter Reporting Commands
@@ -4449,11 +4452,11 @@ balances for an account, such as when @ref{Archiving Previous Years}.
@findex --amount-data
@findex --total-data
-The @command{register} command displays all the postings occurring
-in a single account, line by line. The account regex must be
-specified as the only argument to this command. If any regexes occur
-after the required account name, the register will contain only those
-postings that match, which makes it very useful for hunting down a particular
+The @command{register} command displays all the postings occurring in
+a single account, line by line. The account regex must be specified as
+the only argument to this command. If any regexes occur after the
+required account name, the register will contain only those postings
+that match, which makes it very useful for hunting down a particular
posting.
The output from @command{register} is very close to what a typical
@@ -4465,8 +4468,8 @@ If you have ``Gnuplot'' installed, you may plot the amount or running
total of any register by using the script @file{report}, which is
included in the Ledger distribution. The only requirement is that you
add either @option{--amount-data (-j)} or @option{--total-data (-J)} to
-your @command{register} command, in order to plot either the amount or total
-column, respectively.
+your @command{register} command, in order to plot either the amount or
+total column, respectively.
@node The @command{print} command, , The @command{register} command, Primary Financial Reports
@subsection The @command{print} command
@@ -4547,9 +4550,10 @@ Transaction Number,Date,Description,Memo,Amount Debit,Amount Credit,Balance,Chec
Unfortunately, as it stands Ledger cannot read it, but you can. Ledger
expects the first line to contain a description of the fields on each
-line of the file. The fields ledger can recognize are called
-@code{date}, @code{posted}, @code{code}, @code{payee} or @code{desc},
-@code{amount}, @code{cost}, @code{total}, and @code{note}.
+line of the file. The fields ledger can recognize contain these
+case-insensitive strings @code{date}, @code{posted}, @code{code},
+@code{payee} or @code{desc} or @code{description}, @code{amount},
+@code{cost}, @code{total}, and @code{note}.
Delete the account description lines at the top, and replace the first
line in the data above with:
@@ -4582,17 +4586,17 @@ transid,date,payee,note,amount,,,code,
@end smallexample
Ledger will include @samp{; transid: 767718} in the first transaction
-is from the file above.
+from the file above.
@findex --invert
@findex --account @var{STR}
@findex --rich-data
-The @command{convert} command accepts three options. The most important
-ones are @option{--invert} which inverts the amount field, and
+The @command{convert} command accepts three options. They are
+@option{--invert} which inverts the amount field,
@option{--account @var{STR}} which you can use to specify the account to
-balance against and @option{--rich-data}. When using the rich-data
-switch, additional metadata is stored as tags. There is, for example,
+balance against, and @option{--rich-data} which stores
+additional metadata as tags. There is, for example,
a UUID field. If an entry with the same UUID tag is already included in
the normal ledger file (specified via @option{--file @var{FILE} (-f)} or
via the environment variable @env{LEDGER_FILE}) this entry will not be
@@ -4613,7 +4617,7 @@ account Aufwand:Einkauf:Lebensmittel
Note that it may be necessary for the output of @samp{ledger convert}
to be passed through @code{ledger print} a second time if you want to
-match on the new payee field. During the @code{ledger convert} run
+match on the new payee field. During the @code{ledger convert} run,
only the original payee name as specified in the csv data seems to be
used.
@@ -5194,18 +5198,20 @@ pricedb database files.
@subsection @command{accounts}
@findex accounts
-The @command{accounts} command reports all of the accounts in the journal.
-Following the command with a regular expression will limit the output to
-accounts matching the regex. The output is sorted by name. Using the
-@option{--count} option will tell you how many entries use each account.
+The @command{accounts} command reports all of the accounts in the
+journal. Following the command with a regular expression will limit the
+output to accounts matching the regex. The output is sorted by name.
+Using the @option{--count} option will tell you how many entries use
+each account.
@node @command{payees}, @command{commodities}, @command{accounts}, Reports about your Journals
@subsection @command{payees}
@findex payees
-The @command{payees} command reports all of the unique payees in the journal.
-Using the @option{--count} option will tell you how many entries use
-each payee. To filter the payees displayed you must use the prefix @@:
+The @command{payees} command reports all of the unique payees in the
+journal. Using the @option{--count} option will tell you how many
+entries use each payee. To filter the payees displayed you must use the
+prefix @@:
@smallexample
$ ledger payees @@Nic
@@ -5228,10 +5234,10 @@ you how many entries use each commodity.
@findex tags
@findex --values
-The @command{tags} command reports all of the tags in the journal. The output
-is sorted by name. Using the @option{--count} option will tell you how
-many entries use each tag. Using the @option{--values} option will
-report the values used by each tag.
+The @command{tags} command reports all of the tags in the journal. The
+output is sorted by name. Using the @option{--count} option will tell
+you how many entries use each tag. Using the @option{--values} option
+will report the values used by each tag.
@node @command{xact}, @command{stats}, @command{tags}, Reports about your Journals
@subsection @command{xact}
@@ -5239,7 +5245,7 @@ report the values used by each tag.
@findex entry
@findex xact
-The @command{xact} command simplify the creation of new transactions.
+The @command{xact} command simplifies 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:
@@ -5252,7 +5258,7 @@ Say you currently have this posting in your ledger file:
Liabilities:MasterCard $-15.00
@end smallexample
-Now it's @samp{2004/4/9}, and you've just eating at @samp{Viva Italiano}
+Now it's @samp{2004/4/9}, and you've just eaten at @samp{Viva Italiano}
again. The exact amounts are different, but the overall form is the
same. With the @command{xact} command you can type:
@@ -5358,7 +5364,7 @@ There are many, many command options available with the @file{ledger}
program, and it takes a while to master them. However, none of them are
required to use the basic reporting commands.
-@node Command Line Quick Reference, Detailed Option Description, Basic Usage, Command-line Syntax
+@node Command Line Quick Reference, Detailed Option Description, Basic Usage, Command-line Syntax
@section Command Line Quick Reference
@menu
@@ -5371,7 +5377,7 @@ required to use the basic reporting commands.
* Commodity Reporting::
@end menu
-@node Basic Reporting Commands, Basic Options, Command Line Quick Reference, Command Line Quick Reference
+@node Basic Reporting Commands, Basic Options, Command Line Quick Reference, Command Line Quick Reference
@subsection Basic Reporting Commands
@ftable @code
@@ -5405,7 +5411,8 @@ Print account balances as transactions.
Print price history for matching commodities.
@item pricedb
-Print price history for matching commodities in a format readable by ledger.
+Print price history for matching commodities in a format readable by
+ledger.
@item xact
Generate transactions based on previous postings.
@@ -5531,7 +5538,7 @@ Accounts, tags or commodities not previously declared will cause errors.
@item --check-payees
Enable strict and pedantic checking for payees as well as accounts,
-commodities and tags. This only works in conjunction with
+commodities and tags. This only works in conjunction with
@option{--strict} or @option{--pedantic}.
@item --immediate
@@ -5717,7 +5724,7 @@ Report net gain or loss for commodities that have a price history.
@end ftable
-@node Detailed Option Description, Period Expressions, Command Line Quick Reference, Command-line Syntax
+@node Detailed Option Description, Period Expressions, Command Line Quick Reference, Command-line Syntax
@section Detailed Option Description
@menu
@@ -5847,7 +5854,7 @@ a decimal separator, not the usual period.
@item --download
@itemx -Q
-Direct Ledger to download prices using the script defined via the option
+Direct Ledger to download prices using the script defined via the option
@option{--getquote @var{FILE}}.
@item --explicit
@@ -5933,9 +5940,9 @@ a misspelled commodity or account) it will issue a warning giving you
the file and line number of the problem.
@item --recursive-aliases
-Normally, ledger only expands aliases once. With this option, ledger tries
-to expand the result of alias expansion recursively, until no more expansions
-apply.
+Normally, ledger only expands aliases once. With this option, ledger
+tries to expand the result of alias expansion recursively, until no more
+expansions apply.
@item --time-colon
The @option{--time-colon} option will display the value for a seconds
@@ -6049,7 +6056,7 @@ $ ledger reg Expenses --begin Dec --bold-if "amount>100"
@end smallexample
@noindent
-list all transactions since the beginning of December and print in
+list all transactions since the beginning of December and print in
bold any posting greater than $100.
@item --budget
@@ -6141,7 +6148,7 @@ Transform the date of the transaction using @var{EXPR}.
@item --date-format @var{DATE_FORMAT}
@itemx -y @var{DATE_FORMAT}
-Specify the format ledger should use to read and print dates
+Specify the format ledger should use to read and print dates
(@pxref{Date and Time Format Codes}).
@item --date-width @var{INT}
@@ -6154,7 +6161,7 @@ FIX THIS ENTRY @c ASK JOHN
@item --dc
Display register or balance in debit/credit format If you use
@option{--dc} with either the @command{register} (reg) or
-@command{balance} (bal) commands, you will now get extra columns.
+@command{balance} (bal) commands, you will now get extra columns.
The register goes from this:
@smallexample
@@ -6225,8 +6232,8 @@ in the register and prices reports.
Display only lines that satisfy the expression @var{EXPR}.
@item --display-amount @var{EXPR}
-Apply a transformation to the @emph{displayed} amount. This happens after
-calculations occur.
+Apply a transformation to the @emph{displayed} amount. This happens
+after calculations occur.
@item --display-total @var{EXPR}
Apply a transformation to the @emph{displayed} total. This happens after
@@ -6312,8 +6319,8 @@ or @code{commodity}. The @code{tags()} function is also useful here.
@item --group-title-format @var{FORMAT_STRING}
Set the format for the headers that separates the report sections of
-a grouped report. Only has an effect with a @option{--group-by @var{EXPR}}
-register report.
+a grouped report. Only has an effect with a @option{--group-by
+@var{EXPR}} register report.
@smallexample
$ ledger reg Expenses --group-by "payee" --group-title-format "------------------------ %-20(value) ---------------------\n"
@@ -6449,7 +6456,7 @@ Only works for accounts that have a single commodity.
Define a period expression that sets the time period during which
transactions are to be accounted. For a @command{register} report only
the transactions that satisfy the period expression with be displayed.
-For a @command{balance} report only those transactions will be accounted
+For a @command{balance} report only those transactions will be accounted
in the final balances.
@item --pivot @var{TAG}
@@ -6460,7 +6467,7 @@ identifying which car the purchase was for @samp{; Car: Prius}, then the
command:
@smallexample
-$ ledger bal Fuel --pivot "Car" --period "this year"
+$ ledger bal Fuel --pivot "Car" --period "this year"
$ 3491.26 Car
$ 1084.22 M3:Expenses:Auto:Fuel
$ 149.65 MG V11:Expenses:Auto:Fuel
@@ -6509,10 +6516,10 @@ Report commodity totals (this is the default).
Synonym for @samp{--period "quarterly"}.
@item --raw
-In the @command{print} report, show transactions using the exact same syntax as
-specified by the user in their data file. Don't do any massaging or
-interpreting. This can be useful for minor cleanups, like just aligning
-amounts.
+In the @command{print} report, show transactions using the exact same
+syntax as specified by the user in their data file. Don't do any
+massaging or interpreting. This can be useful for minor cleanups, like
+just aligning amounts.
@item --real
@itemx -R
@@ -6523,8 +6530,8 @@ transactions.
Define the output format for the @command{register} report.
@item --related
-In a @command{register} report show the related account. This is the other
-@emph{side} of the transaction.
+In a @command{register} report show the related account. This is the
+other @emph{side} of the transaction.
@item --related-all
Show all postings in a transaction, similar to @option{--related} but
@@ -6544,12 +6551,13 @@ FIX THIS ENTRY
FIX THIS ENTRY @c FIXME thdox
@item --seed @var{FIXME}
-Set the random seed to @var{FIXME} for the @code{generate} command. Used as part of
-development testing.
+Set the random seed to @var{FIXME} for the @code{generate} command.
+Used as part of development testing.
@item --sort @var{VEXPR}
@itemx -S @var{VEXPR}
-Sort the @command{register} report based on the value expression given to sort.
+Sort the @command{register} report based on the value expression given
+to sort.
@item --sort-all @var{FIXME}
FIX THIS ENTRY
@@ -6569,8 +6577,8 @@ FIX THIS ENTRY
@item --tail @var{INT}
@itemx --last @var{INT}
-Report only the last @var{INT} entries. Only useful in a @command{register}
-report.
+Report only the last @var{INT} entries. Only useful in
+a @command{register} report.
@item --time-report
FIX THIS ENTRY @c FIXME thdox
@@ -6722,8 +6730,8 @@ Set the reporting period to @var{STR}. This will subtotal all matching
transactions within each period separately, making it easy to see
weekly, monthly, quarterly, etc., posting totals. A period string can
even specify the beginning and end of the report range, using simple
-terms like @samp{last June} or @samp{next month}. For more details on period
-expressions, see @ref{Period Expressions}.
+terms like @samp{last June} or @samp{next month}. For more details on
+period expressions, see @ref{Period Expressions}.
@item --period-sort @var{VEXPR}
Sort the postings within each reporting period using the value
@@ -6856,7 +6864,7 @@ Set the value expression used for the ``totals'' column in the
@c ledger reg food not dining expr 'payee =~ /chang/'
@c @end smallexample
-@node Output customization, Commodity reporting, Report filtering, Detailed Option Description
+@node Output customization, Commodity reporting, Report filtering, Detailed Option Description
@subsection Output customization
These options affect only the output, but not which postings are
@@ -6894,7 +6902,8 @@ Report posting totals by month.
@item --yearly
@itemx -Y
-Report posting totals by year. For more complex periods, use @option{--period}.
+Report posting totals by year. For more complex periods, use
+@option{--period}.
@c TODO end this sentence
@item --period @var{PERIOD_EXPRESSION}
@@ -6907,10 +6916,10 @@ to see if weekend spending is more than on weekdays.
@item --sort @var{VEXPR}
@itemx -S @var{VEXPR}
Sort a report by comparing the values determined using the value
-expression @var{VEXPR}. For example, using @samp{-S "-abs(total)"} in the
-@command{balance} report will sort account balances from greatest to least,
-using the absolute value of the total. For more on how to use value expressions,
-see @ref{Value Expressions}.
+expression @var{VEXPR}. For example, using @samp{-S "-abs(total)"} in
+the @command{balance} report will sort account balances from greatest to
+least, using the absolute value of the total. For more on how to use
+value expressions, see @ref{Value Expressions}.
@item --pivot @var{TAG}
Produce a pivot table around the @var{TAG} provided. This requires
@@ -7296,7 +7305,7 @@ which allows you to report most everything in EUR if you use @samp{-X
EUR}, except for certain accounts or postings which should always be
valuated in another currency. For example:
-@c TODO is this example missing the actual line to get the effect?
+@c TODO is this example missing the actual line to get the effect?
@c it looks like it only contains a match, but no effect
@smallexample @c input:validate
= /^Assets:Brokerage:CAD$/
@@ -7334,13 +7343,14 @@ these values:
@itemize
@item Register Report
-For the @command{register} report, use the value of that commodity on the date of
-the posting being reported, with a @samp{<Revalued>} posting added at
-the end if today's value is different from the value of the last
-posting.
+For the @command{register} report, use the value of that commodity on
+the date of the posting being reported, with a @samp{<Revalued>} posting
+added at the end if today's value is different from the value of the
+last posting.
@item Balance Report
-For the @command{balance} report, use the value of that commodity as of today.
+For the @command{balance} report, use the value of that commodity as of
+today.
@end itemize
@@ -7353,16 +7363,16 @@ You can also now use @option{--exchange @var{COMMODITY} (-X)} (and
and @option{--price (-I)}, to see valuation reports of just your basis
costs or lot prices.
-Finally, sometimes, you may seek to only report one (or some subset)
-of the commodities in terms of another commodity. In this
-situation, you can use the syntax
-@option{--exchange @var{COMMODITY1}:@var{COMMODITY2}} to request that
-ledger always display @var{COMMODITY1} in terms of @var{COMMODITY2},
-but you want no other commodities to be automatically displayed in terms of
-@var{COMMODITY2} without additional @option{--exchange} options. For
-example, if you wanted to report EUR and BTC in terms of USD, but report
-all other commodities without conversion to USD, you could use:
-@option{--exchange EUR:USD --exchange BTC:USD}.
+Finally, sometimes, you may seek to only report one (or some subset) of
+the commodities in terms of another commodity. In this situation, you
+can use the syntax @option{--exchange @var{COMMODITY1}:@var{COMMODITY2}}
+to request that ledger always display @var{COMMODITY1} in terms of
+@var{COMMODITY2}, but you want no other commodities to be automatically
+displayed in terms of @var{COMMODITY2} without additional
+@option{--exchange} options. For example, if you wanted to report EUR
+and BTC in terms of USD, but report all other commodities without
+conversion to USD, you could use: @option{--exchange EUR:USD --exchange
+BTC:USD}.
@node Environment variables, , Commodity reporting, Detailed Option Description
@subsection Environment variables
@@ -7563,7 +7573,7 @@ This report continues outputting postings until the running total
is greater than $-500.00. A final posting is always shown, to
inform you what the total afterwards would be.
-Forecasting can also be used with the @command{balance} report,
+Forecasting can also be used with the @command{balance} report,
but by date only, and not against the running total:
@smallexample @c command:validate
@@ -7584,20 +7594,20 @@ o 2013/03/29 03:39:00
This records a check-in to the given ACCOUNT, and a check-out. You can
be checked-in to multiple accounts at a time, if you wish, and they can
span multiple days (use @option{--day-break} to break them up in the
-report). The number of seconds between check-in and check-out is accumulated
-as time to that ACCOUNT. If the checkout uses a capital @samp{O}, the
-transaction is marked ``cleared''. You can use an optional PAYEE for
-whatever meaning you like.
+report). The number of seconds between check-in and check-out is
+accumulated as time to that ACCOUNT. If the checkout uses a capital
+@samp{O}, the transaction is marked ``cleared''. You can use an
+optional PAYEE for whatever meaning you like.
Now, there are a few ways to generate this information. You can use
the @file{timeclock.el} package, which is part of Emacs. Or you can
write a simple script in whichever language you prefer to emit similar
information. Or you can use Org mode's time-clocking abilities and
-the @samp{org2tc} script developed by John Wiegley.
+the @file{org2tc} script developed by John Wiegley.
These timelog entries can appear in a separate file, or directly in
-your main ledger file. The initial @samp{i} and @samp{o} characters
-count as Ledger ``directives'', and are accepted anywhere that
+your main ledger file. The initial @samp{i} and @samp{o} characters
+count as Ledger ``directives'', and are accepted anywhere that
ordinary transactions are valid.
@node Value Expressions, Format Strings, Time Keeping, Top
@@ -7673,7 +7683,7 @@ $ ledger -b "this month" register checking
@findex --total @var{VEXPR}
Below are the one letter variables available in any value expression.
-For the @command{register} and @command{print} commands, these variables
+For the @command{register} and @command{print} commands, these variables
relate to individual postings, and sometimes the account affected by a
posting. For the @command{balance} command, these variables relate to
accounts, often with a subtle difference in meaning. The use of each
@@ -7683,10 +7693,11 @@ variable for both is specified.
@item t
This maps to whatever the user specified with @option{--amount
-@var{EXPR} (-t)}. In a @command{register} report, @option{--amount @var{EXPR}
-(-t)} changes the value column; in a @command{balance} report, it has no meaning
-by default. If @option{--amount @var{EXPR} (-t)} was not specified, the
-current report style's value expression is used.
+@var{EXPR} (-t)}. In a @command{register} report, @option{--amount
+@var{EXPR} (-t)} changes the value column; in a @command{balance}
+report, it has no meaning by default. If @option{--amount @var{EXPR}
+(-t)} was not specified, the current report style's value expression is
+used.
@item T
This maps to whatever the user specified with @option{--total
@@ -7875,15 +7886,15 @@ A regular expression that matches against a transaction's payee name.
@itemx tag(REGEX)
A regular expression that matches against a transaction's tags.
-@itemx expr date =~ /REGEX/
+@item expr date =~ /REGEX/
Useful for specifying a date in plain terms. For example, you could say
@samp{expr date =~ /2014/}.
-
@item expr comment =~ /REGEX/
-A regular expression that matches against a posting's comment field. This
-searches only a posting's field, not the transaction's note or comment field.
-For example, @samp{ledger reg "expr" "comment =~ /landline/"} will match:
+A regular expression that matches against a posting's comment
+field. This searches only a posting's field, not the transaction's note
+or comment field. For example, @code{ledger reg "expr" "comment =~
+/landline/"} will match:
@smallexample
2014/1/29 Phone bill
@@ -7906,8 +7917,8 @@ instead.
@item expr note =~ /REGEX/
A regular expression that matches against a transaction's note field.
This searches all comments in the transaction, including comments on
-individual postings. Thus, @samp{ledger reg "expr" "note =~ /landline/"} will
-match both all the three examples below:
+individual postings. Thus, @samp{ledger reg "expr" "note =~ /landline/"}
+will match both all the three examples below:
@smallexample
2014/1/29 Phone bill
@@ -7935,21 +7946,20 @@ A sub-expression is nested in parenthesis. This can be useful passing
more complicated arguments to functions, or for overriding the natural
precedence order of operators.
-
-@itemx expr base =~ /REGEX/
+@item expr base =~ /REGEX/
A regular expression that matches against an account's base name. If
a posting, this will match against the account affected by the
posting.
-@itemx expr code =~ /REGEX/
+@item expr code =~ /REGEX/
A regular expression that matches against the transaction code (the
text that occurs between parentheses before the payee).
@end table
-The @samp{query} command can be used to see how Ledger interprets your query.
-This can be useful if you are not getting the results you expect. See
-@pxref{Pre-Commands} for more.
+The @command{query} command can be used to see how Ledger interprets
+your query. This can be useful if you are not getting the results you
+expect (@pxref{Pre-Commands}).
@menu
* Miscellaneous::
@@ -8511,7 +8521,8 @@ generated the posting.
@table @code
@item filename
-the name of ledger the data file from whence the posting came, abbreviated @samp{S}.
+the name of ledger the data file from whence the posting came,
+abbreviated @samp{S}.
@item beg_pos
character position in @code{filename} where entry for posting begins,
@@ -8798,7 +8809,7 @@ amount could be an expression, etc.
@item Journal transactions
-Postings are owned by transactions, always. This subclass of item_t
+Postings are owned by transactions, always. This subclass of @code{item_t}
knows about the date, the payee, etc. If a date or metadata tag is
requested from a posting and it doesn't have that information, the
transaction is queried to see if it can provide it.
@@ -8813,14 +8824,14 @@ it, but contains relatively little information of its own.
Finally, all transactions with their postings, and all accounts, are
owned by a @code{journal_t} object. This is the go-to object for
-querying ad reporting on your data.
+querying and reporting on your data.
@item Textual journal parser
-There is a textual parser, wholly contained in @file{textual.cc}, which knows
-how to parse text into journal objects, which then get ``finalized'' and
-added to the journal. Finalization is the step that enforces the
-double-entry guarantee.
+There is a textual parser, wholly contained in @file{textual.cc}, which
+knows how to parse text into journal objects, which then get
+``finalized'' and added to the journal. Finalization is the step that
+enforces the double-entry guarantee.
@item Iterators
@@ -8838,8 +8849,8 @@ the user passed to @option{--sort @var{VEXPR}}.
Many reports bring pseudo-journal objects into existence, like postings
which report totals in a @samp{Total} account. These objects are
-created and managed by a @code{temporaries_t} object, which gets used in many
-places by the reporting filters.
+created and managed by a @code{temporaries_t} object, which gets used in
+many places by the reporting filters.
@item Option handling
@@ -9249,31 +9260,33 @@ data during the run. The following are the available @var{CODES} to
debug:
@multitable @columnfractions .32 .43 .27
-@item @code{account.display} @tab @code{expr.calc.when} @tab @code{org.next_amount}
-@item @code{accounts.sorted} @tab @code{expr.compile} @tab @code{org.next_total}
-@item @code{amount.convert} @tab @code{filters.changed_value} @tab @code{parser.error}
-@item @code{amount.is_zero} @tab @code{filters.changed_value.rounding} @tab @code{pool.commodities}
-@item @code{amount.parse} @tab @code{filters.collapse} @tab @code{post.assign}
-@item @code{amount.price} @tab @code{filters.forecast} @tab @code{python.init}
-@item @code{amount.truncate} @tab @code{filters.revalued} @tab @code{python.interp}
-@item @code{amount.unround} @tab @code{format.abbrev} @tab @code{query.mask}
-@item @code{amounts.commodities} @tab @code{format.expr} @tab @code{report.predicate}
-@item @code{amounts.refs} @tab @code{generate.post} @tab @code{scope.symbols}
-@item @code{archive.journal} @tab @code{generate.post.string} @tab @code{textual.include}
-@item @code{auto.columns} @tab @code{item.meta} @tab @code{textual.parse}
-@item @code{budget.generate} @tab @code{ledger.read} @tab @code{timelog}
-@item @code{commodity.annotated.strip} @tab @code{ledger.validate} @tab @code{times.epoch}
-@item @code{commodity.annotations} @tab @code{lookup} @tab @code{times.interval}
-@item @code{commodity.compare} @tab @code{lookup.account} @tab @code{times.parse}
-@item @code{commodity.download} @tab @code{mask.match} @tab @code{value.sort}
-@item @code{commodity.prices.add} @tab @code{memory.counts} @tab @code{value.storage.refcount}
-@item @code{commodity.prices.find} @tab @code{memory.counts.live} @tab @code{xact.extend}
-@item @code{convert.csv} @tab @code{memory.debug} @tab @code{xact.extend.cleared}
-@item @code{csv.mappings} @tab @code{op.cons} @tab @code{xact.extend.fail}
-@item @code{csv.parse} @tab @code{op.memory} @tab @code{xact.finalize}
-@item @code{draft.xact} @tab @code{option.args}
-@item @code{expr.calc} @tab @code{option.names}
+@item @code{account.display} @tab @code{draft.xact} @tab @code{option.names}
+@item @code{account.sorted} @tab @code{expr.calc} @tab @code{org.next_amount}
+@item @code{amount.commodities} @tab @code{expr.compile} @tab @code{org.next_total}
+@item @code{amount.convert} @tab @code{expr.merged.compile} @tab @code{parser.error}
+@item @code{amount.is_zero} @tab @code{filters.changed_value} @tab @code{pool.commodities}
+@item @code{amount.parse} @tab @code{filters.changed_value.rounding} @tab @code{post.assign}
+@item @code{amount.price} @tab @code{filters.collapse} @tab @code{python.init}
+@item @code{amount.refs} @tab @code{filters.forecast} @tab @code{python.interp}
+@item @code{amount.roundto} @tab @code{filters.interval} @tab @code{query.mask}
+@item @code{amount.truncate} @tab @code{filters.revalued} @tab @code{report.predicate}
+@item @code{amount.unround} @tab @code{format.abbrev} @tab @code{scope.search}
+@item @code{annotate.less} @tab @code{format.expr} @tab @code{scope.symbols}
+@item @code{archive.journal} @tab @code{generate.post} @tab @code{select.parse}
+@item @code{auto.columns} @tab @code{generate.post.string} @tab @code{textual.include}
+@item @code{budget.generate} @tab @code{history.find} @tab @code{textual.parse}
+@item @code{commodity.annotated.strip} @tab @code{history.map} @tab @code{timelog}
+@item @code{commodity.annotations} @tab @code{item.meta} @tab @code{times.epoch}
+@item @code{commodity.compare} @tab @code{ledger.read} @tab @code{times.interval}
+@item @code{commodity.download} @tab @code{ledger.validate} @tab @code{times.parse}
+@item @code{commodity.exchange} @tab @code{lookup} @tab @code{value.sort}
+@item @code{commodity.price.find} @tab @code{lookup.account} @tab @code{value.storage.refcount}
+@item @code{commodity.prices.add} @tab @code{mask.match} @tab @code{xact.extend}
+@item @code{commodity.prices.find} @tab @code{memory.debug} @tab @code{xact.extend.cleared}
+@item @code{csv.mappings} @tab @code{op.memory} @tab @code{xact.extend.fail}
+@item @code{csv.parse} @tab @code{option.args} @tab @code{xact.finalize}
@end multitable
+@
@item --trace @var{INT}
Enable tracing. The @var{INT} specifies the level of trace desired:
@@ -9292,14 +9305,15 @@ Enable tracing. The @var{INT} specifies the level of trace desired:
@item @code{LOG_TRACE} @tab 10
@item @code{LOG_ALL} @tab 11
@end multitable
+@
@item --verbose
Print detailed information on the execution of Ledger.
@item --verify
Enable additional assertions during run-time. This causes a significant
-slowdown. When combined with @option{--debug @var{CODE}} ledger will produce
-memory trace information.
+slowdown. When combined with @option{--debug @var{CODE}} ledger will
+produce memory trace information.
@item --verify-memory
FIX THIS ENTRY @c FIXME thdox
@@ -9403,8 +9417,8 @@ true
FIX THIS ENTRY @c FIXME thdox
@item template
-Shows the insertion template that the @command{xact} sub-command generates.
-This is a debugging command.
+Shows the insertion template that the @command{xact} sub-command
+generates. This is a debugging command.
@end ftable
@@ -9453,7 +9467,7 @@ where the regex matches the name of the test you want to build.
There are nearly 300 tests stored under the @file{test} subdirectory
in the main source distribution. They are broken into two broad
categories, baseline and regression. To run the @file{5FBF2ED8} test,
-for example, issue @samp{ctest -V -R "5FB"}.
+for example, issue @code{ctest -V -R "5FB"}.
@node Writing Tests, , Running Tests, Testing Framework
@subsubsection Writing Tests
@@ -9507,7 +9521,7 @@ is now @env{LEDGER_PRICE_EXP}.
@end itemize
-@node Example Journal File, Miscellaneous Notes, Major Changes from version 2.6, Top
+@node Example Journal File, Miscellaneous Notes, Major Changes from version 2.6, Top
@appendix Example Journal File
The following journal file is included with the source distribution of
@@ -9603,10 +9617,10 @@ to the main body of the documentation.
@smallexample
$ ledger --group-by "tag('trip')" bal
-$ legder reg --sort "tag('foo')" %foo
+$ ledger reg --sort "tag('foo')" %foo
$ ledger cleared VWCU NFCU Tithe Misentry
$ ledger register Joint --uncleared
-$ ledger register Checking --sort d -d 'd>[2011/04/01]' until 2011/05/25
+$ ledger register Checking --sort d -d 'd>[2011/04/01]' until 2011/05/25
@end smallexample
@node Ledger Files, , Invoking Ledger, Cookbook