我正在处理一个memoir
类文档,该文档恰好使用段落间距而不是缩进的第一行,但我试图创建一个展示示例文本的环境 - 我称之为hangingsample
- 其中:
- 文本缩进(如在
quote
或quotation
环境中), - 文本设置为打字机字体(我
\texttt
为此使用), - 文本已设置
\raggedright
, - 每个段落都使用悬挂缩进(如 APA 引用),并且
- 段落间距为零。
为了显示:
到目前为止,我设法创建这种效果的唯一方法是手动完成所有操作,结合figure
、minipage
和hangparas
环境、\raggedright
命令,并将每个单独的段落包裹在其中\texttt{x}
,并在每个段落后面加上\vspace{-\parskip}
:
Preceding text ...
\begin{figure}[h]
\hspace*{5mm}\begin{minipage}[h]{125mm}
\begin{hangparas}{5mm}{1}\RaggedRight
\texttt{Technic is ... LEGO.}\vspace{-\parskip}
\texttt{Technic sets are ... electric motors.}\vspace{-\parskip}
\texttt{The style of ... technic bricks.}\vspace{-\parskip}
\texttt{Lego Technic. ... wiki/Lego\_Technic}
\end{hangparas}
\end{minipage}
\end{figure}
Following text...
这肯定不是最经济的方法...我正在寻找一个可以完成所有这些事情的简单的新的(或更新的)环境。
到目前为止,我已经创建了以下环境:
\newenvironment{hangingsample}{%
\everypar{\hangafter=1 \setlength{\hangindent}{5mm}}\ttfamily\raggedright}
{\par%
}
获得最多积分除了段落的完整缩进。
有人知道我该怎么做才能解决这个问题吗?
最亲切的问候,
西斯
答案1
定义您自己的环境:
\documentclass{memoir}
\usepackage{lipsum}
\newenvironment{ttquote}
{\list{}{%
\ttfamily\raggedright
\setlength{\itemindent}{-1em}%
\setlength{\listparindent}{\itemindent}%
\setlength{\rightmargin}{\leftmargin}%
\setlength{\parsep}{0pt plus 1pt}%
}%
\item[]}
{\endlist}
\nonzeroparskip
\setlength{\parindent}{0pt}
\begin{document}
\lipsum[2-3]
\begin{ttquote}
\lipsum[2]
\lipsum[3]
\end{ttquote}
\end{document}
答案2
希望这能有所帮助。这是赫伯特的回答到在单个段落内,挂一个换行符,但不要挂新行。由于基于minipage
,该环境不会在页面之间中断。
\documentclass{article}
\usepackage{lipsum}
\usepackage{environ}
\NewEnviron{ttpar}{%
\begin{minipage}{.9\linewidth}
\everypar{\setlength\hangindent{1em}\ttfamily}
\BODY\end{minipage}}
\begin{document}
\lipsum[1]
\begin{ttpar}
\lipsum[1]
\lipsum[2]
\end{ttpar}
\lipsum[3]
\end{document}