summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-10-26 15:43:01 +0000
committerKarl Berry <karl@freefriends.org>2008-10-26 15:43:01 +0000
commitaced7a98520cf24b6426d023b1e06088eee0e155 (patch)
tree9bf8a3a4e89663b49ff40d5edfccb5f7f6fc9a9d
parent5597fcbddb210310f47ae9fd2315fda9975b02bd (diff)
new latex package syllogism (22oct08)
git-svn-id: svn://tug.org/texlive/trunk@11064 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/syllogism/README7
-rw-r--r--Master/texmf-dist/doc/latex/syllogism/syllogism.pdfbin0 -> 232824 bytes
-rw-r--r--Master/texmf-dist/doc/latex/syllogism/syllogism.tex234
-rw-r--r--Master/texmf-dist/tex/latex/syllogism/syllogism.sty284
-rw-r--r--Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/syllogism.tlpsrc2
6 files changed, 528 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/syllogism/README b/Master/texmf-dist/doc/latex/syllogism/README
new file mode 100644
index 00000000000..5dc90bf7a4f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/syllogism/README
@@ -0,0 +1,7 @@
+This package provides a simple way for neatly typesetting syllogisms and
+syllogistic-like arguments, composed of two premisses and a conclusion.
+It is fully configurable, allowing the user to tweak the various distances,
+line widths, and other options.
+
+Author: Nicolas Vaughan
+License: LaTeX Project Public License \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/syllogism/syllogism.pdf b/Master/texmf-dist/doc/latex/syllogism/syllogism.pdf
new file mode 100644
index 00000000000..8b1baf1c5e4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/syllogism/syllogism.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/syllogism/syllogism.tex b/Master/texmf-dist/doc/latex/syllogism/syllogism.tex
new file mode 100644
index 00000000000..992605792ca
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/syllogism/syllogism.tex
@@ -0,0 +1,234 @@
+% Manual for the syllogism package
+% (c) Nicol\'{a}s Vaughan 2008 (nvaughanc@unal.edu.co)
+
+\documentclass[letterpaper,
+ 10pt,
+ ]{article}
+
+\usepackage[T1]{fontenc}
+\usepackage[english,
+ ]{babel}
+
+\usepackage[
+ colorlinks%
+ ,plainpages=false% This forces a unique identification of pages.
+ ,hypertexnames=true% This is necessary to have exact link on Index page.
+ ,naturalnames
+ ,hyperindex
+]{hyperref}
+
+%--------------------------------------------------------------------------------
+\usepackage[sc,osf]{mathpazo} % Palatino font
+\usepackage[tracking=true,%
+ final,%
+ babel=true,%
+ verbose=true,
+ tracking=smallcaps]{microtype}
+%----------------------------------------------------------------------------------
+
+\usepackage{makeidx}
+\usepackage{url}
+\usepackage{xspace}
+\usepackage{xcolor}
+\usepackage{syllogism}
+
+% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
+\newcommand{\syllversion}{release 1.1}
+\newcommand{\syllp}{\texttt{\color{sred}syllogism}\xspace}
+\colorlet{sblue}{blue!60!black}
+\colorlet{sred}{red!60!black}
+\colorlet{comcol}{green!45!black}
+\newcommand{\comm}[1]{\texttt{\color{comcol}\textbackslash{}#1}\xspace} % commands
+\newcommand{\commnb}[1]{\texttt{\color{comcol}#1}\xspace} % command without backslash
+\newcommand\maincind[1]{\index{main commands!#1@\texttt{$\protect\backslash$#1}|}}
+ % main commands index
+\newcommand\addcind[1]{\index{additional commands!#1@\texttt{$\protect\backslash$#1}|}}
+ % additional commands index
+\newcommand\optind[1]{\index{package options!#1@\texttt{$\protect\backslash$#1}|}}
+ % package options index
+% . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+
+\title{\vspace*{-1cm}%
+ \textsc{The} \syllp \textsc{package} \\%
+ {\large\syllversion}%
+ }
+\author{(c) 2007--2008 \textsc{Nicolas Vaughan}\\ \\
+ Report bugs and submit questions to:\\
+ \texttt{nivaca@gmail.com}
+ }
+\date{June 2, 2008}
+
+\makeindex
+\begin{document}% =============================================================
+\setlength{\parindent}{0em}
+\maketitle
+\tableofcontents
+
+\section{Introduction}
+The \syllp package provides a simple way for neatly typesetting syllogisms and syllogistic-like arguments, composed of two premisses and a conclusion. It is fully configurable, allowing the user to tweak the various distances, line widths, and other options.
+
+\section{How to use it~\label{S:howto}}
+You must set
+\texttt{\textbackslash{}usepackage[\emph{options}]\{syllogism\}} before
+\texttt{\textbackslash{}begin\{document\}} command. The available options
+are described in section~\S \ref{S:options}.
+
+\subsection{\comm{syllog}~\label{SS:syllog}~\maincind{syllog}~\index{main commands}}
+The main command provided by the package is \comm{syllog}, whose syntax is:
+
+\bigskip
+
+ \comm{syllog[\emph{pre-text}]\{\emph{first premiss}\}\{\emph{second premiss}\}\{\emph{conclusion}\},
+ }
+
+\bigskip
+
+in which the optional parameter \emph{pre-text} is the text typeset to the left of the syllogism; \emph{first premiss}, \emph{second premiss} and \emph{conclusion} correspond respectively to the the text of the first and second premisses and the conclusion.
+
+For example, the following command
+
+\begin{quote}
+ \comm{syllog\{Every man except Socrates is musician\}}\%\\
+ \quad\commnb{\{Socrates is a man\}}\%\\
+ \quad\commnb{\{Socrates is not a musician\}},
+\end{quote}
+
+will produce this output:
+
+\syllog{Every man except Socrates is musician}{Socrates is a man}{Socrates is not a musician}
+
+If you choose to use the optional parameter, as in:
+
+\begin{quote}
+ \comm{syllog[(S1)]\{Every man except Socrates is musician\}}\%\\
+ \quad\commnb{\{Socrates is a man\}}\%\\
+ \quad\commnb{\{Socrates is not a musician\}},
+\end{quote}
+
+you should get the following result:
+
+\syllog[(S1)]{Every man except Socrates is musician}{Socrates is a man}{Socrates is not a musician}
+
+\subsection{\comm{syllogC}~\label{SS:syllogC}~\maincind{syllogC}}
+The package also provides the command \comm{syllogC} which includes an automatic numeration~\index{automatic numeration} feature. The syntax for this command is similar to the previous one, but does not take the optional parameter.%
+ \footnote{The~\label{N:slabel}~\index{automatic numeration!redefining the label} label for \comm{syllogC} is defined internally through the following instruction: \texttt{\textbackslash{}newcommand\{\textbackslash{}syl\}\{(S\textbackslash{}arabic\{c:syl\})\textbackslash{}xspace\}}. It may be thus redefined as usual in \LaTeX. For example, to remove the `S' in the label, use the following: \texttt{\textbackslash{}renewcommand\{\textbackslash{}syl\}\{(\textbackslash{}arabic\{c:syl\})\textbackslash{}xspace\}}.
+ } %
+
+\bigskip
+
+ \comm{syllogC\{\emph{first premiss}\}\{\emph{second premiss}\}\{\emph{conclusion}\},
+ }
+
+\bigskip
+
+For example, the following code
+
+\begin{quote}
+ \comm{syllogC\{Every man except Socrates is musician\}}\%\\
+ \quad\commnb{\{Socrates is a man\}}\%\\
+ \quad\commnb{\{Socrates is not a musician\}},
+\end{quote}
+
+will produce this output (provided that it has not been called elsewhere before):
+
+\syllogC{Every man except Socrates is musician}{Socrates is a man}{Socrates is not a musician}
+
+The counter associated with \comm{syllogC} is \comm{c:syl}, which may be reset or stepped with in the usual ways.
+
+\subsection{\comm{syllogTA}~\label{SS:syllogTA}~\maincind{syllogTA}}
+The command \comm{syllogTA} works almost exactly as \comm{syllog}, the only difference being that it adds some text to the second premiss and the conclusion. Its syntax is:
+
+\bigskip
+
+ \comm{syllogTA[\emph{pre-text}]\{\emph{first premiss}\}\{\emph{second premiss}\}\{\emph{conclusion}\},
+ }
+
+\bigskip
+
+As for today, \syllp supports three languages for this task: English, Spanish and Latin. The default language is English. (The language may be changed through a package option, see \S \ref{S:options} below). The added text for each language is shown in Table \S \ref{T:languages}.
+
+\bigskip
+
+\begin{table}
+ \begin{center}
+ \begin{tabular}{lcc}
+ & \textsc{second premiss} & \textsc{conclusion} \\
+ \textsc{english} & \emph{but} & \emph{Therefore} \\
+ \textsc{spanish} & \emph{pero} & \emph{Por lo tanto,} \\
+ \textsc{latin1} & \emph{sed} & \emph{Ergo} \\
+ \textsc{latin1} & \emph{sed} & \emph{Igitur} \\
+ \end{tabular}
+ \caption{Language variants}\label{T:languages}%
+ \end{center}
+\end{table}
+
+
+\bigskip
+
+For example, the following code:
+
+\begin{quote}
+ \comm{syllogTA\{Every man except Socrates is musician\}}\%\\
+ \quad\comm{\{Socrates is a man\}}\%\\
+ \quad\comm{\{Socrates is not a musician\}},
+\end{quote}
+
+will be typeset thus:
+
+\syllogTA{Every man except Socrates is musician}{Socrates is a man}{Socrates is not a musician}
+
+Please note that the text may be defined through several commands provided also by \syllp (see below \S \ref{SS:Tcomm}).
+
+\subsection{\comm{syllogTAC}~\label{SS:syllogTAC}~\maincind{syllogTAC}}
+The command \comm{syllogTAC}, which adds an automatic counter to \comm{syllogTA}~\maincind{syllogTA}.%
+ \footnote{See note \ref{N:slabel}, above.
+ } %
+Its syntax is:
+
+\bigskip
+
+ \comm{syllogTAC\{\emph{first premiss}\}\{\emph{second premiss}\}\{\emph{conclusion}\},
+ }
+
+
+\section{Package options~\label{S:options}}
+The package options~\index{package options} for \syllp are four, corresponding the language of the added text (used only with the commands \comm{syllogTA} and \comm{syllogTAC}):
+
+\begin{description}
+ \item{\texttt{english}}~\optind{english}
+ \item{\texttt{spanish}}~\optind{spanish}
+ \item{\texttt{latin1}}~\optind{latin1}
+ \item{\texttt{latin2}}~\optind{latin2}
+\end{description}
+
+The option \texttt{english} is the default one. As stated previously, the text content selected by these options may be changed by one or more of several commands provided in the package (see below \S \ref{SS:Tcomm}).
+
+\section{Additional commands~\label{S:addcomm}~\index{additional commands}}
+\subsection{Length-related commands~\label{SS:Lcomm}}
+\begin{description}
+ \item[\comm{setpresyl}] Command~\addcind{setpresyl} for changing the horizontal space to the right of the syllogism (def=2em).
+ \item[\comm{setsyllabel}] Command~\addcind{setsyllabel} for changing the horizonal space between the label and the syllogism (def=1em).
+ \item[\comm{setsylrh}] Command~\addcind{setsylrh} for changing the `width' of the rule (def=.5pt).
+ \item[\comm{setsylsepa}] Command~\addcind{setsylsepa} for changing the vertical space before the syllogism (def=\texttt{\textbackslash{}baselineskip}).
+ \item[\comm{setsylsepb}] Command~\addcind{setsylsepb} for changing the vertical space after the syllogism (def=\texttt{\textbackslash{}baselineskip}).
+ \item[\comm{setsylsep}] Command~\addcind{setsylsep} for changing the vertical space \emph{both} before \emph{and} after the syllogism to the same value.
+\end{description}
+
+\subsection{Text-related commands~\label{SS:Tcomm}}
+These commands change the default text used with \comm{syllogTA} and \comm{syllogTAC}. The defaults are set by the package options (see above \S \ref{S:options}).
+
+\begin{description}
+ \item[\comm{setsylsed}] Command~\addcind{setsylsed} for changing the text that begins the second premiss.
+ \item[\comm{setsylergo}] Command~\addcind{setsylergo} for changing the text that begins the conclusion.
+ \item[\comm{setsylpuncpa}] Command~\addcind{setsylpuncpa} for changing the punctuation after the first premiss (def=;).
+ \item[\comm{setsylpuncpb}] Command~\addcind{setsylpuncpb} for changing the punctuation after the second premiss (def=.).
+ \item[\comm{setsylpuncc}] Command~\addcind{setsylpuncc} for changing the punctuation after the conclusion (def=.).
+ \item[\comm{setsylergosign}] Command~\addcind{setsylergosign} for changing the sign that goes after the conclusion text (def=$\therefore$).
+\end{description}
+
+\section{Future features~\label{S:ffeatures}}
+Future features depend on user feedback and requests. However, support for more languages and automatic language selection (through \texttt{babel}) is envisaged.
+\clearpage
+\printindex
+\end{document}% ============================================================= \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/syllogism/syllogism.sty b/Master/texmf-dist/tex/latex/syllogism/syllogism.sty
new file mode 100644
index 00000000000..a9172fba0db
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/syllogism/syllogism.sty
@@ -0,0 +1,284 @@
+%% Copyright 2008 by Nicolas Vaughan
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+%% Author: Nicolas Vaughan
+%% e-mail: nivaca@gmail.com
+%% status: supported
+%% filedate 17/04/2008
+%
+\NeedsTeXFormat{LaTeX2e}
+\def\filedate{04/17/2008}
+\def\fileversion{v1.1}
+\typeout{Package syllogism \fileversion\space<\filedate>.}
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{syllogism}[\filedate\space\fileversion]
+\RequirePackage{calc}
+\RequirePackage{amssymb}
+\RequirePackage{ifthen}
+\RequirePackage{xspace}
+%
+\newlength{\SY@LenPA} % Length of longest premiss
+\newlength{\SY@LenPB} % Length of shortest premiss
+\newlength{\SY@LenC} % Length of the conclusion
+\newlength{\SY@LenLab} % Length of the label
+\newlength{\SY@LenRule} % Length of rule
+\newlength{\SY@HiRule} % Height of rule
+\newlength{\SY@LenAdjRule} % Adjust rule separation
+\newlength{\SY@LenSepRuleA} % Separation between premiss and rule
+\newlength{\SY@LenSepRuleB} % Separation between rule and conclusion
+\newlength{\SY@LenSepA} % Separation above syllogism
+\newlength{\SY@LenSepB} % Separation below syllogism
+\newlength{\SY@DeltaC} % Added to rule in case the longest it the conclusion
+\newlength{\SY@SpLabel} % Space between label and syllogism
+\newlength{\SY@SpConEG} % Space between conclusion and Ergo-Sign
+\newlength{\SY@Pre} % Space between left margin and label
+\newlength{\SY@LenBefSyl} % Stores the total length before the premisses
+\newlength{\SY@availSpace} % Stores the available width for premisses
+\newlength{\SY@prSkip} % Premiss skip
+\newlength{\SY@maxPLen} % Length of widest premiss or conclusion
+\newlength{\SY@tempindent}
+\newif\if@SYParam\@SYParamfalse % Boolean for optional argument
+\newif\if@SYpCtooW\@SYpCtooWfalse % If the conclusion is too wide
+%
+%%%%%%%%%%%%%%%%%%%%%%%% Defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\setlength{\SY@LenPA}{\z@}
+\setlength{\SY@LenPB}{\z@}
+\setlength{\SY@LenC}{\z@}
+\setlength{\SY@maxPLen}{\z@}
+\setlength{\SY@LenAdjRule}{.6ex}
+\setlength{\SY@LenSepA}{\baselineskip}
+\setlength{\SY@LenSepB}{\baselineskip}
+\setlength{\SY@HiRule}{.5pt}
+\setlength{\SY@LenSepRuleB}{2pt}
+\setlength{\SY@LenSepRuleA}{2pt}
+\setlength{\SY@DeltaC}{1ex}
+\setlength{\SY@SpLabel}{1em}
+\setlength{\SY@Pre}{2em}
+\setlength{\SY@SpConEG}{2em}
+\setlength{\SY@prSkip}{1ex}
+%
+\def\SY@PuncPA{;} % Punctuation after first premiss
+\def\SY@PuncPB{.} % Punctuation after first premiss
+\def\SY@PuncC{.} % Punctuation after conclusion
+\def\SY@ErgoSign{$\therefore$} % three-dot sign after conclusion (needs amssymb)
+%
+\newcounter{c:syl} % Counter of syllogisms, if required
+\setcounter{c:syl}{1}
+\newcommand{\syl}{(S\arabic{c:syl})\xspace}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%% Package Options %%%%%%%%%%%%%%%%%%%%%%%%%%
+\DeclareOption{spanish}{%
+ \def\SY@Sed{pero\ } % Syncategorematic before second premiss
+ \def\SY@Ergo{Por lo tanto,\ } % Syncategorematic before conclusion
+ }
+\DeclareOption{english}{%
+ \def\SY@Sed{but\ } % Syncategorematic before second premiss
+ \def\SY@Ergo{Therefore\ } % Syncategorematic before conclusion
+ }
+\DeclareOption{latin1}{%
+ \def\SY@Sed{sed\ } % Syncategorematic before second premiss
+ \def\SY@Ergo{Ergo\ } % Syncategorematic before conclusion
+ }
+\DeclareOption{latin2}{%
+ \def\SY@Sed{sed\ } % Syncategorematic before second premiss
+ \def\SY@Ergo{Igitur\ } % Syncategorematic before conclusion
+ }
+\ExecuteOptions{english}% Default
+\ProcessOptions*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\setpresyl}% Command for changing \SY@Pre
+ [1]{\setlength{\SY@Pre}{#1}}
+%
+\newcommand{\setsyllabel}% Command for changing \SY@SpLabel
+ [1]{\setlength{\SY@SpLabel}{#1}}
+%
+\newcommand{\setsylrh}% Command for changing \SY@HiRule
+ [1]{\setlength{\SY@HiRule}{#1}}
+%
+\newcommand{\setsylsepa}% Command for changing \SY@LenSepA
+ [1]{\setlength{\SY@LenSepA}{#1}}
+%
+\newcommand{\setsylsepb}% Command for changing \SY@LenSepB
+ [1]{\setlength{\SY@LenSepB}{#1}}
+%
+\newcommand{\setsylsep}% Command for changing BOTH \SY@LenSepA and \SY@LenSepB
+ [1]{\setlength{\SY@LenSepA}{#1}%
+ \setlength{\SY@LenSepB}{#1}}
+%
+%
+\newcommand{\setsylergo}%
+ [1]{\def\SY@Ergo{#1\ }}
+%
+\newcommand{\setsylsed}%
+ [1]{\def\SY@Sed{#1\ }}
+%
+\newcommand{\setsylpuncpa}%
+ [1]{\def\SY@PuncPA{#1}}
+%
+\newcommand{\setsylpuncpb}%
+ [1]{\def\SY@PuncPB{#1}}
+%
+\newcommand{\setsylpuncc}%
+ [1]{\def\SY@PuncC{#1}}
+%
+\newcommand{\setsylergosign}%
+ [1]{\def\SY@ErgoSign{#1}}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Basic syllogism %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\syllog{%
+ \@ifnextchar[%]
+ {\@SYParamtrue\@syllog}
+ {\@syllog[]}}
+\def\@syllog[#1]#2#3#4{%
+ \setlength{\SY@tempindent}{\parindent}%
+ \setlength{\parindent}{\z@}%
+ %
+ \settowidth{\SY@LenPA}{#2}
+ \settowidth{\SY@LenPB}{#3}
+ \settowidth{\SY@LenC}{#4}
+ \addtolength{\SY@LenC}{\widthof{\SY@ErgoSign}}%
+ \addtolength{\SY@LenC}{\SY@SpConEG}%
+ %
+ \if@SYParam%
+ \setlength{\SY@LenLab}{\widthof{#1}}%
+ \setlength{\SY@LenBefSyl}{\SY@Pre}%
+ \addtolength{\SY@LenBefSyl}{\SY@LenLab}%
+ \addtolength{\SY@LenBefSyl}{\SY@SpLabel}%
+ \else%
+ \setlength{\SY@LenBefSyl}{\SY@Pre}%
+ \fi%
+ %
+ \setlength{\SY@availSpace}{\textwidth-\SY@LenBefSyl}
+ %
+ \ifdim\SY@LenPA>\SY@availSpace%
+ \setlength{\SY@LenPA}{\textwidth-\SY@LenBefSyl}%
+ \else%
+ \setlength{\SY@prSkip}{\z@}%
+ \fi
+ \ifdim\SY@LenPB>\SY@availSpace%
+ \setlength{\SY@LenPB}{\textwidth-\SY@LenBefSyl}%
+ \fi%
+ \ifdim\SY@LenC>\SY@availSpace%
+ \setlength{\SY@LenC}{\textwidth-\SY@LenBefSyl}%
+ \fi%
+ \def\@SYLpropA{\parbox{\SY@LenPA}{#2}}%
+ \def\@SYLpropB{\parbox{\SY@LenPB}{#3}}%
+ \def\@SYLpropC{\parbox{\SY@LenC}{#4\hspace{\SY@SpConEG}\SY@ErgoSign}}%
+ %
+ \setlength{\SY@LenRule}{%
+ \maxof{\maxof{\maxof{\SY@LenPA}{\SY@LenPB}}{\maxof{\SY@LenPA}{\SY@LenC}}}%
+ {\maxof{\SY@LenPB}{\SY@LenC}}%
+ }%
+ %
+ \par\vspace{\SY@LenSepA}%
+ \if@SYParam%
+ \hspace{\SY@Pre}#1\hspace{\SY@SpLabel}%
+ \else%
+ \hspace{\SY@Pre}%
+ \fi%
+ \parbox{\SY@availSpace}%
+ {%
+ \@SYLpropA\par%
+ \vspace{\SY@prSkip}%
+ \@SYLpropB\par\nointerlineskip%
+ \vspace{\SY@LenSepRuleA}%
+ \rule{\SY@LenRule}{\SY@HiRule}\par\nointerlineskip%
+ \vspace{\SY@LenSepRuleB}%
+ \@SYLpropC\\%
+ }%
+ \par\vspace{\SY@LenSepB}%
+ \setlength{\parindent}{\SY@tempindent}%
+ }%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% Basic syllogism with counter %%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\syllogC}[3]{%
+ \syllog[\syl]{#1}{#2}{#3}
+ \stepcounter{c:syl}%
+ }%
+
+%%%%%%%%%%%%%%%%%%%%%%%%% Syllogism with text added %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\syllogTA{%
+ \@ifnextchar[%]
+ {\@SYParamtrue\@syllogTA}
+ {\@syllogTA[]}}
+\def\@syllogTA[#1]#2#3#4{%
+ {\parindent\z@ \leftmargin\z@ \rightmargin\z@
+ %
+ \settowidth{\SY@LenPA}{#2}
+ \addtolength{\SY@LenPA}{\widthof{\SY@PuncPA}}
+ \settowidth{\SY@LenPB}{#3}
+ \addtolength{\SY@LenPB}{\widthof{\SY@Sed}}
+ \addtolength{\SY@LenPB}{\widthof{\SY@PuncPB}}
+ \settowidth{\SY@LenC}{#4}
+ \addtolength{\SY@LenC}{\widthof{\SY@Ergo}}
+ \addtolength{\SY@LenC}{\widthof{\SY@PuncC}}
+ \addtolength{\SY@LenC}{\widthof{\SY@ErgoSign}}
+ \addtolength{\SY@LenC}{\SY@SpConEG}
+ %
+ \if@SYParam
+ \settowidth{\SY@LenLab}{#1}
+ \setlength{\SY@LenBefSyl}{\SY@Pre + \SY@LenLab + \SY@SpLabel}
+ \else
+ \setlength{\SY@LenBefSyl}{\SY@Pre}
+ \fi
+ %
+ \setlength{\SY@availSpace}{\textwidth}
+ \advance\SY@availSpace -\SY@LenBefSyl
+ \advance\SY@availSpace -1.3ex
+ \ifdim\SY@LenPA>\SY@availSpace
+ \setlength{\SY@LenPA}{\textwidth - \SY@LenBefSyl}
+ \else
+ \setlength{\SY@prSkip}{\z@}
+ \fi
+ \ifdim\SY@LenPB>\SY@availSpace
+ \setlength{\SY@LenPB}{\textwidth - \SY@LenBefSyl}
+ \fi
+ \ifdim\SY@LenC>\SY@availSpace
+ \setlength{\SY@LenC}{\SY@availSpace}
+ \@SYpCtooWtrue
+ \else
+ \@SYpCtooWfalse
+ \fi%
+ \def\@SYLpropA{#2\SY@PuncPA}
+ \def\@SYLpropB{\SY@Sed#3\SY@PuncPB}
+ \def\@SYLpropC{\SY@Ergo#4\SY@PuncC\hspace{\SY@SpConEG}\SY@ErgoSign}
+ %
+ \if@SYpCtooW
+ \relax
+ \else
+ \addtolength{\SY@LenC}{\SY@DeltaC}
+ \fi
+ %
+ \setlength{\SY@LenRule}{%
+ \maxof{\maxof{\maxof{\SY@LenPA}{\SY@LenPB}}{\maxof{\SY@LenPA}{\SY@LenC}}}%
+ {\maxof{\SY@LenPB}{\SY@LenC}}%
+ }%
+ %
+ \par\vspace{\SY@LenSepA}%
+ \if@SYParam%
+ \hspace{\SY@Pre}#1\hspace{\SY@SpLabel}%
+ \else%
+ \hspace{\SY@Pre}%
+ \fi%
+ \begin{minipage}{\SY@LenRule}
+ \begin{list}{}
+ {%
+ \setlength{\parsep}{\z@}
+ \setlength{\itemsep}{\z@}
+ \addtolength{\leftmargin}{-1.5em}
+ \setlength{\itemindent}{-1ex}
+ \setlength{\listparindent}{\itemindent}
+ }
+ \item \@SYLpropA
+ \item \@SYLpropB%
+ \vspace*{-1ex}
+ \item \rule{\SY@LenRule}{\SY@HiRule}
+ \item \@SYLpropC
+ \end{list}
+ \end{minipage}
+ \par\vspace{\SY@LenSepB}%
+ }%parindent
+}% \ No newline at end of file
diff --git a/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc
index 84fa32c7769..ba43641320a 100644
--- a/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc
@@ -24,6 +24,7 @@ depend statex2
depend stex
depend stmaryrd
depend susy
+depend syllogism
depend synproof
depend tablor
depend tensor
diff --git a/Master/tlpkg/tlpsrc/syllogism.tlpsrc b/Master/tlpkg/tlpsrc/syllogism.tlpsrc
new file mode 100644
index 00000000000..b055152a735
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/syllogism.tlpsrc
@@ -0,0 +1,2 @@
+name syllogism
+category Package