在doxygen的LaTeX输出中设置列宽

时间:2012-03-15 16:03:52

标签: latex width doxygen

如何在doxygen的注释中设置列宽?

对于下表,我希望我的LaTeX(PDF)输出中的第一列尽可能小。

/*!
@brief
blablabla

Name | Description
---- | -----------
AB   | asdf asdf asdf asdf asdf 
*/

2 个答案:

答案 0 :(得分:1)

Latex有两种方法可以制作表格(至少据我所知):

  • 具有最小宽度,但没有文本环绕或保护,以防止表变得太宽。你很简单就会得到一个过分的警告,而且这个表格会在页面上运行。
  • 具有固定的列宽;然后文本将很好地包装,但必须提前为每列选择合适的宽度。

由于doxygen无法猜测表格的宽度,因此它使用固定的列宽,目前基于\ textwidth除以列数。

我正在考虑将该宽度放在TeX长度变量中,因此您可以使用特殊的doxygen命令来覆盖它,但这尚未实现。

答案 1 :(得分:0)

我正在使用Doxygen 1.8.9.1,而AFAIK今天仍然没有Doxygen选项来关闭列中的固定宽度。但是,您可以手动编辑doxygen.sty文件。

我能够通过搜索\begin{xtabular}并更改除最后一列之外的所有列的列标记(即两个垂直条之间的内容|)来实现您想要的效果。 p{x.xx\textwidth}命令(不知道我是否使用正确的LaTeX术语)定义了每列的宽度。通过尝试,在此之前替换命令似乎更好(>{\centering}>{\raggedleft\hspace{0pt}})。

例如,

   \begin{xtabular}{|>{\centering}p{0.10\textwidth}|%
                     >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
                     p{0.678\textwidth}|}}%

然后会变成:

   \begin{xtabular}{|c|%
                     r|%
                     p{0.678\textwidth}|}}%

抛弃空的评论并将所有内容放在一行上给出:

   \begin{xtabular}{|c|r|p{0.678\textwidth}|}}

这两步过程分为三个步骤:创建pdf,你

  • 运行Doxygen
  • 调整latex子文件夹中生成的doxygen.sty或将其替换为您编辑的版本
  • 运行Make.bat

注意:

  • 当然这也意味着你所有的桌子都有不同的宽度。
  • 您谈到缩小列的宽度,但根据您的命名约定,您最终可能会扩大列宽(从而解决看起来非常难看的溢出布局问题)。通过使最后一列的宽度也流畅,或通过将其设置为足够低的固定值(即使是最长的名称),确保最后一列不会掉落到纸张的右边缘。