calculus 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +21 -21
- data/lib/calculus/latex.rb +2 -2
- data/lib/calculus/version.rb +1 -1
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -4,33 +4,33 @@ Calculus is utility library which allow to parse some subset of latex equations
|
|
4
4
|
|
5
5
|
== Installation
|
6
6
|
|
7
|
-
|
7
|
+
gem install calculus
|
8
8
|
|
9
9
|
== Examples
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
11
|
+
001:0> require 'calculus'
|
12
|
+
true
|
13
|
+
002:0> exp = Calculus::Expression.new("2 + 3 * x")
|
14
|
+
#<Expression:f46e77a9377ed2d5a9da768496a7e1c20be51bfe postfix_notation=[2, 3, "x", :mul, :plus] variables={"x"=>nil}>
|
15
|
+
003:0> exp.postfix_notation
|
16
|
+
[2, 3, "x", :mul, :plus]
|
17
|
+
004:0> exp.abstract_syntax_tree
|
18
|
+
[:plus, 2, [:mul, 3, "x"]]
|
19
|
+
005:0> exp.variables
|
20
|
+
["x"]
|
21
|
+
006:0> exp.unbound_variables
|
22
|
+
["x"]
|
23
|
+
007:0> exp["x"] = 5
|
24
|
+
5
|
25
|
+
008:0> exp.unbound_variables
|
26
|
+
[]
|
27
|
+
009:0> exp.calculate
|
28
|
+
17
|
29
29
|
|
30
30
|
You can also render expression to PNG image if you have <tt>latex</tt> and <tt>dvipng</tt> installed.
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
010:0> Calculus::Expression.new("2 + 3 \\cdot x").to_png
|
33
|
+
"/tmp/d20110512-16457-dhxt71/f46e77a9377ed2d5a9da768496a7e1c20be51bfe.png"
|
34
34
|
|
35
35
|
{2 + 3 \cdot x}[http://files.avsej.net/expression.png]
|
36
36
|
|
data/lib/calculus/latex.rb
CHANGED
@@ -13,7 +13,7 @@ module Calculus
|
|
13
13
|
\\end{document}
|
14
14
|
EOT
|
15
15
|
|
16
|
-
def to_png(density = 700)
|
16
|
+
def to_png(background = 'White', density = 700)
|
17
17
|
raise CommandNotFoundError, "Required commands missing: #{missing_commands.join(', ')} in PATH. (#{ENV['PATH']})" unless missing_commands.empty?
|
18
18
|
|
19
19
|
temp_path = Dir.mktmpdir
|
@@ -21,7 +21,7 @@ module Calculus
|
|
21
21
|
File.open("#{sha1}.tex", 'w') do |f|
|
22
22
|
f.write(TEMPLATE.sub('#', self.to_s))
|
23
23
|
end
|
24
|
-
`latex -interaction=nonstopmode #{sha1}.tex && dvipng -q -T tight -bg
|
24
|
+
`latex -interaction=nonstopmode #{sha1}.tex && dvipng -q -T tight -bg #{background} -D #{density.to_i} -o #{sha1}.png #{sha1}.dvi`
|
25
25
|
end
|
26
26
|
return File.join(temp_path, "#{sha1}.png") if $?.exitstatus.zero?
|
27
27
|
ensure
|
data/lib/calculus/version.rb
CHANGED