  When light hits a multilayer planar stack, it is reflected, refracted, and
absorbed in a way that can be derived from the Fresnel equations. The analysis
is treated in many textbooks, and implemented in many software programs, but
certain aspects of it are difficult to find explicitly and consistently worked
out in the literature. Here, we derive the formulas underlying the
transfer-matrix method of calculating the optical properties of these stacks,
including oblique-angle incidence, absorption-vs-position profiles, and
ellipsometry parameters. We discuss and explain some strange consequences of
the formulas in the situation where the incident and/or final (semi-infinite)
medium are absorptive, such as calculating $T>1$ in the absence of gain. We
also discuss some implementation details like complex-plane branch cuts.
Finally, we derive modified formulas for including one or more "incoherent"
layers, i.e. very thick layers in which interference can be neglected. This
document was written in conjunction with the "tmm" Python software package,
which implements these calculations.
