summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/turnstile
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/turnstile
Initial commit
Diffstat (limited to 'macros/latex/contrib/turnstile')
-rw-r--r--macros/latex/contrib/turnstile/README43
-rw-r--r--macros/latex/contrib/turnstile/turnstile-en/README.en58
-rw-r--r--macros/latex/contrib/turnstile/turnstile-en/turnstile-en.dtx413
-rw-r--r--macros/latex/contrib/turnstile/turnstile-en/turnstile-en.ins50
-rw-r--r--macros/latex/contrib/turnstile/turnstile-en/turnstile-en.pdfbin0 -> 106466 bytes
-rw-r--r--macros/latex/contrib/turnstile/turnstile-en/turnstile_article.pdfbin0 -> 96546 bytes
-rw-r--r--macros/latex/contrib/turnstile/turnstile-en/turnstile_article.tex258
-rw-r--r--macros/latex/contrib/turnstile/turnstile-pt/README.pt61
-rw-r--r--macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.dtx419
-rw-r--r--macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.ins52
-rw-r--r--macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.pdfbin0 -> 320642 bytes
-rw-r--r--macros/latex/contrib/turnstile/turnstile-pt/turnstile_artigo.pdfbin0 -> 147141 bytes
-rw-r--r--macros/latex/contrib/turnstile/turnstile-pt/turnstile_artigo.tex274
13 files changed, 1628 insertions, 0 deletions
diff --git a/macros/latex/contrib/turnstile/README b/macros/latex/contrib/turnstile/README
new file mode 100644
index 0000000000..589409ada5
--- /dev/null
+++ b/macros/latex/contrib/turnstile/README
@@ -0,0 +1,43 @@
+turnstile
+ This style was based on article.cls to be used for typesetting
+ articles. Among other uses, the turnstile sign is used by logicians
+ for denoting a consequence relation, related to a given logic,
+ between a collection of formulas and a formula. Many logicians
+ have complaint the lack of a LaTeX routine for issuing turnstile
+ signs, in any of the forms it could arise.
+
+AUTHOR
+ Arthur Buchsbaum and Francisco Reinaldo.
+ arthur@inf.ufsc.br, reinaldo.opus@gmail.com
+
+
+COPYRIGHT
+ This program is provided under the terms of the
+ LaTeX Project Public License distributed from CTAN
+ archives in the directory macros/latex/base/lppl.txt.
+ (C) 2007 Arthur Buchsbaum e Francisco Reinaldo
+
+FILES AND DIRECTORIES AT CTAN
+ README This file
+ turnstile-en\ Directory of turnstile style (English version)
+ turnstile-pt\ Directory of turnstile style (Portuguese version)
+
+:.
+. README
+.
++---turnstile-pt
+. README.pt
+. turnstile-pt.dtx
+. turnstile-pt.ins
+. turnstile-pt.pdf
+. turnstile_artigo.pdf
+. turnstile_artigo.tex
++---turnstile-en
+. README.en
+. turnstile-en.dtx
+. turnstile-en.ins
+. turnstile-en.pdf
+. turnstile_article.pdf
+. turnstile_article.tex
+
+Thanks and enjoy it!
diff --git a/macros/latex/contrib/turnstile/turnstile-en/README.en b/macros/latex/contrib/turnstile/turnstile-en/README.en
new file mode 100644
index 0000000000..3639e62eba
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-en/README.en
@@ -0,0 +1,58 @@
+turnstile
+ This style was based on article.cls to be used for typesetting
+ articles. Among other uses, the turnstile sign is used by logicians
+ for denoting a consequence relation, related to a given logic,
+ between a collection of formulas and a formula. This package aims to
+ issue the turnstile sign in many ways, and is capable of
+ putting labels below and above it.
+
+AUTHOR
+ Arthur Buchsbaum and Francisco Reinaldo.
+ arthur@inf.ufsc.br, reinaldo.opus@gmail.com
+
+
+COPYRIGHT
+ This program is provided under the terms of the
+ LaTeX Project Public License distributed from CTAN
+ archives in the directory macros/latex/base/lppl.txt.
+ (C) 2007 Arthur Buchsbaum e Francisco Reinaldo
+
+VERSION
+ This is the turnstile version 1.0
+
+CHANGES
+ 1.0 First public release.
+
+FILES AND DIRECTORIES AT CTAN
+ README.en This file
+ turnstile-en.dtx The source of turnstile style
+ turnstile-en.pdf Pdf version of turnstile style
+ turnstile-en.ins Driver file for turnstile-en.dtx
+ turnstile_article.tex Source code of article
+ turnstile_article.pdf Pdf version of the documentation,
+ published PracTeX Journal: Issue 2007-3
+
+REQUIREMENTS
+ The installation of the turnstile package requires the ifthen
+ package. Please use <<the last LaTeX version>>.
+
+INSTALLATION (OF THE LATEX PACKAGE AND THE METAFONT SOURCE FILES)
+ The installation procedure is described in the documentation, but
+ you can also follow these steps.
+
+ 1. Download the files turnsilte-en\turnstile-en.ins and
+ turnsilte-en\turnstile-en.dtx to a preferably
+ empty directory. If you intend to keep the documentation, you'd
+ better create a suitable directory and put the files there right
+ now
+ 2. Start a shell where you can enter commands from the keyboard
+ 3. Go to the directory where you did put the files turnstile-en.dtx
+ and turnstile-en.ins
+ 4. Run the command
+ pdflatex turnstile-en.ins
+ You will obtain the turnstile-en.sty
+ 5. Run the command
+ pdflatex turnstile-en.dtx
+ to produce the documentation and test the installation.
+ Run it one more time to resolve the references, before
+ you view it
diff --git a/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.dtx b/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.dtx
new file mode 100644
index 0000000000..978bf2187d
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.dtx
@@ -0,0 +1,413 @@
+% \iffalse meta-comment
+%
+%
+% This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.2 of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.2 or later is part of all distributions of LaTeX version 1999/12/01 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{turnstile-en.dtx}
+%</driver>
+%<package>\ProvidesPackage{turnstile}
+%<*package>
+ [2007/06/23 v1.0 turnstile file]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{ifthen}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+
+\begin{document}
+ \DocInput{turnstile-en.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+%
+% \changes{v1.0}{2007/06/23}{Initial version}
+%
+% \GetFileInfo{turnstile-en.dtx}
+%
+% \DoNotIndex{\if}
+%
+%
+% \title{The \textsf{turnstile} package}
+% \author{%
+% Arthur Buchsbaum\\
+% Francisco Reinaldo\\
+% \texttt{arthur@inf.ufsc.br, reinaldo.opus@gmail.com}}
+% \date{\filedate\qquad\fileversion}
+%
+% \maketitle
+%
+% \begin{abstract}
+% \noindent\textsf{turnstile} is a class based on \texttt{article.cls}, to be used for typesetting articles. Among other uses, the turnstile sign is used for denoting a consequence relation, related to a given logic, between collections of formulas and formulas. Many logicians have complaint the lack of a \LaTeX\ routine for issuing turnstile signs, in any of the forms it could arise.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% In this package some routines are provided for issuing the turnstile sign, nearly in all ways it could be utilized, from syntactical consequence to semantical consequence and forcing. A turnstile sign is usually composed of two lines, a horizontal one and a vertical one. Each of them can be single, double or triple, depending on the type of consequence relation someone wants to represent.
+%
+% \section{User macros}
+%
+% Below the turnstile sign it is usually put the name of a given logic, whereas, sometimes, some complementary information above it. The size of the expressions located below or above the turnstile sign determines its width and, of course, the length of its horizontal line.
+%
+% \section{Code}
+%
+% Identidication of the package and use of the package \textsf{ifthen}.
+% \begin{macrocode}
+\RequirePackage{ifthen}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$newlength}
+%
+% \DescribeMacro{\newlength} The macro |\newlength{|\meta{command}|}| can be used to specify the space parameter.
+%
+% \subsubsection{Internal Commands}
+%
+% \DescribeMacro{\firstwidth} The width of the expression to be located below the turnstile sign.
+% \begin{macrocode}
+\newlength{\firstwidth}
+% \end{macrocode}
+%
+% \DescribeMacro{\secondwidth} The width of the expression to be located above the turnstile sign.
+% \begin{macrocode}
+\newlength{\secondwidth}
+% \end{macrocode}
+
+% \DescribeMacro{\extrawidth} The extra length of the horizontal line to be put before and after the greatest expression.
+% \begin{macrocode}
+\newlength{\extrawidth}
+% \end{macrocode}
+
+% \DescribeMacro{\leasturnstilewidth} The length of the horizontal line when no expression is put below and above.
+% \begin{macrocode}
+\newlength{\leasturnstilewidth}
+% \end{macrocode}
+
+% \DescribeMacro{\turnstilewidth} The length of the horizontal line.
+% \begin{macrocode}
+\newlength{\turnstilewidth}
+% \end{macrocode}
+
+% \DescribeMacro{\turnstileheight} The length of the vertical line.
+% \begin{macrocode}
+\newlength{\turnstileheight}
+% \end{macrocode}
+
+% \DescribeMacro{\dashthickness} The thickness of the dashes used to compose the lines of the turnstile sign.
+% \begin{macrocode}
+\newlength{\dashthickness}
+% \end{macrocode}
+
+% \DescribeMacro{\ddashthickness} The standard distance between two dashes in a double or triple line of the turnstile sign.
+% \begin{macrocode}
+\newlength{\ddashthickness}
+% \end{macrocode}
+
+
+% \DescribeMacro{\raiseup} The vertical distance for lifting up the expression to be located above the turnstile sign.
+% \begin{macrocode}
+\newlength{\raiseup}
+% \end{macrocode}
+
+% \DescribeMacro{\raisedown} The vertical distance for lifting down the expression to be located below the turnstile sign.
+% \begin{macrocode}
+\newlength{\raisedown}
+% \end{macrocode}
+
+% \DescribeMacro{\tinyverdistance} The very short distance for lifting up or down an expression, depending if the horizontal line is single, double or triple, and from the standard thickness of the dash used for composition of any line of the turnstile sign.
+% \begin{macrocode}
+\newlength{\tinyverdistance}
+% \end{macrocode}
+
+% \DescribeMacro{\verdistance} The distance between the expression located above or below and the horizontal line.
+% \begin{macrocode}
+\newlength{\verdistance}
+% \end{macrocode}
+
+% \DescribeMacro{\lift} The vertical distance in which the final composition of the turnstile will be lift.
+% \begin{macrocode}
+\newlength{\lift}
+% \end{macrocode}
+
+% \DescribeMacro{\lengthvar} It is only an auxiliary length variable.
+% \begin{macrocode}
+\newlength{\lengthvar}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$newsavebox}
+%
+% \DescribeMacro{\newsavebox} |\newsavebox{|\meta{command}|}| is used to store any expression which composes the turnstile sign, including the complete turnstile sign.
+%
+% \subsubsection{Internal Commands}
+%
+% \DescribeMacro{\first} It contains the expression to be located below the turnstile sign.
+% \begin{macrocode}
+\newsavebox{\first}
+% \end{macrocode}
+
+% \DescribeMacro{\second} It contains the expression to be located above the turnstile sign.
+% \begin{macrocode}
+\newsavebox{\second}
+% \end{macrocode}
+
+% \DescribeMacro{\turnstilebox} It contains the final composition of the turnstile sign, before eventually adding horizontal spaces before and after it, depending if it will be used as a binary relation.
+% \begin{macrocode}
+\newsavebox{\turnstilebox}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$makever}
+%
+% \DescribeMacro{\makever} |\makever{|\meta{command}|}[|\meta{params}|]| |\makever| is a routine used by |\turnstile| command, which composes a vertical line for the turnstile sign (some turnstile signs can have two vertical lines: one before and one after the horizontal line). It uses four arguments. The first one informs the kind of the line, ``n'' for no dash, ``s'' for a single line, ``d'' for a double line, and ``t'' for a triple line; the second one informs the thickness of a dash; the third one the height of the vertical line; and finally the fourth one the distance between two adjacent vertical dashes. Of course, |\makever| draws nothing if the first argument equals ``n''.
+%
+% \begin{macrocode}
+\newcommand{\makever}[4]
+ {\ifthenelse{\equal{#1}{s}}{\rule[-0.5#3]{#2}{#3}}{}
+ \ifthenelse{\equal{#1}{d}}{\rule[-0.5#3]{#2}{#3}
+ \hspace{#4}
+ \rule[-0.5#3]{#2}{#3}}{}
+ \ifthenelse{\equal{#1}{t}}{\rule[-0.5#3]{#2}{#3}
+ \hspace{#4}
+ \rule[-0.5#3]{#2}{#3}
+ \hspace{#4}
+ \rule[-0.5#3]{#2}{#3}}{}}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$makehor}
+%
+% \DescribeMacro{\makehor} |\makehor{|\meta{command}|}[|\meta{params}|]| |\makehor| is also a routine used by |\turnstile| command, which composes the horizontal line of the turnstile sign. It uses four arguments. The first one informs the kind of the line, ``n'' for no dash, ``s'' for a single line, ``d'' for a double line, and ``t'' for a triple line; the second one informs the thickness of a dash; the third one the length of the horizontal line, and finally the fourth one the distance between two adjacent horizontal dashes. |\makehor| only advances an horizontal space of |\turnstilewidth| if the first argument equals ``n'', for at least providing space for the two expressions which must be located below and above the turnstile sign.
+%
+% \begin{macrocode}
+\newcommand{\makehor}[4]
+ {\ifthenelse{\equal{#1}{n}}{\hspace{#3}}{}
+ \ifthenelse{\equal{#1}{s}}{\rule[-0.5#2]{#3}{#2}}{}
+ \ifthenelse{\equal{#1}{d}}{\setlength{\lengthvar}{#2}
+ \addtolength{\lengthvar}{0.5#4}
+ \rule[-\lengthvar]{#3}{#2}
+ \hspace{-#3}
+ \rule[0.5#4]{#3}{#2}}{}
+ \ifthenelse{\equal{#1}{t}}{\setlength{\lengthvar}{1.5#2}
+ \addtolength{\lengthvar}{#4}
+ \rule[-\lengthvar]{#3}{#2}
+ \hspace{-#3}
+ \rule[-0.5#2]{#3}{#2}
+ \hspace{-#3}
+ \setlength{\lengthvar}{0.5#2}
+ \addtolength{\lengthvar}{#4}
+ \rule[\lengthvar]{#3}{#2}}{}}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$turnstile}
+%
+% \DescribeMacro{\turnstile} |\turnstile{|\meta{6}|}[|\meta{params}|]| |\turnstile| draws a turnstile sign together with its accompanying expressions.
+%
+%The first argument is optional, it informs the size by which the internal expressions must be displayed, ``d'' for displayed formulas, ``t'' for text formulas, ``s'' for first subscript or superscript formulas, and ``ss'' for later subscript or superscript formulas. The default value is ``s''. The result of applying ``t'' or ``d'' is the same, except if there is a mathematical sign in the fourth or fifth argument issued in distinct ways, depending if it is inside text formulas or displayed formulas.
+%
+%The second argument informs the kind of the vertical line which precedes the horizontal line, ``s'' for a single one, ``d'' for a double one, ``t'' for a triple one and ``n'' when no line is drawn before the horizontal line.
+%
+% The third argument provides the kind of the horizontal line, in an analogous way.
+%
+%The fourth and fifth arguments provide respectively the expressions to be placed below and above the turnstile sign, whereon both these expressions are converted to the size specified by the first argument.
+%
+%Finally, the sixth argument informs the kind of the closing vertical line, if it exists, also in an analogous way that it is done for the second and third arguments.
+%
+% \begin{macrocode}
+\newcommand{\turnstile}[6][s]
+ {\ifthenelse{\equal{#1}{d}}
+ {\sbox{\first}{$\displaystyle{#4}$}
+ \sbox{\second}{$\displaystyle{#5}$}}{}
+ \ifthenelse{\equal{#1}{t}}
+ {\sbox{\first}{$\textstyle{#4}$}
+ \sbox{\second}{$\textstyle{#5}$}}{}
+ \ifthenelse{\equal{#1}{s}}
+ {\sbox{\first}{$\scriptstyle{#4}$}
+ \sbox{\second}{$\scriptstyle{#5}$}}{}
+ \ifthenelse{\equal{#1}{ss}}
+ {\sbox{\first}{$\scriptscriptstyle{#4}$}
+ \sbox{\second}{$\scriptscriptstyle{#5}$}}{}
+ \setlength{\dashthickness}{0.111ex}
+ \setlength{\ddashthickness}{0.35ex}
+ \setlength{\leasturnstilewidth}{0.8em}
+ \setlength{\extrawidth}{0.2em}
+ \ifthenelse{%
+ \equal{#3}{n}}{\setlength{\tinyverdistance}{0ex}}{}
+ \ifthenelse{%
+ \equal{#3}{s}}{\setlength{\tinyverdistance}{0.5\dashthickness}}{}
+ \ifthenelse{%
+ \equal{#3}{d}}{\setlength{\tinyverdistance}{0.5\ddashthickness}
+ \addtolength{\tinyverdistance}{\dashthickness}}{}
+ \ifthenelse{%
+ \equal{#3}{t}}{\setlength{\tinyverdistance}{1.5\dashthickness}
+ \addtolength{\tinyverdistance}{\ddashthickness}}{}
+ \setlength{\verdistance}{0.4ex}
+ \settoheight{\lengthvar}{\usebox{\first}}
+ \setlength{\raisedown}{-\lengthvar}
+ \addtolength{\raisedown}{-\tinyverdistance}
+ \addtolength{\raisedown}{-\verdistance}
+ \settodepth{\raiseup}{\usebox{\second}}
+ \addtolength{\raiseup}{\tinyverdistance}
+ \addtolength{\raiseup}{\verdistance}
+ \setlength{\lift}{0.8ex}
+ \settowidth{\firstwidth}{\usebox{\first}}
+ \settowidth{\secondwidth}{\usebox{\second}}
+ \ifthenelse{\lengthtest{\firstwidth = 0ex}
+ \and
+ \lengthtest{\secondwidth = 0ex}}
+ {\setlength{\turnstilewidth}{\leasturnstilewidth}}
+ {\setlength{\turnstilewidth}{2\extrawidth}
+ \ifthenelse{\lengthtest{\firstwidth < \secondwidth}}
+ {\addtolength{\turnstilewidth}{\secondwidth}}
+ {\addtolength{\turnstilewidth}{\firstwidth}}}
+ \setlength{\turnstileheight}{3ex}
+ \sbox{\turnstilebox}
+ {\raisebox{\lift}{\ensuremath{
+ \makever{#2}{\dashthickness}{\turnstileheight}{\ddashthickness}
+ \makehor{#3}{\dashthickness}{\turnstilewidth}{\ddashthickness}
+ \hspace{-\turnstilewidth}
+ \raisebox{\raisedown}
+ {\makebox[\turnstilewidth]{\usebox{\first}}}
+ \hspace{-\turnstilewidth}
+ \raisebox{\raiseup}
+ {\makebox[\turnstilewidth]{\usebox{\second}}}
+ \makever{#6}{\dashthickness}{\turnstileheight}{\ddashthickness}}}}
+ \mathrel{\usebox{\turnstilebox}}}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$??tstile , $\backslash$???tstile}
+%
+% \DescribeMacro{\??tstile}
+% \DescribeMacro{\???tstile}
+% Next some more new commands are provided for getting easier the calling of |\turnstile| command. Before the string ``tstile'' of any of these commands it can be placed a string with two |\??| or three |\???| letters. These letters indicate the kind of the lines to be successively drawn; they can be ``n'', ``s'', ``d'' or ``t''. The letter ``n'' informs that the line is empty, the letter ``s'' that the line is single, the letter ``d'' that the line is double, and finally ``t'' indicates that the line is triple.
+%
+%The corresponding commands for the two lettered strings provide the most common turnstile signs, in which is not drawn a second vertical line following the horizontal line. The first letter of these strings indicates the kind of the vertical line and the second the kind of the horizontal line to be drawn after the vertical line. The three lettered strings can contain any of the letters ``n'', ``s'', ``d'' and ``t'', with the restriction that the last letter must be distinct from ``n'', because the case in which the third line is empty is already dealt by the commands with two lettered strings preceding ``tstile''. The first letter informs the kind of the first vertical line, the second the kind of the horizontal line, and finally the third letter the kind of the second vertical line. Below there are the commands providing turnstile signs with a vertical line followed by a horizontal line, whereon any of these two lines can be empty, and the commands providing turnstile signs with a second vertical line, besides the first one, whereon the first two lines can be empty, but the second vertical line is not empty.
+%
+%All these commands have three arguments, whereon the first one is optional.
+%
+%The first argument is optional, it informs the size by which the internal expressions must be displayed, ``d'' for displayed formulas, ``t'' for text formulas, ``s'' for first subscript or superscript formulas, and ``ss'' for later subscript or superscript formulas. The default value is ``s''. The result of applying ``t'' or ``d'' is the same, except if there is a mathematical sign in the second or third argument issued in distinct ways, depending if it is inside text formulas or displayed formulas.
+%
+%The second and third arguments provide respectively the expressions to be placed below and above the turnstile sign, whereon both these expressions are converted to the size specified by the first argument.
+%
+% \begin{macrocode}
+\newcommand{\nntstile}[3][s]{\turnstile[#1]{n}{n}{#2}{#3}{n}}
+\newcommand{\nststile}[3][s]{\turnstile[#1]{n}{s}{#2}{#3}{n}}
+\newcommand{\ndtstile}[3][s]{\turnstile[#1]{n}{d}{#2}{#3}{n}}
+\newcommand{\nttstile}[3][s]{\turnstile[#1]{n}{t}{#2}{#3}{n}}
+
+\newcommand{\sntstile}[3][s]{\turnstile[#1]{s}{n}{#2}{#3}{n}}
+\newcommand{\sststile}[3][s]{\turnstile[#1]{s}{s}{#2}{#3}{n}}
+\newcommand{\sdtstile}[3][s]{\turnstile[#1]{s}{d}{#2}{#3}{n}}
+\newcommand{\sttstile}[3][s]{\turnstile[#1]{s}{t}{#2}{#3}{n}}
+
+\newcommand{\dntstile}[3][s]{\turnstile[#1]{d}{n}{#2}{#3}{n}}
+\newcommand{\dststile}[3][s]{\turnstile[#1]{d}{s}{#2}{#3}{n}}
+\newcommand{\ddtstile}[3][s]{\turnstile[#1]{d}{d}{#2}{#3}{n}}
+\newcommand{\dttstile}[3][s]{\turnstile[#1]{d}{t}{#2}{#3}{n}}
+
+\newcommand{\tntstile}[3][s]{\turnstile[#1]{t}{n}{#2}{#3}{n}}
+\newcommand{\tststile}[3][s]{\turnstile[#1]{t}{s}{#2}{#3}{n}}
+\newcommand{\tdtstile}[3][s]{\turnstile[#1]{t}{d}{#2}{#3}{n}}
+\newcommand{\tttstile}[3][s]{\turnstile[#1]{t}{t}{#2}{#3}{n}}
+
+\newcommand{\nnststile}[3][s]{\turnstile[#1]{n}{n}{#2}{#3}{s}}
+\newcommand{\nsststile}[3][s]{\turnstile[#1]{n}{s}{#2}{#3}{s}}
+\newcommand{\ndststile}[3][s]{\turnstile[#1]{n}{d}{#2}{#3}{s}}
+\newcommand{\ntststile}[3][s]{\turnstile[#1]{n}{t}{#2}{#3}{s}}
+
+\newcommand{\nndtstile}[3][s]{\turnstile[#1]{n}{n}{#2}{#3}{d}}
+\newcommand{\nsdtstile}[3][s]{\turnstile[#1]{n}{s}{#2}{#3}{d}}
+\newcommand{\nddtstile}[3][s]{\turnstile[#1]{n}{d}{#2}{#3}{d}}
+\newcommand{\ntdtstile}[3][s]{\turnstile[#1]{n}{t}{#2}{#3}{d}}
+
+\newcommand{\nnttstile}[3][s]{\turnstile[#1]{n}{n}{#2}{#3}{t}}
+\newcommand{\nsttstile}[3][s]{\turnstile[#1]{n}{s}{#2}{#3}{t}}
+\newcommand{\ndttstile}[3][s]{\turnstile[#1]{n}{d}{#2}{#3}{t}}
+\newcommand{\ntttstile}[3][s]{\turnstile[#1]{n}{t}{#2}{#3}{t}}
+
+\newcommand{\snststile}[3][s]{\turnstile[#1]{s}{n}{#2}{#3}{s}}
+\newcommand{\ssststile}[3][s]{\turnstile[#1]{s}{s}{#2}{#3}{s}}
+\newcommand{\sdststile}[3][s]{\turnstile[#1]{s}{d}{#2}{#3}{s}}
+\newcommand{\stststile}[3][s]{\turnstile[#1]{s}{t}{#2}{#3}{s}}
+
+\newcommand{\sndtstile}[3][s]{\turnstile[#1]{s}{n}{#2}{#3}{d}}
+\newcommand{\ssdtstile}[3][s]{\turnstile[#1]{s}{s}{#2}{#3}{d}}
+\newcommand{\sddtstile}[3][s]{\turnstile[#1]{s}{d}{#2}{#3}{d}}
+\newcommand{\stdtstile}[3][s]{\turnstile[#1]{s}{t}{#2}{#3}{d}}
+
+\newcommand{\snttstile}[3][s]{\turnstile[#1]{s}{n}{#2}{#3}{t}}
+\newcommand{\ssttstile}[3][s]{\turnstile[#1]{s}{s}{#2}{#3}{t}}
+\newcommand{\sdttstile}[3][s]{\turnstile[#1]{s}{d}{#2}{#3}{t}}
+\newcommand{\stttstile}[3][s]{\turnstile[#1]{s}{t}{#2}{#3}{t}}
+
+\newcommand{\dnststile}[3][s]{\turnstile[#1]{d}{n}{#2}{#3}{s}}
+\newcommand{\dsststile}[3][s]{\turnstile[#1]{d}{s}{#2}{#3}{s}}
+\newcommand{\ddststile}[3][s]{\turnstile[#1]{d}{d}{#2}{#3}{s}}
+\newcommand{\dtststile}[3][s]{\turnstile[#1]{d}{t}{#2}{#3}{s}}
+
+\newcommand{\dndtstile}[3][s]{\turnstile[#1]{d}{n}{#2}{#3}{d}}
+\newcommand{\dsdtstile}[3][s]{\turnstile[#1]{d}{s}{#2}{#3}{d}}
+\newcommand{\dddtstile}[3][s]{\turnstile[#1]{d}{d}{#2}{#3}{d}}
+\newcommand{\dtdtstile}[3][s]{\turnstile[#1]{d}{t}{#2}{#3}{d}}
+
+\newcommand{\dnttstile}[3][s]{\turnstile[#1]{d}{n}{#2}{#3}{t}}
+\newcommand{\dsttstile}[3][s]{\turnstile[#1]{d}{s}{#2}{#3}{t}}
+\newcommand{\ddttstile}[3][s]{\turnstile[#1]{d}{d}{#2}{#3}{t}}
+\newcommand{\dtttstile}[3][s]{\turnstile[#1]{d}{t}{#2}{#3}{t}}
+
+\newcommand{\tnststile}[3][s]{\turnstile[#1]{t}{n}{#2}{#3}{s}}
+\newcommand{\tsststile}[3][s]{\turnstile[#1]{t}{s}{#2}{#3}{s}}
+\newcommand{\tdststile}[3][s]{\turnstile[#1]{t}{d}{#2}{#3}{s}}
+\newcommand{\ttststile}[3][s]{\turnstile[#1]{t}{t}{#2}{#3}{s}}
+
+\newcommand{\tndtstile}[3][s]{\turnstile[#1]{t}{n}{#2}{#3}{d}}
+\newcommand{\tsdtstile}[3][s]{\turnstile[#1]{t}{s}{#2}{#3}{d}}
+\newcommand{\tddtstile}[3][s]{\turnstile[#1]{t}{d}{#2}{#3}{d}}
+\newcommand{\ttdtstile}[3][s]{\turnstile[#1]{t}{t}{#2}{#3}{d}}
+
+\newcommand{\tnttstile}[3][s]{\turnstile[#1]{t}{n}{#2}{#3}{t}}
+\newcommand{\tsttstile}[3][s]{\turnstile[#1]{t}{s}{#2}{#3}{t}}
+\newcommand{\tdttstile}[3][s]{\turnstile[#1]{t}{d}{#2}{#3}{t}}
+\newcommand{\ttttstile}[3][s]{\turnstile[#1]{t}{t}{#2}{#3}{t}}
+% \end{macrocode}
+%
+% Well, we think you took everything. Enjoy using \texttt{turnstile}!
+%
+%
+% \CharacterTable
+% {Upper-case \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
+% Lower-case \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
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \Finale
+\endinput
+
+
+
diff --git a/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.ins b/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.ins
new file mode 100644
index 0000000000..3787af6cb0
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.ins
@@ -0,0 +1,50 @@
+%%
+%% Copyright (C) 2007 by ..
+%%
+%% This file will generate documentation and runtime files
+%% from turnstile-en.dtx when run through LaTeX or TeX.
+%% See copyright notice below.
+%%
+%%
+
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/turnstile}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2007 by Arthur Buchsbaum and Francisco Reinaldo
+<arthur@inf.ufsc.br>, <reinaldo.opus@gmail.com>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.2 of this license
+or (at your option) any later version. The latest version of this
+license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.2 or later is part of all distributions of LaTeX version
+1999/12/01 or later.
+
+\endpreamble
+\askforoverwritefalse
+\generate{\file{turnstile.sty}{\from{turnstile-en.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* turnstile.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file turnstile-en.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.pdf b/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.pdf
new file mode 100644
index 0000000000..f5c36d573c
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-en/turnstile-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/turnstile/turnstile-en/turnstile_article.pdf b/macros/latex/contrib/turnstile/turnstile-en/turnstile_article.pdf
new file mode 100644
index 0000000000..3a49c5f391
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-en/turnstile_article.pdf
Binary files differ
diff --git a/macros/latex/contrib/turnstile/turnstile-en/turnstile_article.tex b/macros/latex/contrib/turnstile/turnstile-en/turnstile_article.tex
new file mode 100644
index 0000000000..c823ade46f
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-en/turnstile_article.tex
@@ -0,0 +1,258 @@
+\documentclass{pracjourn}
+
+%\usepackage{amsmath}
+\usepackage{turnstile}
+
+\TPJrevision{2007}{08}{18}
+\TPJissue{2007}{3}
+
+\title{A Tool for Logicians}
+
+\author{Arthur Buchsbaum and Francisco Reinaldo}
+\email{arthur@inf.ufsc.br, reinaldo.opus@gmail.com}
+
+\abstract{\textsf{turnstile} is a \LaTeX{} package that allows typesetting of the mathematical logic symbol, ``turnstile'', in all of the various ways it is used. This package was developed because there was no easy way in \LaTeX{} to typeset this symbol in its various forms, and place expressions above and below the crossbar.}
+
+\bibliographystyle{plain}
+
+\begin{document}
+
+\maketitle
+
+\section{Introduction}
+
+Logic is a science whose initial motivation was the analysis of correct reasoning. In recent years it has advanced beyond of the study of reasoning, and has many intersections with research areas such as Mathematics, Philosophy, Computer Science, Linguistics, Physics and Artificial Intelligence. One of the main signs used in Logic is the~turnstile sign, from which there are versions such as ``$\,\vdash$'' and ``$\,\models$'', issued respectively by the \LaTeX\ commands \begin{verb}=\vdash=\end{verb} and \begin{verb}=\models=\end{verb}
+
+\section{The turnstile Project} % (fold)
+\label{sec:turnstile_project}
+
+The turnstile\footnote{\url{http://tug.ctan.org/tex-archive/macros/latex/contrib/turnstile}} is a sign often used by logicians for denoting a consequence relation, related to a given logic, between a collection of formulas and a formula. Many logicians have complained that there is no easy method in \LaTeX\ to typeset turnstile signs. They occur in many forms, and must be able to have expressions placed correctly above and below them. \LaTeX\ commands such as \begin{verb}=\vdash=\end{verb} and \begin{verb}=\models=\end{verb} typeset the turnstile sign, but they are not capable of placing data below or above them in an acceptable way. For example, sometimes it is necessary to place the name of a considered logical system below the turnstile sign, and sometimes it is necessary to put additional information above it.
+
+\vspace{0.2em}
+
+If we want to say that a formula $P$ is a logical consequence of a collection $\Gamma$ of~formulas in a logic $\mathrm{L}$, we could try to typeset it by \begin{verbatim}\Gamma \vdash_\mathrm{L} P,\end{verbatim} giving $\Gamma \vdash_\mathrm{L} P$.
+
+\medskip
+
+Note that ``$\mathrm{L}$'' was not placed correctly with respect to the turnstile sign; it~should be placed and centred exactly below the sign. With \texttt{turnstile.sty} we can typeset it by \begin{verbatim}\Gamma \sststile{\mathrm{L}}{} P,\end{verbatim} giving $\Gamma \sststile{\mathrm{L}}{} P$.
+
+\medskip
+
+On the other hand, if we want to say that a formula $P$ is a logical semantical consequence of a collection $\Gamma$ of formulas in a logic $\mathrm{L}$, through varying of $x$ and~$y$\footnote{In \cite{BuchsbaumBeziau2004} and \cite{BuchsbaumPequeno1997} varying objects are presented.}, we could try to typeset it by \begin{verbatim}\Gamma \models_\mathrm{L}^{x,y} P,\end{verbatim} giving $\Gamma \models_\mathrm{L}^{x,y} P$.
+
+\medskip
+
+Note that both ``$\mathrm{L}$'' and ``$x,y$'' were not placed correctly with respect to turnstile sign; they should be placed and centered exactly below and above the sign. With \texttt{turnstile.sty} we can typeset it by \begin{verbatim}\Gamma \sdtstile{\mathrm{L}}{x,y} P,\end{verbatim} giving $\Gamma \sdtstile{\mathrm{L}}{x,y} P$.
+
+\medskip
+
+%%% LAC: Rei - it will take a super-logician to figure out the following paragraphs ;-)
+
+The commands provided by this style are all formed by the string ``tstile'' preceded by a string with two or three letters. These letters indicate the kind of~lines to be drawn successively; they can be ``n'', ``s'', ``d'', or ``t''. The~letter~``n'' says that the line is empty, the letter ``s'' that the line is single, the letter ``d'' that the line is double, and finally ``t'' indicates that the line is triple. The corresponding commands for the two-lettered strings provide the most common turnstile signs, in which there is not a second vertical line following the~horizontal line. The first letter of these strings indicates the kind of the vertical line and the second the kind of the horizontal line to be drawn after the vertical line. The three-lettered strings can contain any of the letters ``n'', ``s'', ``d'', and~``t'', with~the restriction that the last letter must not be ``n'', because the~case in which the third line is empty is already dealt with by the commands with two-lettered strings preceding ``tstile''. The first letter specifies the kind of the first vertical line, the~second the kind of the horizontal line, and the third letter the kind of the second vertical line.
+
+All these commands have three arguments, and the first one is optional.
+
+The first argument, which is optional, gives the size by which the internal expressions must be displayed: ``d'' for displayed formulas, ``t'' for text formulas, ``s'' for first subscript or superscript formulas, and ``ss'' for later subscript or superscript formulas. The default value is ``s''. The result of applying ``t'' or ``d'' is the same, except if there is a mathematical sign in the second or third argument issued in~distinct ways, depending on whether it is used in text math mode or displayed math mode.
+
+The second and third arguments provide the expressions to be placed below and above the turnstile sign respectively, where both these expressions are converted to the size specified by the first argument. On the other hand, if the~second or the third argument is empty, then nothing is put below or above the turnstile sign.
+
+\section{Examples} % (fold)
+\label{sec:examples}
+
+Some examples are shown below. For the sake of illustration, $\Gamma$ is a~given collection of formulas and $P$ is a logical formula. Of course, the signs ``$\Gamma$'' and ``$P$'' illustrate only one possible context in which the turnstile sign could appear.
+
+\begin{verbatim}
+\Gamma \sststile{}{} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{}{} P \end{equation} \vspace{0.4em}
+
+\pagebreak
+
+\begin{verbatim}
+\Gamma \sststile{\mathrm{LPD}}{} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\mathrm{LPD}}{} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile{}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{}{x,y} P\end{equation} \vspace{0.4em}
+
+If the optional argument is not used, then the result is the same as if ``s'' was the optional argument:
+
+\begin{verbatim}
+\Gamma \sststile{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[d]{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[t]{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[t]{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[d]{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[s]{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[s]{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+\pagebreak
+
+\begin{verbatim}
+\Gamma \sststile[ss]{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[ss]{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile{\mathrm{LPDEFGH}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\mathrm{LPDEFGH}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sdtstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \sdtstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \dststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \dststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \ddtstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \ddtstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\pagebreak
+
+\begin{verbatim}
+\Gamma \dttstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \dttstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \nsststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \nsststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \ndststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \ndststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \nsdtstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation} \nsdtstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \nddtstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \nddtstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \ndttstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \ndttstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\pagebreak
+
+\begin{verbatim}
+\Gamma \ssststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \ssststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+
+\begin{verbatim}
+\Gamma \stststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \stststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \stttstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \stttstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+Below are some examples of mathematical expressions below and~above the turnstile sign which show how it changes depending on the optional argument. If no optional argument is given, then it is considered to be ``s''.
+
+The reader should also note that the vertical lines don't stretch according to~the~heights of the expressions located below and above the turnstile sign. Because logicians use this sign mainly in text mode, we feel that it should have a standard height.
+
+\begin{verbatim}
+\Gamma \sststile{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[d]{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[d]{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[t]{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[t]{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[s]{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[s]{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[ss]{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[ss]{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\section{Conclusions} % (fold)
+\label{sec:conclusions}
+
+The package \texttt{turnstile.sty} seems to be adequate for typesetting the turnstile sign in~its many forms. It correctly places additional expressions below and above it, if necessary, and stretches the the crossbar width as much as needed to contain the expressions.
+
+For a future version of this package, we want to look at changing the height of the turnstile sign. This will take into account the heights of the~expressions above and below, similar to the way we currently allow for the widths of the expressions.
+
+\begin{thebibliography}{1}
+
+\bibitem{BuchsbaumBeziau2004}
+Arthur Buchsbaum and Jean-Yves B{\'e}ziau.
+\newblock Introduction of implication and~generalization in axiomatic calculi.
+\newblock In Jean-Yves B{\'e}ziau, Alexandre~Costa Leite, and Alberto Facchini,
+ editors, {\em Aspects of Universal Logic}, number~17 in~Travaux de Logique,
+ page 231. Centre de Recherches S{\'e}miologiques, \mbox{Universit{\'e}} de
+ Neuch{\^a}tel, December 2004.
+
+\bibitem{BuchsbaumPequeno1997}
+Arthur Buchsbaum and Tarcisio Pequeno.
+\newblock A general treatment for the deduction theorem in open calculi.
+\newblock {\em Logique et Analyse}, 157:9--29, January--March 1997.
+
+\bibitem{KopkaDaly1999}
+Helmut Kopka and Patrick~W. Daly.
+\newblock {\em A Guide to \LaTeX}.
+\newblock Addison-Wesley, 1999.
+
+\bibitem{Lamport1994}
+Leslie Lamport.
+\newblock {\em \LaTeX\ -- A Document Preparation System -- User's Guide and Reference Manual}.
+\newblock Addison-Wesley, 1994.
+
+\bibitem{NerodeShore1997}
+Anil Nerode and Richard~A. Shore.
+\newblock {\em Logic for Applications}.
+\newblock Springer, 1997.
+
+\bibitem{Nolt1996}
+John Nolt.
+\newblock {\em Logics}.
+\newblock Wadsworth, 1996.
+
+\end{thebibliography}
+
+\end{document}
diff --git a/macros/latex/contrib/turnstile/turnstile-pt/README.pt b/macros/latex/contrib/turnstile/turnstile-pt/README.pt
new file mode 100644
index 0000000000..47754a3245
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-pt/README.pt
@@ -0,0 +1,61 @@
+(para compatibilidades com o site CTAN, este arquivo estah formatado em 7bits)
+
+turnstile
+ Este estilo eh baseado no article.cls, usado para a composicao de
+ artigos. Entre outras utilizacoes, a barra de Frege eh usada
+ pelos logicos para denotar a relacao de consequencia, com
+ respeito a uma dada logica, entre colecoes de formulas e
+ formulas. O pacote turnstile foi feito para desenhar a
+ barra de Frege em varias formas, e para colocar dados abaixo e
+ acima deste simbolo.
+
+AUTORES
+ Arthur Buchsbaum e Francisco Reinaldo
+ arthur@gmail.com, reinaldo.opus@gmail.com
+
+
+COPYRIGHT
+ Este programa eh provido sob os termos de Licenca Publica do
+ Projeto LaTeX, distribuido a partir dos arquivos do CTAN no
+ diretorio macros/latex/base/lppl.txt.
+ (C) 2007 Arthur Buchsbaum e Francisco Reinaldo
+
+VERSAO
+ Este eh o turnstile versao 1.0.
+
+MUDANCAS
+ 1.0 Primeira versao publica.
+
+Arquivos e Diretorios no CTAN
+ README.pt Este arquivo.
+ turnstile-pt.dtx A fonte para o estilo turnstile
+ turnstile-pt.pdf Versao em pdf do estilo
+ turnstile-pt.ins Driver para o turnstile-pt.dtx
+ turnstile_artigo.tex A fonte para o artigo
+ turnstile_artigo.pdf Versao em pdf da documentacao,
+ publicada por PracTeX Journal: Numero 2007-3.
+
+REQUISITOS
+ A instalacao do pacote turnstile requer os pacotes ifthen.
+ Por favor, use <<a derradeira versao do LaTeX>>.
+
+INSTALACAO
+ O procedimento de instalacao eh descrito na documentacao,
+ mas voce pode tambem seguir estes passos:
+
+ 1. Puxe os arquivos turnsilte-pt\turnstile-pt.ins e
+ turnsilte-pt\turnstile-pt.dtx para um diretorio preferencialmente
+ vazio. Se voce pretende manter a documentacao, eh melhor criar
+ um diretorio adequado e colocar la todos os arquivos agora mesmo.
+ 2. Inicie uma shell onde voce pode entrar com os comandos pelo
+ teclado.
+ 3. Va para o diretorio onde voce colocou os arquivos
+ turnstile-pt.ins e turnstile-pt.dtx.
+ 4. Execute o comando:
+ pdflatex turnstile-pt.ins
+ Voce obtera o arquivo turnstile.sty
+ 5. Execute o comando:
+ pdflatex turnstile-pt.dtx
+ para produzir a documentacao e testar a instalacao.
+ Execute este comando mais uma vez para obter as referencias, antes
+ de consulta-la.
diff --git a/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.dtx b/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.dtx
new file mode 100644
index 0000000000..07253bf95c
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.dtx
@@ -0,0 +1,419 @@
+% \iffalse meta-comment
+
+% Este arquivo pode ser distribuído e/ou modificado sob as condições da Licença Pública do Projeto LaTeX, tanto a versão 1.2 desta licença ou (por sua opção) qualquer versão anterior.
+%
+% A derradeira versão desta licença está em:
+
+% http://www.latex-project.org/lppl.txt
+
+% e a versão 1.2 ou anterior é parte de todas as distribuições do LaTeX, versão de 1/12/1999 ou anterior.
+
+% \fi
+
+% \iffalse
+%<*driver>
+\ProvidesFile{turnstile-pt.dtx}
+%</driver>
+%<package>\ProvidesPackage{turnstile}
+%<*package>
+ [2007/06/23 v1.0 turnstile file]
+%</package>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{ifthen}
+\usepackage[english,brazil]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+
+\begin{document}
+ \DocInput{turnstile-pt.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+%
+% \changes{v1.0}{2007/06/23}{Initial version}
+%
+% \GetFileInfo{turnstile-pt.dtx}
+%
+% \DoNotIndex{\if}
+%
+%
+% \title{O pacote \textsf{turnstile}}
+% \author{%
+% Arthur Buchsbaum\\
+% Francisco Reinaldo\\
+% \texttt{arthur@inf.ufsc.br, reinaldo.opus@gmail.com}}
+% \date{\filedate\qquad\fileversion}
+%
+% \maketitle
+%
+% \begin{abstract}
+% \noindent\textsf{turnstile} é uma classe baseada em \texttt{article.cls}, utilizada para a composição de artigos. Entre outras utilizações, a barra de Frege é usada para denotar a relação de conseqüência, com respeito a uma dada lógica, entre coleções de fórmulas e fórmulas. Este pacote foi feito para desenhar a barra de Frege em várias formas, e para colocar dados abaixo e acima deste símbolo.
+
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introdução}
+%
+% Neste pacote são dadas rotinas para o desenho da barra de Frege\footnote{Gottlob Frege (1848--1925) é considerado por muitos o pai da lógica quantificacional e da moderna filosofia da linguagem, e adotou em sua obra o símbolo que é o tema deste pacote.}, em quase todas as formas em que esta pode ser utilizada, desde as relações de conseqüência sintáticas e semânticas, até o forcing. Uma barra de Frege é constituída usualmente de duas linhas, uma vertical e uma horizontal. Cada uma delas pode ser simples, dupla ou tripla, dependendo do tipo de relação de conseqüência que se queira representar.
+
+% \section{Macros do Usuário}
+%
+% Abaixo da barra de Frege é muitas vezes colocado o nome de uma dada lógica, enquanto que, às vezes, alguma informação complementar acima desta. O tamanho das expressões colocadas abaixo ou acima deste símbolo determina a sua largura, e daí também a largura de sua linha horizontal.
+%
+% \section{Código}
+%
+% Identificação e uso do pacote \textsf{ifthen}.
+% \begin{macrocode}
+\RequirePackage{ifthen}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$newlength}
+%
+% \DescribeMacro{\newlength} A macro |\newlength{|\meta{command}|}| pode ser usada para especificar um parâmetro para comprimento.
+%
+% \subsubsection{Comandos Internos}
+%
+% \DescribeMacro{\firstwidth} A largura da expressão a ser colocada abaixo da barra de Frege.
+% \begin{macrocode}
+\newlength{\firstwidth}
+% \end{macrocode}
+%
+% \DescribeMacro{\secondwidth} A largura da expressão a ser colocada acima da barra de Frege.
+% \begin{macrocode}
+\newlength{\secondwidth}
+% \end{macrocode}
+
+% \DescribeMacro{\extrawidth} O comprimento extra da linha horizontal a ser colocado antes e depois da expressão mais larga.
+% \begin{macrocode}
+\newlength{\extrawidth}
+% \end{macrocode}
+
+% \DescribeMacro{\leasturnstilewidth} O comprimento da linha horizontal quando nenhuma expressão é colocada abaixo ou acima.
+% \begin{macrocode}
+\newlength{\leasturnstilewidth}
+% \end{macrocode}
+
+% \DescribeMacro{\turnstilewidth} O comprimento da linha horizontal.
+% \begin{macrocode}
+\newlength{\turnstilewidth}
+% \end{macrocode}
+
+% \DescribeMacro{\turnstileheight} O comprimento da linha vertical.
+% \begin{macrocode}
+\newlength{\turnstileheight}
+% \end{macrocode}
+
+% \DescribeMacro{\dashthickness} A grossura dos traços que compõem as linhas da barra de Frege.
+% \begin{macrocode}
+\newlength{\dashthickness}
+% \end{macrocode}
+
+% \DescribeMacro{\ddashthickness} A distância padrão entre dois traços de uma linha dupla ou tripla.
+% \begin{macrocode}
+\newlength{\ddashthickness}
+% \end{macrocode}
+
+
+% \DescribeMacro{\raiseup} A distância vertical pela qual a expressão a ser colocada acima da barra de Frege é deslocada.
+% \begin{macrocode}
+\newlength{\raiseup}
+% \end{macrocode}
+
+% \DescribeMacro{\raisedown} A distância vertical pela qual a expressão a ser colocada abaixo da barra de Frege é deslocada.
+% \begin{macrocode}
+\newlength{\raisedown}
+% \end{macrocode}
+
+% \DescribeMacro{\tinyverdistance} A pequena distância adicional para deslocar uma expressão para cima ou para baixo, dependendo se a linha horizontal é simples, dupla ou tripla, e da grossura do traço usado para a composição de qualquer linha da barra de Frege.
+% \begin{macrocode}
+\newlength{\tinyverdistance}
+% \end{macrocode}
+
+% \DescribeMacro{\verdistance} A distância entre a expressão acima ou abaixo e a linha horizontal.
+% \begin{macrocode}
+\newlength{\verdistance}
+% \end{macrocode}
+
+% \DescribeMacro{\lift} A distância vertical pela qual a composição final da barra de Frege deve ser alçada.
+% \begin{macrocode}
+\newlength{\lift}
+% \end{macrocode}
+
+% \DescribeMacro{\lengthvar} Esta é somente uma variável de comprimento auxiliar.
+% \begin{macrocode}
+\newlength{\lengthvar}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$newsavebox}
+%
+% \DescribeMacro{\newsavebox} |\newsavebox{|\meta{command}|}| é usado para armazenar qualquer expressão que compõe a barra de Frege, incluindo a composição completa deste sinal juntamente com as expressões que o acompanham eventualmente.
+%
+% \subsubsection{Comandos Internos}
+%
+% \DescribeMacro{\first} Contém a expressão a ser colocada abaixo da barra de Frege.
+% \begin{macrocode}
+\newsavebox{\first}
+% \end{macrocode}
+
+% \DescribeMacro{\second} Contém a expressão a ser colocada acima da barra de Frege.
+% \begin{macrocode}
+\newsavebox{\second}
+% \end{macrocode}
+
+% \DescribeMacro{\turnstilebox} Contém a composição final da barra de Frege, eventualmente antes da colocação de espaços antes e depois desta, dependendo se esta será usada ou não como uma relação binária.
+
+% \begin{macrocode}
+\newsavebox{\turnstilebox}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$makever}
+%
+% \DescribeMacro{\makever} |\makever{|\meta{command}|}[|\meta{params}|]| |\makever| é uma rotina usada pelo comando |\turnstile|, a qual compõe uma linha vertical para a barra de Frege (algumas versões deste símbolo têm duas linhas verticais: uma antes e uma depois da linha horizontal). Usa quatro argumentos. O primeiro informa o tipo da linha, ``n'' quando não há nenhum traço, ``s'' para uma linha simples, ``d'' para uma linha dupla, e ``t'' para uma linha tripla; o segundo informa a grossura de cada traço; o terceiro o comprimento da linha vertical; e finalmente o quarto a distância entre dois traços adjacentes. Naturalmente, |\makever| não desenha nada se o primeiro argumento for ``n''.
+
+% \begin{macrocode}
+\newcommand{\makever}[4]
+ {\ifthenelse{\equal{#1}{s}}{\rule[-0.5#3]{#2}{#3}}{}
+ \ifthenelse{\equal{#1}{d}}{\rule[-0.5#3]{#2}{#3}
+ \hspace{#4}
+ \rule[-0.5#3]{#2}{#3}}{}
+ \ifthenelse{\equal{#1}{t}}{\rule[-0.5#3]{#2}{#3}
+ \hspace{#4}
+ \rule[-0.5#3]{#2}{#3}
+ \hspace{#4}
+ \rule[-0.5#3]{#2}{#3}}{}}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$makehor}
+%
+% \DescribeMacro{\makehor} |\makehor{|\meta{command}|}[|\meta{params}|]| |\makehor| também é uma rotina para o comando |\turnstile|, a qual compõe uma linha horizontal para a barra de Frege. Usa quatro argumentos. O primeiro dá o tipo da linha, ``n'' quando não há nenhum traço, ``s'' para uma linha simples, ``d'' para uma linha dupla, e ``t'' para uma linha tripla; o segundo informa a grossura de cada traço; o terceiro o comprimento da linha horizontal; e finalmente o quarto a distância entre dois traços adjacentes. |\makehor| somente avança um espaço horizontal para a direita de |\turnstilewidth| se o primeiro argumento for igual a ``n'', para pelo menos dar espaço para as duas expressões a serem colocadas abaixo e acima da barra de Frege.
+
+% \begin{macrocode}
+\newcommand{\makehor}[4]
+ {\ifthenelse{\equal{#1}{n}}{\hspace{#3}}{}
+ \ifthenelse{\equal{#1}{s}}{\rule[-0.5#2]{#3}{#2}}{}
+ \ifthenelse{\equal{#1}{d}}{\setlength{\lengthvar}{#2}
+ \addtolength{\lengthvar}{0.5#4}
+ \rule[-\lengthvar]{#3}{#2}
+ \hspace{-#3}
+ \rule[0.5#4]{#3}{#2}}{}
+ \ifthenelse{\equal{#1}{t}}{\setlength{\lengthvar}{1.5#2}
+ \addtolength{\lengthvar}{#4}
+ \rule[-\lengthvar]{#3}{#2}
+ \hspace{-#3}
+ \rule[-0.5#2]{#3}{#2}
+ \hspace{-#3}
+ \setlength{\lengthvar}{0.5#2}
+ \addtolength{\lengthvar}{#4}
+ \rule[\lengthvar]{#3}{#2}}{}}
+% \end{macrocode}
+
+% \subsection{Macro: $\backslash$turnstile}
+%
+% \DescribeMacro{\turnstile} |\turnstile{|\meta{6}|}[|\meta{params}|]| |\turnstile| compõe uma barra de Frege, juntamente com as expressões internas que eventualmente a acompanham.
+%
+% O primeiro argumento é opcional, este informa o tamanho no qual as expressões internas devem ser exibidas, ``d'' para expressões (normalmente) em linhas exclusivas, ``t'' para expressões (normalmente) inseridas no texto corrente, ``s'' para expressões subscritas ou sobrescritas, e ``ss'' para expressões ainda menores, subscritas ou sobrescritas com respeito às do tipo anterior. O valor predeterminado é ``s''. O resultado de aplicar ``d'' ou ``t'' é o mesmo, a não ser que haja um sinal matemático no segundo ou terceiro argumento exibido de formas distintas, dependendo se este está em expressões (normalmente) de linhas exclusivas, ou em expressões (normalmente) inseridas no texto corrente.
+
+% O segundo argumento informa o tipo da linha vertical que precede a linha horizontal, ``s'' para uma linha simples de um só traço, ``d'' para uma linha dupla, ``t'' para uma linha tripla e ``n'' quando nenhuma linha é desenhada antes da linha horizontal.
+
+% O terceiro argumento dá o tipo da linha vertical, de uma forma análoga.
+
+% O quarto e quinto argumentos dão respectivamente as expressões a serem colocadas abaixo e acima da barra de Frege, onde ambas são convertidas para o tamanho especificado pelo primeiro argumento.
+
+% Finalmente, o sexto argumento dá o tipo da segunda linha vertical, se esta existir, também de uma forma análoga à feita para o segundo e terceiro argumentos.
+
+% \begin{macrocode}
+\newcommand{\turnstile}[6][s]
+ {\ifthenelse{\equal{#1}{d}}
+ {\sbox{\first}{$\displaystyle{#4}$}
+ \sbox{\second}{$\displaystyle{#5}$}}{}
+ \ifthenelse{\equal{#1}{t}}
+ {\sbox{\first}{$\textstyle{#4}$}
+ \sbox{\second}{$\textstyle{#5}$}}{}
+ \ifthenelse{\equal{#1}{s}}
+ {\sbox{\first}{$\scriptstyle{#4}$}
+ \sbox{\second}{$\scriptstyle{#5}$}}{}
+ \ifthenelse{\equal{#1}{ss}}
+ {\sbox{\first}{$\scriptscriptstyle{#4}$}
+ \sbox{\second}{$\scriptscriptstyle{#5}$}}{}
+ \setlength{\dashthickness}{0.111ex}
+ \setlength{\ddashthickness}{0.35ex}
+ \setlength{\leasturnstilewidth}{0.8em}
+ \setlength{\extrawidth}{0.2em}
+ \ifthenelse{%
+ \equal{#3}{n}}{\setlength{\tinyverdistance}{0ex}}{}
+ \ifthenelse{%
+ \equal{#3}{s}}{\setlength{\tinyverdistance}{0.5\dashthickness}}{}
+ \ifthenelse{%
+ \equal{#3}{d}}{\setlength{\tinyverdistance}{0.5\ddashthickness}
+ \addtolength{\tinyverdistance}{\dashthickness}}{}
+ \ifthenelse{%
+ \equal{#3}{t}}{\setlength{\tinyverdistance}{1.5\dashthickness}
+ \addtolength{\tinyverdistance}{\ddashthickness}}{}
+ \setlength{\verdistance}{0.4ex}
+ \settoheight{\lengthvar}{\usebox{\first}}
+ \setlength{\raisedown}{-\lengthvar}
+ \addtolength{\raisedown}{-\tinyverdistance}
+ \addtolength{\raisedown}{-\verdistance}
+ \settodepth{\raiseup}{\usebox{\second}}
+ \addtolength{\raiseup}{\tinyverdistance}
+ \addtolength{\raiseup}{\verdistance}
+ \setlength{\lift}{0.8ex}
+ \settowidth{\firstwidth}{\usebox{\first}}
+ \settowidth{\secondwidth}{\usebox{\second}}
+ \ifthenelse{\lengthtest{\firstwidth = 0ex}
+ \and
+ \lengthtest{\secondwidth = 0ex}}
+ {\setlength{\turnstilewidth}{\leasturnstilewidth}}
+ {\setlength{\turnstilewidth}{2\extrawidth}
+ \ifthenelse{\lengthtest{\firstwidth < \secondwidth}}
+ {\addtolength{\turnstilewidth}{\secondwidth}}
+ {\addtolength{\turnstilewidth}{\firstwidth}}}
+ \setlength{\turnstileheight}{3ex}
+ \sbox{\turnstilebox}
+ {\raisebox{\lift}{\ensuremath{
+ \makever{#2}{\dashthickness}{\turnstileheight}{\ddashthickness}
+ \makehor{#3}{\dashthickness}{\turnstilewidth}{\ddashthickness}
+ \hspace{-\turnstilewidth}
+ \raisebox{\raisedown}
+ {\makebox[\turnstilewidth]{\usebox{\first}}}
+ \hspace{-\turnstilewidth}
+ \raisebox{\raiseup}
+ {\makebox[\turnstilewidth]{\usebox{\second}}}
+ \makever{#6}{\dashthickness}{\turnstileheight}{\ddashthickness}}}}
+ \mathrel{\usebox{\turnstilebox}}}
+% \end{macrocode}
+%
+% \subsection{Macro: $\backslash$??tstile , $\backslash$???tstile}
+%
+% \DescribeMacro{\??tstile}
+% \DescribeMacro{\???tstile}
+% A seguir são dados mais alguns comandos feitos para facilitar a chamada do comando |\turnstile|. Antes da samblagem ``tstile'', presente no nome de todos estes comandos, é colocada uma outra samblagem de duas ou três letras. Estas letras indicam o tipo das linhas a serem desenhadas sucessivamente; elas podem ser ``n'', ``s'', ``d'' ou ``t''. A letra ``n'' informa que a linha correspondente é vazia, a letra ``s'' que a linha é simples, a letra ``d'' que é dupla, e finalmente a letra ``t'' que é tripla.
+
+% Os comandos correspondentes às samblagens de duas letras resultam nas barras de Frege mais utilizadas, nas quais não é desenhada uma segunda linha vertical seguindo a linha horizontal. A primeira letra destas samblagens indica o tipo da linha vertical, enquanto que a segunda o tipo da linha horizontal a ser desenhada após a linha vertical. As samblagens de três letras podem conter qualquer uma das letras ``n'', ``s'', ``d'' ou ``t'', com a restrição de que a derradeira letra seja distinta de ``n'', porque o caso no qual a terceira linha é vazia já foi tratado pelos comandos com samblagens de duas letras precedendo ``tstile''. A primeira letra informa o tipo da primeira linha vertical, a segunda o tipo da linha horizontal e, finalmente, a terceira o tipo da segunda linha vertical.
+
+% Abaixo são dados os comandos compondo barras de Frege com uma linha vertical seguida de uma linha horizontal, onde qualquer uma destas linhas pode ser vazia, e os comandos compondo barras de Frege com uma segunda linha vertical, além da primeira, onde as duas primeiras linhas podem ser vazias, mas não a segunda linha vertical.
+
+% Todos estes comandos têm três argumentos, onde o primeiro é opcional.
+
+% O primeiro argumento é opcional, este informa o tamanho em que as expressões internas na barra de Frege devem ser exibidas, ``d'' para expressões (normalmente) em linhas exclusivas, ``t'' para expressões (normalmente) inseridas no texto corrente, ``s'' para expressões subscritas ou sobrescritas, e ``ss'' para expressões ainda menores, subscritas ou sobrescritas com respeito às do tipo anterior. O valor predeterminado é ``s''. O resultado de aplicar ``d'' ou ``t'' é o mesmo, a não ser que haja um sinal matemático no segundo ou terceiro argumento exibido de formas distintas, dependendo se este está em expressões (normalmente) de linhas exclusivas, ou em expressões (normalmente) inseridas no texto corrente.
+
+% O segundo e terceiro argumentos dão respectivamente as expressões a serem colocadas abaixo e acima da barra de Frege, onde ambas são convertidas ao tamanho especificado no primeiro argumento.
+
+% \begin{macrocode}
+\newcommand{\nntstile}[3][s]{\turnstile[#1]{n}{n}{#2}{#3}{n}}
+\newcommand{\nststile}[3][s]{\turnstile[#1]{n}{s}{#2}{#3}{n}}
+\newcommand{\ndtstile}[3][s]{\turnstile[#1]{n}{d}{#2}{#3}{n}}
+\newcommand{\nttstile}[3][s]{\turnstile[#1]{n}{t}{#2}{#3}{n}}
+
+\newcommand{\sntstile}[3][s]{\turnstile[#1]{s}{n}{#2}{#3}{n}}
+\newcommand{\sststile}[3][s]{\turnstile[#1]{s}{s}{#2}{#3}{n}}
+\newcommand{\sdtstile}[3][s]{\turnstile[#1]{s}{d}{#2}{#3}{n}}
+\newcommand{\sttstile}[3][s]{\turnstile[#1]{s}{t}{#2}{#3}{n}}
+
+\newcommand{\dntstile}[3][s]{\turnstile[#1]{d}{n}{#2}{#3}{n}}
+\newcommand{\dststile}[3][s]{\turnstile[#1]{d}{s}{#2}{#3}{n}}
+\newcommand{\ddtstile}[3][s]{\turnstile[#1]{d}{d}{#2}{#3}{n}}
+\newcommand{\dttstile}[3][s]{\turnstile[#1]{d}{t}{#2}{#3}{n}}
+
+\newcommand{\tntstile}[3][s]{\turnstile[#1]{t}{n}{#2}{#3}{n}}
+\newcommand{\tststile}[3][s]{\turnstile[#1]{t}{s}{#2}{#3}{n}}
+\newcommand{\tdtstile}[3][s]{\turnstile[#1]{t}{d}{#2}{#3}{n}}
+\newcommand{\tttstile}[3][s]{\turnstile[#1]{t}{t}{#2}{#3}{n}}
+
+\newcommand{\nnststile}[3][s]{\turnstile[#1]{n}{n}{#2}{#3}{s}}
+\newcommand{\nsststile}[3][s]{\turnstile[#1]{n}{s}{#2}{#3}{s}}
+\newcommand{\ndststile}[3][s]{\turnstile[#1]{n}{d}{#2}{#3}{s}}
+\newcommand{\ntststile}[3][s]{\turnstile[#1]{n}{t}{#2}{#3}{s}}
+
+\newcommand{\nndtstile}[3][s]{\turnstile[#1]{n}{n}{#2}{#3}{d}}
+\newcommand{\nsdtstile}[3][s]{\turnstile[#1]{n}{s}{#2}{#3}{d}}
+\newcommand{\nddtstile}[3][s]{\turnstile[#1]{n}{d}{#2}{#3}{d}}
+\newcommand{\ntdtstile}[3][s]{\turnstile[#1]{n}{t}{#2}{#3}{d}}
+
+\newcommand{\nnttstile}[3][s]{\turnstile[#1]{n}{n}{#2}{#3}{t}}
+\newcommand{\nsttstile}[3][s]{\turnstile[#1]{n}{s}{#2}{#3}{t}}
+\newcommand{\ndttstile}[3][s]{\turnstile[#1]{n}{d}{#2}{#3}{t}}
+\newcommand{\ntttstile}[3][s]{\turnstile[#1]{n}{t}{#2}{#3}{t}}
+
+\newcommand{\snststile}[3][s]{\turnstile[#1]{s}{n}{#2}{#3}{s}}
+\newcommand{\ssststile}[3][s]{\turnstile[#1]{s}{s}{#2}{#3}{s}}
+\newcommand{\sdststile}[3][s]{\turnstile[#1]{s}{d}{#2}{#3}{s}}
+\newcommand{\stststile}[3][s]{\turnstile[#1]{s}{t}{#2}{#3}{s}}
+
+\newcommand{\sndtstile}[3][s]{\turnstile[#1]{s}{n}{#2}{#3}{d}}
+\newcommand{\ssdtstile}[3][s]{\turnstile[#1]{s}{s}{#2}{#3}{d}}
+\newcommand{\sddtstile}[3][s]{\turnstile[#1]{s}{d}{#2}{#3}{d}}
+\newcommand{\stdtstile}[3][s]{\turnstile[#1]{s}{t}{#2}{#3}{d}}
+
+\newcommand{\snttstile}[3][s]{\turnstile[#1]{s}{n}{#2}{#3}{t}}
+\newcommand{\ssttstile}[3][s]{\turnstile[#1]{s}{s}{#2}{#3}{t}}
+\newcommand{\sdttstile}[3][s]{\turnstile[#1]{s}{d}{#2}{#3}{t}}
+\newcommand{\stttstile}[3][s]{\turnstile[#1]{s}{t}{#2}{#3}{t}}
+
+\newcommand{\dnststile}[3][s]{\turnstile[#1]{d}{n}{#2}{#3}{s}}
+\newcommand{\dsststile}[3][s]{\turnstile[#1]{d}{s}{#2}{#3}{s}}
+\newcommand{\ddststile}[3][s]{\turnstile[#1]{d}{d}{#2}{#3}{s}}
+\newcommand{\dtststile}[3][s]{\turnstile[#1]{d}{t}{#2}{#3}{s}}
+
+\newcommand{\dndtstile}[3][s]{\turnstile[#1]{d}{n}{#2}{#3}{d}}
+\newcommand{\dsdtstile}[3][s]{\turnstile[#1]{d}{s}{#2}{#3}{d}}
+\newcommand{\dddtstile}[3][s]{\turnstile[#1]{d}{d}{#2}{#3}{d}}
+\newcommand{\dtdtstile}[3][s]{\turnstile[#1]{d}{t}{#2}{#3}{d}}
+
+\newcommand{\dnttstile}[3][s]{\turnstile[#1]{d}{n}{#2}{#3}{t}}
+\newcommand{\dsttstile}[3][s]{\turnstile[#1]{d}{s}{#2}{#3}{t}}
+\newcommand{\ddttstile}[3][s]{\turnstile[#1]{d}{d}{#2}{#3}{t}}
+\newcommand{\dtttstile}[3][s]{\turnstile[#1]{d}{t}{#2}{#3}{t}}
+
+\newcommand{\tnststile}[3][s]{\turnstile[#1]{t}{n}{#2}{#3}{s}}
+\newcommand{\tsststile}[3][s]{\turnstile[#1]{t}{s}{#2}{#3}{s}}
+\newcommand{\tdststile}[3][s]{\turnstile[#1]{t}{d}{#2}{#3}{s}}
+\newcommand{\ttststile}[3][s]{\turnstile[#1]{t}{t}{#2}{#3}{s}}
+
+\newcommand{\tndtstile}[3][s]{\turnstile[#1]{t}{n}{#2}{#3}{d}}
+\newcommand{\tsdtstile}[3][s]{\turnstile[#1]{t}{s}{#2}{#3}{d}}
+\newcommand{\tddtstile}[3][s]{\turnstile[#1]{t}{d}{#2}{#3}{d}}
+\newcommand{\ttdtstile}[3][s]{\turnstile[#1]{t}{t}{#2}{#3}{d}}
+
+\newcommand{\tnttstile}[3][s]{\turnstile[#1]{t}{n}{#2}{#3}{t}}
+\newcommand{\tsttstile}[3][s]{\turnstile[#1]{t}{s}{#2}{#3}{t}}
+\newcommand{\tdttstile}[3][s]{\turnstile[#1]{t}{d}{#2}{#3}{t}}
+\newcommand{\ttttstile}[3][s]{\turnstile[#1]{t}{t}{#2}{#3}{t}}
+% \end{macrocode}
+%
+% Bem, esperamos que você tenha compreendido tudo. Aprecie usar \texttt{turnstile}!
+
+
+
+% \CharacterTable
+% {Upper-case \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
+% Lower-case \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
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.ins b/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.ins
new file mode 100644
index 0000000000..c7acb85a22
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.ins
@@ -0,0 +1,52 @@
+%%
+%% Copyright (C) 2007 by Arthur Buchsbaum and Francisco Reinaldo.
+%%
+%% Este arquivo gera documentacao e arquivos executaveis
+%% a partir do turnstile-pt.dtx, atraves do LaTeX ou TeX.
+%% Veja a nota de copyright abaixo.
+%%
+%%
+
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/turnstile}
+
+\preamble
+
+Este eh um arquivo gerado.
+
+Copyright (C) 2007 by Arthur Buchsbaum and Francisco Reinaldo
+<arthur@inf.ufsc.br>, <reinaldo.opus@gmail.com>
+
+
+
+Este arquivo pode ser distribuido e/ou modificado sob as condicoes
+da Licenca Publica do Projeto LaTeX, tanto a versao 1.2 desta licenca
+ou (por sua opcao) qualquer versao anterior. A derradeira versao
+desta licenca esta em:
+
+ http://www.latex-project.org/lppl.txt
+
+e a versao 1.2 ou anterior eh parte de todas as distribuicoes do LaTeX
+versao 01/12/1999 ou anterior.
+
+\endpreamble
+\askforoverwritefalse
+\generate{\file{turnstile.sty}{\from{turnstile-pt.dtx}{package}}}
+
+\obeyspaces
+\Msg{**************************************************************}
+\Msg{* *}
+\Msg{* Para terminar a instalacao, voce tem que mover o seguinte *}
+\Msg{* arquivo para um diretorio vasculhado por TeX: *}
+\Msg{* *}
+\Msg{* turnstile.sty *}
+\Msg{* *}
+\Msg{* Para gerar a documentacao, execute o arquivo turnstile-pt.dtx *}
+\Msg{* com o LaTeX. *}
+\Msg{* *}
+\Msg{* Feliz TeXing! *}
+\Msg{* *}
+\Msg{**************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.pdf b/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.pdf
new file mode 100644
index 0000000000..a49ca8f76a
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-pt/turnstile-pt.pdf
Binary files differ
diff --git a/macros/latex/contrib/turnstile/turnstile-pt/turnstile_artigo.pdf b/macros/latex/contrib/turnstile/turnstile-pt/turnstile_artigo.pdf
new file mode 100644
index 0000000000..b843213632
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-pt/turnstile_artigo.pdf
Binary files differ
diff --git a/macros/latex/contrib/turnstile/turnstile-pt/turnstile_artigo.tex b/macros/latex/contrib/turnstile/turnstile-pt/turnstile_artigo.tex
new file mode 100644
index 0000000000..749cb098d3
--- /dev/null
+++ b/macros/latex/contrib/turnstile/turnstile-pt/turnstile_artigo.tex
@@ -0,0 +1,274 @@
+% -*- TeX -*- BR -*-
+
+\documentclass[portuguese]{pracjourn}
+
+\usepackage{turnstile}
+%\usepackage{english}
+\usepackage[latin1]{inputenc}
+\usepackage[T1]{fontenc}
+
+\TPJrevision{2007}{08}{18}
+\TPJissue{2007}{3}
+
+%%% Changing the name of the info labels:
+\renewcommand\abstractname{Resumo}
+\renewcommand\emailname{Contacto}
+\renewcommand\websitename{S\'itio}
+%%%
+
+\title{Uma Ferramenta para Lógicos}
+\author{Arthur Buchsbaum e Francisco Reinaldo}
+\email{arthur@inf.ufsc.br, reinaldo.opus@gmail.com}
+\website{http://www.inf.ufsc.br/~arthur}
+
+\abstract{\textsf{turnstile} é um estilo baseado em \texttt{article.cls}, usado para composição de artigos. Entre outros usos, a barra de Frege é usada pelos lógicos para denotar a relação de conseqüência, com respeito a uma dada lógica, entre coleções de fórmulas e fórmulas. Pesquisadores em Lógica têm sentido falta de uma rotina em \LaTeX\ para obter a barra de Frege, em alguma das diversas formas em que esta é utilizada.}
+
+\bibliographystyle{plain}
+
+\begin{document}
+
+\maketitle
+
+\section{Introdução}
+
+A Lógica é uma ciência cuja motivação inicial foi a análise do raciocínio correto. Hoje em dia ela está muito além do estudo do raciocínio, ela tem muitas ligações com áreas de pesquisa tais como Matemática, Filosofia, Informática, Lingüística, Física e Inteligência Artificial. Um dos sinais de maior utilização na Lógica é a barra de Frege\footnote{Gottlob Frege (1848--1925) é considerado por muitos o pai da lógica quantificacional e da moderna filosofia da linguagem, e adotou em sua obra o símbolo que é o tema deste artigo. Maiores detalhes estão em \cite{Frege1978}.}, da qual existem versões tais como ``$\,\vdash$'' e~``$\,\models$'', obtidas respectivamente pelos comandos de \LaTeX\ \begin{verb}=\vdash=\end{verb} e \begin{verb}=\models=\end{verb}.
+
+\section{O Projeto turnstile}
+\label{sec:turnstile_project}
+
+A barra de Frege\footnote{\url{http://tug.ctan.org/tex-archive/macros/latex/contrib/turnstile}} é um sinal muito utilizado pelos lógicos para denotar a relação de conseqüência, em uma dada lógica, entre coleções de fórmulas e fórmulas. A existência de uma rotina em \LaTeX\ que desenhe adequadamente este símbolo tem feito falta, na composição de artigos que utilizam este sinal, em diversas das formas em que este aparece, incluindo a colocação de dados nas posições corretas acima e abaixo deste sinal. Comandos de \LaTeX\ tais como \begin{verb}=\vdash=\end{verb} e~\begin{verb}=\models=\end{verb}, embora resultem em versões da barra de Frege, não são capazes de colocar nos lugares adequados eventuais dados acima ou abaixo da mesma. Por exemplo, algumas vezes é necessário colocar abaixo da barra de Frege o nome de um determinado sistema lógico, e algumas vezes é preciso colocar acima desta alguma informação adicional.
+
+\vspace{0.2em}
+
+Se queremos dizer que uma fórmula $P$ é conseqüência lógica de uma coleção $\Gamma$ de fórmulas em uma lógica $\mathrm{L}$, poderíamos tentar obter isto por \begin{verbatim}\Gamma \vdash_\mathrm{L} P,\end{verbatim} obtendo $\Gamma \vdash_\mathrm{L} P$.
+
+\medskip
+
+Note que ``$\mathrm{L}$'' não foi bem posicionado com respeito à barra de Frege, ``$\mathrm{L}$'' deveria ser colocado bem abaixo e centralizado. Com \texttt{turnstile.sty} podemos obter isto por \begin{verbatim}\Gamma \sststile{\mathrm{L}}{} P,\end{verbatim} resultando em $\Gamma \sststile{\mathrm{L}}{} P$.
+
+\medskip
+
+Além disto, se quisermos dizer que uma fórmula $P$ é conseqüência lógica de uma coleção $\Gamma$ de fórmulas em uma lógica $\mathrm{L}$, pela variação de $x$ e $y$\footnote{Em \cite{BuchsbaumBeziau2004,BuchsbaumPequeno1997,BuchsbaumPequeno1998} objetos variantes são apresentados.}, poderíamos tentar obter isto por \begin{verbatim}\Gamma \models_\mathrm{L}^{x,y} P,\end{verbatim} resultando em $\Gamma \models_\mathrm{L}^{x,y} P$.
+
+\medskip
+
+Também neste caso, ``$\mathrm{L}$'' e ``$x,y$'' não foram posicionados corretamente com respeito à barra de Frege, estas expressões deveriam ser centralizadas e colocadas, respectivamente, logo abaixo e logo acima deste sinal. Com \texttt{turnstile.sty} podemos obter isto por \begin{verbatim}\Gamma \sdtstile{\mathrm{L}}{x,y} P,\end{verbatim} resultando em $\Gamma \sdtstile{\mathrm{L}}{x,y} P$.
+
+\medskip
+
+Os comandos deste estilo são formados pela samblagem ``tstile'', precedida por uma samblagem com duas ou três letras. Estas letras indicam o tipo das linhas a serem desenhadas sucessivamente; elas podem ser ``n'', ``s'', ``d'' ou ``t''. A letra ``n'' informa que a linha correspondente é vazia, a letra ``s'' que a linha é simples, a letra ``d'' que é dupla, e finalmente a letra ``t'' que é tripla. Os comandos correspondentes às samblagens de duas letras resultam nas barras de Frege mais utilizadas, nas quais não é desenhada uma segunda linha vertical seguindo a linha horizontal. A primeira letra destas samblagens indica o tipo da linha vertical, enquanto que a segunda o tipo da linha horizontal a ser desenhada após a linha vertical. As samblagens de três letras podem conter qualquer uma das letras ``n'', ``s'', ``d'' ou ``t'', com a restrição de que a derradeira letra seja distinta de ``n'', porque o caso no qual a terceira linha é vazia já foi tratado pelos comandos com samblagens de duas letras precedendo ``tstile''. A primeira letra informa o tipo da primeira linha vertical, a segunda o tipo da linha horizontal e, finalmente, a terceira o tipo da segunda linha vertical.
+
+Estes comandos possuem três argumentos, onde o primeiro é opcional.
+
+O primeiro argumento é opcional, este informa o tamanho em que as expressões internas na barra de Frege devem ser exibidas, ``d'' para expressões (normalmente) em linhas exclusivas, ``t'' para expressões (normalmente) inseridas no texto corrente, ``s'' para expressões subscritas ou sobrescritas, e ``ss'' para expressões ainda menores, subscritas ou sobrescritas com respeito às do tipo anterior. O valor predeterminado é ``s''. O resultado de aplicar ``d'' ou ``t'' é o mesmo, a não ser que haja um sinal matemático no segundo ou terceiro argumento exibido de formas distintas, dependendo se este está em expressões (normalmente) de linhas exclusivas, ou em expressões (normalmente) inseridas no texto corrente.
+
+O segundo e o terceiro argumento fornecem as expressões a serem colocadas abaixo e acima da barra de Frege, onde ambas são convertidas para o tamanho especificado no primeiro argumento. Por outro lado, se o segundo ou o terceiro argumento foram vazios, então nada é colocado abaixo ou acima deste sinal.
+
+\section{Exemplos}
+\label{sec:examples}
+
+Damos a seguir alguns exemplos, onde, à guisa de ilustração, $\Gamma$ é uma coleção de fórmulas e $P$ é uma fórmula de uma lógica. Naturalmente, os sinais ``$\Gamma$'' e ``$P$'' apenas servem para dar um possível contexto no qual a barra de Frege pode aparecer, entre outros.
+
+\begin{verbatim}
+\Gamma \sststile{}{} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{}{} P \end{equation}\vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile{\mathrm{LPD}}{} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\mathrm{LPD}}{} P\end{equation}\vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile{}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{}{x,y} P\end{equation} \vspace{0.4em}
+
+Se o argumento opcional não é usado, então o resultado é o mesmo no qual ``s'' é o argumento opcional:
+
+\begin{verbatim}
+\Gamma \sststile{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[d]{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[t]{\mathrm{LPD}}{x,y} P\end{equation}\vspace{0.4em}
+\enlargethispage{-2\baselineskip}
+
+\begin{verbatim}
+\Gamma \sststile[t]{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[d]{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+
+\begin{verbatim}
+\Gamma \sststile[s]{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[s]{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[ss]{\mathrm{LPD}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[ss]{\mathrm{LPD}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile{\mathrm{LPDEFGH}}{x,y} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\mathrm{LPDEFGH}}{x,y} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sdtstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \sdtstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\pagebreak
+
+\begin{verbatim}
+\Gamma \dststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \dststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \ddtstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \ddtstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \dttstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \dttstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \nsststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \nsststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \ndststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \ndststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \nsdtstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation} \nsdtstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\pagebreak
+
+\begin{verbatim}
+\Gamma \nddtstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \nddtstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \ndttstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \ndttstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \ssststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \ssststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \stststile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \stststile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \stttstile{\mathrm{LC}}{x,y,z,w} P
+\end{verbatim}
+\begin{equation}\Gamma \stttstile{\mathrm{LC}}{x,y,z,w} P\end{equation} \vspace{0.4em}
+
+São dados a seguir alguns exemplos de expressões matemáticas abaixo e acima da barra de Frege que mudam bastante, dependendo do argumento opcional. Se nenhum argumento opcional for dado, então este é considerado ``s''.
+
+O leitor pode observar que as linhas verticais não crescem de acordo com a altura das expressões localizadas abaixo e acima da barra de Frege, isto porque consideramos que este sinal deve ter uma altura padrão, pois entendemos que este símbolo aparece principalmente inserido no texto corrente.
+
+\pagebreak
+
+\begin{verbatim}
+\Gamma \sststile{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[d]{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[d]{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[t]{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[t]{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[s]{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[s]{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\begin{verbatim}
+\Gamma \sststile[ss]{\sum_0^\infty 1/2^n}{\int_a^b f} P
+\end{verbatim}
+\begin{equation}\Gamma \sststile[ss]{\sum_0^\infty 1/2^n}{\int_a^b f} P\end{equation} \vspace{0.4em}
+
+\section{Conclusões}
+\label{sec:conclusions}
+
+O estilo \texttt{turnstile.sty} parece ser adequado para a obtenção da barra de Frege, em muitas das formas em que esta aparece, e coloca corretamente expressões adicionais abaixo e acima desta, se necessário, bem como a largura deste sinal cresce tanto quanto for preciso, quando uma ou ambas as expressões são largas.
+
+Para uma versão futura deste pacote, pretendemos examinar a conveniência de mudar também a altura da barra de Frege, levando assim em conta as alturas das expressões eventualmente colocadas abaixo ou acima deste sinal, além das suas larguras, como já procedemos.
+
+\begin{thebibliography}{1}
+
+\bibitem{BuchsbaumBeziau2004}
+Arthur Buchsbaum e Jean-Yves Béziau.
+\newblock Introduction of implication and generalization in axiomatic calculi.
+\newblock Em Jean-Yves Béziau, Alexandre~Costa Leite, e Alberto Facchini,
+ editores, {\em Aspects of Universal Logic}, número 17 em Travaux de Logique,
+ página 231. Centre de Recherches Sémiologiques, Université de Neuchâtel, Dezembro de 2004.
+
+\bibitem{BuchsbaumPequeno1997}
+Arthur Buchsbaum e Tarcisio Pequeno.
+\newblock A general treatment for the deduction theorem in open calculi.
+\newblock {\em Logique et Analyse}, 157:9--29, janeiro--março de 1997.
+
+\bibitem{BuchsbaumPequeno1998}
+Arthur Buchsbaum e Tarcisio Pequeno.
+\newblock A introdução da implicação em cálculos axiomáticos abertos.
+\newblock Em {\em Anais do IV Encontro de Filosofia Analítica}, páginas~61--75, 1998.
+
+\bibitem{Frege1978}
+Gottlob Frege.
+\newblock {\em Lógica e Filosofia da Linguagem}.
+\newblock Editora Cultrix e Editora da Universidade de São Paulo, 1978.
+
+\bibitem{KopkaDaly1999}
+Helmut Kopka and Patrick~W. Daly.
+\newblock {\em A Guide to \LaTeX}.
+\newblock Addison-Wesley, 1999.
+
+\bibitem{Lamport1994}
+Leslie Lamport.
+\newblock {\em \LaTeX\ -- A Document Preparation System -- User's Guide and Reference Manual}.
+\newblock Addison-Wesley, 1994.
+
+\bibitem{NerodeShore1997}
+Anil Nerode and Richard~A. Shore.
+\newblock {\em Logic for Applications}.
+\newblock Springer, 1997.
+
+\bibitem{Nolt1996}
+John Nolt.
+\newblock {\em Logics}.
+\newblock Wadsworth, 1996.
+
+\end{thebibliography}
+
+\end{document}