我已经定义了一个简单的类
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mycustom}[2019/03/06 My custom class]
\LoadClass{article}
\RequirePackage{setspace}
\newcommand{\summary}{
\begingroup
\setlength{\parindent}{0cm}
\onehalfspacing
}
\newcommand{\ensummary}{
\endgroup
}
\endinput
假设我创建了一个简单的 LaTeX 文件,定义为:
\documentclass{mycustom}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-3]
\summary
\lipsum[1][1-4]\par
\ensummary
\lipsum[1][1-3]
\end{document}
我注意到,如果我不添加 ,那么 1.5par
间距\summary
就不起作用了。我想知道这种行为是如何发生的,以及是否有办法删除\par
并保持相同的行为( 内的 1.5 间距\summary
)。非常欢迎任何改进建议。
这是我添加的段落\par
这是没有\par
注意段落中间的行内间距。
答案1
您应该使用以下命令结束环境定义\par
以便它处于行距变化的范围内。相反,您应该开始环境中,\par
否则前面的文本可能会受到影响(尝试下面的例子,\par
在定义中没有第一个)。
正如评论中指出的那样,这应该是一个环境(LaTeX 通常会阻止以 开头的名称定义命令),在这种情况下不需要\end...
显式,也永远不会结束一个段落,它只是强制换行。\begingroup
\newline
\documentclass{article}
\usepackage{setspace,lipsum}
\newenvironment{summary}
{\par\setlength{\parindent}{0cm}\onehalfspacing}
{\par}
\begin{document}
\lipsum[1][1-3]
\begin{summary}
\lipsum[1][1-4]
\end{summary}
\lipsum[1][1-3]
\end{document}