我正在尝试定义一个新环境,如下所示:
\newenvironment{authorquotation}
{
\begin{quotation}[1]
}{
\begin{flushright}
\textbf{#1}
\end{flushright}
\end{quotation}
}
问题是,如果我#1
在定义的第二部分使用,就会出现错误。有什么办法吗?
先感谢您。
答案1
实际情况比这要复杂一些。您不希望在引文文本和作者姓名之间有分页符。
此外,如果最后一行很短,您就不想添加垂直空间,因为这会很不美观。
可以\NewDocumentEnvironment
使用定义末尾部分的参数。需要一些低级技巧来访问最后一行的宽度,以决定是否添加垂直空间。
在示例中,我使用双列格式只是为了使图片更短;左边是两个真实示例,右边是一些显示实际添加垂直空间的虚假示例。
如果有分页符,则前两行文本将与作者姓名一起显示。
\documentclass[twocolumn]{article}
\NewDocumentEnvironment{authorquotation}{m}
{\begin{quotation}}
{\printauthor{#1}\end{quotation}}
\makeatletter
\newcommand{\printauthor}[1]{%
\begingroup
\abovedisplayskip=\z@
\abovedisplayshortskip=\z@
\belowdisplayskip=\z@
\belowdisplayshortskip=\z@
$$\global\dimen1=\predisplaysize$$%
\endgroup
\vskip-\baselineskip
\settowidth{\dimen0}{\textbf{#1}}%
\nobreak
\ifdim\dimexpr\dimen1+\dimen0-2\leftmargin+1pc>\linewidth
\vspace{\medskipamount}%
\fi
\noindent\hspace*{\fill}\textbf{#1}%
}
\makeatother
\begin{document}
\begin{authorquotation}{Albert Einstein}
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
\end{authorquotation}
\begin{authorquotation}{Albert Einstein}
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
\end{authorquotation}
\newpage
\begin{authorquotation}{Albert Einstein}
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott]
\end{authorquotation}
\begin{authorquotation}{Albert Einstein}
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] xxxxxx
\end{authorquotation}
\begin{authorquotation}{Albert Einstein}
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
Jedenfalls bin ich überzeugt, daß der [Gott] xxxxxxx
\end{authorquotation}
\end{document}
答案2
保存第一部分中的参数并在第二部分中使用该宏。
\documentclass{article}
\newenvironment{authorquotation}[1]
{
\def\myauthor{#1}
\begin{quotation}
}{
\begin{flushright}
\textbf{-\myauthor}
\end{flushright}
\end{quotation}
}
\begin{document}
\begin{authorquotation}{Albert Einstein}
Jedenfalls bin ich überzeugt, daß der [Gott] nicht würfelt.
\end{authorquotation}
\end{document}