Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
무시되는 수직 간격
2015.10.02 13:46
그림과 같이 박스 객체를 만들었습니다. 앞뒤로 수직 간격을 주었는데요.
텍스트 사이에 박스가 올 때는 간격이 적당하다 치고요.
문제는
1) 이 박스들이 연달아 나올 때
2) 섹션 같은 제목 아래에 올 때
그 수직 간격이 무시되지 않는다는 겁니다.
제가 알기로 \section과 \subsection이 연이어 나올 때는 \subsection의 앞 간격은 무시됩니다.
그런 식으로 만들고 싶어서 \@startsection도 들여다보고 잘 알지도 못하는 \ifvmode 따위도 써 보고 했지만
답을 얻지 못했습니다.
저 그림의 소스는 다음과 같습니다.
\documentclass{article}
\usepackage{xparse}
\setlength\parindent{0pt}
\def\lipsumi{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam lobortis facilisis sem. Nullam nec mi et neque pharetra sollicitudin. Praesent imperdiet mi nec ante.}
\def\lipsumii{Donec ullamcorper, felis non sodales commodo, lectus velit ultrices augue, a dignissim nibh lectus placerat pede.}
\NewDocumentCommand\lipsum{s}{\IfBooleanTF {#1}{\lipsumi}{\lipsumii}}
\newlength\BeforeSkip
\newlength\AfterSkip
\setlength\BeforeSkip{1.25\baselineskip plus .1ex minus .1ex}
\setlength\AfterSkip{1.25\baselineskip plus .1ex minus .1ex}
\newcommand\testbox[1]{%
\par\vspace{\BeforeSkip}
\fbox{\parbox{\linewidth}{#1}}
\par\vspace{\AfterSkip}
}
\begin{document}
\section{Intro}
\lipsum*
\lipsum*
\testbox{\lipsum}
\lipsum*
\testbox{\lipsum}
\testbox{\lipsum}
\lipsum*
\section{Overview}
\testbox{\lipsum}
\lipsum*
\testbox{\lipsum}
\end{document}
다음과 같이 하면 어떻게 되나요?
\makeatletter
\newcommand\testbox[1]{%
\@tempskipa=\lastskip
\ifdim\@tempskipa>\z@
\par\vspace{\BeforeSkip}\else
\par\fi
\ifvmode\vskip-\@tempskipa\fi
\fbox{\parbox{\linewidth}{#1}}
\par
\vspace{\AfterSkip}
}