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>처럼 입력하시면 좋습니다.
minipage 내에서의 indent와 줄간격
2021.09.15 01:11
minipage에서는 그 바깥에 있는 환경정의가 안먹는 것일까요?
newenvironment로 환경을 규정해 문단별로 제가 원하는 가로폭을 줘보려 했으나... 잘 안되어서 도움을 요청해봅니다.
댓글 7
-
yihoze
2021.09.15 09:00
-
판돌이
2021.09.15 09:58
친절한 답변 감사드립니다.
말씀대로 환경을 만들어서 쓰고있었습니다. setSpacing은 몰랐구요.
그나저나 minipage나 table을 써봤더니 둘 다 같은 현상이 있었거든요.
그럼 바깥 환경을 그대로 이어받으면서도 가로폭만 변경할 수 있는 방법이 혹시 있을까요?
-
Progress
2021.09.15 10:41
본문 중 일부 문단의 판면길이를 바꾸려면 memoir/oblivoir에 내장된 adjustwidth 환경이 편할 수 있습니다.
-
판돌이
2021.09.15 12:12
답변 고맙습니다~
2017년에 출간한 프로그레시브 록 가이드북의 개정판을 준비하고 있습니다. :-)
-
yihoze
2021.09.15 14:34
제가 잘못 기억하고 있는지도 모르겠습니다만, 전에는 adjustwidth 환경에서 쪽나눔이 되지 않았던 것 같은데, 혹시나 하고 해보니 쪽나눔이 되네요. 그렇다면, 글상자를 중첩해서 만들어야 하는 경우가 아니라면, adjustwidth가 minipage보다 나겠네요.
-
noname
2021.09.15 16:45
뭔가 뒷북 느낌이 있지만, 코멘트를 붙여두겠습니다. 혹시나 참고가 될지도 모르기 때문에...
minipage는 parindent, parskip 같은 길이변수 몇 개를 전부 0로 만듭니다. 이것은 minipage의 설계상 특징입니다.
그렇지만 LaTeX kernel은 minipage 내부로 들어간 이후의 텍스트 조판의 편의를 위하여 hooking command도 마련해두고 있습니다.
정상적인 minipage와 다른 모양의 minipage를 사용하려면, 기본값을 그냥 두고 새로운 환경으로 하나 복사하는 게 좋습니다. 왜냐하면 다른 어딘가 minipage를 활용하는 환경이나 명령이 정의되어 있을 때(자신이 정의한 게 아니라 하더라도) minipage 자체의 설정을 바꾸면 의도하지 않은 동작을 할 것이기 때문입니다.
이것을 miniskirt라고 하기로 하면, 대략 다음과 같은 방법으로 원하는 바를 성취할 수 있습니다.
\newskip\myparskip\newdimen\myparindent \myparskip=5pt plus 1pt minus 1pt \myparindent=3em \parskip=\myparskip \parindent=\myparindent \makeatletter \newenvironment{miniskirt}[1]{% \renewcommand\@minipagerestore{% \parskip=\myparskip\relax \parindent=\myparindent } \begin{minipage}{#1} }{% \end{minipage} } \makeatother \usepackage{etoolbox} \BeforeBeginEnvironment{miniskirt}{\par\vskip\parskip} \AfterEndEnvironment{miniskirt}{\par\vskip\parskip}
마지막의 BeforeBegin... AfterEnd... 부분은 minipage가 놓이는 위치에서 그 앞뒤 문단과의 간격이 평문단의 문단 사이 간격과 동일하게 만들기 위한 것입니다. \parskip을 별도 지정하지 않는 상황에서는 필요없습니다.
이제 본문에서 \begin{miniskirt} \end{miniskirt}를 쓰십시오.
-
판돌이
2021.09.16 12:39
미니스커트 고맙습니다. :-) 뜯어서 공부해보겠습니다~
\baselinestretch는 \begin{document} 앞에서만 전역적으로 유효합니다. 텍스트 중간에서 행간을 바꾸려면 memoir/oblivoir에서는 \setSpacing을 써야 합니다.
그리고 minipage 밖에서 변경한 parindent 길이는 minipage 안에서 유효하지 않습니다.
텍스트 중간에 어떤 길이를 바꾸는 것은 번잡하고 소스 문서를 난삽하게 만들기 때문에 스타일을 만들어 사용하는 것이 좋습니다.
\documentclass{oblivoir}
\def\mytext{그리고 요즘 음악가의 음반은 오히려 구하기가 쉽지 않다. 다품종 소량생산의 시대이기 때문에 한번 놓치면 사라지거나 가격이 올라버린다. 그래서 이 책에 소개된 음악가의 LP 가격을 알아보면 놀랄 만큼 비싼 것이 꽤 있다.
\par
그래서 나는 여러분이 일단 이 책의 음악을 스트리밍으로라도 많이 들어주었으면 한다. 그러다가 인연이 닿으면 CD나 LP도 접할 수 있다. 하지만 그전에 최대한 밴드캠프 같은 곳에서 많이 들어주고 음원에 대해 비용 지불로 응원도 해주면 그들에게 큰 힘이 된다.}
\NewDocumentEnvironment{myemph}{}
{
\begin{minipage}{0.8\textwidth}
\setSpacing{1}
\setlength\parindent{2em}
}{
\end{minipage}
}
\setSpacing{1.25}
\setlength\parindent{1em}
\begin{document}
\mytext
\begin{myemph}
\mytext
\end{myemph}
\mytext
\end{document}