考虑一下代码
\documentclass[12pt]{book}
\usepackage{scalefnt}
\usepackage[sfdefault]{cabin}
\usepackage{mathptmx} % replaces obsolete times package.
\newcommand{\longemdash}{{\fontfamily{cmss}\selectfont---}}
\newcommand{\fancyquote}[2]{%
\par\scalefont{1.05}{#1}\\[2pt]\hspace*{\fill}\longemdash{\fontfamily{qtm}\selectfont\textit{\textbf{#2}}}%
}
\begin{document}
\thispagestyle{empty}
\begin{enumerate}
\item \fancyquote{Even if you're on the right track, you'll get run over if you just sit there.}{Will Rogers}
%\item \fancyquote{}{}
%\item \fancyquote{}{}
%\item \fancyquote{}{}
\end{enumerate}
\end{document}
产生
现在,我想通过替换 来简化在此枚举环境中键入许多此类引号的过程\item
。\item \fancyquote{}{}
但是,取消注释该命令%\item \fancyquote{}{}
会在使用 进行编译时产生错误pdflatex
。
\item \fancyquote{}{}
实际上,我预计必须输入一百多个这样的引号;如果我可以使用类似的而不是来预先构建环境,那将会很有帮助\item
。
问题:有没有办法可以做到不产生错误。我希望不要采用类似这样的方法,虽然\item \fancyquote{A}{B}
可以编译而不产生错误,但每次输入新引文时都需要删除 A 和 B --- 正如我所说,我预计新引文的数量将超过一百。
谢谢。
答案1
类似这样的,我想你的意思是
\documentclass[12pt]{book}
\usepackage{scalefnt}
\usepackage[sfdefault]{cabin}
\usepackage{mathptmx} % replaces obsolete times package. %but is almost as old and obsolete
\newcommand{\longemdash}{{\fontfamily{cmss}\selectfont---}}
\newcommand{\fancyquote}[2]{%
\par\scalefont{1.05}{\leavevmode\ignorespaces#1}\\[2pt]%
\hspace*{\fill}\longemdash{\fontfamily{qtm}\selectfont\textit{\textbf{#2}}}%
}
\begin{document}
\thispagestyle{empty}
\begin{enumerate}
\item \fancyquote{Even if you're on the right track, you'll get run over if you just sit there.}{Will Rogers}
\item \fancyquote{}{}
\item \fancyquote{}{}
\item \fancyquote{}{}
\end{enumerate}
\end{document}