LaTeX source code for introductory physics textbooks
TeX Ruby M4 Perl Makefile Gnuplot
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
cp
data
lm
me
problems
scripts
share
sn
watermark
.gitignore
INTERNALS
LICENSE
Makefile
README
README.md
TODO
check_for_colliding_figures.rb
custom_html.yaml
eruby_util.rb
fruby
fullembed.map
learn-cmd-syntax.sty
lm.m4
lm.make
lmcommon.sty
lmenvironments.sty
lmfigs.sty
lmlanguage.sty
lmlayout.sty
lmmath.sty
lmseries.cls
lmseries.m4
mv_silent
mytocloft.sty
process_geom_file.pl
shaddap.sty
standalone.css

README.md

Light and matter

This is the LaTeX source code for a set of several different introductory physics textbooks, at a variety of mathematical levels. One of the books is called Light and Matter, but several others are also included in this source code archive. For more information about the books, see their web site at lightandmatter.com.

producing pdf output

Compiling the book into pdf format is fairly easy on a Linux machine. Basically you just need to install some open-source software. The following are the relevant packages on a Debian-based system such as Ubuntu: texlive-full m4 inkscape imagemagick libjson-ruby libjson-perl (version 2.0 or higher) ruby 1.9.2, packaged as ruby1.9 (karmic koala) or simply as ruby (lucid lynx) xml-twig-tools qpdf poppler-utils

Go to the main directory (the one where you found this README).

Make sure you have at least inkscape 0.47 and ruby 1.9. The following command will make all the necessary scripts executable, and will also test whether your version of ruby is new enough to use: make setup

Convert all the figures from editable svg format to pdf format: make lm_cover make all_figures Ignore the warnings that say "WARNING **: No export filename given and no filename hint. Nothing exported."

Produce pdf output of all the books: make books_all

If you have trouble getting this to work, see the section below titled "troubleshooting, bugs, and workarounds."

I haven't tried compiling the books on MacOS X or Windows. I suspect it could be done on MacOS X without any heroic measures, and I suspect that it would be a real pain on Windows.

producing html, epub, and mobi output

To produce html output requires a little more software. First, you need the following additional Debian packages: xpdf imagemagick tex4ht dvipng (The xpdf dependency is because of pdftoppm, which comes bundled with it.)

You'll also need footex: http://www.lightandmatter.com/footex/footex.html

If you want to produce epub and mobi output, you'll also need to install calibre.

Once you've done this, you can use this command: make web

troubleshooting, bugs, and workarounds

If you modify a file between compiles, it may cause ruby errors. Workaround: recompile from scratch. I think this may happen if your edits change which figure groups exist. Figures are positioned on the wrong side of the page, as if odd and even are confused. This continues through the end of the chapter. This happened to me in May '08 with ch. 10 of SN. Doing a make clean && make book to start fresh didn't help. However, when I got up the next morning and tried again, it didn't happen! This may be a problem where iterations of pdflatex don't converge on pagination. Narrowfigwidecaption doesn't reliably detect even/odd page. Goofy typesetting of symbols at end of hw in SN. Don't use \hwendpart macro at the very end of a problem. 'Make prepress' dies with an error from ghostscript, "ExtGState 's6' is unknown". This happens with some figures when the figure is saved as pdf by inkscape, e.g., gravity-probe-g-geodetic. The workaround is to save it as a bitmap. The error can be detected by opening the file with xpdf; uses same lib as gs, gives same error. https://bugs.launchpad.net/inkscape/+bug/681512 This is a problem with cairo, can be fixed by upgrading from ubuntu maverick to natty. Figure positioning doesn't work, no feedback loop. This can happen because there is no end_chapter in the rbtex file.

Miscellaneous

More technical details about the software setup are in INTERNALS.