2010-07-12 5 views
0

LaTeX로 책을 조판하고 있습니다. 그것이 내가 필요로하는 기본적인 메커니즘을 가지고, 난 그냥 수평 규칙을 수행하는 환경을 정의 할 필요가 같은 wrapfig.sty 것 같다, 그래서LaTeX - 사용자 정의 'wrapfig'환경 정의

Chicken chicken chicken chicken ------------- 
chicken chicken chicken chicken  CHICKEN 
chicken chicken chicken chicken  CHICKEN 
chicken chicken chicken chicken ------------- 
chicken chicken chicken chicken chicken chicken 

: 텍스트 디자인은 풀과 같이 보일 해야하는 따옴표를 포함 센터링, 대형 타입. 문제는 wrapfigure가 환경 정의에 중첩되기를 원하지 않는다는 것입니다. 내 텍스트 본문이있는 경우는

\begin{wrapfigure}{o}{2in} 
\large chicken chicken 
\end{wrapfigure} 

작동하지만

\newenvironment{pullquote} 
    {\begin{wrapfigure}{o}{2in}\large} 
    {\end{wrapfigure}} 

다음 프롤로그에서이 작업을 수행하면 나는

\begin{pullquote} 
chicken chicken 
\end{pullquote} 

내가이 오류 메시지가 있습니다

Package wrapfig Warning: Collision between wrapping environments ... 

견적을 인용하면 아래의 몇 절에서 원하는 부분을 찾으십시오. 의 다음 위치에있는 견적을 빼내십시오. 문서의 끝 부분에 다른 모양이 표시되고 본문 텍스트가 끌어 당기기 인용 줄을 감싸지 않습니다. 뭐라 구요? 이 작업을 어떻게 수행합니까?

답변

1

나는 그것을 완전히 이해하지 못했지만, wrapfigure 자체가 그림 플로트 환경을 감싸는 래퍼이기 때문에 그럴 것이라고 생각됩니다.

내가 여기 솔루션/해결 방법을 찾은 것 같아 : http://texblog.net/latex-archive/plaintex/expandafter/

내가이 코드는 당신이 원하는 것을 얻을 생각 :

\documentclass{article} 
\usepackage{wrapfig} 
\raggedright 
\expandafter\def\expandafter\wrapfigure\expandafter{\wrapfigure{o}{2in}\large\raggedright} 

\begin{document} 

chicken chicken chicken chicken chicken chicken chicken chicken 
chicken chicken chicken chicken chicken chicken chicken chicken 
chicken chicken chicken chicken chicken chicken chicken chicken 
\begin{wrapfigure} 
CHICKEN CHICKEN 
CHICKEN CHICKEN 
\end{wrapfigure} 
chicken chicken chicken chicken chicken chicken chicken chicken 
chicken chicken chicken chicken chicken chicken chicken chicken 
chicken chicken chicken chicken chicken chicken chicken chicken 

\end{document} 

다른 사용을 위해 재정의 'wrapfigure'위에 사용 된 코드, 그것은 당신이 원하는 것이 아닐 수도 있습니다. 은 {ENV} 시작을 위해 당신은 새 명령을 만들고 다음과 같이 변경되지 않은 자신을 'wrapfigure'을두고 말 {ENV} : 당신은 말을하는지 그래서

\documentclass{article} 
\usepackage{wrapfig} 
\raggedright 

\newcommand{\myfigstart}{\begin{wrapfigure}{o}{2in}\large\raggedright} 
\newcommand{\myfigend}{\end{wrapfigure}} 

\begin{document} 

chicken chicken chicken chicken chicken chicken chicken chicken 
chicken chicken chicken chicken chicken chicken chicken chicken 
chicken chicken chicken chicken chicken chicken chicken chicken 
\myfigstart 
CHICKEN CHICKEN CHICKEN CHICKEN 
\myfigend 
chicken chicken chicken chicken chicken chicken chicken chicken 
chicken chicken chicken chicken chicken chicken chicken chicken 
chicken chicken chicken chicken chicken chicken chicken chicken 

\end{document} 
+0

, 그것은 newenvironment \ '에 의해 추가 된 여분의 끈적 거리는입니다 '(어떤 *는 *, 궁극적으로 두 개의 새로운 명령을 정의하는 것입니다). 얼마나 기괴한 지. 하지만 나는 \ newcommand 쌍의 방법으로 살 수있다. 감사. – zwol

+0

나는 약간의 실험을했다. wrapfigure를 깨는'\ begin'과'\ end'에 의해 추가 된 여분의 끈으로 판명되었습니다! '\ my {{myfig}} '와'\ end {myfig}'대신에 내부 명령'\ myfig'와'\ endmyfig'를 사용하는 환경에서'\ newenvironment {myfig}'를 사용하여 커스텀 wrapper 환경을 정의 할 수 있습니다 {myfig}'. 아직도 기괴하고 (나는 주장 할 것이다) wrapfig의 버그. – zwol

관련 문제