KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
- TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
정보글 7자 이상인 단어만 다른 글꼴과 색으로
2020.04.10 13:50
문장을 단어나 낱자로 쪼개어 색칠하는 따위를 한동안 재미삼아 했었는데요. 그 매크로들을 모아 스타일로 만들면서 지정된 글자 수보다 긴 단어만 달리 표현하는 매크로를 추가했습니다. 아무 쓰잘머리 없지만 expl3를 공부하는 데 제법이 도움이 되었습니다.
\begin{LetterColor}[effect=count, letters=7, transition=gradient, grad-RGB=FF8800, grad-step=10, font=\itshape\bfseries]
...
\end{LetterColor}
.sty 파일은 첨부할 수 없다 하여 .sty.tex으로 바꾸었습니다. 자모에 색칠하려면 colorjamo 패키지가 필요하고 루아텍으로 컴파일해야 합니다.
댓글 7
-
Progress
2020.04.10 15:47
-
작나
2020.04.10 16:50
루아텍으로 아주 단순하게 하면,
\documentclass{article} \usepackage{luacode} \usepackage{xcolor} \usepackage{kotex} \begin{document} \begin{luacode*} function wcolor(w) local w = w return function (line) line = string.gsub(line, "("..w..")", "\\textcolor{blue}{%1}") return line end end luatexbase.add_to_callback("process_input_buffer", wcolor("자유"), "wcolor") \end{luacode*} 지나가던 시민들이 잠시 멈춰 재기에 찬 춤꾼의 자유분방한 춤을 구경했다. 이 단지는 일반적인 벽식 구조 아파트와 다르게 세대 내부를 기둥식으로 설계해 입주자의 취향과 선택에 따라 내부 공간을 자유롭게 재배치할 수 있다. 초계 군수 이유검은 군사를 흩트려 버려서 자유행동을 취하게 한 뒤에 저마저 달아나 버렸다. 그들은 일본 군국주의자들이 물러선 다음의 공백 상태를 그 자유의 명분 아래 어떠한 사회 개혁의 장으로 만들어 놓은 것이었을까. 조선 중기 사색당파가 형성되면서 어느 누구도 당쟁으로부터 자유로울 수 없었다. \end{document}
-
yihoze
2020.04.16 11:23
지정한 단어들만 달리 표현하는 매크로를 추가했습니다.
\begin{LetterColor}[effect=word, words={자유, 행복, 정의, freedom, Rights, Justice, Liberty}, transition=none, foreground=blue, font=\itshape\bfseries]
문장 부호가 딸린 경우에도 다음처럼 바뀌어 문장 부호가 함께 강조되지 않도록 했는데요.
'정의', -> '\textlt{정의}',
문제는 알파벳 대소문자인데, expl3 정규표현식에서 대소문자를 무시하는 찾기-바꾸기 함수를 찾지 못했습니다.
-
noname
2020.04.16 12:37
대소문자를 처리하는 간단한 샘플을 보여드리겠습니다. 첨부파일 참조. (간단히 하기 위하여 \par는 무시했습니다.)
\NewDocumentCommand \test { m +m } { \seq_clear:N \l_tmpa_seq \clist_set:Nn \l_tmpa_clist { #1 } \clist_map_inline:Nn \l_tmpa_clist { \seq_put_right:Nx \l_tmpa_seq { \str_foldcase:n { ##1 } } } \par Key~words:~ \seq_use:Nn \l_tmpa_seq {,~ } \par \regex_split:nnN { \s } { #2 } \l_tmpb_seq \seq_map_inline:Nn \l_tmpb_seq { \seq_if_in:NxTF \l_tmpa_seq { \str_foldcase:n { ##1 } } { \emph{##1} } { ##1 } \space } }
-
yihoze
2020.04.17 10:59
첫 글자가 한글인지 아닌지 판단하려면 어떻게 해야 하나요? 아무래도 조사 때문에 그게 필요할 것 같습니다.
-
noname
2020.04.17 11:15
단어에 한글이 들어 있는가를 검사하는 방법으로 바로 생각나는 거는 이런 거 정도인데요. 첫 글자만 검사하려면 \tl_head:n으로 할 수 있지 않을까요?
\NewDocumentCommand \test { m } { \regex_match:nnTF { [가-힣ㄱ-ㅎㅏ-ㅣ] } { #1 } { #1~(한글~있음) } { #1~(한글~없음) } }
한글을 검사하는 것보다 [a-zA-Z]으로 영문자 알파벳을 검사하는 것이 더 빠를수도...
-
yihoze
2020.04.17 11:31
한글의 캣코드가 other라는 것에 착안해서 다음과 같이 만들었습니다.
\cs_new:Npn \lettercolor_emphasize_words:n #1
{
\tl_set:Nn \l_tmpa_tl { #1 }
\tl_set:Nn \l_tmpb_tl { #1 }
\regex_replace_all:nnN { ['":;,.!?(){}\[\]] }{} \l_tmpb_tl
% for Latin
\exp_args:NNx \regex_set:Nn \l_tmpa_regex { \l_tmpb_tl }
\seq_if_in:NxTF \l_lettercolor_words_seq { \str_foldcase:V \l_tmpb_tl }
{
\regex_replace_once:NnN \l_tmpa_regex { \c{textlc}\cB\{ \0 \cE\} } \l_tmpa_tl
}{ % for Hangul
\tl_if_head_eq_catcode:oNT { \l_tmpb_tl } \c_catcode_other_token
{
\seq_map_inline:Nn \l_lettercolor_words_seq
{
\tl_if_in:NnT \l_tmpa_tl { ##1 }
{
\regex_replace_once:nnN { ##1 }{ \c{textlc}\cB\{ \0 \cE\} } \l_tmpa_tl
}
}
}
}
\tl_if_eq:VnF \l_lettercolor_transition_tl { none }
{
\lettercolor_assign_color:
}
\l_tmpa_tl\space
}
놀랍습니다.
이런 게 가능하다면, 혹시 문서 전체에서 '자유'라는 글자만 파랗게 칠하는 뭐 그런 기능도 되나요?