@title Simplex -- Simple \LaTeX (v0.3.5) @authors Julian Fleischer @abstract Writing \LaTeX can be a laborious task. Often the syntax is cumbersome and error-prone. Simplex is an attempt to fix this. A solution for creating documents using \LaTeX which is as easy as writing Markdown, without sacrificing the power of \LaTeX. @margins 3cm 4.5cm 3cm 4.5cm @pagestyle fancy @cfoot \thepage \space / \lastpage @lhead @rhead @preamble \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} newpage tableofcontents newpage figures newpage = Basic Syntax label sec:basic-syntax The key idea of simplex is that control commands and actual text should go separated. Thus: Everything in simplex is indented, except for control commands. Let's see how that looks: .# command text more text . The basic distinction between groups of text is the notion of a paragraph. .# this belongs to the first paragraph. this is yet another paragraph. this belongs to the second paragraph as well. . A paragraph can be marked as certain type of paragraph. Here for example is a heading: .# = Heading of Section 1 Paragraph 1 -> Note that the empty line between the heading and the paragraphs is necessary, since otherwise the paragraph would belong to the heading. . In some circumstances it may come in handy that adjacent paragraphs are treated as one. Commands declaring such paragraphs start with a dot: .# .verbatim This is code. As well as this is. . It is however terminated by a command as well as any other paragraph. The contents of such paragraphs can also be included from a file, simply by substituting the dot with a hashbang (#). .# #code Main.java . Commands that start with an at (@) are global declarations. An exhaustive list of commands, global declarations, and special paragraphs can be found in the appendix to this document. .# @title Sample Simplex Document @authors John Doe Michael Monk = Hello World! A sample document might look like this: #code sample.simple == Document Structure label sec:document-structure Headings can be designated using \#=#, \#==#, and \#===#. Furthermore \#:=# and \#:-# can be used to designate paragraphs and subparagraphs. The text upto the first colon (:) in a paragraph is used as bold title text for that paragraph: := Sample paragraph: This is a sample paragraph. .# := Sample paragraph: This is a sample paragraph. :- Sample sub paragraph: This is a sample sub paragraph. .# :- Sample sub paragraph: This is a sample sub paragraph. := Table of contents: A table of contents can be inserted using the \#tableofcontents# command. Note that by default simplex does not number sections (i.e. \#=# is translated to \#\section*{...}#). If a \#tableofcontents# is present in the document, simplex will number sections (i.e. \#=# is translated to \#\section{...}# -- note the missing asterisk). figure caption A sample document featuring a tableofcontents .# @title A Document with a Table of Contents newpage tableofcontents newpage = Section One == Subsection One-One Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Sed posuere consectetur est at lobortis. Aenean lacinia bibendum nulla sed consectetur. -> A little advise in between. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. == Subsection One-Two newpage = Section Two Nulla vitae elit libero, a pharetra augue. Etiam porta sem malesuada magna mollis euismod. Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum. := Nota bene: This is a paragraph. endfigure newpage === Lists Lists can be created using \#*# and \#+#. Lists can be nested: := Unordered lists: hfill columns 2 * One ** One-One * Two ** Two-One ** Two-Three colbreak .# * One ** One-One * Two ** Two-One ** Two-Three endcolumns := Numbered lists: hfill columns 2 + One ++ One-One + Two ++ Two-One ++ Two-Three colbreak .# + One ++ One-One + Two ++ Two-One ++ Two-Three endcolumns := Description lists: hfill .# : coffee: the lifeblood of nerds, and the drink that keeps America's workforce complacent on their journey to work. : demo: Demonstrate the capabilities of (software or equipment). : psychopsilocybin: A Mushroom...one of the crazy kind. ^.~ ALSO an awesome Incubus Song from the Fungus Amoungus CD! : coffee: the lifeblood of nerds, and the drink that keeps America's workforce complacent on their journey to work. : demo: Demonstrate the capabilities of (software or equipment). : psychopsilocybin: A Mushroom...one of the crazy kind. ^.~ ALSO an awesome Incubus Song from the Fungus Amoungus CD! -> Using double-colons instead of single colons such a list may be rendered like so: :: coffee: the lifeblood of nerds, and the drink that keeps America's workforce complacent on their journey to work. :: demo: Demonstrate the capabilities of (software or equipment). :: psychopsilocybin: A Mushroom...one of the crazy kind. ^.~ ALSO an awesome Incubus Song from the Fungus Amoungus CD! newpage == Inline syntax features The look and feel of the syntax is heavily influenced by Markdown. The following inline markup can be used: ># This is **bold** text > This is **bold** text >+ ># This is *italic text* > This is *italic text* >+ ># This _text_ is _underlined_ > This _text_ is _underlined_ >+ ># This is $M_{ath}^2$ > This is $M_{ath}^2$ >+ ># This is \@inline verbatim@ > This is \@inline verbatim@ -> Note that you can also use # and ! to delimit inline verbatim like so: \#\!inline verbatim!# and \!\#inline verbatim#!. === Escaping Special Characters You should have noticed that there are certain inline control characters which you might want to escape. Doing so is easy. If any of these characters is followed by a white space they lose their special meaning. The white space immediately following the character is not printed, so in order to print such a character followed by a white space you need to type two spaces. Here is an example (the dots denote spaces): .! \.$.*._.\..$..*.._..Yea => \ $ * _ \ $ * _ Yea === Hyperlinks, Labels, and References ># \[http://www.example.org/] > => \[http://www.example.org/] >+ >L2 Backslash and brackets insert a hyperlink. >+ > >+ ># \[http://www.example.org/ Website] > => \[http://www.example.org/ Website] >+ >L2 Everything after the first whitespace is treated as description. >+ > >+ ># \{http://www.example.org/} > => \{http://www.example.org/} >+ >L2 Square brackets basically work the same... >+ > >+ ># \{http://www.example.org/ Website} > => \{http://www.example.org/ Website} >+ >L2 ...but they print the link in any case. >+ > >+ ># label sec:document-structure > >+ >L2 Labels can be set using the command *label * ... >+ > >+ ># See section \ > => See section \ >+ >L2 ...and referenced using backslash and angle brackets. >+ > >+ ># See page \(sec:include-directive) > => See page \(sec:include-directive) >+ >L2 Pages can be references using parenthesis. >+ newpage === Footnotes and Endnotes label sec:footnotes-and-endnotes Footnotes\^This is a footnote^ are declared like hyperlinks: \#\^This is a footnote^#. If you want the footnote to contain a hyperlink as well, use two circumflex at the beginning: \#\^^http://www.example.org/ Further reading, example.org, 2010.^# \^^http://www.example.org/ Further reading, example.org, 2010.^ To turn the footnotes in your document into endnotes use the global declaration \#@endnotes# (with at). You can then use the \#endnotes# (no at) command to insert the list of endnotes. figure caption A sample document with endnotes, labels, and references .# @title Sample Document with Endnotes @authors Donald Duck Daisy Duck @endnotes @abstract A demo with endnotes, labels, and references. newpage tableofcontents newpage = Section One label sec:one This is section one\^^http://www.example.org/ See example.org for further information^. = Section Two label sec:two This is\^yes it is^ section two. Have you read section \ already? appendix = First appendix Lorem ipsum dolor sit amet. = Second appendix Bilden Sie ganze Sätze man! endnotes endfigure newpage == Embedding \LaTeX label sec:embedding-latex If you feel the need to embed real \LaTeX code into your document, you can easily do so via \#.latex#. You can also include \LaTeX from another file using \@#latex @. Since simplex takes care of the head and meta data of your document it is not possible to include latex commands outside \#\begin{document}# and \#\end{document}# using this technique. Instead the global declaration \#@preamble# can be used (for example for including additional packages and the like). figure caption A sample document with embedded LaTeX .# @title The Title @preamble \usepackage{setspace} \doublespacing = Sample document .latex Here there goes pure latex code. \thispagestyle{plain} . -> Note that the commands demoed here are available in simplex too: \#@doublespacing# and \#thispagestyle plain#. endfigure == Comments label sec:comments You can comment out a paragraph by marking it \#%#. Larger passages of comments can be declared using \#.comment#. figure caption A sample document with comments in it .# % A comment = Not a comment (a heading) .comment Comment Also comment == Subsection (terminates .comment) endfigure newpage = Advanced features == Graphics / Images Images can be included using the \#image# command: .# image image.png . The size and rotation of images can be controlled using these commands: :: image-width: Sets the width for all following images to the given width. Example: \#image-width 8cm#. Note that the values given here are passed to pdflatex literally, thus it is possible to use values like \#\textwidth# here. \break Example: \#image-width \textwidth#. :: image-height: analog to \#image-width#. :: image-size: Sets both width and heigth for all following images. \break Example: \#image-size 16cm 9cm#. :: image-angle: Sets the rotation of an image. :: image-trim: Trims the following images by the given lengths. \break The arguments are *left bottom right top* (i.e. counter clockwise). \break Example: \#image-trim 1cm 0cm 2cm 1cm :: image-defaults: Clears all image directives. -> It is worth noting that image directives apply to all following images, not only the next image. Thus \#image-angle 180# will rotate all following images upside down. Use \#image-defaults# to clear the given commands. -> Supported image types are **png**, **jpg**, and **pdf**. figure caption Example image-inclusions .# image-height 5cm image-angle 170 columns 3 image zebra.jpg image elephant.jpg image-angle 350 image zebra.jpg endcolumns endfigure image-height 5cm image-angle 170 columns 3 image zebra.jpg image elephant.jpg image-angle 350 image zebra.jpg endcolumns image-defaults reset newpage === Builtin *Graphviz* support Graphviz graphs can be included directly into a simplex document: .# .digraph rankdir=LR; A -> M -> B; A -> N -> B; . is rendered as: .digraph rankdir=LR; margin=0; A -> M -> B; A -> N -> B; -> Note that the image-directives apply on graphviz graphs too. -> \#.digraph# is drawn using dot. -> \#.graph# is drawn using neato. columns 4 .# image-angle -30 .graph margin=0; A -- Center; B -- Center; C -- Center; D -- Center; E -- Center; X -- E -- Y; colbreak image-angle -30 .graph margin=0; A -- Center; B -- Center; C -- Center; D -- Center; E -- Center; X -- E -- Y; endcolumns newpage == Multi column layout Text can be distributed over multiple columns via the \#columns# command. \#columns# are terminated by the \#endcolumns# command. .# columns 2 Nam dui ligula... endcolumns columns 2 lipsum 2 endcolumns Text can be forced to continue in the next column using the \#colbreak# command. Here is an example using two images: columns 2 .# image-height 4cm columns 2 center image bushes.jpg image duck.jpg colbreak image zebra.jpg image elephant.jpg endcolumns colbreak hfill \break -> this also demonstrates the usefulness of the image commands applying to all following images. endcolumns ...which produces the following rendering: image-defaults image-height 4cm columns 2 center image bushes.jpg image duck.jpg colbreak image zebra.jpg image elephant.jpg endcolumns newpage == Figures Figures (like \#\begin{figure}# in \LaTeX) can be inserted using the \#figure# and \#endfigure# commands. A caption can be set using the \#caption# command. .# figure image-width \textwidth caption This is an example figure image bushes.jpg endfigure image-defaults image-width \textwidth figure caption This is an example figure image bushes.jpg endfigure newpage = Tables label sec:tables All table commands start with \#>#. Every \#># declares a cell. \#>+# starts a new table row. \#>-# starts a new table row and paints a horizontal line. \#>=# starts a new table row and paints a double horizontal line. A table format (just like in \#\begin{tabular}{format}#) can be given with \#>@#. figure caption Simple sample tables columns 4 > 1 > 2 > 3 >+ > 4 > 5 > 6 >+ > 7 > 8 > 9 colbreak >@ l|c||r > 1 > 2 > 3 >+ > 4 > 5 > 6 >+ > 7 > 8 > 9 colbreak >@ l|c||r >- > 1 > 2 > 3 >+ > 4 > 5 > 6 >+ > 7 > 8 > 9 >- colbreak >@ |l|c||r| >- > 1 > 2 > 3 >- > 4 > 5 > 6 >= > 7 > 8 > 9 >- endcolumns The Code to create these four tables can be seen below: columns 4 .# > 1 > 2 > 3 >+ > 4 > 5 > 6 >+ > 7 > 8 > 9 colbreak .# >@ l|c||r > 1 > 2 > 3 >+ > 4 > 5 > 6 >+ > 7 > 8 > 9 colbreak .# >@ l|c||r >- > 1 > 2 > 3 >+ > 4 > 5 > 6 >+ > 7 > 8 > 9 >- colbreak .# >@ |l|c||r| >- > 1 > 2 > 3 >- > 4 > 5 > 6 >= > 7 > 8 > 9 >- endcolumns endfigure == Kinds of Cells Cells can have different kinds of content. A hashbang (#) designates a cell having verbatim content. An exclamation mark (!) designates a header cell (that is: having a **bold** type face). A dollar sign ($ ) designates a cell having math content. figure caption A sample table with different kinds of cells columns 2 .# >@ |c|c| >- >$ \sum_{i=1}^n n^2 >! Heading >- ># Verbatim \yeah <=> \yeah > Ordinary cell. >- colbreak >@ |c|c| >- >$ \sum_{i=1}^n n^2 >! Heading >- ># Verbatim \yeah <=> \yeah > Ordinary cell. >- endcolumns endfigure -> This way tables can be used to create complex layouts, for example equations. See section \ for an advanced example. newpage == Alignment of Cells The alignment of cells can be changed per column (using \#>@#) or per cell. All you need to do is to include \#L#, \#R#, or \#C# (for _L_eft, _R_ight, or _C_enter respectively) in the cell definition: figure caption A table demoing custom alignment of cells columns 3 .# >@ clr >! Heading 1 >! Heading 2 >! Heading 3 >= > A > B > C >- > D > E > F >- >L Le >R Ri >C Ce >= colbreak >@ clr >! Heading 1 >! Heading 2 >! Heading 3 >= > A > B > C >- > D > E > F >- >L Le >R Ri >C Ce >= colbreak hfill vfill endcolumns endfigure Note that this will redefine the cell apart from the table declaration (given via \#>@ clr#). Thus if you specified vertical borders in \#>@# you will have to specify them in the cell again. This is possible by putting a bar (|) left and/or right to the new cell definition: figure caption A table demoing formatting of custom cells columns 3 .# >@ |c|l|r| >! Heading 1 >! Heading 2 >! Heading 3 >= > A > B > C >- >|L| Le >R| Ri >C| Ce >= colbreak >@ |c|l|r| >- >! Heading 1 >! Heading 2 >! Heading 3 >- > A > B > C >- >|L| Le >R| Ri >C| Ce >- colbreak hfill vfill endcolumns endfigure newpage == Text in Tables Tables in \LaTeX are not as easy as, say, HTML tables. Especially a problem are cells containing multiline text (which, by default, is not wrapped). Thus you have to declare a text column (using \#>@#). The column specifier is \#p#. You will also have to declare the width of the column, like so: \#p{4cm}. figure caption An example table with multiline text columns 3 .# >@ |r|p{6cm}| >- >! Head >! Yet another >- > 1337 > ... >- colbreak >@ |r|p{6cm}| >- >! Head >! Yet another >- > 1337 > Nullam quis risus eget urna mollis ornare vel eu leo. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. >- colbreak hfill vfill endcolumns endfigure There is also a more flexible \#tabular#-environment, called \#tabluarx#. Is supports columns which contain text and adjust themselves accordingly. You will still have to designate a column as text column, but you do not need to specify the width. Simplex will turn your table into a \#tabularx#-table automatically if you define the table using \#>X# instead of \#>@#. The column specifier for a \#tabularx#-text-column is \#X#. figure caption An example X-table columns 2 .# >X |r|X| >- >! Head >! Yet another >- > 1337 > Nullam quis risus eget urna mollis ornare vel eu leo. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. >- colbreak >X |r|X| >- >! Head >! Yet another >- > 1337 > Nullam quis risus eget urna mollis ornare vel eu leo. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. >- endcolumns endfigure However, \#>X# tables have shortcomings of their own. For example you can not use inline verbatim code in a cell inside a \#tabularx#-table. newpage == Rows spanning multiple columns It is possible to let a row span multiple columns by simply adding the number of columns the row should span in the cell definition. Note that this will nullify all column declarations just as \#L#, \#R#, and \#C# do, so you will have to specify borders as necessary. Columns spanning multiple rows are centered by default (you can combine column-spanning numbers and alignment specifiers, like \#>|2L|# or \#>11C!#). figure caption A table with a single cell spanning two columns columns 2 .# >@ |l|l| >- >|2| Team sheet >- > GK > Paul Robinson >+ ... colbreak >@ |l|l| >- >|2| Team sheet >- > GK > Paul Robinson >+ > LB > Lucus Radebe >+ > DC > Michael Duberry >+ > DC > Dominic Matteo >+ > RB > Dider Domi >+ > MC > David Batty >+ > MC > Eirik Bakke >+ > MC > Jody Morris >+ > FW > Jamie McMaster >+ > ST > Alan Smith >+ > ST > Mark Viduka >- endcolumns endfigure == Columns spanning multiple rows figure caption A table showing how to span multiple rows and columns columns 2 .# >@ |l|l|l| >- >|3| Team sheet >- > Goalkeeper > GK > Paul Robinson >- >,4 Defenders > LB > Lucus Radabe ... colbreak 2 >@ |l|l|l| >- >|3| Team sheet >- > Goalkeeper > GK > Paul Robinson >- >,4 Defenders > LB > Lucus Radabe >+ > > DC > Michael Duberry >+ > > DC > Dominic Matteo >+ > > RB > Didier Domi >- >,3 Midfielders > MC > David Batty >+ > > MC > Eirik Bakke >+ > > MC > Jody Morris >- > Forward > FW > Jamie McMaster >- >,2 Strikers > ST > Alan Smith >+ > > ST > Mark Viduka >- endcolumns endfigure newpage == Colored Cells figure caption Four coloured cells in a table columns 2 .# >@ cc >red A >blue B >+ >green C >yellow D colbreak >@ cc >red A >blue B >+ >green C >yellow D endcolumns endfigure figure caption A very colorful table columns 2 .# >@ |c|c|c|c| >- >red >2yellow| >red >- >yellow,2 >2,2| Table >yellow,2 >+ >yellow >C >C| >yellow >- >red >2yellow| >red >- colbreak >@ |c|c|c|c| >- >red >2yellow| >red >- >yellow,2 >2,2| Table >yellow,2 >+ >yellow >C >C| >yellow >- >red >2yellow| >red >- endcolumns endfigure == ASCII-Art Tables figure caption An ASCII-Art Table columns 2 .# .table +-----+----+----+----+ | 7 | 8 | 1 | 19 | +-----+----+----+----+ | 172 | 19 | 42 | 20 | +-----+----+----+----+ | 420 | 4 | 17 | 64 | +-----+----+----+----+ colbreak .table +-----+----+----+----+ | 7 | 8 | 1 | 19 | +-----+----+----+----+ | 172 | 19 | 42 | 20 | +-----+----+----+----+ | 420 | 4 | 17 | 64 | +-----+----+----+----+ endcolumns endfigure newpage == Typesetting Equations using Tables label sec:typesetting-equations-using-tables >@ clcl | l >$ <=> >$ x^2 + bx + c >$ = >$ 0 > isolate $x$: $-c$ >+ >$ <=> >$ x^2 + bx >$ = >$ -c > $+\left(\frac b 2\right)^2$ *(completing the square)* >+ >$ <=> >$ x^2 + bx + \left(\frac b 2\right)^2 >$ = >$ -c +\left(\frac b 2\right)^2 > binomial formula reverse >+ >$ <=> >$ \left( x + \frac b 2 \right)^2 >$ = >$ \left(\frac b 2\right)^2 - c >$ \sqrt{\text{\nbsp}} >+ >$ <=> >$ x + \frac b 2 >$ = >$ \pm \sqrt{\left(\frac b 2\right)^2 - c} >$ -\frac b 2 >+ >$ <=> >$ x >$ = >$ -\frac b 2 \pm \sqrt{\left(\frac b 2\right)^2 - c} .# >@ clcl | l >$ <=> >$ x^2 + bx + c >$ = >$ 0 > isolate $x$: $-c$ >+ >$ <=> >$ x^2 + bx >$ = >$ -c > $+\left(\frac b 2\right)^2$ *(completing the square)* >+ >$ <=> >$ x^2 + bx + \left(\frac b 2\right)^2 >$ = >$ -c +\left(\frac b 2\right)^2 > binomial formula reverse >+ >$ <=> >$ \left( x + \frac b 2 \right)^2 >$ = >$ \left(\frac b 2\right)^2 - c >$ \sqrt{\text{\nbsp}} >+ >$ <=> >$ x + \frac b 2 >$ = >$ \pm \sqrt{\left(\frac b 2\right)^2 - c} >$ -\frac b 2 >+ >$ <=> >$ x >$ = >$ -\frac b 2 \pm \sqrt{\left(\frac b 2\right)^2 - c} newpage appendix = Blocks >@ rm{10cm} >!2 Document Structure >- ># = >,3 Headings >+ ># == > >+ ># === > >- ># !! > Chapters >- ># !!! > Parts >- ># := >,2 Paragraphs with a defining word at the start of the line. >+ ># :- > >- . >@ rm{10cm} >!2 Lists & Items >- ># * > Unnumbered items (like *itemize*). >- ># + >,2 Numbered items (like *enumerate*). >+ ># - > >- ># : >,2 Items with a defining word at the start of the line. >+ ># :: > >- ># -> > Advise items. >- . >@ lm{10cm} >!2 Tables >- ># > > A table cell. See "Tables" for more information. >- ># >+ > Next row, no line >- ># >- > Next row, single line >- ># >= > Next row, double line >- ># >^ > Turns the table into a *figure* with a *caption* above. >- ># >_ > Turns the table into a *figure* with a *caption* below. >- ># >@ > The table definition (like in LaTeX). >- ># >X > The table definition, also turns the table into a *tabularx* table. >- . >@ lm{10cm} >!2 Others >- ># . > A paragraph (like no control command at all, useful for explicitly creating a paragraph for example in order to terminate a table). >- ># => > A paragraph introduced by =>. >- ># <= > A paragraph introduced by <=. >- ># <=> > A paragraph introduced by <=>. >- ># =!> > A paragraph introduced by =!>. >- ># A paragraph introduced by - ># > A paragraph introduced by . >- newpage = Special blocks -> Note: By exchanging the dot (\#.#) with a hashbang (\@#@) you can load data from a file and treat it like the corresponding special block (i.e. \@#code myfile.java@ will include the contents of *myfile.java* and treat it as a \#.code# block). :: .ascii: An alias for \#.verbatim#. :: .code: Verbatim text, formatted as source code. :: .code$ : Like \#.code# but allows for mathescapes (\#$...$#). :: .comment: Does not include its contents into the document. :: .digraph: Creates a graphviz \#digraph# (a _di_rected graph) and renders it using \#dot#. :: .equation: Inserts raw math tex, like \#.latex# with \#\begin{equation}#. :: .graph: Creates a graphviz \#graph# and renders it using \#neato#. :: .haskell: Like \#.code#, but loads definitions for *Haskell*. :: .java: Like \#.code#, but loads definitions for *Java*. :: .latex: Inserts raw latex code. :: .math: Inserts raw math tex, like \#.latex# with \#\begin{displaymath}#. :: .php: Like \#.code#, but loads definitions for *PHP*. :: .python: Like \#.code#, but loads definitions for *Python*. :: .table: Parses an ASCII table and renders it using LaTeX. :: .verbatim: Inserts verbatim text (like \#\begin{verbatim}#). == Shortcuts :: .#: Like \#.code#. :: .@: Like \#.code$#. :: .%: Like \#.comment#. :: .$ : Like \#.math#. :: .!: Like \#.verbatim#. -> Note that replacing the dot with a hashbang works here too. Thus \@## file.txt@ will in fact include file.txt as code, \@#! file.txt@ as verbatim text, and so on. == #include Directive label sec:include-directive :: #include: Literally includes the contents of the file. Usage: \@#include filename@. This works like the include-command for the c preprocessor. Note that no other features of cpp are available in simplex. :: #image: An alias for the ordinary command \#image#. There is a slight difference: Like in #include, the file name may be given in quotation marks: \break \break \!#image "picture.png"! -- works! \break \!image "picture.png"! -- won't work (quots will be regarded as part of the filename) newpage = Declarations :: @abstract: Used to declare an abstract of the current document. :: @address: Your address if this is a \#@letter#. :: @article: Declares the document to be an article. This will cause the \#article# document class to be used. :: @authors: A list of authors of the document. Each line corresponds to one author. Note that there is no single \#@author# declaration. :: @book: Declares the document to be a book. This will cause the \#book# document class to be used. :: @cfoot: Useful with \#@pagestyle fancy#. The text to be used in the center part of the foot. Use \#\break# to insert line breaks in here. :: @chead: Useful with \#@pagestyle fancy#. The text to be used in the center part of the head. Use \#\break# to insert line breaks in here. :: @closing: The closing text if this is a \#@letter#. Defaults to "Yours Faithfully". :: @date: Sets the date of the document. If none is given, \#\today# is assumed. :: @doublespacing: Turns on double spacing. This is useful for drafts in order to correct things. :: @draft: Declares the document as a draft. This will, inter alia, cause images not to be included -- which in turn will reduce build times. :: @endnotes: Turns all footnotes into endnotes. Use in conjunction with \#endnotes# command to actually insert the endnotes (like \#tableofcontents#). :: @fontsize: The standard font size in this document. Defaults to 12pt. :: @landscape: Sets \#landscape# mode (90 degree rotated). :: @language: Specifies the language of the document. Translates directly into \#\usepage[LANGUAGE]{babal}# in the preamble, where LANGUAGE is the value of the \#@language# declaration. Values are for example \#ngerman#, \#frenchb#, or \#francais#. :: @letter Uses the \#letter# document class. You should use it together with \#recipient#, \#address#, \#signature#, \#opening#, and \#closing#. :: @lfoot: Useful with \#@pagestyle fancy#. The text to be used in the left part of the foot. Use \#\break# to insert line breaks in here. :: @lhead: Useful with \#@pagestyle fancy#. The text to be used in the left part of the head. Use \#\break# to insert line breaks in here. :: @margin-bottom: The bottom margin of each page. :: @margin-left: The left margin of each page. :: @margin-right: The right margin of each page. :: @margin-top: The top margin of each page. :: @margins: Sets the margins of the documents. A white-space separated list of lengths. The first value is the top-margin and then clockwise. :: @newpagesections: Automatically insert \#newpage# commands before new top level sections. :: @opening: The opening text if this is a \#@letter#. Defaults to "Dear Sir or Madam,". :: @pagestyle: For example \#@pagestyle fancy#. Declares the global pagestyle (in contrast: the \#pagestyle# command will declare the pagestyle locally). :: @preamble: Inserts raw \LaTeX into the head of the document (which is normally not accessible from within a simplex document). :: @recipient: The address of the recipient if this is a \#@letter#. :: @report: Uses the \#report# document class. :: @rfoot: Useful with \#@pagestyle fancy#. The text to be used in the right part of the foot. Use \#\break# to insert line breaks in here. :: @rhead: Useful with \#@pagestyle fancy#. The text to be used in the right part of the head. Use \#\break# to insert line breaks in here. :: @scrartcl: Uses the \#scrartcl# document class. :: @slides: Used the \#slides# document class (this affects the paper size) -- useful for creating presentations. :: @signature: Your name if this is a \#@letter#. Used in the address as sender and in the closing as signature. :: @title: The title of the document. Line breaks in here will be actual line breaks in the target pdf. :: @tocdepth: To what depth headings should be part of the table of contents. Defaults to 3. newpage = Lengths :: baselineskip: :: baselinestretch: :: columnsep: :: columnseprule: :: columnwidth: :: evensidemargin: :: headheight: :: oddsidemargin: :: paperheight: :: paperwidth: :: parindent: :: parskip: :: tabcolsep: :: textfloatsep: :: textheight: :: textwidth: :: topmargin: newpage = Commands :: appendix: Starts the appendix. Sections from this point on will be counted using letters. Does not insert an appendix heading. :: bfseries: Like \#\bfseries# in \LaTeX. Prints the following text in **bold**. Use \#reset# or \#normalfont# to terminate. :: bold: Alias for \#\bfseries#. Prints the following text in **bold**. Use \#reset# or \#normalfont# to terminate. :: caption: Declares a caption for the current figure. Only works within \#figure#. :: center: Centers the text from this point on. :: colbreak: Starts a new column within \#columns#. :: columns: Start columnized text. \break Usage: *columns * :: em: Like \#\em# in \LaTeX. :: endcolumns: Terminates \#columns#. :: endfigure: Terminates \#figure#. :: endignore: Terminates \#ignore#. :: endnoinclude: Terminates \#noinclude#. :: endnotes: Insert the list of endnotes, also creates a section with heading. :: figure: Starts a figure (like \#\begin{figure}#). Takes an optional parameter which specifies the placement of the figure. If you omit it, \#h!# is assumed. If you want to explicitly leave it blank, specify \#auto#. \break All possible values are: *h, t, b, p, H, !* (may be combined). \break Examples: \#figure htb#, \#figure auto#, \#figure h!# :: figures: Insert a list of figures here. :: float-barrier: \#figure#s will not float beneath this command. :: footnotesize: Like \#\footnotesize# in \LaTeX. :: hfill: Like \#\hfill# in \LaTeX. :: huge: Like \#\huge# in \LaTeX. :: Huge: Like \#\Huge# in \LaTeX. :: ignore: Ignores the document upto the next \#endignore#. :: image-angle: Sets the rotation of the following images. \break Usage: *image-angle * :: image-defaults: Resets all image properties. :: image-height: Sets the height of the following images. \break Usage: *image-height * :: image-page: In case of a multi-pdf file, selects which page should be included. :: image-scale: Scales images by the given factor. :: image-size: Sets both image-height and image-width at once. \break Usage: *image-size * :: image-trim: Crop the included image. \break Usage: *image-trim * :: image-width: Sets the width of the following images. \break Usage: *image-width * :: image: Inserts the specified image, for example \#image myfile.png#. Works like \#\includegraphics# in \LaTeX . Dimensions and other additional arguments can be set using the \#image-...# commands. Note that the same limitations apply as for pdflatex and includegraphics in general (i.e. will only include **JPG**, **PNG**, and **PDF** files). :: italic: Alias for \#\itshape#. Prints the following text in *italics*. Use \#reset# or \#normalfont# to terminate. :: itshape: Like \#\itshape# in LaTeX. Prints the following text in *italics*. Use \#reset# or \#normalfont# to terminate. :: large: Like \#\large# in \LaTeX. :: LARGE: Like \#\LARGE# in \LaTeX. :: Large: Like \#\Large# in \LaTeX. :: left: Aligns the text from this point onward to the left. Note that this command will not justify the text (which \LaTeX does by default). Use \#reset# for this. :: lipsum: Includes sample text of lorem ipsum. :: mdseries: Like \#\mdseries# in \LaTeX. :: newpage: Like \#\newpage# in \LaTeX. :: noinclude: The following part of the document (up to the next \#endnoinclude#) won't be processed when included using \@#include@ (see \). :: noindent: Like \#\noindent# in \LaTeX. :: normalfont: Like \#\normalfont# in \LaTeX. :: normalsize: Like \#\normalsize# in \LaTeX. :: pagebreak: Alias for \#\newpage#. :: pagenumbering: Restart the page numbering here with the given style. \break Possible values are: \#arabic#, \#roman#, \#Roman#, \#alph#, \#Alph# :: pagestyle: Like \#\pagestyle# in LaTeX. Sets the pagestyle for the next pages from this point on to the supplied argument. For example \#pagestyle plain# or \#pagestyle fancy#. :: reset: Cancels the effects of \#left#, \#center#, \#right# and applies \#normalsize# and \#normalfont#. :: right: Aligns the text from this point onward to the right. :: rmfamily: Like \#\rmfamily# in \LaTeX. :: scriptsize: Like \#\scriptsize# in \LaTeX. :: scschape: Like \#\scschape# in \LaTeX. :: sffamily: Like \#\sffamily# in \LaTeX. :: slshape: Like \#\slshape# in \LaTeX. :: small: Like \#\small# in \LaTeX. :: tableofcontents: Like \#\tableofcontents# in \LaTeX. Will additionally turn numbering of sections on (which is turned off by default in simplex). :: thispagestyle: Changes the style of the current page, for example \#thispagestyle plain#. :: tiny: Like \#\tiny# in \LaTeX. :: ttfamily: Like \#\ttfamily# in \LaTeX. :: upshape: Like \#\upshape# in \LaTeX. :: vfill: Like \#\vfill# in \LaTeX. newpage = Symbols .! \A \B \C \D \E \F \G \H \I \J \K \L \M \N \O \P \Q \R \S \T \U \V \W \X \Y \Z . \A \B \C \D \E \F \G \H \I \J \K \L \M \N \O \P \Q \R \S \T \U \V \W \X \Y \Z .! \Ac \Bc \Cc \Dc \Ec \Fc \Gc \Hc \Ic \Jc \Kc \Lc \Mc \Nc \Oc \Pc \Qc \Rc \Sc \Tc \Uc \Vc \Wc \Xc \Yc \Zc . \Ac \Bc \Cc \Dc \Ec \Fc \Gc \Hc \Ic \Jc \Kc \Lc \Mc \Nc \Oc \Pc \Qc \Rc \Sc \Tc \Uc \Vc \Wc \Xc \Yc \Zc .! \Af \Bf \Cf \Df \Ef \Ff \Gf \Hf \If \Jf \Kf \Lf \Mf \Nf \Of \Pf \Qf \Rf \Sf \Tf \Uf \Vf \Wf \Xf \Yf \Zf . \Af \Bf \Cf \Df \Ef \Ff \Gf \Hf \If \Jf \Kf \Lf \Mf \Nf \Of \Pf \Qf \Rf \Sf \Tf \Uf \Vf \Wf \Xf \Yf \Zf == Magic Symbols -> Magic Symbols are those whose values change by context. :: \ lastpage: Inserts the number of the last page. :: \ thepage: Inserts the number of the current page. :: \ thesection: Inserts the number of the current section. :: \ thechapter: Inserts the number of the current chapter. :: \ today: Inserts the current date. == Special Symbols -> Special Symbols do not need to be introduced by a backslash. They are recognized and substituted in math mode as well as in text. >@ cc|cc|cc|cc|cc|cc ># <= > <= ># => > => ># <=> > <=> ># != > != ># (-) > (-) ># [-] > [-] >+ ># <== > <== ># ==> > ==> ># <==> > <==> ># === > === ># (+) > (+) ># [+] > [+] >+ ># # =!> > =!> ># > ># ~> > ~> ># (x) > (x) ># [x] > [x] >+ ># <- > <- ># -> > -> ># <-> > <-> ># <-< > <-< ># (.) > (.) ># [.] > [.] >+ ># <-- > <-- ># --> > --> ># <--> > <--> ># >-> > >-> ># (*) > (*) ># |--> > |--> >+ ># # -!> > -!> ># _|_ > _|_ ># |= > |= ># (/) > (/) ># <--| > <--| >+ ># <-| > <-| ># |-> > |-> ># <=| > <=| ># |=> > |=> ># <==| > <==| ># |==> > |==> newpage = Command Line Usage .! simplex [options] [files...] -h --help Print this help text. --version Print version information. -v --verbose Verbose output. -d --dry-run Dry run (do not create any files). -n --no-clean Do not clean up after building. -p --print Print processed tex to stdout. -c --crop Crops the document so that no margin are left. -f --force Forces the creation of output files. -t , -T --type= Specify type of output (pdf, png, tex) -x --pdflatex= Path to `pdflatex' executable -k --pdfcrop= Path to `pdfcrop' -z --graphviz= Path to `dot' (graphviz) -g --gnuplot= Path to `gnuplot' -m --convert= Path to `convert' (ImageMagick) -w[] --watch[=] Watch files or folder (optionally amount of time in ms) -3 --three-times Execute `pdflatex' three times instead of the default two times. --density=, --dpi= For output type `png' only, specifies dpi. --quality= For output type `png' only, specifies quality.