如何在列表中画一条垂直线?

如何在列表中画一条垂直线?

我想排版图中的内容。我使用 enumerate 和 tab 以及 \phantom,但我不知道如何绘制文本上的垂直线。我需要为我的课程绘制关于逻辑的参考资料谢谢你的帮助。

答案1

这是一种可能性。定义一个新符号,它只是\big|,除了\smashed 之外,因此它的高度和深度均为 0(末尾有一个空格)。

\newcommand{\vlin}{\smash{\big|}\;}

然后,如果项目之间没有行间距,则|符号会重叠。

在此处输入图片描述

我使用enumitem包来控制物品分离,并.在数字后面使用没有空格的简单编号。

\begin{enumerate}[nosep,label=\arabic*]

我认为给物品贴上标签是个好主意,这样您就可以参考它们而不必担心以后重新编号。

我将左列括在内,\lefteqn{..}因此该列中的任何宽度都将被忽略。可以通过更改中的值来调整右列的间距\myspace

最后,我为逻辑符号制作了新的命令,但这在您选择的字体中可能是不必要的。

以下是代码:

\documentclass{article}

\usepackage{enumitem}

\newcommand{\vlin}{\smash{\big|}\;}
\newcommand{\myspace}{\hspace{5cm}}
\newcommand{\no}{{\sim}}
\newcommand{\amp}{\mathbin{\&}}

\begin{document}

\begin{enumerate}[nosep,label=\arabic*]
\item\label{npoq} $\lefteqn{\no(P\lor Q)}$\myspace $P$
\item\label{P} $\lefteqn{\vlin P}$\myspace $H$ (para RAA)
\item\label{poq} $\lefteqn{\vlin P\lor Q}$\myspace $\ref{P}\lor \mathrm{I}$
\item\label{poq:nn} $\lefteqn{\vlin P\lor Q\amp\no\no(P\lor Q)}$\myspace \ref{npoq}, \ref{poq} \& I
\item\label{np} $\lefteqn{\no P}$\myspace \ref{P}--\ref{poq:nn} RAA
\item\label{Q} $\lefteqn{\vlin Q}$\myspace $H$ (para RAA)
\item\label{poq2} $\lefteqn{\vlin P\lor Q}$\myspace $\ref{Q}\lor \mathrm{I}$
\item\label{poq:npoq} $\lefteqn{\vlin P\lor Q\amp\no(P\lor Q)}$\myspace \ref{npoq}, \ref{poq2} \& I
\item\label{nq} $\lefteqn{\no Q}$\myspace\ref{Q}--\ref{poq:npoq} RAA
\item $\lefteqn{\no P\amp\no Q}$\myspace\ref{np}, \ref{nq} \& I
\end{enumerate}

\end{document}

答案2

谢谢 Sandy G。甚至可以使用多层次结构,例如:

\begin{enumerate}[nosep,label=\arabic*]
\item $\lefteqn{(P\wedge Q)\to R}$\myspace [P]
\item $\lefteqn{\vlin P}$\myspace [H p/PC]
\item $\lefteqn{\vlin \vlin Q}$\myspace [H p/PC]
\item $\lefteqn{\vlin \vlin P\wedge Q}$\myspace [$\wedge$I 2,3]
\item $\lefteqn{\vlin \vlin R}$\myspace [MP 4,1]
\item $\lefteqn{\vlin Q\to R}$\myspace [PC 3-5]
\item $\lefteqn{P\to (Q\to R)}$\myspace [PC 2-6]
\end{enumerate}

相关内容