2010-07-12 2 views
3

비머 프레임에서 콘텐츠가 프레임 전체에 균등하게 퍼지기를 원합니다.라텍스 : 텍스트가 비머 슬라이드의 프레임을 자동으로 채워야합니다.

\ documentclass [slidestop] {beamer} 옵션을 사용하면 위쪽/가운데 맞춤 콘텐츠를 쉽게 지정할 수 있지만 슬라이드에 글 머리 기호가 몇 개 밖에없는 경우 상단에서 함께 클러스터링됩니다. 그들 사이의 간격은 자동으로 균등하게 퍼집니다.

vspace를 시행 착오없이 넣지 않고도이 작업을 수행 할 수 있습니까?

+0

최소한의 예제를 게시 할 수 있습니까? –

답변

6

\ vfill을 사용하면 시행 착오 부분을 줄일 수 있다고 생각합니다. 각 글 머리 기호 사이에 \ vfill은 공백을 보장해야합니다. 선행 텍스트 또는 페이지 하단에서 분리하려면 글 머리 기호 앞뒤에 \ vill을 사용하십시오. Beamer를 사용하거나 알지는 못하지만 Beamer 템플릿에 \ vfill 명령을 넣는 방법이 있다고 생각됩니다. 귀하의 코멘트 당

\documentclass{article} 
\begin{document} 
\begin{itemize} 
\vfill\item This is text of first item 
\vfill\item This is text of second item 
\vfill\item This is text of third item 
\end{itemize} 
\end{document} 

, 여기 당신이 vfill 정의 할 수 있습니다 하나 개의 방법이 자동으로 메인 목록 항목에서 사용되지만 하위 항목에는 vfill이 없다 할 수 있습니다. 이 방법을 사용하면 기본 목록 또는 중첩 목록에 관계없이 동일한 \ item 명령을 사용할 수 있지만 환경을 정의하거나 재정의해야하며 기본 (즉, 채워진) 목록을 추가 할 때주의해야합니다 가 아닌 vfilled (즉, 중첩) 목록에 추가 할 때와 : 여기에 또 다른 샘플을 추가

\documentclass{article} 

\newenvironment{novfillenum}{\begin{enumerate}\let\item\olditem}% 
{\end{enumerate}} 
\newenvironment{vfilleditems}{\begin{itemize} \let\olditem\item \renewcommand\item{\vfill\olditem}}% 
{\end{itemize}} 

\begin{document} 
\begin{vfilleditems} 
\item Item One 
    \begin{novfillenum} 
     \item subitem1 
     \item s2 
     \item s3 
    \end{novfillenum} 
\item Item Two 
    \begin{novfillenum} 
     \item subitem1 
     \item s2 
     \item s3 
    \end{novfillenum} 
\item item three 
    \begin{novfillenum} 
     \item subitem1 
     \item s2 
     \item s3 
    \end{novfillenum} 
\end{vfilleditems} 

\end{document} 
+0

아니요 목적에 도움이되지 않습니다. 간격을 자동으로 결정하고 싶습니다. 내가 원하는 것은 vfill 사용을 피하는 것입니다. 나는 LaTeX/Beamer가 프레임의 높이를 감지하고 총알을 골고루 퍼지기를 바랍니다. – thequark

+0

@thequark : 제안 된 수정이 \ vspace를 사용하는 것보다 훨씬 낫다는 점을 감안할 때 일부는 도움이된다고 말하고 싶습니다. 사실, \ vfill을 사용하면 프레임의 높이를 결정하고 자동으로 일치하도록 공간을 균등하게 조정합니다. \ item을 사용하는 대신 각 항목에 대해 \ vfill \ item을 사용하십시오. 90 % ~ 99 %의 점수를 얻을 수 있습니다. 매크로를 정의하여 더 단순하게 만들 수도 있지만 \ vfill \ item은 나에게 아주 단순 해 보입니다. –

+0

감사합니다 허버트, 나는 시도하고 그것은 나를 위해 작동합니다. 이제는 프리젠 테이션에 많은 항목이 있으므로 수동으로 \ vfill을 어디에나 삽입하는 대신 itemize 명령을 다시 정의 할 수 있습니까? 나는 다음과 같은 시도 : \하자 \ olditem \ 항목 \ renewcommand의 \ 항목 {\ olditem \ vfill} 위와 같은 경우 잘 작동하지만 난 그것을 위해 뭔가가 필요합니다. 최상위 수준의 총알에는 "하위 항목"이 필요하지 않습니다. renewcommand를 통해 가능합니까? – thequark

1

을 첫 번째 대답은 너무 붐비지고 있기 때문이다. 레이블 명령을 테스트하여 테스트 한 결과 작동하는 것으로 보입니다. 그것은 오류를 제공하지만, 필자는 \ vfill을 레이블 구조의 일부로 갖는 것과 관련이 있다고 확신합니다. 나는 그것이 원하는 출력을 만드는 것처럼 보이지만 오류없이 작동하게하려면 약간의 조정이 필요합니다. 놀랍습니다.

\begin{document} 

\let\oldlabelitemi\labelitemi 
\renewcommand{\labelitemi}{\vfill\oldlabelitemi{\hspace{1ex}}} 

\begin{itemize} 

\item Item One 
    \begin{itemize} 
    \item subone 
    \item subtwo 
    \item subthree 
    \end{itemize} 
\item Item Two 
    \begin{itemize} 
     \item subitem1 
     \item s2 
     \item s3 
    \end{itemize} 
\item item three 
    \begin{itemize} 
     \item subitem1 
     \item s2 
     \item s3 
    \end{itemize} 
\end{itemize} 

\end{document} 
+1

@Herbert Sitz : 해답을 찾고 그 자리를 도우려는 귀하의 답변과 모든 노력에 매우 감명 받았습니다. 나는 당신이 말하는 모든 것에 주목하고 있습니다. – Vivi

+0

@Herbert : 저는 이전에 그러한 접근법을 시도해 보았습니다. 나는 여러분의 모범을 시도 할 때 다음과 같은 오류를 겪었습니다. (내 시도에서 사용했던 것과 동일합니다) : 9 error | 누락} 삽입 됨. } \ item I tem one – thequark

+0

@quark : 네, 좋은 해결책이라고 생각하지 않습니다. \ vfill을 레이블에 넣으면 문제가 발생하기 때문에 확신합니다. 레이블은 페이지 형식 정보가 아니라 문자 일뿐입니다. –

관련 문제