6.14. programlisting代码和screen屏幕输出

docbook中用于代码和屏幕输出等内容,对应的是programlistingscreen

[提示] XML中的实体和CDATA

对于docbook中写programlistingscreen等方面的东西

会涉及到CDATA方面的事情,其和XML的中的实体有关。

对于XML的实体不了解的,可以去参考:XML中的实体引用

6.14.1. programlisting代码

6.14.1.1. 带CDATA的programinglist示例

例 6.31. 举例:带CDATA的programinglist


<programlisting language="c">
<![CDATA[
	for (setno = 0; setno < nr_sets; setno++, nmtd++) {
		pr_debug("initialising set %d (%p, info %p)\n", setno, nmtd, info);
		s3c2410_nand_init_chip(info, nmtd, sets);
		nmtd->scan_res = nand_scan_ident(&nmtd->mtd,(sets) ? sets->nr_chips : 1);

		if (nmtd->scan_res == 0) {
			s3c2410_nand_update_chip(info, nmtd);
			nand_scan_tail(&nmtd->mtd);
			s3c2410_nand_add_partition(info, nmtd, sets);
		}
		if (sets != NULL)
			sets++;
	}

]]>

</programlisting>

                    

上述,就是由于programlisting的内容中出现了&<>,才用<![CDATA[]]>括起来的。

6.14.1.2. 不带CDATA的programinglist示例

例 6.32. 举例:不带CDATA的programinglist


<programlisting language="c">
	for (setno = 0; setno &lt; nr_sets; setno++, nmtd++) {
		pr_debug("initialising set %d (%p, info %p)\n", setno, nmtd, info);
		s3c2410_nand_init_chip(info, nmtd, sets);
		nmtd-&gt;scan_res = nand_scan_ident(&amp;nmtd-&gt;mtd,(sets) ? sets-&gt;nr_chips : 1);

		if (nmtd-&gt;scan_res == 0) {
			s3c2410_nand_update_chip(info, nmtd);
			nand_scan_tail(&amp;nmtd-&gt;mtd);
			s3c2410_nand_add_partition(info, nmtd, sets);
		}
		if (sets != NULL)
			sets++;
	}
</programlisting>

                    

上述,就是由于programlisting的内容中出现了:&<>

所以才分别用:&amp;&lt;&gt;,去替换的。

6.14.2. screen屏幕输出

screen适合用于表现:对于软件开发等过程中,屏幕输出信息之类的内容

6.14.2.1. 带CDATA的屏幕输出screen

例 6.33. 举例:带CDATA的screen


        <para>查看单个的某个示例配置的核心参数,用:</para>
        <screen><![CDATA[ct-ng show-<sample>]]></screen>

                    

上述,就是由于screen的内容中出现了<>,才用<![CDATA[]]>括起来的。

6.14.2.2. 不带CDATA的屏幕输出screen

例 6.34. 举例:不带CDATA的screen


        <para>查看单个的某个示例配置的核心参数,用:</para>
        <screen>ct-ng show-&lt;sample&gt;</screen>

                    

上述,就是由于screen的内容中出现了:<>

所以才分别用:&lt;&gt;,去替换的。