에 대한 추상 환경을 정의하고 싶습니다 \documentclass{book}
. 따라서 관련 정의를 다음에서 복사했습니다 report.cls
.여기내 서문에. 하지만 작동하지 않습니다. 문제가 어디에 있나요?
\documentclass[11pt, a4paper]{book}
\usepackage{lipsum}
\makeatletter
\if@titlepage
\newenvironment{abstract}{%
\titlepage
\null\vfil
\@beginparpenalty\@lowpenalty
\begin{center}%
\bfseries \abstractname
\@endparpenalty\@M
\end{center}}%
{\par\vfil\null\endtitlepage}
\else
\newenvironment{abstract}{%
\if@twocolumn
\section*{\abstractname}%
\else
\small
\begin{center}%
{\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
\end{center}%
\quotation
\fi}
{\if@twocolumn\else\endquotation\fi}
\fi
\makeatother
\begin{document}
\begin{titlepage}
\begin{abstract}
\lipsum[1]
\end{abstract}
\end{titlepage}
\chapter{This and That}
\lipsum[2]
\end{document}
나는 책 수업 시간에 초록을 작성하는 방법에 대한 솔루션이 웹에 많이 있다는 것을 알고 있습니다. 나는 환경을 기술적으로 정의하는 솔루션이 왜 작동하지 않는지에 대한 질문에 주로 관심이 있습니다.
답변1
환경에서 사용하고 계시지 \abstractname
만 라텍스는 이를 모릅니다. 이것이 발생한 오류입니다. 따라서 이를 정의하면 문제가 해결됩니다. \abstractname
다음과 같이 정의해야 합니다.
\newcommand\abstractname{Abstract}
귀하의 MWE는 다음과 같습니다:
\documentclass[11pt, a4paper]{book}
\usepackage{lipsum}
\newcommand\abstractname{Abstract} %%% here
\makeatletter
\if@titlepage
\newenvironment{abstract}{%
\titlepage
\null\vfil
\@beginparpenalty\@lowpenalty
\begin{center}%
\bfseries \abstractname
\@endparpenalty\@M
\end{center}}%
{\par\vfil\null\endtitlepage}
\else
\newenvironment{abstract}{%
\if@twocolumn
\section*{\abstractname}%
\else
\small
\begin{center}%
{\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
\end{center}%
\quotation
\fi}
{\if@twocolumn\else\endquotation\fi}
\fi
\makeatother
\begin{document}
\begin{titlepage}
\begin{abstract}
\lipsum[1]
\end{abstract}
\end{titlepage}
\chapter{This and That}
\lipsum[2]
\end{document}