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>처럼 입력하시면 좋습니다.
algorithmicx package 사용방법
2018.01.05 21:50
안녕하세요.
algorithmicx 패키지에 대한 문의를 드리려 합니다.
algorithmicx.pdf
에 나온 설명과 예제를 보면
\usepackage{algpseudocode}만 사용을 하면 된다고 나오는데
그럴경우 latex environment algorithm undefined 에러가 뜹니다.
stackexchange에선
\usepackage{algorithm}
\usepackage{algpseudocode}
로 수정시 문제없이 돌아간다는데 일단 저도 문제없이 돌아는 가고 있습니다.
다만 한가지 맘에 걸리는게 제가 투고하려는 저널의 가이드라인을 살펴보면
'do not use the floating algorithm environment of algorithm.sty'라고 명시가 되어 있다는 겁니다.
위와같이
\usepackage{algorithm}
\usepackage{algpseudocode}
를 사용해서 알고리즘을 작성시 algorithm.sty를 사용하지 않은게 맞는것인가요?
아니면 algorithm.sty를 사용하지 않고 algorithmicx만을 사용할 수 있는 다른 방법이 존재하나요?
혼자서 낑낑거리다 도무지 모르겠어서 이렇게 문의드립니다.
답변부탁드리겠습니다.
댓글 3
-
yihoze
2018.01.08 09:03
-
정재희
2018.01.08 11:02
먼 CTAN에 있는 algorithmicx.pdf의 예제를 적으면 다음과 같습니다.
\usepackage{algpseudocode}
\begin{algorithm}
\caption{Euclid’s algorithm}\label{euclid}
\begin{algorithmic}[1]
\Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}
\State $r\gets a\bmod b$
\While{$r\not=0$}\Comment{We have the answer if r is 0}
\State $a\gets b$
\State $b\gets r$
\State $r\gets a\bmod b$
\EndWhile\label{euclidendwhile}
\State \textbf{return} $b$\Comment{The gcd is b}
\EndProcedure
\end{algorithmic}
\end{algorithm}위 코드를 첨부한 텍 파일에서 실행을 시켜보면 계속 에러가 납니다.
\begin{algorithm}에서 에러가 계속 잡히더라구요.
본문에서 질문드린것과 같이 usepackage{algorithm, algpseudocode}를 해야지만 된다는데
이러한 경우엔 algorithm.sty 패키지를 사용한게 아닌가 우려되어 문의를 남겼습니다.
다른 방법은 없는지 아니면 현재 방법이 algorithm.sty 패키지를 사용한게 아닌게 맞는지가 궁금합니다.
답변부탁드리겠습니다 ㅜㅜ
-
yihoze
2018.01.08 11:59
algorithm 환경을 쓰지 않을 때 에러를 일으키는 것은 \caption입니다. 캡션은 원래 figure나 table처럼 떠다니는 개체에서만 쓸 수 있습니다. 따라서 저널에서 algorithm 환경을 쓰지 말라고 했다면, 캡션도 쓰지 않는 것으로 보아야 하지 않을까 싶습니다. 아래 예처럼, 방법이 없지 않겠습니다만, 저널에 먼저 문의를 하는 게 맞지 않을까 싶습니다.
\documentclass{article}
\usepackage{algpseudocode}
\usepackage{ccaption}
\usepackage{newfloat}
\DeclareFloatingEnvironment[
fileext = loc,
listname = List of Algorithms,
name = Algorithm,
placement = htbp,
]{algorithm} % float 환경을 하나 만들되 쓰지는 않는다. (단지 \alcap 명령을 만들기 위해 필요)
\newfixedcaption{\alcap}{algorithm} % float 환경이 아닌 곳에서도 캡션을 만든다.\begin{document}
\begin{minipage}{\linewidth} %캡션과 algorithmic 환경 사이가 쪽나눔이 되지 않도록 묶는다
\alcap{Euclid's algorithm}\label{euclid}
\begin{algorithmic}[1]
\Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}
\State $r\gets a\bmod b$
\While{$r\not=0$}\Comment{We have the answer if r is 0}
\State $a\gets b$
\State $b\gets r$
\State $r\gets a\bmod b$
\EndWhile\label{euclidendwhile}
\State \textbf{return} $b$\Comment{The gcd is b}
\EndProcedure
\end{algorithmic}
\end{minipage}
\end{document}
흔히 사용되는 패키지가 아닌 데다가 예문도 없어서 답변이 달리지 않는 것으로 보입니다. 예문과 함께, 저널이 허용하는 패키지와 아닌 것을 다시 말씀해 주세요.