
Wie schreibt man einen Beweis wie den im Bild?
Ich weiß, wie man alle Symbole schreibt, aber ich weiß nicht, wie man das Rechteck macht und wie eine Tabelle schreibt. Ich habe diese Webseite verwendet:https://www.tablesgenerator.com/, aber mir gefällt nicht, wie die Beweise angezeigt werden.
Antwort1
Hier ist eine Lösung mit einer tabular
Umgebung. Um den Code des Beweises selbst zu vereinfachen, habe ich einige neue Befehle definiert. Zunächst eine Umgebung, die mit drei Spalten prooftabular
beginnt :tabular
- Im ersten wird automatisch die Nummer der Zeile des Beweises angezeigt (Sie müssen dort nichts eintragen);
- Der Zweite ist automatisch im Mathematikmodus und soll für die Schritte des Beweises verwendet werden;
- Der dritte ist im Textmodus und soll zur Begründung der Beweisschritte dienen.
Diese Umgebung könnte allein verwendet werden, um einen Beweis anzuzeigen. Um jedoch die Box mit den Symbolen in der Ecke hinzuzufügen, habe ich drei weitere Befehle definiert:
\hlineproofbox
fügt die horizontalen Linien der Box mit hinzu\cline{2-2}
.\proofboxed
fügt die vertikalen Linien um eine Zelle in der Box hinzu. Als Argument wird der Inhalt der entsprechenden Zelle verwendet. Es werden nur die vertikalen Linien mit einem hinzugefügt\multicolumn{1}{|...|}{...}
.\corner
fügt sein Argument als Hochstellung in der Ecke hinzu. Es sollte innerhalb des ersten platziert werden\proofboxed{}
.
Diese drei Befehle sind nicht so nützlich in dem Sinne, dass ihr Inhalt genauso gut direkt in die Tabelle hätte eingefügt werden können. Ich dachte nur, dass der Code des Beweises auf diese Weise leichter zu lesen war.
Wie dem auch sei, hier ist ein vollständiges Beispiel mit Ihrem Beweis.
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\newcounter{proofrow}
\newenvironment{prooftabular}{%
\let\oldarraystretch\arraystretch
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{%
@{\stepcounter{proofrow}\theproofrow}%
p{1em}@{}>{\(}l<{\)}>{\quad}l%
}
}{%
\end{tabular}
\renewcommand{\arraystretch}{\oldarraystretch}
}
\newcommand{\hlineproofbox}{\cline{2-2}}
\newcommand{\proofboxed}[1]{\multicolumn{1}{|>{\(}l<{\)}@{\ }|}{#1}}
\newcommand{\corner}[1]{\qquad {}^{#1}}
\begin{document}
\[
\forall x, P_1^1(x) \implies P_2^1(x), \forall x . P_2^1(x) \implies P_3^1(x) \vdash \forall x . P_1^1(x) \implies P_3^1(x)
\]
\begin{prooftabular}
& \forall x . P_1^1(x) \implies P_2^1(x) & Prem \\
& \forall x . P_2^1(x) \implies P_3^1(x) & Prem \\
\hlineproofbox
& \proofboxed{P_1^1(n) \implies P_2^1(n) \corner{/ \forall n}} & \(E \ \forall 1\) \\
& \proofboxed{P_2^1(n) \implies P_3^1(n)} & \(E \ \forall 2\) \\
& \proofboxed{P_1^1(n) \implies P_3^1(n)} & Teo \(\alpha \implies \beta, \beta \implies \gamma \vdash \alpha \implies \gamma\) \\
\hlineproofbox
& \forall x . P_1^1(x) \implies P_3^1(x) & \(\forall x . P_1^1(x) \implies P_2^1(x), \forall x . P_2^1(x) \implies P_3^1(x)\)
\end{prooftabular}
\end{document}
Antwort2
Vorausgesetzt, es gibt keine Probleme beim Schreiben der Symbolbefehle, können Sie empheq
das Paket verwenden, um einen Rahmen um einige Gleichungen (der Einfachheit halber zwei) wie folgt zu erstellen:
Und sein Code
\documentclass{article}
\usepackage{amsmath}
\usepackage{empheq}
\begin{document}
%
\begin{empheq}[box=\fbox]{align}
E=mc^2 \\
y=ax+b
\end{empheq}
%
\end{document}
Und natürlich können Sie ein Sternchen hinzufügen, {align*}
um die Nummerierung der Gleichungen zu entfernen.
Wenn Sie Gleichungen linksseitig nummerieren möchten, können Sie die Option [leqno]
der article
Klasse wie folgt verwenden
mit einigen Gleichungen nummeriert und anderen nicht (verwenden Sie \nonumber
), dann kann der Code
\documentclass[leqno]{article}
\usepackage{amsmath}
\usepackage{empheq}
\begin{document}
%
\begin{empheq}[box=\fbox]{align}
E=mc^2 \\
y=ax+b \\
y_2 = ax+b \nonumber
\end{empheq}
%
\end{document}
Nun, das ist nicht die perfekte Antwort. Es sind nur einige Ideen, von denen ich sicher bin, dass andere sie verbessern können.