NAV

Introduction

This is the official RbTeX documentation. The documentation here includes the useage of RbTeX, both for LaTeX and for Ruby, and other information regarding RubyLatex.

Installing

RubyLatex was build on OS X 10.11 (El Capitan), and as such is configured for that environment. The install script included in the install directory will (probably) work for Linux as well as OS X, but definitely will not work for Windows. Simply run sudo ./osx_texlive and watch the magic happen.

LaTeX

On the LaTeX side, you simply need to include the rubylatex package. The package includes several commands discussed in this section.

You can include the rubylatex package like this

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}
% content here
\end{document}

RbTeX

\RbTeX is a fancy command that displays the RbTeX logo. It must be used in math mode.

Let’s produce the pretty logo in the top left corner of this page

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}
Hi! I'm using the $\RbTeX$ package.
\end{document}

rbtex

rbtex is the default environemnt for injecting Ruby code. Anything inside the rbtex environemnt needs the be ruby code. For example, using % to comment items inside the rbtex will not work; you must use a # instead.

Ruby commands are the only things allowed in the rbtex environement

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}

% out here, use LaTeX supported commands
\begin{rbtex}
# in here, use Ruby supported commands
puts 'hello, world'
\end{rbtex}
\end{document}

frbtex

frbtex provides an interface with which to include an entire external file. The file will be copied verbatim, so there is no need to require 'rbtex' in the supplied script.

Don’t use this, yo.

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}
\frbtex{myfile.rb}

\begin{rbtex}
myFunctionDefinedInMyFileDotRb
\end{rbtex}
\end{document}

Tex

The Tex module contains tools to generate LaTeX output from ruby.

Tex.print(arg0)

This command prints arg0 to the LaTeX document.

Arguments

Print a string to the TeX document

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}

\begin{rbtex}

Tex.print("Hello, world from Ruby!")

\end{rbtex}
\end{document}

Tex.cmath(arg0)

Wraps arg0 in a centered equation environemnt

Arguments

Returns

Centering an equation is easy

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}

\begin{rbtex}

myfx = "f(x)"
Tex.print Tex.cmath(myfx)

\end{rbtex}
\end{document}

Tex.imath(arg0)

Wraps arg0 in an inline math mode environemnt

Arguments

Returns

x squared is not actually my favorite function

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}

\begin{rbtex}

myfx = "f(x) = x^{2}"
Tex.print "#{Tex.imath(myfx)} is my favorite function."

\end{rbtex}
\end{document}

Tex.center(arg0)

Wraps arg0 in an center environment.

Arguments

Returns

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}

\begin{rbtex}

Tex.print Tex.center("This is important!")

\end{rbtex}
\end{document}

Table

The Tex module provides a simple way to create a generic table.

Minimal Working Example

This example provides a simple use case for generating a table. The rubylatex package by default formats this to be a tabularx environment with all columns set to |X|.

\documentclass{myclass}
\usepackage{rubylatex}

\begin{document}

\begin{rbtex}

array = [
    ["Header 01","Header 02","Header 03"],
    ["Content 01","Content 01","Content 01"],
    ["Content 02","Content 02","Content 02"]
]

myTable = Tex::Table.new array
content = myTable.create
Tex.print(content)

\end{rbtex}

\end{document}