Я определил простой класс
\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}
Я заметил, что не добавляю par
внутри, \summary
полуторный интервал просто не работает. Я хотел бы узнать, как это происходит, и есть ли способ удалить \par
и сохранить то же поведение (полуторный интервал внутри \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}