如何构建一个长度可控的彩色线逻辑论证?

如何构建一个长度可控的彩色线逻辑论证?

如何构建像这样的逻辑论证?

肯定前件

我可以像这样构造它:

肯定前件 2

我的论点的乳胶:

\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

您可以使用简单的tabularand 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]{&#1\\}
\newcommand{\conclusion}[1]{\cline{2-2}\therefore&#1}

\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}

在此处输入图片描述

相关内容