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>처럼 입력하시면 좋습니다.
SIunits에서 정수 부분 만단위 표시 방법
2020.09.09 03:01
안녕하세요?
꾸러미 'siunits'를 쓰고 있습니다. 한국어에서는 서양과 달리 정수 부분에 오는 수를 만단위씩 끊어 읽기에 숫자 123456789.33333을 1,2345,6789.33333나 1 2345 6789.33333처럼 정수부분의 네 자리 앞에마다 자리표시 쉼표나 빈칸을 두고자 하는데, siunits에서 따로이 제공하는 기능이 없는 듯합니다. 혹시 아시는 분이 계시면 도움을 부탁드려요. 고맙습니다.
댓글 6
-
anonymous
2020.09.09 11:03
-
yihoze
2020.09.09 15:15
anonymous님의 말씀에 원칙적으로 동의합니다만, teolsuk 말씀도 일리가 있다고 생각합니다. siunitx 패키지의 일부 함수를 재정의해 봤습니다.
\documentclass[]{minimal}
\usepackage{kotex}
\usepackage{siunitx}
\ExplSyntaxOn
\cs_new_protected:Npn \my__siunitx_number_format_group_integer_setup:n #1 {
\__siunitx_number_format_group_integer_setup_aux:NNNNN
{ } #1 { } { } { } { }
}
\cs_new_protected:Npn
\__siunitx_number_format_group_integer_setup_aux:NNNNN #1#2#3#4#5 {
\tl_if_empty:nTF {#2}
{ \__siunitx_number_format_group_integer_aux:NNNNN #1 \q_nil }
{
\tl_if_empty:nTF {#3}
{
\__siunitx_number_format_group_integer_aux:NNNNN { } { } { } #1#2
\q_nil
}
{
\tl_if_empty:nTF {#4}
{
\__siunitx_number_format_group_integer_aux:NNNNN { } { } #1#2#3
\q_nil
}
{
\tl_if_empty:nTF {#5}
{
\__siunitx_number_format_group_integer_aux:NNNNN { } #1#2#3#4
\q_nil
}
{
\__siunitx_number_format_group_integer_setup_aux:NNNNN
{#1#2#3#4#5}
}
}
}
}
}
\cs_new_protected:Npn
\__siunitx_number_format_group_integer_aux:NNNNN #1#2#3#4#5 {
\tl_put_right:Nn \l__siunitx_tmpb_tl {#1#2#3#4}
\quark_if_nil:nF {#5}
{
\tl_put_right:NV \l__siunitx_tmpb_tl \l__siunitx_group_sep_tl
\__siunitx_number_format_group_integer_aux:NNNNN #5
}
}
\cs_set_eq:NN \__siunitx_number_format_group_integer_setup:n \my__siunitx_number_format_group_integer_setup:n
\ExplSyntaxOff
\sisetup{group-separator={,}, group-digits=integer}
\begin{document}
\num{123.456} \\
\num{1234.5678} \\
\num{12345.67890} \\
\num{123456.789012} \\
\num{1234567.890123} \\
\num{12345678.901234}
\end{document} -
noname
2020.09.09 16:52
siunitx에 꼭 의존해야 하는 것이 아니고 DIY로 해결해도 상관없다면,
http://www.ktug.org/xe/index.php?mid=KTUG_open_board&document_srl=202782
여기에 제시되어 있는 "몇 자리마다 콤마 찍기"를 응용하면 간단히 할 수 있을 듯합니다.인용한 글에서는 소숫점 이하 처리에 대한 이야기는 없습니다만, 그건 그냥 잠깐 저장해뒀다가 붙이면 그만이니까요.
-
yihoze
2020.09.10 10:21
siunitx가 제공하는 여러, 이를테면 소숫점 이하에서도 세 자리씩 분리한다든가 하는, 기능들을 이용할 수 있게 하는 취지로 위와 같은 해법을 제시한 것인데, 네 자리씩 끊는 것 자체가 International System of Units와는 거리가 있어 보이네요. 그래서 알려주신 방법으로 만들어 봤습니다. 상식적인 수준에서 보자면 이런 고민은 금액의 표현을 위한 것이므로 소숫점 이하를 쓸 리 없습니다. 금액이 아닌 단위라면 만 자리를 넘어가는 일이 드물고 학술적인 문서라면 지수 표현을 사용하겠죠. 그래도 혹시나 하여 소숫점 이하는 무시되게 하였습니다.
내친 김에 dcolumn 패키지를 흉내내어 소숫점을 기준으로 정렬되는 환경도 만들어 봤습니다.
-
teolsuk
2020.09.12 03:23
아이고 고수님들의 정성에 탄복. 고맙습니다. 소숫점 상위 네 자리마다 구분 표시를 두는 일은 아직 국제 표준 단위계에서 정한 표기법에 어긋나죠. 제가 표준국 담당자와 여러번 서신을 주고받은 적이 있긴 합니다만, 아직 한국 환경을 고려하지는 않은 듯합니다. 한국의 입김이 약한 탓일지도. ㅋ 그런데 한국 표준에서는 이를 따르도록 하고 있는지, 아니면 한국 환경에 맞게 변용할 수 있도록 여지를 두고 있는지를 저는 모르겠습니다. 한국 TeX 사용자 모임 여러분의 건강을 기원합니다.
-
noname
2020.09.17 12:46
SI unit와 하등 관련은 없겠습니다만, <예제로 배우는 expl3>의 No.102에 보면 다음 그림과 같은 문제가 제시되어 있습니다. 재미삼아 시도해보시고 문서에서 제시하는 해법과 비교해보셔도 좋을 것 같습니다.
SIunits 나 siunitx 는 SI unit를 쓰려고 하시는 것일 텐데,
그리고 CTAN을 보니, SIunits보다 siunitx를 권하고 있습니다.