[这是https://stackoverflow.com/questions/3233031/latex-defining-a-custom-wrapfig-environment]
该包与和wrapfig
进行的设置和拆卸交互很差。具体来说,这是不正确的排版:\begin
\end
\documentclass{article}
\usepackage{wrapfig}
\newenvironment{pullquote}
{\begin{wrapfigure}{o}{2in}\large}
{\end{wrapfigure}}
\begin{document}
\begin{pullquote}
Chicken chicken
\end{pullquote}
Chicken chicken chicken chicken,
chicken chicken chicken chicken.
Chicken chicken, chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken.
\end{document}
“拉引文”向下移动到文档末尾(或下一个包装图,如果有的话),并且我收到有关日志文件中包装环境之间冲突的警告。
但是这个是排版正确(请注意 定义的内部宏的肮脏伎俩的使用\newenvironment
):
\documentclass{article}
\usepackage{wrapfig}
\newenvironment{pullquote}
{\begin{wrapfigure}{o}{2in}\large}
{\end{wrapfigure}}
\begin{document}
\pullquote
Chicken chicken
\endpullquote
Chicken chicken chicken chicken,
chicken chicken chicken chicken.
Chicken chicken, chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken.
\end{document}
我正在寻找关于如何修复 wrapfig 中这个明显错误的具体建议,据我所知,该错误已无人维护。
答案1
一个建议:将“肮脏的伎俩”转移到定义中。这似乎对我有用:
\documentclass{article}
\usepackage{wrapfig}
\newenvironment{pullquote}
{\wrapfigure{o}{2in}\large}
{\endwrapfigure}
\begin{document}
\begin{pullquote}
Chicken chicken
\end{pullquote}
Chicken chicken chicken chicken,
chicken chicken chicken chicken.
Chicken chicken, chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken.
\end{document}
我从源代码中注意到,wrapfigure
环境本身不是使用 定义的\newenvironment
,而只是使用\def\wrapfigure{\wrapfloat{figure}}
和\let\endwrapfigure\endwrapfloat
。不过,我不知道这是否与不良行为有关。