1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Maxima 5.47.0 Manual: Introduction to alt-display</title>
<meta name="description" content="Maxima 5.47.0 Manual: Introduction to alt-display">
<meta name="keywords" content="Maxima 5.47.0 Manual: Introduction to alt-display">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="maxima_toc.html#Top" rel="start" title="Top">
<link href="maxima_423.html#Function-and-Variable-Index" rel="index" title="Function and Variable Index">
<link href="maxima_toc.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="maxima_180.html#alt_002ddisplay_002dpkg" rel="up" title="alt-display-pkg">
<link href="maxima_182.html#Functions-and-Variables-for-alt_002ddisplay" rel="next" title="Functions and Variables for alt-display">
<link href="maxima_180.html#alt_002ddisplay_002dpkg" rel="previous" title="alt-display-pkg">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
body {color: black; background: white; margin-left: 8%; margin-right: 13%;
font-family: "FreeSans", sans-serif}
h1 {font-size: 150%; font-family: "FreeSans", sans-serif}
h2 {font-size: 125%; font-family: "FreeSans", sans-serif}
h3 {font-size: 100%; font-family: "FreeSans", sans-serif}
a[href] {color: rgb(0,0,255); text-decoration: none;}
a[href]:hover {background: rgb(220,220,220);}
div.textbox {border: solid; border-width: thin; padding-top: 1em;
padding-bottom: 1em; padding-left: 2em; padding-right: 2em}
div.titlebox {border: none; padding-top: 1em; padding-bottom: 1em;
padding-left: 2em; padding-right: 2em; background: rgb(200,255,255);
font-family: sans-serif}
div.synopsisbox {
border: none; padding-top: 1em; padding-bottom: 1em; padding-left: 2em;
padding-right: 2em; background: rgb(255,220,255);}
pre.example {border: 1px solid rgb(180,180,180); padding-top: 1em;
padding-bottom: 1em; padding-left: 1em; padding-right: 1em;
background-color: rgb(238,238,255)}
div.spacerbox {border: none; padding-top: 2em; padding-bottom: 2em}
div.image {margin: 0; padding: 1em; text-align: center}
div.categorybox {border: 1px solid gray; padding-top: 1em; padding-bottom: 1em;
padding-left: 1em; padding-right: 1em; background: rgb(247,242,220)}
img {max-width:80%; max-height: 80%; display: block; margin-left: auto; margin-right: auto}
-->
</style>
<link rel="icon" href="figures/favicon.ico">
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6>"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Introduction-to-alt_002ddisplay"></a>
<div class="header">
<p>
Next: <a href="maxima_182.html#Functions-and-Variables-for-alt_002ddisplay" accesskey="n" rel="next">Functions and Variables for alt-display</a>, Previous: <a href="maxima_180.html#alt_002ddisplay_002dpkg" accesskey="p" rel="previous">alt-display-pkg</a>, Up: <a href="maxima_180.html#alt_002ddisplay_002dpkg" accesskey="u" rel="up">alt-display-pkg</a> [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_423.html#Function-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>
<a name="Introduction-to-alt_002ddisplay-1"></a>
<h3 class="section">39.1 Introduction to alt-display</h3>
<p>The <em>alt-display</em> package provides a means to change the way that
Maxima displays its output. The <var>*alt-display1d*</var> and
<var>*alt-display2d*</var> Lisp hooks were introduced to Maxima in 2002, but
were not easily accessible from the Maxima REPL until the introduction
of this package.
</p>
<p>The package provides a general purpose function to define alternative
display functions, and a separate function to set the display
function. The package also provides customized display functions to
produce output in TeX, Texinfo, XML and all three output formats
within Texinfo.
</p>
<p>Here is a sample session:
</p>
<div class="example">
<pre class="example">(%i1) load("alt-display.mac")$
(%i2) set_alt_display(2,tex_display)$
(%i3) x/(x^2+y^2) = 1;
\mbox{\tt\red({\it \%o_3}) \black}$${{x}\over{y^2+x^2}}=1$$
(%i4) set_alt_display(2,mathml_display)$
(%i5) x/(x^2+y^2) = 1;
<math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>mlabel</mi>
<mfenced separators=""><msub><mi>%o</mi> <mn>5</mn></msub>
<mo>,</mo><mfrac><mrow><mi>x</mi> </mrow> <mrow><msup><mrow>
<mi>y</mi> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup><mrow>
<mi>x</mi> </mrow> <mn>2</mn> </msup> </mrow></mfrac> <mo>=</mo>
<mn>1</mn> </mfenced> </math>
(%i6) set_alt_display(2,multi_display_for_texinfo)$
(%i7) x/(x^2+y^2) = 1;
@iftex
@tex
\mbox{\tt\red({\it \%o_7}) \black}$${{x}\over{y^2+x^2}}=1$$
@end tex
@end iftex
@ifhtml
@html
<math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>mlabel</mi>
<mfenced separators=""><msub><mi>%o</mi> <mn>7</mn></msub>
<mo>,</mo><mfrac><mrow><mi>x</mi> </mrow> <mrow><msup><mrow>
<mi>y</mi> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup><mrow>
<mi>x</mi> </mrow> <mn>2</mn> </msup> </mrow></mfrac> <mo>=</mo>
<mn>1</mn> </mfenced> </math>
@end html
@end ifhtml
@ifinfo
@example
(%o7) x/(y^2+x^2) = 1
@end example
@end ifinfo
</pre></div>
<p>If the alternative display function causes an error, the error is
trapped and the display function is reset to the default display. In the
following example, the <code>error</code> function is set to display the
output. This throws an error, which is handled by resetting the
2d-display to the default.
</p>
<div class="example">
<pre class="example">(%i8) set_alt_display(2,?error)$
(%i9) x;
Error in *alt-display2d*.
Message: Condition designator ((MLABEL) $%O9 $X) is not of type
(OR SYMBOL STRING FUNCTION).
*alt-display2d* reset to nil.
-- an error. To debug this try: debugmode(true);
(%i10) x;
(%o10) x
</pre></div>
<a name="Item_003a-alt_002ddisplay_002fnode_002fFunctions-and-Variables-for-alt_002ddisplay"></a><hr>
<div class="header">
<p>
Next: <a href="maxima_182.html#Functions-and-Variables-for-alt_002ddisplay" accesskey="n" rel="next">Functions and Variables for alt-display</a>, Previous: <a href="maxima_180.html#alt_002ddisplay_002dpkg" accesskey="p" rel="previous">alt-display-pkg</a>, Up: <a href="maxima_180.html#alt_002ddisplay_002dpkg" accesskey="u" rel="up">alt-display-pkg</a> [<a href="maxima_toc.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="maxima_423.html#Function-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|