在《数学原理》中排版著名的 54.43 证明 (1+1=2)

在《数学原理》中排版著名的 54.43 证明 (1+1=2)

这是我尽力排版的 1+1=2 的证明数学原理

\documentclass[10pt]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\pagestyle{empty} \begin{document}
\noindent $\mathbf{*54\cdot43.} \vdash:.\alpha,\beta\in1.\supset:\alpha\cap\beta=\Lambda.\equiv.\alpha\cup\beta\in2$\\ 
\indent\emph{Dem.}
\begin{flalign}\nonumber
\vdash .*54\cdot26.\supset\vdash:.\alpha=\iota'x.\beta=\iota'y.\supset:\alpha\cup\beta\in2.&\equiv.x\neq y.\\\nonumber
[*51\cdot 231]\hspace{4.7cm}\hspace{1cm} & \equiv.t'x\cap\iota'y=\Lambda.\\
[*13\cdot 12]\hspace{4.88cm}\hspace{1cm} & \equiv.\alpha\cap\beta=\Lambda \\\nonumber
\vdash.(1).*11\cdot11\cdot35.\supset\hspace{2.88cm}\hspace{1cm}\\
\vdash:.(\exists x,y).\alpha=\iota'x.\beta=\iota'y.\supset:\alpha\cup\beta\in2.&\equiv.\alpha\cap\beta=\Lambda\\\nonumber
\vdash.(2).*11\cdot54.*52\cdot1.\supset\vdash.Prop\hspace{1.09cm}\hspace{1cm}\end{flalign}
\indent From this proposition it will follow, when arithmetical addition has been defined, that $1 + 1 = 2$.
\end{document}

结果如下:

在此处输入图片描述

原文如下:

在此处输入图片描述

我不喜欢的事情:

  1. 大量的手册hspace;如何强制方程式左对齐?
  2. 我认为这个\supset符号并不是最合适表达含义的符号,而且它稍微偏离了水平对齐。
  3. \iota( )后面的符号'和原来的符号不太一样。
  4. 我也不确定这种用法\cdot是否最合适。

期待 TeX 向导的改进 ;-)


答案1

下面的示例尝试模仿许多符号和间距:

  • 定义宏\leftalign,使用列宽,根据之前的环境测量结果计算得出align。然后宏可以将其参数放在左侧。
  • 标点符号的逻辑解释如下《数学原理》中的符号
  • 标点符号的形状是正方形而不是圆形。
  • 断言符号 ⊦ (U+22A6) 的宽度是其高度的一半,因此它小于\vdash
  • 数字前的星号更像是一个八辐星号 ✳ (U+2733),而不是星号。它也是一个普通的数学符号。
  • 数字之间的点比 稍高\cdot
  • ≠ 没有斜线。
  • 存在符号是旋转的大写字母 E。
\documentclass[10pt,fleqn]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{pifont}
\pagestyle{empty}
\setlength{\mathindent}{2\parindent}
\thickmuskip=\medmuskip

\makeatletter
\newcommand*{\leftalign}[1]{%
  \ifmeasuring@
    #1%
  \else
    \begingroup
      \advance\column@ by\@ne
      \hbox to \expandafter\maxcol@width\column@{$#1\m@th$\hfill}%
    \endgroup
  \fi
}

\DeclareRobustCommand*{\pmstar}{%
  \text{%
    \resizebox{!}{.75\height}{\ding{107}}%
  }%
}
\newcommand*{\pmcdot}{%
  \mathpalette{\pm@cdot}{}%
}
\newcommand*{\pm@cdot}[2]{%
  \sbox0{$\m@th#1\cdot$}%
  \sbox2{$#11$}%
  \raise.6\dimexpr\ht2-\ht0\relax\copy0 %
}
\newcommand*{\pmand}{\mathbin{\pmdot{.}}}
\newcommand*{\pmgrave}{\text{\bfseries`}}
\newcommand*{\pmimplies}{\boldsymbol{\supset}}
\newcommand*{\pmcup}{%
  \mathbin{%
    \mathchoice
      {\scriptstyle\boldsymbol{\cup}}%
      {\scriptstyle\boldsymbol{\cup}}%
      {\scriptscriptstyle\boldsymbol{\cup}}%
      {\boldsymbol{\cup}}%
  }%
}
\newcommand*{\pmcap}{%
  \mathbin{%
    \mathchoice
      {\scriptstyle\boldsymbol{\cap}}%
      {\scriptstyle\boldsymbol{\cap}}%
      {\scriptscriptstyle\boldsymbol{\cap}}%
      {\boldsymbol{\cap}}%
  }%
}

\newcommand*{\pmvdash}{\mathord{\@pmvdash\,}\mathopen{}}
\newcommand*{\@pmvdash}{%
  \mathpalette{\pm@vdash}{}%
}
\newcommand*{\pm@vdash}[2]{%
  \sbox0{$\m@th#11\Lambda\mid$}%
  \sbox0{\vrule height\ht0 width.5pt}%
  \copy0
  \sbox2{\vbox to 0pt{\vss\hbox to.5\ht0{}\hrule height.5pt\vss}}%
  \raise.5\ht0\copy2 %
}

\newcommand*{\pmneq}{%
  \mathrel{\mathpalette{\pm@neq}{}}%
}
\newcommand*{\pm@neq}[2]{%
  \sbox0{$\m@th#1=$}%
  \hbox to \wd0{%
    \hss$\m@th#1\mid$\hss
  }%
  \kern-\wd0 %
  \copy0 %
}

\newcommand*{\pmexists}{%
  \mathord{\mathpalette{\pm@exists}{}}%
}
\newcommand*{\pm@exists}[2]{%
  \sbox0{$#1y$}%
  \raisebox{\dimexpr-\dp0+\depth\relax}{%
    \rotatebox{180}{$\m@th#1\mathrm{E}$}%
  }%
}

\catcode`\:=\active
\catcode`\.=\active
\newcommand*{\pmdot}[1]{%
  \mathinner{%
    \mathcode`\.="8000 %
    \mathcode`\:="8000 %
    \let.=\@pmdot
    \let:=\@pmcolon
    #1%
  }%
}
\@makeother\:
\@makeother\.
\newcommand*{\@pmcolon}{%
  \mathpalette\pm@colon{}%
}
\newcommand*{\@pmdot}{%
  \mathpalette\pm@dot{}%
}
\newcommand*{\pm@dot}[2]{%
  \sbox0{$\m@th#1\mathchar`\.$}%
  \hbox to 1.15\wd0{\hfill\vrule width1.35\ht0 height1.35\ht0 \hfill}%
}
\newcommand*{\pm@colon}[2]{%
  \sbox0{\pm@dot{#1}{}}%
  \sbox2{$\m@th#1\pm@vdash{#1}{}$}%
  \rlap{%
    \raisebox{.5\dimexpr\ht2-\ht0\relax}{\copy0}%
  }%
  \copy0 %
}
\makeatother

\begin{document}
  \setlength{\abovedisplayskip}{0pt}
  \setlength{\belowdisplayskip}{0pt}
  \paragraph{\boldmath$\pmstar54\pmcdot43$.}
  $\pmvdash
  \pmdot{:.}\alpha,\beta\in1\pmdot{.}
  \pmimplies
  \pmdot{:}\alpha\pmcap\beta=\Lambda\pmdot{.}
  \equiv
  \pmdot{.}\alpha\pmcup\beta\in2$\\
  \indent\emph{Dem.}
  \begin{align}
    \nonumber
    \pmvdash
    \pmdot{.}\pmstar54\pmcdot26\pmdot{.}
    \pmimplies
    \pmvdash
    \pmdot{:.}\alpha=\iota\pmgrave y\pmand
    \beta=\iota\pmgrave y\pmdot{.}
    \pmimplies
    \pmdot{:}\alpha\pmcup\beta\in2\pmdot{.}
    &
    \equiv
    \pmdot{.}x\pmneq y\pmdot{.}
  \\
    \nonumber
    \leftalign{[\pmstar51\pmcdot231]}
    &
    \equiv
    \pmdot{.}t\pmgrave x\pmcap\iota\pmgrave y=\Lambda\pmdot{.}
  \\
    \leftalign{[\pmstar13{\pmcdot}12]}
    &
    \equiv
    \pmdot{.}\alpha\pmcap\beta=\Lambda
  \\
    \nonumber
    \leftalign{%
      \pmvdash
      \pmdot{.}(1)\pmand\pmstar11\pmcdot11\pmcdot35\pmdot{.}
      \pmimplies
    }
  \\
    \pmvdash
    \pmdot{:.}(\pmexists x,y)\pmand\alpha=\iota\pmgrave x\pmand\beta
    =\iota\pmgrave y\pmdot{.}\pmimplies\pmdot{:}\alpha\pmcup\beta\in2\pmdot{.}
    & \equiv\pmdot{.}\alpha\pmcap\beta=\Lambda
  \\
    \nonumber
    \leftalign{%
      \pmvdash\pmdot{.}(2)\pmand
      \pmstar11\pmcdot54\pmand
      \pmstar52\pmcdot1\pmdot{.}
      \pmimplies\pmvdash\pmdot{.}\text{Prop}
    }
  \end{align}
  \indent From this proposition it will follow, when arithmetical addition
  has been defined, that $1 + 1 = 2$.
\end{document}

结果

答案2

也许这更接近原文,但使用的间距数学原理与真实数学中使用的完全不同。

\documentclass[10pt]{article}
\usepackage{textcomp}
\usepackage{amssymb}
\usepackage{amsmath}

\DeclareMathSymbol{`}{\mathord}{operators}{``}

\newcommand{\prop}[3]{%
  \par\addvspace{\topsep}\noindent
  #1\textbf{#2}\textperiodcentered\textbf{#3}. \ignorespaces
}
\newenvironment{dem}
  {\par\emph{Dem.}\abovedisplayskip=0pt \belowdisplayskip=0pt }
  {\par\addvspace{\topsep}}

\pagestyle{empty}

\begin{document}
\prop{*}{54}{43} 
  ${\vdash}{:}.\alpha,\beta\in1.\supset:\alpha\cap\beta=\Lambda.\equiv.\alpha\cup\beta\in2$

\begin{dem}
\begin{alignat}{2}
\nonumber
&{\vdash} .{*}54{\cdot}26.\supset{\vdash}:.\alpha=\iota`y.\supset:\alpha\cup\beta\in2.
  && \equiv.x\neq y.\\
\nonumber
&[{*}51{\cdot}231] && \equiv.t`x\cap\iota`y=\Lambda.\\
&[{*}13{\cdot}12]   && \equiv.\alpha\cap\beta=\Lambda \\
\nonumber
&{\vdash}.(1).{*}11{\cdot}11{\cdot}35.\supset{}\\
&{\vdash}:.(\exists x,y).\alpha=\iota`x.\beta=\iota`y.\supset:\alpha\cup\beta\in2.
  &&\equiv.\alpha\cap\beta=\Lambda\\
\nonumber
&{\vdash}.(2).{*}11{\cdot}54.{*}51{\cdot}1.\supset{\vdash}.\textit{Prop}
\end{alignat}
\end{dem}

From this proposition it will follow, when arithmetical addition has been defined, 
that $1 + 1 = 2$.

\end{document}

在此处输入图片描述

相关内容