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>처럼 입력하시면 좋습니다.
위아래 단위가 서로 영향을 주지 않게 하려면...
2022.05.10 00:20
제목이 좀 이상해졌습니다만... 정말 대략 그런 내용입니다.
반년전 작업을 오랜만에 이어서 하다보니 또 새로운 문제들에 봉착하게 되네요.
같은 타입으로 문단을 구성한 것인데 여백과 표 길이가 달라집니다.
뭔가 위쪽 텍스트나 형식이 아래까지 영향을 주는 것 같은데 원인을 못찾겠습니다.
코드가 무척이나 지저분하여 미리 양해말씀 드립니다...
댓글 8
-
판돌이
2022.05.10 00:20
-
noname
2022.05.12 02:08
제가 보기에는 여러 가지 요인이 겹쳐서 바람직하지 않은 결과를 가져온 것으로 보입니다. 명령 자체의 설계를 처음부터 재검토하는 것이 가장 좋은 방법이 될 것 같은데요, 유의할 점 몇 가지만 지적하면,
(1) kswrapfig은, \kswrapfig보다 \kswrapfigline이 일반적으로 에러를 덜 일으킵니다. 그리고 항상 기억하셔야 할 것이 wrapfig류 명령은 그 상대편 텍스트(대상문단)가 "평문단"일 경우에만 대체로 정상 동작한다는 것입니다. 이번 케이스의 "추천 트랙 박스"를 kswrpafig의 대상 문단에 넣으려면 그 자체가 곤란한 예외적 상황을 만들어낼 것입니다.
(2) kswrapfig 문단 내부에서 hsize가 변합니다. 따라서 \textwidth, \linewidth 이런 값을 쓰려면 미리 이 값을 외부에서 고정시켜두어야 합니다.
(3) tabularray를 꼭 써야 할 필요가 있는지 의문입니다. 이것이 문제가 되는 것은 X 컬럼의 길이를 계산하기 위해서 너무 많은 내부 계산을 하게 되기 때문에 비효율적이기 때문입니다. 그리고 이 샘플에서는 X 길이를 \textwidth에 대하여 상대 계산을 하여야 하는데 그 값이 (말씀드린대로) 계속 변하기 때문에 정신을 못차리는 경우에 해당합니다.이런 점을 고려하여 \FRS 명령을 다시 구상해봤습니다. 하나의 샘플이니까 이것을 참고하여 적절한 명령을 만들어보시기 바랍니다.
\usepackage{tzplot} \ExplSyntaxOn \box_new:N \l_info_box \cs_new:Npn \make_infobox:nn #1 #2 { \hbox_set_to_wd:Nnn \l_info_box { #1 } { \begin{tikzpicture} \tzline[ForestGreen,very~thick](0,0)(#1-5pt,0) \tzline[ForestGreen,very~thick]<0,20pt>(0,0)(#1-5pt,0) \tzline[ForestGreen,thick](1.9cm,0)(1.9cm,20pt) \tznode(.9cm,10pt){\parbox{1.9cm}{ \centering\smaller\color{OliveGreen}\ttfamily recommended \\[-2pt] track }} \tznode(2cm,10pt){\parbox{\dimexpr#1-2.1cm\relax}{ \linespread{1}\raggedright\smaller%\color{OliveGreen} #2}}[r] \end{tikzpicture} \rule{3pt}{0pt} %%% strut } } \NewDocumentCommand{\FRS}{mmm+m} { %% kswrapfig 문단이 시작하기 전에 hsize를 미리 받아둔다. \dim_set:Nn \l_tmpa_dim { \linewidth - #1 \linewidth } %% \textwidth의 현재 값도 저장해둔다. \dim_set_eq:NN \l_tmpb_dim \textwidth %% 추천트랙 박스를 만드는 명령. 앞서 계산한 길이를 인자로 부여. \make_infobox:nn { \dim_use:N \l_tmpa_dim } { #3 } \nobreak\par\noindent \begin{minipage}{\textwidth} \vspace*{-.3\baselineskip} %% 박스를 kswrapfig 문단이 시작하기 전에 먼저 식자. {\hfill\box_use_drop:N \l_info_box\par\nobreak\vspace{-.33\baselineskip} } %% \kswrapfig 보다는 \kswrpafigline이 더 안정적으로 동작한다. %% 여기서는 hsize의 상대값에 따라 변하는 그림 크기를 조절하기 위해 UseBox를 true %% 로 하고 includegraphics 명령을 직접 쓴다. \kswrapfigline[ Pos=l, UseBox=true, %% 그림 사이즈가 일관성없이 나타날 가능성 때문. Sep=-.5em, %% Sep, Indent, Lower 등은 적절하게 조절할 것. Indent=-.1em, Lower=-18pt, Width=#1\linewidth, VAdjust=-24pt %% VAdjust를 Lower에 의하여 raise한 만큼. ]{\includegraphics[width=#1\l_tmpb_dim]{#2}} {#4} \end{minipage} %% 여기까지 전체 텍스트가 minipage 안에 들어가기 때문에 중간에 박스가 %% 분리되지 않는다. \par\bigskip } \ExplSyntaxOff
-
판돌이
2022.05.12 11:49
아 연산을 많이 하는 방식이었군요... 컴파일이 너무 오래 걸려서 이거 뭔가 이상하다 싶었습니다. ㅠㅠ
요전에 알려주셨던 예제도 그렇고 tikzpicture로 한번 연습해보겠습니다. 고맙습니다.
table 만큼은 좀 익혀두고 싶은데 이것이 그리 간단치가 않네요.
-
판돌이
2022.05.13 23:22
본적이 없는 형식이라 좀 찾아봤더니 LaTeX3인가봅니다. 한글로 된 pdf 매뉴얼이 있나 좀 찾아봤는데 안보여서요. 혹 없는건지 아니면 제가 못찾는건지 알려주셨으면 합니다. 복붙해서 쓰더라도 조금씩은 바꿀 수 있는 편집자...가 되고 싶습니다. :-)
-
ischo
2022.05.14 08:52
-
noname
2022.05.14 09:35
위에 소개받은 자료는 비교적 본격적인 (주로 프로그래밍이라는 점에 착안한) expl3 학습서입니다.
이보다 이전 과정(?)으로 미리 읽어두어야 할 것이 있다면,
(1) xparse에 대해서 공주대학교 워크숍의 다음 두 자료:
* In-Sung Cho, 2020, <xparse: 효율적인 tikz 코딩>
* In-Sung Cho, 2016-7, <xparse, high level document command parser>(2) xparse와 expl3에 대한 간략한 소개글
* Yi Hoze and Nova de Hi, 2012/2015, Yet Another Guide to How to Define Macros이것들을 읽은 다음에 <예제로 배우는 expl3>를 공부하십시오.
-
판돌이
2022.05.14 15:29
어익후 바로 교재들이~! 고맙습니다~~
-
noname
2022.05.14 16:51
굳이 "한글"로 된 걸 찾으셔서 몇 개 보여드린 것이고요, 요 아래 글 댓글에 (이 분야 고수이신) yihoze께서는 이런 거 언급 안 하고 xparse 매뉴얼과 interface3를 보라고 하십니다.
MWE입니다.