doxygen 질문입니다! 원하는 모양으로 안나오는군요..

tinywolf의 이미지

코드는 다음과 같습니다..

	//! \brief 정점으로 도형을 그릴 때 감기(Winding)방식
	enum VReVtxWind
	{
		eVtxCW,	/*!< 시계 방향 [b]감기[/b]
				 *	도형의 앞면은 정점 순서가 시계 방향으로 보이는 쪽이다.
				 *	<pre>
				 *	a*  → *b
				 *	  ↖ ↙
				 *	    *c
				 *	</pre> */
		eVtxCCW	/*!< 반시계 방향 [b]감기[/b]
				 *	도형의 앞면은 정점 순서가 반시계 방향으로 보이는 쪽이다.
				 *	<pre>
				 *	a*  ← *c
				 *	  ↘ ↗
				 *	    *b
				 *	</pre> */
	};

html 출력이 첨부된 그림과 같습니다..

그리고 출력된 부분의 html코드는 다음과 같구요..

<a class="anchor" name="a11" doxytag="VRLIB::VReVtxWind"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">enum <a class="el" href="namespace_v_r_l_i_b.html#a11">VRLIB::VReVtxWind</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
정점으로 도형을 그릴 때 감기(Winding)방식. 
<p>
<dl compact><dt><b>열거형 값: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="a11a6" doxytag="eVtxCW"></a>eVtxCW</em>&nbsp;</td><td>
시계 방향 [b]감기[/b] 도형의 앞면은 정점 순서가 시계 방향으로 보이는 쪽이다. [b]<pre>
	a*  → *b
	  ↖ ↙
	    *c
	</pre>[/b] </td></tr>
<tr><td valign="top"><em><a class="anchor" name="a11a7" doxytag="eVtxCCW"></a>eVtxCCW</em>&nbsp;</td><td>
반시계 방향 [b]감기[/b] 도형의 앞면은 정점 순서가 반시계 방향으로 보이는 쪽이다. [b]<pre>
	a*  ← *c
 ↘ ↗
 *b
	</pre>[/b] </td></tr>
</table>
</dl>
    </td>
  </tr>
</table>

'... 감기'라는 말 뒤에 줄넘김에서 자동으로 <br>을 넣어준다면 참으로 좋을 것인데..
'\n'을 달아줘야만 줄 넘김이 되더군요..
거기다 출력 html코드를 보면 알 수 있듯이 줄넘김했던 부분이 공백하나로 바뀌어 있어서 css로 어떻게 해보지도 못하겠더군요..
이거야 뭐 귀찮지만 줄끝마다 '\n' 달아주면 되니 해결이 된다 치고..

중요한건 <pre>부분!
분명 위의 <pre>부분은 정상적으로 탭까지 포함해서 잘 들어갔습니다.
그런데 아래의 <pre>부분은 왜 두번째 줄부터 탭과 고정 공백들이 공백하나로 바뀌어 버리는지.. ㅜ_ㅜ

공백 및 줄바꿈 문자들을 그냥 그대로 포함되도록 하고 싶은데요..
그런 설정이 있나요?

전부 다 공백 하나로 바꿔버린다면 아예 포기를 하고 안 쓸텐데..
어떤건 그대로 나오고 어떤건 바꾸고..
정말 은근한 삽질을 유도하는 군요..

doxygen 1.4.2, doxygen GUI frontend 를 사용해서 작업했습니다.

File attachments: 
첨부파일 크기
Image icon doxygen.png7.68 KB
Image icon doxy.png2.24 KB
Fe.head의 이미지

	
		eVtxCW,	/*!< 시계 방향 [b]감기[/b]
				 *	도형의 앞면은 정점 순서가 시계 방향으로 보이는 쪽이다.
				 *	<pre>
				 *.	a*  → *b
				 *.	  ↖ ↙
				 *.	    *c
				 *.	</pre> */

첫줄에 의미없는 글자 하나씩 넣어 두니 되는군요.

다만 *는 안보이고 . 는 보입니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon 0바이트

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

tinywolf의 이미지

후후후..

방금 저도 그렇게 해결했습니다..

다만 일관성을 유지하려는 이유로 모든 <pre>에 다 점을 집어넣느라 조금 머리 좀 썼죠..

아래와 같은 코드는 생성하지도 못하는 군요..

		//! \brief 원근 투영 출력 생성
		static VRcView*	CreatePerspective(
#if defined(OS_WIN32) || defined(OS_WCE3)
							IN HWND hWnd,							//!< 출력 대상 윈도우 핸들 (MS Windows 전용)
#endif
							IN VRcTuple4<int> cliparea,				//!< 출력 대상 영역
							IN float fovy,							//!< field of view 각도 [1,360], y축 방향
							IN float aspect,						//!< y축에 대한 x축의 field of view 각도 비율
							IN float zNear,							//!< 가까운 클리핑 지점 [0.0,d1](0<d1)
							IN float zFar							//!< 가까운 클리핑 지점 [d1,d2](d1<d2)
						);

그런데 #if ~ #endif 를 없애봐도 안나오는 것을 보니 뭔가 다른 이유가 있는 것같기도 하고..

똑같은 형식에 맞춰서 넣는다고 생각하는데도..
결과가 다르게 나오면 대략 좌절입니다..

괜히 문서화 시작했나..

ㅡ_ㅡ;

tinywolf의 이미지

앞서의 생성을 못하는 문제는 똑같은 클래스가 두군데에서 선언되어서 그런 것이군요..
그부분을 수정하니 잘 나옵니다! ㅎㅎ

하지만 #if ~ #endif 사이의 코드는 문서화 되지 않는군요..

그래도 대만족입니다.. doxygen!!!
특히 클래스간의 관계를 그래프로 보여주는 부분!! 압권입니다.. >0<b

몇가지 아쉬운 부분만 개선되었으면 하지만..
그거야 어떤 프로그램을 봐도 가지게되는 개인적인 욕심이고..
정말 잘 만든 것같습니다.

한번 써보세요..
http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc

ㅡ_ㅡ;

elanoia의 이미지

#if ~ #endif 사이의 주석이 안나오는 이유는 말 그대로 define 안되서 그렇습니다.

코드에

#define  __KERNEL__

이런걸 해주거나 dexygen 설정 파일에

# The PREDEFINED tag can be used to specify one or more macro names that 
# are defined before the preprocessor is started (similar to the -D option of 
# gcc). The argument of the tag is a list of macros of the form: name 
# or name=definition (no spaces). If the definition and the = are 
# omitted =1 is assumed.

PREDEFINED             =  __KERNEL__

해주면 됩니다.

음... 이제 부터 생각해 봐야겠다.

tinywolf의 이미지

캬 좋은 정보 감사합니다!

ㅡ_ㅡ;

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.