Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 *.org, .io, stackexchange, stackoverflow, ctan, overleaf, google.com, sil.org, github.com, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
raisebox와 문단 줄바꿈
2021.09.22 22:39
이런걸 이용해서 글자를 위로 올려봤는데,
\newcommand{\pnote}[1]{%
\raisebox{.3em}{\textsmaller{\color{darkgray}#1}}}
예전에 유사한 문제가 있어서 해결했는데 이 방법은 한자만 적용되고 한글이나 로마자에까지 적용할 수 없었습니다.
그래서 방법을 바꿔서 시도해보니 이번에는 박스가 폭을 넘어가버리네요.
게시판 도배하는듯 하여 좀 민망합니다만, 항상 선배님들께 감사드리고 있습니다~
댓글 9
-
yihoze
2021.09.23 07:59
-
판돌이
2021.09.23 12:23
음 이게 극복이 쉽지 않은 문제였군요 ㅠㅠ
어떻게 해야할진 모르겠습니다만, 글자 하나씩을 개별box로 처리하도록 하면 그런대로 쓸만해지지 않을까 하는 꼼수가 떠오릅니다. -_-
-
noname
2021.09.23 13:27
소스에 보니 grruby를 시도한 흔적이 있네요. 제 생각엔 어깨글자가 라틴 알파벳이 아니라 한자나 한글인 한, grruby가 이런 상황에서 사용하라고 만들어진 패키지라고 봅니다만, 질문글 중에 인용된 게시물의 대화를 보니 어떤 이유에선가 grruby의 사용을 꺼리는 듯하네요.
(grruby는 사설저장소에서 ksruby 패키지를 설치하면 함께 설치됩니다. 저로서는 이걸 기피하는 이유를 잘 이해할 수 없네요.)만약 grruby 방법을 쓰려 한다면 \pnote로 입력되어 있는 부분을 grruby 명령을 바꾸어야 하는데, 하나씩 찾아 바꾸려면 사람이 할 일이 아니고요, 이럴 때 쓰라고 regex가 있는 거니까, 제 경우 TeXShop의 찾아 바꾸기에서 다음 그림과 같이 regex replace를 적용하였습니다. 간단히 됩니다.
그러면 소스가 다음과 같은 모양으로 됩니다.
여기까지 한 다음, preamble의 다음 줄
\usepackage[rubystyle=rup,rubycolor=red!30!black!70,expos]{grruby}
이걸 살리고
\let\mypnote\grfoo
이 정도 하면 되지 않겠는가 합니다.======
한편, "한 글자씩" 개별적으로 처리하자고 하면, 대략 다음과 같은 코드를 생각할 수 있겠는데요,
\def\pnote#1{\pnoteal #1\null} \def\pnoteal{\futurelet\next\pnotesub} \def\pnotesub#1{% \pnoteproc{#1}\ifx\next\null\relax\else \expandafter\pnoteal\fi } \def\pnoteproc#1{\textsuperscript{#1}\allowbreak}
이것은 어쩌면 첫가끝 코드를 잘 처리하지 못할지 모릅니다. 한 번 나오는 ᄀᆡ는 중괄호로 묶어주십시오. {ᄀᆡ}.
-
판돌이
2021.09.24 00:41
알려주신 해결책 둘 다 잘 됩니다. :-) grruby뿐 아니라 hnja2hngl pdf를 보면서 경악중입니다... 대단하세요. ㅠㅠ
그리고 정규식 없으면 TeX은 반쪽짜리가 되겠지요~
-
noname
2021.09.24 05:10
아, hnja2hngl은... 없애기 귀찮아서(?) 그냥 둔 거였고요, 지금이라면 다르게 할 거 같습니다. 그만해도 벌써 5-6년 전 일이라서요.
한자음 읽기에 관해서는 DohyunKim 님의 readhanja라는 궁극의 솔루션이 이미 있습니다. (사설저장소에서 설치할 수 있고, lualatex에서 동작합니다.)
-
판돌이
2021.09.24 10:19
grfoo에 왜 손이 안가는가 생각해봤는데 사용성이 다른 명령들과 좀 달라서 그런가봅니다.
사과 \grfoo 박스(沙果box)는 조금 위화감이 있어서요.
사과 박스\grby{沙果box} 이런 명령을 쓸 수 있으면 좋겠다는 생각이 드는데
제가 pdf를 정독하진 못해서 이미 있는지도 모르겠네요.어쨌거나 제가 한자가 섞인 고전을 주로 만들고 있어서 hnja2hngl이 꽤 유용할 것 같습니다.
다시한번 감사드립니다~ -
noname
2021.09.24 17:33
grruby는 원래 예를 들면 다음과 같이 이미 입력되어 있는 텍스트를 되도록 간단히 식자하기 위하여 만들어진 사연이 있어 그렇습니다.
민족(民族)의 성쇠는 매양 그 사상(思想)의 추향(趨向) 여하에 달린 것이며, 사상 추향의 혹좌혹우(或左或右)는 매양 모종 사건의 영향을 입는 것이다.
지금 말씀하신 \grby라든가 그런 류의 명령은 그 앞 단어와 위치를 바꾸어 식자한다든가 하는 일이 불가능하기 때문에 grruby의 의도와는 다릅니다. 그런 것은 다른 곳에서 논의한 \textsuperscript라든가, 그런 해법으로 접근하는 게 맞겠지요. 그러나 아무래도 좋다면,
\newcommand \grby[1]{\grfoo (#1)}
이렇게만 해도 비슷한 결과가 되지 않을까 싶은데요. 앞서 말한 대로 이 경우에는 expos같은 옵션이 무의미하지만요.
그리고 grruby에서 몇 가지 rubystyle은 라틴문자에 동작하지 않습니다. 이것은 의도적인 것으로서, 원래 한글과 한자만 다루는 것이 목적이었기 때문입니다.
-
noname
2021.09.27 11:41
굳이 xelatex에서 이런 걸 써보겠다고 하시는 거로 이해하여, hnja2hngl을 새로 썼습니다. 여전히 readhanja가 좋다는 생각에는 변함이 없지만 xetex 상황에서라면 조금 도움이 될지 모르겠다는 점도 있어서요.
사설저장소로부터 업데이트하십시오. 설명 문서를 꼭 읽으시기 바랍니다.
-
판돌이
2021.09.23 14:11
엇 양쪽 다 해보겠습니다- grruby는 뭔가 잘 안나와서 중간에 접은 기억이 납니다 ㅎㅎ
아마도 \textsuperscript를 쓰면 한자가 너무 작게 보여서 저런 방법을 쓰신 걸로 짐작합니다. 오래 전에 제가 동일한 문제를 올린 적이 있습니다. \textsuperscript도 줄나눔이 되지 않는 문제가 있습니다.
http://www.ktug.org/xe/index.php?mid=KTUG_QnA_board&document_srl=218227
이 글타래에서 언급한, 제가 만든 코드는
https://github.com/YiHoze/HzGuide/blob/master/hzguide.cls 3483 행부터 있고,
https://yihoze.github.io 4.5절에 그에 대한 설명이 있습니다.