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>처럼 입력하시면 좋습니다.
latex 안에서 사칙연산하기
2011.10.20 01:12
안녕하세요, 예전에 얼핏 latex안에서 간단한 연산을 할 수 있다고 알고 있는데 막상 할려니까 어떻게 해야 하는지 모르겠습니다. 제가 할려는 것은 간단히 beamer에서 "\inserttotalframenumber - 1" 이런 연산을 해서 총 슬라이드 수에서 백업 슬라이드 수를 빼고 싶습니다. 그럼 조언 부탁드립니다. 감사합니다.
댓글 5
-
nova de hi
2011.10.20 02:11
-
aeronova
2011.10.20 02:51
자세한 설명 감사드립니다. 많은 도움이 되었습니다. 다만 두번 컴파일을 해도 "0"이 나오는 문제가 있습니다. 제 생각엔 \inserttotalframenumber가 counter가 아닌가 싶기도 합니다. 시간 있을때 어떤변수를 써야하는지 beamer class를 뒤져봐야 겠습니다.
-
nova de hi
2011.10.20 17:15
저는 잘 되는데요? 간단한 소스라도 보여주세요.
-
aeronova
2011.10.21 05:36
첨부하였습니다. 시간되실때 봐주시면 고맙겠습니다. 감사합니다!
-
nova de hi
2011.10.21 10:48
카운터 abc가 정의되고 값이 지정되는 곳과 \setbeamertemplate이 활성화되는 곳이 다르기 때문에 \theabc가 0로 나오는 것이 당연합니다.
그러니까, \setbeamertemplate 안에서 카운터 값을 assign하는 명령을 넣으면 되겠습니다.
28행의 \newcounter{abc}는 그냥 두면 되구요
29행과 30행 \setcounter, addtocounter는 무의미하니까 삭제.
\setbeamertemplate{sidebar left}가 정의되는 곳 안에서, 65행 정도, 즉 \theabc 카운터가 사용되기 직전에
\setcounter{abc}{\inserttotalframenumber}\addtocounter{abc}{-1}
이걸 넣어주면 되겠지요.
(앞서 말씀드린 대로 \setcounter{abc}{\numexpr\inserttotalframenumber-1\relax} 이렇게 해도 되구요...)
\setbeamertemplate{sidebar left}
{
{\usebeamerfont{title in sidebar}%
\vskip1.5em%
\usebeamercolor[fg]{title in sidebar}%
\insertshorttitle[width=\swidth,center,respectlinebreaks]\par%
% \insertshorttitle[width=\swidth,center,respectlinebreaks]\par%
\vskip1.25em%
}%
{%
\usebeamercolor[fg]{author in sidebar}%
\usebeamerfont{author in sidebar}%
\insertshortauthor[width=\swidth,center,respectlinebreaks]\par%
\vskip1.25em%
}%
% \hbox to2cm{\hss\insertlogo\hss}
\vskip1.25em%
\insertverticalnavigation{\swidth}%
\vfill
\setcounter{abc}{\inserttotalframenumber}\addtocounter{abc}{-1}%
\hbox to2cm{\hskip0.6cm\usebeamerfont{subsection in
sidebar}\strut\usebeamercolor[fg]{subsection in
sidebar}\insertframenumber/\theabc\hfill}%
% sidebar}\insertframenumber/\inserttotalframenumber\hfill}%
\vskip3pt%
}%
카운터의 더하기와 빼기는 \addtocounter를 이용할 수 있습니다.
\newcounter{abc}
\setcounter{abc}{\inserttotalframenumber}
\addtocounter{abc}{-1}
\theabc %% abc 카운터 현잿값의 식자
더하기 빼기만이 아니라 곱하기 나누기도 해야 한다면 etex의 primitive를 쓰는 것이 (calc 패키지를 쓰는 것보다) 좋다고 저는 생각합니다. 경우에 따라 \usepackage{etex}이 필요할 수 있습니다.
\newcounter{def}
\setcounter{def}{\numexpr\inserttotalframenumber *2 -1\relax} %%% 곱하기 2 빼기 1
\thedef
전통적인 calc 패키지를 이용해도 됩니다. \usepackage{calc}
\newcounter{ghi}
\setcounter{ghi}{\inserttotalframenumber * 2 -1}
\theghi
plainTeX의 사칙연산을 사용할 수도 있겠습니다.
\newcount\jkl
\jkl=\inserttotalframenumber
\multiply\jkl by 2 %% 곱하기 2
\advance\jkl by -1 %% 빼기 1
\the\jkl
나누기의 경우는 조금 특별한 면이 있으니까 조심해야 할 면이 있습니다만 더하기 빼기 곱하기 정도라면 이 정도면 될 것 같네요.
\inserttotalframenumber는 두번째 컴파일 때 제대로 된 숫자가 되는 걸로 압니다.