Initial commit of new documentation structure
This commit is contained in:
parent
11a9063958
commit
cce00a33de
6 changed files with 1630 additions and 87 deletions
161
doc/L3-Introduction.texi
Normal file
161
doc/L3-Introduction.texi
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
@c -*-texinfo-*-
|
||||
|
||||
@ledgerprog@ is an accounting tool with the moxie to exist. It provides no
|
||||
bells or whistles, and returns the user to the days before user
|
||||
interfaces were even a twinkling in their father's CRT.
|
||||
|
||||
What it does offer is a double-entry accounting journal with all the
|
||||
flexibility and muscle of its modern day cousins, without any of the
|
||||
fat. Think of it as the Bran Muffin of accounting tools.
|
||||
|
||||
To use it, you need to start keeping a journal. This is the basis of
|
||||
all accounting, and if you haven't started yet, now is the time to
|
||||
learn. The little booklet that comes with your checkbook is a journal,
|
||||
so we'll describe double-entry accounting in terms of that.
|
||||
|
||||
A checkbook journal records debits (subtractions, or withdrawals) and
|
||||
credits (additions, or deposits) with reference to a single account:
|
||||
the checking account. Where the money comes from, and where it goes
|
||||
to, are described in the payee field, where you write the person or
|
||||
company's name. The ultimate aim of keeping a checkbook journal is to
|
||||
know how much money is available to spend. That's really the aim of
|
||||
all journals.
|
||||
|
||||
What computers add is the ability to walk through these postings,
|
||||
and tell you things about your spending habits; to let you devise
|
||||
budgets and get control over your spending; to squirrel away money
|
||||
into virtual savings account without having to physically move money
|
||||
around; etc. As you keep your journal, you are recording information
|
||||
about your life and habits, and sometimes that information can start
|
||||
telling you things you aren't aware of. Such is the aim of all good
|
||||
accounting tools.
|
||||
|
||||
The next step up from a checkbook journal, is a journal that keeps track
|
||||
of all your accounts, not just checking. In such a journal, you record
|
||||
not only who gets paid---in the case of a debit---but where the money
|
||||
came from. In a checkbook journal, its assumed that all the money
|
||||
comes from your checking account. But in a general journal, you write
|
||||
posting two-lines: the source account and target account.
|
||||
@emph{There must always be a debit from at least one account for every
|
||||
credit made to another account}. This is what is meant by
|
||||
``double-entry'' accounting: the journal must always balance to zero,
|
||||
with an equal number of debits and credits.
|
||||
|
||||
|
||||
For example, let's say you have a checking account and a brokerage
|
||||
account, and you can write checks from both of them. Rather than keep
|
||||
two checkbooks, you decide to use one journal for both. In this general
|
||||
journal you need to record a payment to Pacific Bell for your monthly
|
||||
phone bill, and a transfer (via check) from your brokerage account to
|
||||
your checking account. The Pacific Bell bill is $23.00, let's say, and
|
||||
you want to pay it from your checking account. In the general journal
|
||||
you need to say where the money came from, in addition to where it's
|
||||
going to. These transactions might look like this:
|
||||
|
||||
@smallexample
|
||||
9/29 Pacific Bell $23.00 $23.00
|
||||
Checking $-23.00 0
|
||||
9/30 Checking $100.00 $100.00
|
||||
(123) Brokerage $-100.00 0
|
||||
@end smallexample
|
||||
|
||||
The posting must balance to $0: $23 went to Pacific Bell, $23 came from
|
||||
Checking. The next entry shows check number 123 written against your
|
||||
brokerage account, transfering money to your checking account. There is
|
||||
nothing left over to be accounted for, since the money has simply moved
|
||||
from one account to another in both cases. This is the basis of
|
||||
double-entry accounting: money never pops in or out of existence; it is
|
||||
always a posting from one account to another.
|
||||
|
||||
Keeping a general journal is the same as keeping two separate journals:
|
||||
One for Pacific Bell and one for Checking. In that case, each time a
|
||||
payment is written into one, you write a corresponding withdrawal into
|
||||
the other. This makes it easier to write in a ``running balance'',
|
||||
since you don't have to look back at the last time the account was
|
||||
referenced---but it also means having a lot of journal books, if you
|
||||
deal with multiple accounts.
|
||||
|
||||
Here is a good place for an aside on the use of the word `account'.
|
||||
Most private people consider an account to be something that holds money
|
||||
at an institution for them. @ledgerprog@ uses a more general definition
|
||||
of the word. An account is anywhere money can go. Other finance
|
||||
programs use ``categories'', @ledgerprog@ uses accounts. So, for
|
||||
example, if you buy some groceries at Trader Joe's then more groceries
|
||||
at Whole Foods Markets you might assign the transactions like this
|
||||
@smallexample
|
||||
2011/03/15 Trader Joe's
|
||||
Expenses:Groceries $100.00
|
||||
Assets:Checking
|
||||
2011/03/15 Whole Food Market
|
||||
Expenses:Groceries $75.00
|
||||
Assets:Checking
|
||||
@end smallexample
|
||||
In both cases the money goes to the ``Groceries'' account, even though
|
||||
the payees were different. You can set up your accounts in any way you
|
||||
choose.
|
||||
|
||||
Enter the beauty of computerized accounting. The purpose of the
|
||||
@ledgerprog@ program is to make general journal accounting simple, by keeping
|
||||
track of the balances for you. Your only job is to enter the
|
||||
postings. If a posting does not balance, @ledgerprog@ displays an
|
||||
error and indicates the incorrect posting.@footnote{In some
|
||||
special cases, it automatically balances this transaction for you.}
|
||||
|
||||
In summary, there are two aspects of @ledgerprog@ use: updating the journal
|
||||
data file, and using the @ledgerprog@ tool to view the summarized result of
|
||||
your transactions.
|
||||
|
||||
And just for the sake of example---as a starting point for those who
|
||||
want to dive in head-first---here are the journal transactions from above,
|
||||
formatted as the @ledgerprog program wishes to see them:
|
||||
|
||||
@smallexample
|
||||
2004/09/29 Pacific Bell
|
||||
Expenses:Pacific Bell $23.00
|
||||
Assets:Checking
|
||||
@end smallexample
|
||||
|
||||
The account balances and registers in this file, if saved as
|
||||
@file{ledger.dat}, could be reported using:
|
||||
|
||||
@example
|
||||
$ ledger -f ledger.dat balance
|
||||
$ ledger -f ledger.dat register checking
|
||||
$ ledger -f ledger.dat register bell
|
||||
@end example
|
||||
|
||||
An important difference between @ledgerprog@ and other finance packages is
|
||||
that journal will never alter your input file. You can create and edit
|
||||
that file in any way you prefer, but journal is only for analyzing the
|
||||
data, not for altering it.
|
||||
|
||||
@section More introduction
|
||||
|
||||
|
||||
@section Building the program
|
||||
|
||||
@ledgerprog@ is written in ANSI C++, and should compile on any platform. It
|
||||
depends on the GNU multiprecision integer library (libgmp), and the
|
||||
Perl regular expression library (libpcre). It was developed using GNU
|
||||
make and gcc 3.3, on a PowerBook running OS/X.
|
||||
|
||||
To build and install once you have these libraries on your system,
|
||||
enter these commands:
|
||||
|
||||
@example
|
||||
./configure && make install
|
||||
@end example
|
||||
|
||||
@section Getting help
|
||||
|
||||
If you need help on how to use @ledgerprog, or run into problems, you can
|
||||
join the @ledgerprog@ mailing list at the following Web address:
|
||||
|
||||
@example
|
||||
http://groups.google.com/group/ledger-cli
|
||||
@end example
|
||||
|
||||
You can also find help at the @samp{#ledger} channel on the IRC server
|
||||
@samp{irc.freenode.net}.
|
||||
|
||||
@node Quick Reference, Ledger Tutorial, Introduction, Top
|
||||
323
doc/L3-Journal.texi
Normal file
323
doc/L3-Journal.texi
Normal file
|
|
@ -0,0 +1,323 @@
|
|||
@c -*-texinfo-*-
|
||||
The most important part of accounting is keeping a good journal. If you
|
||||
have a good journal, tools can be written to work whatever mathematical
|
||||
tricks you need to better understand your spending patterns. Without a
|
||||
good journal, no tool, however smart, can help you.
|
||||
|
||||
The @ledgerprog@ program aims at making journal transactions as simple as
|
||||
possible. Since it is a command-line tool, it does not provide a user
|
||||
interface for keeping a journal. If you like, you may use GnuCash to
|
||||
maintain your journal, in which case @ledgerprog@ will read
|
||||
GnuCash's data files directly. In that case, read the GnuCash manual
|
||||
now, and skip to the next chapter.
|
||||
|
||||
If you are not using GnuCash, but a text editor to maintain your
|
||||
journal, read on. @ledgerprog@ has been designed to make data transactions as
|
||||
simple as possible, by keeping the journal format easy, and also by
|
||||
automagically determining as much information as possible based on the
|
||||
nature of your transactions.
|
||||
|
||||
For example, you do not need to tell @ledgerprog@ about the accounts you
|
||||
use. Any time @ledgerprog@ sees a posting involving an account it knows
|
||||
nothing about, it will create it@footnote{This also means if you
|
||||
misspell an account it will end up getting counted separately from what
|
||||
you intended. The provided Emacs major mode provides for automatically
|
||||
filling in account names.}. If you use a commodity that is new to
|
||||
@ledgerprog@, it will create that commodity, and determine its display
|
||||
characteristics (placement of the symbol before or after the amount,
|
||||
display precision, etc) based on how you used the commodity in the
|
||||
posting.
|
||||
|
||||
@section The Most Basic Entry
|
||||
|
||||
Here is the Pacific Bell example from above, given as a @ledgerprog@
|
||||
posting, with the additional of a check number:
|
||||
|
||||
@smallexample
|
||||
9/29 (1023) Pacific Bell
|
||||
Expenses:Utilities:Phone $23.00
|
||||
Assets:Checking $-23.00
|
||||
@end smallexample
|
||||
|
||||
As you can see, it is very similar to what would be written on paper,
|
||||
minus the computed balance totals, and adding in account names that work
|
||||
better with @ledgerprog@'s scheme of things. In fact, since
|
||||
@ledgerprog@ is smart about many things, you don't need to specify the
|
||||
balanced amount, if it is the same as the first line:
|
||||
|
||||
@smallexample
|
||||
9/29 (1023) Pacific Bell
|
||||
Expenses:Utilities:Phone $23.00
|
||||
Assets:Checking
|
||||
@end smallexample
|
||||
|
||||
For this transaction, @ledgerprog@ will figure out that $-23.00 must come from
|
||||
@samp{Assets:Checking} in order to balance the transaction.
|
||||
|
||||
Also note the structure of the account entries. There is an implied
|
||||
hierarchy established by separating with colons. See
|
||||
(@pxref{Structuring Your Accounts}) for details and suggestions regarding
|
||||
your accounts.
|
||||
|
||||
|
||||
|
||||
@strong{The format is very flexible and it isn't necessary that you
|
||||
indent and space out things exactly as shown. The only requirements are
|
||||
that the start of the transaction (the date typically) is at the
|
||||
beginning of the first line of the transaction, and the accounts are
|
||||
indented by at least one space. If you omit the leading spaces in the
|
||||
account lines @ledgerprog@ will not count the transaction and will not
|
||||
give an error. There must be at least two spaces, or a tab, between the
|
||||
amount and the account. If you do not have adequate separation between
|
||||
the amount and the account @ledgerprog@ will give an error and stop
|
||||
calculating}
|
||||
|
||||
@section Commodities
|
||||
|
||||
@ledgerprog@ is agnostic when it comes to how you value your accounts.
|
||||
Dollars, Euros, Pounds, Francs, etc. are just ``commodities''. Holdings
|
||||
in stocks, bonds, mutual funds and other financial instrument can be
|
||||
label using whatever is convenient for you (stock ticker symbols are
|
||||
suggested for publicly traded assets).@footnote{you can track ANYTHING,
|
||||
even time. As long as it cannot be created or destroyed inside your
|
||||
accounting system.}
|
||||
|
||||
This is fundamentally different than many common accounting packages,
|
||||
which assume the same currency throughout all of your accounts. This
|
||||
means if you typically operate in Euros, but travel to the US and has
|
||||
some expenses, you would have to do the currency conversion BEFORE you
|
||||
made the entry into your financial system. With ledger this is not
|
||||
required. In the same journal you can have entries in any or all
|
||||
commodities you actually hold. You can use the reporting capabilities
|
||||
to convert all commodities to a single commodity for reporting purposes
|
||||
without ever changing the underlying entry.
|
||||
|
||||
For example, the following entries reflect transaction made for a
|
||||
business trip to Europe from the US:
|
||||
|
||||
@smallexample
|
||||
2011/09/23 Cash in Munich
|
||||
Assets:Cash 50.00 Euros
|
||||
Assets:Checking $-66.00
|
||||
|
||||
2011/09/24 Dinner in Munich
|
||||
Expenses:Business:Travel 35.00 Euro
|
||||
Assets:Cash
|
||||
@end smallexample
|
||||
|
||||
This says that $66.00 came out of checking and turned into 50 Euros. The
|
||||
implied exchange rate was $1.32. Then 35 Euros was spent on Dinner in Munich.
|
||||
|
||||
|
||||
|
||||
@section Structuring your Accounts
|
||||
|
||||
There really are no requirements for how you do this, but to preserve
|
||||
your sanity we suggest some very basic structure to your accounting
|
||||
system.
|
||||
|
||||
At the highest level you have five sorts of accounts: Expenses, Assets,
|
||||
Income, Liabilities and Equity. Briefly, you can think of these as places money goes,
|
||||
places money sits, places money comes from and money you owe.
|
||||
|
||||
Starting the structure off this way will make it simpler for you to get
|
||||
answers to the questions you really need to ask about your finances.
|
||||
|
||||
@section Transaction Notes and Tags
|
||||
@ledgerprog@ 3.0 supports entry and transaction ``notes'', which may
|
||||
contain new metadata and tag markers. Here's an example:
|
||||
|
||||
@smallexample
|
||||
2004/05/27 (100) Credit card company
|
||||
; This is an entry note!
|
||||
; Sample: Value
|
||||
Liabilities:MasterCard $20.00
|
||||
; This is a transaction note!
|
||||
; Sample: Another Value
|
||||
; :MyTag:
|
||||
Assets:Bank:Checking
|
||||
; :AnotherTag:
|
||||
@end smallexample
|
||||
|
||||
An indented paragraph starting with `;' is parsed as a persistent note
|
||||
for its preceding category. These notes will get printed back to you
|
||||
with the ``print'' command. They are accessible to value expressions
|
||||
using the ``note'' variable.
|
||||
|
||||
Further, any occurrence of ``:foo:'' in a note will cause a metadata tag
|
||||
for "foo" to be registered for that entry. You can then search for
|
||||
such transactions using:
|
||||
|
||||
@smallexample
|
||||
ledger reg %foo
|
||||
ldeger reg tag foo
|
||||
@end smallexample
|
||||
|
||||
Also, if any word in the note ends (but does not start) with a colon,
|
||||
the remainder of that line will be taken to be the metadata value for
|
||||
that tag. That is:
|
||||
|
||||
@smallexample
|
||||
; :foo:bar:baz: <-- These are three tags
|
||||
; name: value <-- this is a tag with a value
|
||||
@end smallexample
|
||||
|
||||
Tags with value can be searched for just like tags. In addition, you
|
||||
can further limit your tag search by looking for only those tags that
|
||||
have specific values:
|
||||
|
||||
@smallexample
|
||||
ledger reg %name=value
|
||||
ledger reg tag name=value
|
||||
@end smallexample
|
||||
|
||||
The group-by and sort functions also support tags:
|
||||
@smallexample
|
||||
ledger --group-by "tag('foo')" bal
|
||||
@end smallexample
|
||||
Will produce a balalnce summary of all transanction with tag `foo' group by transactions wiht the same value for `foo'.
|
||||
|
||||
@smallexample
|
||||
ledger reg --sort "tag('foo')" %foo
|
||||
@end smallexample
|
||||
Produces a register view with the transaction have tag `foo' sorted by the tags value.
|
||||
|
||||
Comments that occur before an entry, or which starts at column
|
||||
zero, are always ignored and are neither searched nor printed back.
|
||||
|
||||
|
||||
|
||||
@node File format, , Value expressions, Quick Reference
|
||||
@section File format
|
||||
|
||||
The ledger file format is quite simple, but also very flexible. It
|
||||
supports many options, though typically the user can ignore most of
|
||||
them. They are summarized below.
|
||||
|
||||
The initial character of each line determines what the line means, and
|
||||
how it should be interpreted. Allowable initial characters are:
|
||||
|
||||
@table @code
|
||||
@item NUMBER
|
||||
A line beginning with a number denotes a transaction. It may be followed
|
||||
by any number of lines, each beginning with whitespace, to denote the
|
||||
transaction's account postings. The format of the first line is:
|
||||
|
||||
@example
|
||||
DATE[=EDATE] [*|!] [(CODE)] DESC
|
||||
@end example
|
||||
|
||||
If @samp{*} appears after the date (with optional effective date), it
|
||||
indicates the transaction is ``cleared'', which can mean whatever the user
|
||||
wants it to mean. If @samp{!} appears after the date, it indicates d
|
||||
the transaction is ``pending''; i.e., tentatively cleared from the user's
|
||||
point of view, but not yet actually cleared. If a @samp{CODE} appears
|
||||
in parentheses, it may be used to indicate a check number, or the type
|
||||
of the posting. Following these is the payee, or a description of
|
||||
the posting.
|
||||
|
||||
The format of each following posting is:
|
||||
|
||||
@example
|
||||
ACCOUNT AMOUNT [; NOTE]
|
||||
@end example
|
||||
|
||||
The @samp{ACCOUNT} may be surrounded by parentheses if it is a virtual
|
||||
postings, or square brackets if it is a virtual postings that
|
||||
must balance. The @samp{AMOUNT} can be followed by a per-unit
|
||||
posting cost, by specifying @samp{@@ AMOUNT}, or a complete
|
||||
posting cost with @samp{@@@@ AMOUNT}. Lastly, the @samp{NOTE} may
|
||||
specify an actual and/or effective date for the posting by using
|
||||
the syntax @samp{[ACTUAL_DATE]} or @samp{[=EFFECTIVE_DATE]} or
|
||||
@samp{[ACTUAL_DATE=EFFECtIVE_DATE]}.
|
||||
|
||||
@item =
|
||||
An automated transaction. A value expression must appear after the equal
|
||||
sign.
|
||||
|
||||
After this initial line there should be a set of one or more
|
||||
postings, just as if it were normal transaction. If the amounts of the
|
||||
postings have no commodity, they will be applied as modifiers to
|
||||
whichever real posting is matched by the value expression.
|
||||
|
||||
@item ~
|
||||
A period transaction. A period expression must appear after the tilde.
|
||||
|
||||
After this initial line there should be a set of one or more
|
||||
postings, just as if it were normal transaction.
|
||||
|
||||
@item !
|
||||
A line beginning with an exclamation mark denotes a command directive.
|
||||
It must be immediately followed by the command word. The supported
|
||||
commands are:
|
||||
|
||||
@table @samp
|
||||
@item !include
|
||||
Include the stated journal file.
|
||||
|
||||
@item !account
|
||||
The account name is given is taken to be the parent of all
|
||||
postings that follow, until @samp{!end} is seen.
|
||||
|
||||
@item !end
|
||||
Ends an account block.
|
||||
@end table
|
||||
|
||||
@item ;
|
||||
A line beginning with a colon indicates a comment, and is
|
||||
ignored. Comments will not be returned in a ``print'' response.
|
||||
@item indented ;
|
||||
If the semi colon is indented and occurs inside a transaction, it is
|
||||
parsed as a persistent note for its preceding category. These notes or
|
||||
tags can be used to augment to reporting and filtering capabilities of
|
||||
@ledgerprog.
|
||||
@item Y
|
||||
If a line begins with a capital Y, it denotes the year used for all
|
||||
subsequent transactions that give a date without a year. The year should
|
||||
appear immediately after the Y, for example: @samp{Y2004}. This is
|
||||
useful at the beginning of a file, to specify the year for that file.
|
||||
If all transactions specify a year, however, this command has no effect.
|
||||
|
||||
@item P
|
||||
Specifies a historical price for a commodity. These are usually found
|
||||
in a pricing history file (see the @option{-Q} option). The syntax
|
||||
is:
|
||||
@example
|
||||
P DATE SYMBOL PRICE
|
||||
@end example
|
||||
|
||||
@item N SYMBOL
|
||||
Indicates that pricing information is to be ignored for a given
|
||||
symbol, nor will quotes ever be downloaded for that symbol. Useful
|
||||
with a home currency, such as the dollar ($). It is recommended that
|
||||
these pricing options be set in the price database file, which
|
||||
defaults to @file{~/.pricedb}. The syntax for this command is:
|
||||
@example
|
||||
N SYMBOL
|
||||
@end example
|
||||
|
||||
@item D AMOUNT
|
||||
Specifies the default commodity to use, by specifying an amount in the
|
||||
expected format. The @command{transaction} command will use this commodity
|
||||
as the default when none other can be determined. This command may be
|
||||
used multiple times, to set the default flags for different
|
||||
commodities; whichever is seen last is used as the default commodity.
|
||||
For example, to set US dollars as the default commodity, while also
|
||||
setting the thousands flag and decimal flag for that commodity, use:
|
||||
@example
|
||||
D $1,000.00
|
||||
@end example
|
||||
|
||||
@item C AMOUNT1 = AMOUNT2
|
||||
Specifies a commodity conversion, where the first amount is given to
|
||||
be equivalent to the second amount. The first amount should use the
|
||||
decimal precision desired during reporting:
|
||||
@example
|
||||
C 1.00 Kb = 1024 bytes
|
||||
@end example
|
||||
|
||||
@item i, o, b, h
|
||||
These four relate to timeclock support, which permits @ledgerprog@ to read
|
||||
timelog files. See the timeclock's documentation for more info on the
|
||||
syntax of its timelog files.
|
||||
@end table
|
||||
|
|
@ -1,80 +1,3 @@
|
|||
\input texinfo @c -*-texinfo-*-
|
||||
|
||||
@setfilename ledger.info
|
||||
@settitle Ledger: Command-Line Accounting
|
||||
|
||||
@dircategory User Applications
|
||||
@copying
|
||||
Copyright (c) 2003-2010, 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
|
||||
met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
- Neither the name of New Artisans LLC nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@end copying
|
||||
|
||||
@documentencoding UTF-8
|
||||
|
||||
@iftex
|
||||
@finalout
|
||||
@end iftex
|
||||
|
||||
@titlepage
|
||||
@title Ledger: Command-Line Accounting
|
||||
@author John Wiegley
|
||||
@end titlepage
|
||||
|
||||
@direntry
|
||||
* Ledger: (ledger). Command-Line Accounting
|
||||
@end direntry
|
||||
|
||||
@contents
|
||||
|
||||
@ifnottex
|
||||
@node Top, , (dir), (dir)
|
||||
@top Overview
|
||||
|
||||
@insertcopying
|
||||
@end ifnottex
|
||||
|
||||
@ifnottex
|
||||
@section Copyright
|
||||
@insertcopying
|
||||
@end ifnottex
|
||||
|
||||
@chapter Introduction
|
||||
|
||||
@chapter Principles of accounting
|
||||
|
||||
@chapter Keeping a journal
|
||||
|
||||
@chapter Basic reporting commands
|
||||
|
||||
@chapter Command-line syntax
|
||||
|
||||
@chapter Journal data format
|
||||
|
||||
This chapter offers a complete description of the journal data format,
|
||||
suitable for implementors in other languages to follow. For users,
|
||||
|
|
@ -121,6 +44,10 @@ amount of the first posting is typically positive. Consider:
|
|||
Assets:Checking
|
||||
@end example
|
||||
|
||||
@emph{Note:} It is important to note that there must be at least two spaces between
|
||||
the end of the post and the beginning of the amount (including and
|
||||
commdity designator).
|
||||
|
||||
@section Specifying amounts
|
||||
|
||||
The heart of a journal is the amounts it records, and this fact is
|
||||
|
|
@ -310,13 +237,3 @@ If a transaction uses only one commodity, this commodity is also
|
|||
considered a primary. In fact, when Ledger goes about ensures that
|
||||
all transactions balance to zero, it only ever asks this of primary
|
||||
commodities.
|
||||
|
||||
@chapter Report queries
|
||||
|
||||
@chapter Value expressions
|
||||
|
||||
@chapter Format strings
|
||||
|
||||
@chapter Extending with Python
|
||||
|
||||
@bye
|
||||
96
doc/L3-Main.texi
Normal file
96
doc/L3-Main.texi
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
\input texinfo @c -*-texinfo-*-
|
||||
|
||||
@setfilename ledger.info
|
||||
@settitle Ledger: Command-Line Accounting
|
||||
|
||||
@dircategory User Applications
|
||||
@copying
|
||||
Copyright (c) 2003-2010, 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
|
||||
met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
- Neither the name of New Artisans LLC nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@end copying
|
||||
|
||||
@documentencoding UTF-8
|
||||
|
||||
@iftex
|
||||
@finalout
|
||||
@end iftex
|
||||
|
||||
@macro ledgerprog
|
||||
@sc{ledger}
|
||||
@end macro
|
||||
|
||||
|
||||
@titlepage
|
||||
@title @ledgerprog: Command-Line Accounting
|
||||
@author John Wiegley
|
||||
@end titlepage
|
||||
|
||||
@direntry
|
||||
* Ledger: (ledger). Command-Line Accounting
|
||||
@end direntry
|
||||
|
||||
@contents
|
||||
|
||||
@ifnottex
|
||||
@node Top, , (dir), (dir)
|
||||
@top Overview
|
||||
|
||||
@insertcopying
|
||||
@end ifnottex
|
||||
|
||||
@ifnottex
|
||||
@section Copyright
|
||||
@insertcopying
|
||||
@end ifnottex
|
||||
|
||||
|
||||
@chapter Introduction
|
||||
|
||||
@include Introduction3.texi
|
||||
|
||||
@chapter Principles of accounting
|
||||
@include Principles3.texi
|
||||
@chapter Keeping a journal
|
||||
@include Journal3.texi
|
||||
@chapter Basic reporting commands
|
||||
|
||||
@chapter Command-line syntax
|
||||
@include Syntax3.texi
|
||||
@chapter Journal data format
|
||||
@include JournalFormat3.texi
|
||||
|
||||
@chapter Report queries
|
||||
|
||||
@chapter Value expressions
|
||||
|
||||
@chapter Format strings
|
||||
|
||||
@chapter Extending with Python
|
||||
|
||||
@bye
|
||||
2
doc/L3-Principles.texi
Normal file
2
doc/L3-Principles.texi
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
@c -*-texinfo-*-
|
||||
|
||||
1044
doc/L3-Syntax.texi
Normal file
1044
doc/L3-Syntax.texi
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue