4

Questions like this have been asked before, Here and here, but neither of these are within a math enviroment.

In context, I would like to type set the approximate solution to an integral to 100 digits.

\begin{align*}
I &=  \left[\left[\cos(1) + \operatorname{Si}(1)\right] - \left[-\left(\operatorname{Si}(0)-\frac{\pi}{2}\right)\right]\right] \\
I &=  \cos(1) + \operatorname{Si}(1) -\frac{\pi}{2} \\
I &\approxeq\num{-0.08441095055957388688903177037359518055393632433151889234592026720612077182783481670736342350213473343}
\end{align*}

For an minimal example, try to typeset

\begin{align}
\pi \approxeq 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352
\end{align}

It appears that \num from siunitx doesn't work, nor does numprint.

Does anyone have a solution?

Final Awnser

The final macro that I went with is:

\newcommand{\longnum}[1]{%
    \parbox[t]{\dimexpr\linewidth-5em\relax}{\num[group-separator={\egroup\egroup\)\egroup\,\linebreak[0]\bgroup\(\iffalse\)\fi\bgroup\bgroup}]{#1}\dots}%
}

This will only work for 8.5in width paper and equations of the form X =. To make it work for other places, change the -5em. Using linegoal did not work for me, as it made the equation not fit the margins.

5

Using the siunitx solution from How to typeset large numbers and the linegoal solution from my half-baked solution to Compute remaining horizontal space in align environment we can get the following.

You can un-outcomment the \ifmeasuring@\else and \fi segments to see a version where the math content is somewhat centered, the number though goes until the right edge of the text.

Also, this does not account for an equation number, especially with \ifmeasuring@, the equation number will be typeset way in the margin.

Code

\documentclass{article}
\usepackage{amsmath,siunitx,amssymb,linegoal}
\usepackage[showframe,pass]{geometry}
\makeatletter
\newcommand*\longnum[2][]{%
%  \ifmeasuring@\else
  \parbox[t]{\linegoal}{\num[group-separator={\egroup\egroup\)\egroup\,\linebreak[0]\bgroup\(\bgroup\bgroup},#1]{#2}}%
%  \fi
}
\makeatother
\begin{document}
\begin{align*}
I &=  \left[\left[\cos(1) + \operatorname{Si}(1)\right] - \left[-\left(\operatorname{Si}(0)-\frac{\pi}{2}\right)\right]\right] \\
I &=  \cos(1) + \operatorname{Si}(1) -\frac{\pi}{2} \\
I & \approxeq\longnum{-0.08441095055957388688903177037359518055393632433151889234592026720612077182783481670736342350213473343}
\end{align*}
\end{document}

Output

enter image description here

  • Hmm, it seems to mess up syntax highlighting. Everything after it is recognised as an equation. Anyway, while this works, it does look fairly awkward. How could we account for a tag, and indent the second line so that it lines up with the first? – NictraSavios Nov 10 '13 at 9:42
  • 1
    @NictraSavios The highlighting is an editor issue (I have it, too). For the tag, we could subtract its with from \linegoal, say \dimexpr-1.5em+\linegoal\relax. Regarding the second line: Do it manually or use \raggedleft. – Qrrbrbirlbel Nov 10 '13 at 9:45
  • Alright, now would there be a way to fix the editor issue? It's a bit nitpicky, but if it was possible, this would be an ideal solution. – NictraSavios Nov 10 '13 at 9:57
  • @NictraSavios - Which editor do you use? – Mico Nov 10 '13 at 10:18
  • 1
    @NictraSavios You can try adding \) after the %, some editors seem to accept this (some sources suggest this). If this fails, you can add \iffalse\)\fi either directly after the offending \( or after the whole \parbox or after } from the definition of \longnum. – Qrrbrbirlbel Nov 10 '13 at 10:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.