test.qbk 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607
  1. [article Document To Test Formatting
  2. [quickbook 1.4]
  3. [copyright 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias Capeletto]
  4. [purpose Test Formatting Document]
  5. [license
  6. Distributed under the Boost Software License, Version 1.0.
  7. (See accompanying file LICENSE_1_0.txt or copy at
  8. [@http://www.boost.org/LICENSE_1_0.txt])
  9. ]
  10. [authors [Maddock, John], [de Guzman, Joel], [Niebler, Eric], [Capeletto, Matias] ]
  11. [category math]
  12. [/last-revision $Date: 2007-05-07 10:21:52 +0100 (Mon, 07 May 2007) $]
  13. ]
  14. [include HTML4_symbols.qbk]
  15. [/ Some composite templates]
  16. [template super[x]'''<superscript>'''[x]'''</superscript>''']
  17. [template sub[x]'''<subscript>'''[x]'''</subscript>''']
  18. [template floor[x]'''&#x230A;'''[x]'''&#x230B;''']
  19. [template floorlr[x][lfloor][x][rfloor]]
  20. [template ceil[x] '''&#x2308;'''[x]'''&#x2309;''']
  21. [section Introduction]
  22. This document is purely a test case to test out HTML and PDF generation and style.
  23. This is some body text.
  24. int main()
  25. {
  26. double d = 2.345;
  27. return d;
  28. }
  29. We can count in Greek too: [alpha], [beta], [gamma].
  30. Try some superscrips and subscripts: x[super 2], x[sub i][super 3], [alpha][super 2],
  31. [beta][super [alpha]], [floor x], [floor [alpha]], [ceil a].
  32. [endsect]
  33. [section Code Blocks]
  34. [section Embedded code]
  35. These should be syntax highlighted:
  36. #include <iostream>
  37. int main()
  38. {
  39. // Sample code
  40. std::cout << "Hello, World\n";
  41. return 0;
  42. }
  43. [endsect]
  44. [section Imported code and callouts]
  45. [import stub.cpp]
  46. Here's some code with left-placed callouts:
  47. [class_]
  48. And again with callouts placed exactly where we put them:
  49. [foo_bar]
  50. [endsect]
  51. [section Larger example]
  52. Now let's include a larger example, this may span several pages
  53. and should not be chopped off half way through... some FO processors
  54. get this wrong!
  55. namespace boost{
  56. template <class BidirectionalIterator>
  57. class sub_match;
  58. typedef sub_match<const char*> csub_match;
  59. typedef sub_match<const wchar_t*> wcsub_match;
  60. typedef sub_match<std::string::const_iterator> ssub_match;
  61. typedef sub_match<std::wstring::const_iterator> wssub_match;
  62. template <class BidirectionalIterator>
  63. class sub_match : public std::pair<BidirectionalIterator, BidirectionalIterator>
  64. {
  65. public:
  66. typedef typename iterator_traits<BidirectionalIterator>::value_type value_type;
  67. typedef typename iterator_traits<BidirectionalIterator>::difference_type difference_type;
  68. typedef BidirectionalIterator iterator;
  69. bool matched;
  70. difference_type length()const;
  71. operator basic_string<value_type>()const;
  72. basic_string<value_type> str()const;
  73. int compare(const sub_match& s)const;
  74. int compare(const basic_string<value_type>& s)const;
  75. int compare(const value_type* s)const;
  76. #ifdef BOOST_REGEX_MATCH_EXTRA
  77. typedef implementation-private capture_sequence_type;
  78. const capture_sequence_type& captures()const;
  79. #endif
  80. };
  81. //
  82. // comparisons to another sub_match:
  83. //
  84. template <class BidirectionalIterator>
  85. bool operator == (const sub_match<BidirectionalIterator>& lhs,
  86. const sub_match<BidirectionalIterator>& rhs);
  87. template <class BidirectionalIterator>
  88. bool operator != (const sub_match<BidirectionalIterator>& lhs,
  89. const sub_match<BidirectionalIterator>& rhs);
  90. template <class BidirectionalIterator>
  91. bool operator < (const sub_match<BidirectionalIterator>& lhs,
  92. const sub_match<BidirectionalIterator>& rhs);
  93. template <class BidirectionalIterator>
  94. bool operator <= (const sub_match<BidirectionalIterator>& lhs,
  95. const sub_match<BidirectionalIterator>& rhs);
  96. template <class BidirectionalIterator>
  97. bool operator >= (const sub_match<BidirectionalIterator>& lhs,
  98. const sub_match<BidirectionalIterator>& rhs);
  99. template <class BidirectionalIterator>
  100. bool operator > (const sub_match<BidirectionalIterator>& lhs,
  101. const sub_match<BidirectionalIterator>& rhs);
  102. //
  103. // comparisons to a basic_string:
  104. //
  105. template <class BidirectionalIterator, class traits, class Allocator>
  106. bool operator == (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  107. traits,
  108. Allocator>& lhs,
  109. const sub_match<BidirectionalIterator>& rhs);
  110. template <class BidirectionalIterator, class traits, class Allocator>
  111. bool operator != (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  112. traits,
  113. Allocator>& lhs,
  114. const sub_match<BidirectionalIterator>& rhs);
  115. template <class BidirectionalIterator, class traits, class Allocator>
  116. bool operator < (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  117. traits,
  118. Allocator>& lhs,
  119. const sub_match<BidirectionalIterator>& rhs);
  120. template <class BidirectionalIterator, class traits, class Allocator>
  121. bool operator > (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  122. traits,
  123. Allocator>& lhs,
  124. const sub_match<BidirectionalIterator>& rhs);
  125. template <class BidirectionalIterator, class traits, class Allocator>
  126. bool operator >= (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  127. traits,
  128. Allocator>& lhs,
  129. const sub_match<BidirectionalIterator>& rhs);
  130. template <class BidirectionalIterator, class traits, class Allocator>
  131. bool operator <= (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  132. traits,
  133. Allocator>& lhs,
  134. const sub_match<BidirectionalIterator>& rhs);
  135. template <class BidirectionalIterator, class traits, class Allocator>
  136. bool operator == (const sub_match<BidirectionalIterator>& lhs,
  137. const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  138. traits,
  139. Allocator>& rhs);
  140. template <class BidirectionalIterator, class traits, class Allocator>
  141. bool operator != (const sub_match<BidirectionalIterator>& lhs,
  142. const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  143. traits,
  144. Allocator>& rhs);
  145. template <class BidirectionalIterator, class traits, class Allocator>
  146. bool operator < (const sub_match<BidirectionalIterator>& lhs,
  147. const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  148. traits,
  149. Allocator>& rhs);
  150. template <class BidirectionalIterator, class traits, class Allocator>
  151. bool operator > (const sub_match<BidirectionalIterator>& lhs,
  152. const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  153. traits,
  154. Allocator>& rhs);
  155. template <class BidirectionalIterator, class traits, class Allocator>
  156. bool operator >= (const sub_match<BidirectionalIterator>& lhs,
  157. const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  158. traits,
  159. Allocator>& rhs);
  160. template <class BidirectionalIterator, class traits, class Allocator>
  161. bool operator <= (const sub_match<BidirectionalIterator>& lhs,
  162. const std::basic_string<iterator_traits<BidirectionalIterator>::value_type,
  163. traits,
  164. Allocator>& rhs);
  165. //
  166. // comparisons to a pointer to a character array:
  167. //
  168. template <class BidirectionalIterator>
  169. bool operator == (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
  170. const sub_match<BidirectionalIterator>& rhs);
  171. template <class BidirectionalIterator>
  172. bool operator != (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
  173. const sub_match<BidirectionalIterator>& rhs);
  174. template <class BidirectionalIterator>
  175. bool operator < (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
  176. const sub_match<BidirectionalIterator>& rhs);
  177. template <class BidirectionalIterator>
  178. bool operator > (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
  179. const sub_match<BidirectionalIterator>& rhs);
  180. template <class BidirectionalIterator>
  181. bool operator >= (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
  182. const sub_match<BidirectionalIterator>& rhs);
  183. template <class BidirectionalIterator>
  184. bool operator <= (typename iterator_traits<BidirectionalIterator>::value_type const* lhs,
  185. const sub_match<BidirectionalIterator>& rhs);
  186. template <class BidirectionalIterator>
  187. bool operator == (const sub_match<BidirectionalIterator>& lhs,
  188. typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
  189. template <class BidirectionalIterator>
  190. bool operator != (const sub_match<BidirectionalIterator>& lhs,
  191. typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
  192. template <class BidirectionalIterator>
  193. bool operator < (const sub_match<BidirectionalIterator>& lhs,
  194. typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
  195. template <class BidirectionalIterator>
  196. bool operator > (const sub_match<BidirectionalIterator>& lhs,
  197. typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
  198. template <class BidirectionalIterator>
  199. bool operator >= (const sub_match<BidirectionalIterator>& lhs,
  200. typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
  201. template <class BidirectionalIterator>
  202. bool operator <= (const sub_match<BidirectionalIterator>& lhs,
  203. typename iterator_traits<BidirectionalIterator>::value_type const* rhs);
  204. //
  205. // comparisons to a single character:
  206. //
  207. template <class BidirectionalIterator>
  208. bool operator == (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
  209. const sub_match<BidirectionalIterator>& rhs);
  210. template <class BidirectionalIterator>
  211. bool operator != (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
  212. const sub_match<BidirectionalIterator>& rhs);
  213. template <class BidirectionalIterator>
  214. bool operator < (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
  215. const sub_match<BidirectionalIterator>& rhs);
  216. template <class BidirectionalIterator>
  217. bool operator > (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
  218. const sub_match<BidirectionalIterator>& rhs);
  219. template <class BidirectionalIterator>
  220. bool operator >= (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
  221. const sub_match<BidirectionalIterator>& rhs);
  222. template <class BidirectionalIterator>
  223. bool operator <= (typename iterator_traits<BidirectionalIterator>::value_type const& lhs,
  224. const sub_match<BidirectionalIterator>& rhs);
  225. template <class BidirectionalIterator>
  226. bool operator == (const sub_match<BidirectionalIterator>& lhs,
  227. typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
  228. template <class BidirectionalIterator>
  229. bool operator != (const sub_match<BidirectionalIterator>& lhs,
  230. typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
  231. template <class BidirectionalIterator>
  232. bool operator < (const sub_match<BidirectionalIterator>& lhs,
  233. typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
  234. template <class BidirectionalIterator>
  235. bool operator > (const sub_match<BidirectionalIterator>& lhs,
  236. typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
  237. template <class BidirectionalIterator>
  238. bool operator >= (const sub_match<BidirectionalIterator>& lhs,
  239. typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
  240. template <class BidirectionalIterator>
  241. bool operator <= (const sub_match<BidirectionalIterator>& lhs,
  242. typename iterator_traits<BidirectionalIterator>::value_type const& rhs);
  243. //
  244. // addition operators:
  245. //
  246. template <class BidirectionalIterator, class traits, class Allocator>
  247. std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>
  248. operator + (const std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type,
  249. traits,
  250. Allocator>& s,
  251. const sub_match<BidirectionalIterator>& m);
  252. template <class BidirectionalIterator, class traits, class Allocator>
  253. std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type, traits, Allocator>
  254. operator + (const sub_match<BidirectionalIterator>& m,
  255. const std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type,
  256. traits,
  257. Allocator>& s);
  258. template <class BidirectionalIterator>
  259. std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type>
  260. operator + (typename iterator_traits<BidirectionalIterator>::value_type const* s,
  261. const sub_match<BidirectionalIterator>& m);
  262. template <class BidirectionalIterator>
  263. std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type>
  264. operator + (const sub_match<BidirectionalIterator>& m,
  265. typename iterator_traits<BidirectionalIterator>::value_type const * s);
  266. template <class BidirectionalIterator>
  267. std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type>
  268. operator + (typename iterator_traits<BidirectionalIterator>::value_type const& s,
  269. const sub_match<BidirectionalIterator>& m);
  270. template <class BidirectionalIterator>
  271. std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type>
  272. operator + (const sub_match<BidirectionalIterator>& m,
  273. typename iterator_traits<BidirectionalIterator>::value_type const& s);
  274. template <class BidirectionalIterator>
  275. std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type>
  276. operator + (const sub_match<BidirectionalIterator>& m1,
  277. const sub_match<BidirectionalIterator>& m2);
  278. //
  279. // stream inserter:
  280. //
  281. template <class charT, class traits, class BidirectionalIterator>
  282. basic_ostream<charT, traits>&
  283. operator << (basic_ostream<charT, traits>& os,
  284. const sub_match<BidirectionalIterator>& m);
  285. } // namespace boost
  286. [endsect]
  287. [endsect]
  288. [section Basic Formatting]
  289. [section Font Styles]
  290. Here we go with some inline formatting:
  291. ['italic], [*bold], [_underline], [^teletype], [-strikethrough],
  292. we can combine styles as well: ['[*bold italic]], [_[^teletype with underline]].
  293. [endsect]
  294. [section Replaceable Text]
  295. Text that is intended to be user-replaceable is [~rendered like this].
  296. [endsect]
  297. [section Quotations]
  298. Here we go: ["A question that sometimes drives me hazy: am I or are the others crazy?]--Einstein
  299. Note the proper left and right quote marks. Also, while you can simply use ordinary quote marks like "quoted", our quotation, above, will generate correct DocBook quotations (e.g. <quote>quoted</quote>).
  300. Like all phrase elements, quotations may be nested. Example:
  301. ["Here's the rule for bargains: ["Do other men, for they would do you.] That's
  302. the true business precept.]
  303. [endsect]
  304. [section Inline Code]
  305. This text has inlined code `int main() { return 0; }` in it.
  306. The code should be syntax highlighted.
  307. [endsect]
  308. [section Links]
  309. Try this: [@http://www.boost.org this is [*boost's] website....] it should
  310. be visible as a link.
  311. [endsect]
  312. [section Footnotes]
  313. Here's one [footnote A sample footnote].
  314. And here's another [footnote Another sample footnote].
  315. [endsect]
  316. [section Blockquote]
  317. Lets indent the next paragraph:
  318. [:Here we go!!!]
  319. [endsect]
  320. [section Headings]
  321. Now try rendering some heading styles:
  322. [h1 Heading 1]
  323. [h2 Heading 2]
  324. [h3 Heading 3]
  325. [h4 Heading 4]
  326. [h5 Heading 5]
  327. [h6 Heading 6]
  328. [endsect]
  329. [endsect]
  330. [section Blurbs]
  331. [section Preformatted text]
  332. Here's some sample program output:
  333. [pre
  334. '''F test for equal standard deviations
  335. ____________________________________
  336. Sample 1:
  337. Number of Observations = 240
  338. Sample Standard Deviation = 65.549
  339. Sample 2:
  340. Number of Observations = 240
  341. Sample Standard Deviation = 61.854
  342. Test Statistic = 1.123
  343. CDF of test statistic: = 8.148e-001
  344. Upper Critical Value at alpha: = 1.238e+000
  345. Upper Critical Value at alpha/2: = 1.289e+000
  346. Lower Critical Value at alpha: = 8.080e-001
  347. Lower Critical Value at alpha/2: = 7.756e-001
  348. Results for Alternative Hypothesis and alpha = 0.0500
  349. Alternative Hypothesis Conclusion
  350. Standard deviations are unequal (two sided test) REJECTED
  351. Standard deviation 1 is less than standard deviation 2 REJECTED
  352. Standard deviation 1 is greater than standard deviation 2 REJECTED'''
  353. ]
  354. [endsect]
  355. [section Admonishments]
  356. There are four admonishments supported by Docbook XML:
  357. [note This is a note]
  358. [tip This is a tip]
  359. [important This is important]
  360. [caution This is a caution]
  361. [warning This is a warning
  362. They can contain more than one paragraph.
  363. ]
  364. [endsect]
  365. [section Blurbs]
  366. [blurb [*An eye catching advertisement or note...]
  367. These should be rendered in a manner similar to admonishments.
  368. They can contain more than one paragraph.
  369. ]
  370. [endsect]
  371. [endsect]
  372. [section Lists and Tables]
  373. [section Lists]
  374. A numbered list:
  375. # One
  376. # Two
  377. # Three
  378. # Three.a
  379. # Three.b
  380. # Three.c
  381. # Four
  382. # Four.a
  383. # Four.a.i
  384. # Four.a.ii
  385. # Five
  386. An unordered list:
  387. * First
  388. * Second
  389. * Third
  390. A mixture of the two:
  391. # 1
  392. * 1.a
  393. # 1.a.1
  394. # 1.a.2
  395. * 1.b
  396. # 2
  397. * 2.a
  398. * 2.b
  399. # 2.b.1
  400. # 2.b.2
  401. * 2.b.2.a
  402. * 2.b.2.b
  403. [endsect]
  404. [section Variable Lists]
  405. [variablelist A Variable List
  406. [[term 1] [The definition of term 1]]
  407. [[term 2] [The definition of term 2]]
  408. [[term 3] [The definition of term 3]]
  409. ]
  410. [endsect]
  411. [section Tables]
  412. Here's a big table with code and other tricky things:
  413. [table Notes on the Implementation of the Beta Distribution
  414. [[Function][Implementation Notes]]
  415. [[pdf]
  416. [f(x;[alpha],[beta]) = x[super[alpha] - 1] (1 - x)[super[beta] -1] / B([alpha], [beta])
  417. Implemented using ibeta_derivative(a, b, x).]]
  418. [[cdf][Using the incomplete beta function ibeta(a, b, x)]]
  419. [[cdf complement][ibetac(a, b, x)]]
  420. [[quantile][Using the inverse incomplete beta function ibeta_inv(a, b, p)]]
  421. [[quantile from the complement][ibetac_inv(a, b, q)]]
  422. [[mean][`a/(a+b)`]]
  423. [[variance][`a * b / (a+b)^2 * (a + b + 1)`]]
  424. [[mode][`(a-1) / (a + b + 2)`]]
  425. [[skewness][`2 (b-a) sqrt(a+b+1)/(a+b+2) * sqrt(a * b)`]]
  426. [[kurtosis excess][ [$images/beta_dist_kurtosis.png] ]]
  427. [[kurtosis][`kurtosis + 3`]]
  428. [[parameter estimation][ ]]
  429. [[alpha
  430. from mean and variance][`mean * (( (mean * (1 - mean)) / variance)- 1)`]]
  431. [[beta
  432. from mean and variance][`(1 - mean) * (((mean * (1 - mean)) /variance)-1)`]]
  433. [[The member functions `estimate_alpha` and `estimate_beta`
  434. from cdf and probability x
  435. and *either* `alpha` or `beta`]
  436. [Implemented in terms of the inverse incomplete beta functions
  437. ibeta_inva, and ibeta_invb respectively.]]
  438. [[`estimate_alpha`][`ibeta_inva(beta, x, probability)`]]
  439. [[`estimate_beta`][`ibeta_invb(alpha, x, probability)`]]
  440. ]
  441. [endsect]
  442. [endsect]
  443. [section Images]
  444. These are tricky enough that they warrent their own section.
  445. Let's start with a PNG file that's set to 120dpi, it should render at
  446. a sensible size in both html and PDF forms. It should print OK too!
  447. [$images/digamma3.png]
  448. Now try again with a sample SVG image:
  449. [$images/open_clipart_library_logo.svg]
  450. [endsect]
  451. [include test_HTML4_symbols.qbk]
  452. [include remez.qbk]
  453. [section:array Array Example Boostbook XML Documentation]
  454. [xinclude array.xml]
  455. [xinclude array1.xml]
  456. [xinclude array2.xml]
  457. [xinclude array3.xml]
  458. [xinclude array4.xml]
  459. [endsect]
  460. [section:accumulators Accumulators Example Doxygen Documentation]
  461. [xinclude statsdoc.xml]
  462. [endsect]
粤ICP备19079148号