:experimental:

== Introduction to the KiCad Schematic Editor

=== Description

The KiCad Schematic Editor is a schematic capture software distributed as a
part of KiCad and available under the following operating systems:

* Linux
* Apple macOS
* Windows

Regardless of the OS, all KiCad files are 100% compatible from one OS to
another.

The Schematic Editor is an integrated application where all functions of
drawing, control, layout, library management and access to the PCB design
software are carried out within the editor itself.

The KiCad Schematic Editor is intended to cooperate with the KiCad PCB Editor,
which is KiCad's printed circuit design software. It can also export netlist
files, which lists all the electrical connections, for other packages.

The Schematic Editor includes a symbol library editor, which can create and
edit symbols and manage libraries.
It also integrates the following additional but essential functions needed for
modern schematic capture software:

* Electrical rules check (ERC) for the automatic control of incorrect and missing
  connections
* Export of plot files in many formats (Postscript, PDF, HPGL, and SVG)
* Bill of Materials generation (via Python or XSLT scripts, which allow many flexible formats).

=== Technical overview

The Schematic Editor is limited only by the available memory. There is thus no
real limitation to the number of components, component pins, connections or
sheets.  In the case of multi-sheet schematics, the representation is
hierarchical.

The Schematic Editor can use multi-sheet schematics in a few ways:

* Simple hierarchies (each schematic is used only once).
* Complex hierarchies (some schematics are used more than once with multiple
  instances).
* Flat hierarchies (schematics are not explicitly connected in a master
  diagram).

[[initial-configuration]]
=== Initial Configuration

When the Schematic Editor is run for the first time, if the the global symbol
library table file `sym-lib-table` is not found in the KiCad configuration
folder then KiCad will ask how to create this file:

image::images/en/symbol-lib-table-configuration.png[scaledwidth="80%",alt="symbol library table initial configuration"]

The first option is recommended (*Copy default global symbol library table
(recommended)*). The default symbol library table includes all of the
standard symbol libraries that are installed as part of KiCad.

If this option is disabled, KiCad was unable to find the default global
symbol library table. This probably means you did not install the standard
symbol libraries with KiCad, or they are not installed where KiCad expects to
find them. On some systems the KiCad libraries are installed as a separate
package.

* If you have installed the standard KiCad symbol libraries and want to use
  them, but the first option is disabled, select the second option and browse to
  the `sym-lib-table` file in the directory where the KiCad libraries were
  installed.
* If you already have a custom symbol library table that you would like to use,
  select the second option and browse to your `sym-lib-table` file.
* If you want to construct a new symbol library table from scratch, select
  the third option.

Symbol library management is described in more detail <<managing-symbol-libraries,later>>.