Converting Latex Documents to Sage Worksheets

Introduction

Latex documents can be translated to jsMath, the tool used to render mathematics in the Sage notebook. This project is about automating the conversion process so that authors can easily use a single command to convert a book-length Latex document to a collection of Sage worksheets. These could have embedded Sage input cells, possibly containing interacts, and the cross-referencing features of Latex would be preserved in the collection of Sage worksheets.
Rob Beezer, [email protected], rbeezer on #sage-devel IRC

Supported by

Conversion Software

Mercurial Repository @BitBucket
Clone using:

hg clone https://[email protected]/rbeezer/tex2sws/

Linear Algebra Patches

This table tracks patches meant to support the teaching of introductory linear algebra and the enhancement of Beezer's "A First Course in Linear Algebra."

Some tickets below that are available for review can be seen building and passing tests at the Sage PatchBot. Failures can be due to improper listing of necessary prerequisites, or builds not caught up with latest alpha version, so do not necessarily mean a ticket is not ready for review.

Ticket

Description

Status

Acknowledgements

8071

trivial matrix kernels over non-fields

4.4.alpha0

Martin Albrecht

10362

vector constructor documentation

4.6.1.alpha3

Andrey Novoseltsev

10422

documentation fix on new_matrix constructor

4.6.1.alpha3

Benjamin Jones

10189

additions to all-ones matrix constructor

4.6.2.alpha0

Karl-Dieter Crisman, Robert Miller

10364

zero_vector constructor, vector constructor error-checking

4.6.2.alpha0

Andrey Novoseltsev

10424

matrix augment accepts a vector

4.6.2.alpha0

Joris Vankerschaver, Robert Bradshaw

10625

generic Smith form fails on integer matrices

4.6.2.alpha2

Author: David Loeffler

4492

block matrix constructor

4.6.2.alpha3

Author: Willem Jan Palenstijn

8948

latex printing for vectors

4.6.2.alpha3

Author: Jason Grout

10454

add .is_singular()

4.6.2.alpha3

Robert Bradshaw

10471

conjugate-transpose of a matrix

4.6.2.alpha3

Robert Bradshaw

10500

documentation: matrix row/column linear combinations

4.6.2.alpha3

Alyson Deines

10535

column-oriented matrix constructor

4.6.2.alpha3

Dan Drake

10537

dictionary input to vector constructor

4.6.2.alpha3

Dima Pasechnik

10626

route sparse integer matrices to specialized Smith form

4.6.2.alpha3

David Loeffler

10627

matrix pretty-printing

4.6.2.alpha3

Author: Ivan Andrus

9796

diagonal elements of a matrix

positive review

Tom Coates

10028

improved error messages for non-invertible matrices

positive review

Author: Andre Apitzsch

10541

row and column matrix from vector, deprecate transpose

positive review

Volker Braun, Marco Streng

10543

echelon form over QQ is mutable

positive review

Tom Coates

10604

diagonal matrix constructor rewrite

positive review

Joint with: Dan Drake

10714

rows/columns of sparse matrices with zero rows/columns

positive review

Jason Grout

8046

add double dense matrix file to documentation

with patch

8094

properties for matrices

with patch

Harald Schilly, Jason Grout

10426

matrix row and column swapping, returns new matrix

with patch

10470

listing infinite vector space just hangs

with patch

10477

random vector constructor

with patch

10536

vector conjugation

with patch, dep. 10537

10545

outer product of vectors

with patch, dep. 10541

10683

Hermitian inner product, doctests

with patches, dep. 10536, 10541

10737

extended echelon form

with patch, dep. 10543

10746

refactor matrix kernels

needs info, with patches, dep. 10714

10465

adjoint meta-ticket

information, dep. 10471, 8094, 10501

10501

deprecate adjoint in favor of adjugate

needs work

10544

LLL reduced bases for right kernels

new

10595

vector constructor fails with only empty list

needs work, dep. 10537

Examples

To view a worksheet, click on the "worksheet" link, then in the resulting page find the big blue download box and use your browser's function to copy the link there. Then open your notebook, click the "Upload" link near the upper-left and then paste in the link into the URL field (the second one).

Note: If your version of Sage is 4.3.2 or older then some examples may not render quite right. See way below for how to edit older configurations.

tex4ht

This is a list of known configurations of tex4ht that seem to work:

sws2tex, Example
Anybody want to try for the round-trip, Latex -> SWS -> Latex?

jsMath Safe Boxes Edit

For Sage versions prior to 4.3.3.alpha0 (sagenb prior to 0.7.5) it is necessary to slightly tweak the jsMath configuration in Sage. It is a one-character edit. You can still view the sections, but "reasons" given in math displays (generally in proofs) won't render right and you will see lots of "@a()" stuff. This was fixed in Trac 8202 for Sage 4.3.3. Check your version of Sage with sage --version.

The file to edit is

SAGE_ROOT/local/lib/python/site-packages/sagenb-0.6-py2.6.egg/sagenb/data/sage/js/jsMath.js

where you might have to adjust the numbering on the sagenb package. Then at line 97 (or thereabouts) make the following change

jsMath.safeHBoxes=1 --> jsMath.safeHBoxes=0

Also, these examples have a bit of a formatting problem for larger matrices (more than two rows) on my setup, but I'm uncertain if that is my problem or more general. A report, either way, would be appreciated if you look at these.

The 20% Defying Categorization