# Extract terms from a sum

Is there some way to programmatically extract the first, second, third, and so on terms from a sum of symbolic terms (or equivalently, turn such a sum into the list of its summands)? For example, after

sage: A,B,C = var('A'), var('B'), var('C')
sage: F = A*B+C; F
A*B + C


Is there some method you can call on F to extract A*B (or C)? This would be useful especially for displaying sage in LaTeX via sageTeX when a formula that is the sum of 4 terms (say) runs over the margin and has to be split up somehow. I would also be interested in a workaround in sageTeX that would allow you to flexibly insert a linebreak in a formula under the circumstances that the formula generated by Sage got too long for a line.

edit retag close merge delete

Can you start a different question about the SageTeX thing? It's sort of buried here, and should really have the honor of its own question.

Sort by » oldest newest most voted

Look at the operator() and operands() built-in methods of the Symbolic Expression class:

sage: F.operator()
sage: F.operands()
[A*B, C]
sage: F == F.operator()(*F.operands())
A*B + C == A*B + C
sage: bool(F == F.operator()(*F.operands()))
True

more