编写命令,方便用于对话

编写命令,方便用于对话

我希望有一个命令来编写对话。类似

\newcommand\fdia{---~ }
\newcommand\dia{\\ \indent ---~ }

使用方式:

\fdia Hi how are you?
\dia Fine and you?
\dia My god, this dialogue is so boring.

很好,只是它不能按照我想要的方式处理多行答案:我希望答案的每一行都在破折号后缩进。这可以轻松实现,使用

\begin{itemize}
\item[---~] Hi how are you?
\item[---~] Fine and you?
\item[---~] Still boring...
\end{itemize}

但我希望命令使用起来尽可能快捷。有没有一种解决方案可以在不使用环境的情况下实现我想要的效果?

答案1

反复启动是没有问题的itemize(我检查了垂直间距)。因此,如果您不想每次都输入它,您可以将整个环境放在命令中。

下面,您必须决定是否要使用该选项nosep。在您的问题中,您给出了两种具有不同垂直间距的方法。

% arara: pdflatex

\documentclass{article}
\usepackage{blindtext}
\usepackage{enumitem}
\usepackage{xparse}
\DeclareDocumentCommand \dia { o m } {%
    \begin{itemize}[%
        ,label=\IfNoValueTF {#1} {---}{#1:}
        ,nosep % optional
        ]
        \item #2
    \end{itemize}%  
    }

\begin{document}
\dia[First guy]{Hi, how are you?}
\dia[Second guy]{Fine and you?}
\dia{My god, this dialogue is so boring.}
\dia{Indeed, but have you heard that \blindtext}
\end{document}

在此处输入图片描述

相关内容