我希望有一个命令来编写对话。类似
\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}