Q&A 마당은 텍 관련 질문/답변과 토론을 위해 만들었습니다.

  • 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
  • 질문 전에 Minimal working example를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
    • 질문에 맞는 제목을 붙이세요. 예를 들어 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답변이 잘 붙지 않습니다.
    • 질문을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
  • 화일을 첨부하실 때에는 가능한 압축하여 화일크기를 줄여서 올려주시길 바랍니다.
  • 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
  • 최근 스팸글의 등록 빈도가 높아 졌습니다. 이를 막기위하여 짧은 시간내에 다시 글이 등록되는 IP를 막거나, 광고글을 막기위하여 금지어로 .com, .net등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
  • MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
  • 사용하는 편집기를 스마트에디터에서 CKeditor로 변경하였습니다. 좋아진 점은 아래와 같습니다.
    • flash를 사용하지 않습니다.
    • 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.

noname

\numexpr 안의 / 연산자는 truncate가 아니라 round입니다. TeX의 \divide와는 다릅니다. modulo를 구하기 위해 a-(a/b)*b하면 음수를 반환하게 되어서 문제가 생깁니다.

원하시는 목적을 위해서 \myMod를 하나 새로 정의하시지요.

\newcount\tmpcnt
\def\myMod#1#2%
{%
	\tmpcnt#1
	\divide\tmpcnt by#2
	\multiply\tmpcnt by#2
	\ifnum0=\numexpr #1-\tmpcnt\relax 
		#2\else
		\the\numexpr #1-\tmpcnt\relax
	\fi
}

\ifnum 이후 코드는 나머지가 0일 때 나누는 수(예시된 7)를 출력해야 뜻대로 동작할 것 같아서 추가한 것입니다. 

사족이지만 \value{section}을 쓰기 위한 목적이라면 \usepackage{ifthen}으로 되지 않을까 합니다.

Expl3라면 대략 다음과 같이 할 수 있는데요, 이게 좋은 점은 \int_mod:nn라는 function을 제공한다는 것입니다. 문서 클래스가 oblivoir이므로 \usepackage{xparse}를 따로 안 써도 됩니다.

\ExplSyntaxOn
\NewExpandableDocumentCommand \myMod { m m }
{
	\int_set:Nn \l_tmpa_int { \int_mod:nn { #1 } { #2 } }
	\int_compare:nTF { \l_tmpa_int == 0 }
	{
		#2
	}
	{
		\int_use:N \l_tmpa_int
	}
}
\ExplSyntaxOff



XE Login