如何构建像这样的逻辑论证?
我可以像这样构造它:
我的论点的乳胶:
\documentclass[10pt]{article}
\usepackage{newtxtext}
\usepackage{newtxmath}
\begin{document}
$\begin{array}{rl}
& p \\
& p \to q \\
\cline{2-2}
\therefore & q
\end{array}$
\end{document}
有三件事我不知道该怎么做:1)如何给 hline 上色 2)如何控制 hline 的长度,使其不超过“p \to q”?3)如何使因此符号更接近 q?
基本上,我需要构建一个尽可能接近第一个的。
答案1
您可以使用简单的tabular
and colortbl
:
\documentclass{article}
\usepackage{colortbl}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{tabular}{c@{\,}l@{}}
& $p$ \\
\arrayrulecolor{blue} & $p \to q$ \\\cline{2-2}
$\therefore$ & $q$ \\
\end{tabular}
\end{document}
您可以使用以下方式更改线条的颜色xcolor
\documentclass{article}
\usepackage{colortbl,xcolor}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{tabular}{c@{\,}l@{}}
& $p$ \\
\arrayrulecolor{blue!60!green!70} & $p \to q$ \\\cline{2-2}
$\therefore$ & $q$ \\
\end{tabular}
\end{document}
同样适用于数组(因为 MWE 是使用数组给出的):
\documentclass[10pt]{article}
\usepackage{colortbl,xcolor}
\usepackage{newtxtext}
\usepackage{newtxmath}
\begin{document}
$\begin{array}{c@{\,}l@{}}\arrayrulecolor{blue!60!green!70}
& p \\
& p \to q \\ \cline{2-2}
\therefore & q
\end{array}$
\end{document}
答案2
我将为此定义一个环境。调整间距(我使用了\enspace
)和颜色(此处blue!50
)以适合您。
\documentclass{article}
\usepackage{xcolor,colortbl,array,amssymb}
\newenvironment{deduction}
{\begin{tabular}{@{}>{$}c<{$}@{\enspace}>{$}l<{$}@{}}\arrayrulecolor{blue!50}}
{\end{tabular}}
\newcommand{\premise}[1]{\\}
\newcommand{\conclusion}[1]{\cline{2-2}\therefore}
\begin{document}
\begin{deduction}
\premise{p}
\premise{p\to q}
\conclusion{q}
\end{deduction}
\end{document}
答案3
另一个可能的解决方案:
\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath,amssymb}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node[yshift=-0.2ex]({#1}) {};}
\newcommand{\tikzhline}[3][1]{\tikz[overlay,remember picture]\draw[thick,cyan,shorten <=-{#1}pt,shorten >=-{#1}pt](#2.south)--(#3.south);}
\begin{document}
\[
\begin{array}{r@{\extracolsep{5pt}}l}
& p\\
& \tikzmark{a}p\rightarrow q\tikzmark{b}\\
\tikzhline{a}{b}
\therefore & q
\end{array}
\hspace*{0.5cm}
\begin{array}{r@{\extracolsep{7pt}}l}
& p\\
& \tikzmark{c}p\rightarrow q\tikzmark{d}\\
\tikzhline[6]{c}{d}
\therefore & q
\end{array}
\]
\end{document}
结果:
您将通过可选参数来控制长度\tikzhline
。
答案4
如果您需要的只是这一行(假设是 PDFLaTeX),那么下面的要求就很少了。
\documentclass[10pt]{article}
\usepackage{amsmath,newtxmath}
\begin{document}
\begin{align*}
&p \\
&p\pdfliteral{-10 -5 m 0.5 0 1 RG 0.5 w 25 -5 l S }\to q\\
\therefore\quad &q
\end{align*}
\end{document}