如何在环境的每一行之前产生空格。如果我在序言中有以下命令
\newenvironment{myenv}
{\vspace{3mm}\hspace{0.5cm}\noindent\ignorespaces\small\texttt}
{\par\noindent\ignorespacesafterend\vspace{0.5mm}}
正文如下:
\begin{myenv}
hello \\
world
\end{myenv}
这只会在第一行产生空格。
答案1
也许你可能有兴趣使用\obeylines
(这样你就不必手动换行)和\doublespacing
(由setspace
):
\documentclass{article}
\usepackage{lipsum,setspace}% http://ctan.org/pkg/{lipsum,setspace}
\newenvironment{myenv}
{\par\hrulefill\doublespacing\obeylines}
{\hrulefill\par\ignorespacesafterend}
\begin{document}
\lipsum[6]
\begin{myenv}
hello
world
\end{myenv}
\lipsum[6]
\end{document}
仅用于\hrulefill
显示环境的开始/结束myenv
,并且很可能在您的应用程序中不需要。
尽管提出的解决方案不显示打字机字体,但您可以发出信号\ttfamily
来实现这一点(不是\texttt
)。
答案2
根据具体应用,Werner 解决方案的一个小问题是,如果一行比文本长,则不会缩进连续部分。以下是另一种解决方案(并与 Werner 解决方案进行比较)。
\documentclass{article}
\usepackage{lipsum}
\newenvironment{myenv}
{\begin{list}{}{
\setlength{\topsep}{3mm}
\setlength{\leftmargin}{0.5cm}
\small\ttfamily}
\item[]\hrulefill\\}
{\hrulefill\end{list}}
\newenvironment{myenvW}
{\par\hrulefill\obeylines\small\ttfamily}
{\hrulefill\par\ignorespacesafterend}
\begin{document}
\lipsum[6]
\begin{myenv}
test\\
\lipsum[6]
\end{myenv}
\lipsum[6]
\begin{myenvW}
test
\lipsum[6]
\end{myenvW}
\end{document}