PDF 格式的 GNU 文档是如何创建的?

PDF 格式的 GNU 文档是如何创建的?

一些 GNU 软件不提供 PDF 文件作为其手册,例如http://www.gnu.org/software/findutils/manual/find.html

有些有,而且他们的 PDF 文件有书签/大纲,例如https://www.gnu.org/software/bash/manual/

  1. 这些 PDF 格式的 GNU 文档是如何创建的?
  2. 如何为不提供 PDF 手册的 GNU 软件创建相同或相似风格的 PDF 文件?

    例如,从 texinfo 源文件创建是否可能并且是个好主意?我尝试过texi2pdf find.texi,但不起作用:

    $  texi2pdf find.texi 
    This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=pdfetex)
     restricted \write18 enabled.
    entering extended mode
    (./find.texi (/usr/local/texlive/2014/texmf-dist/tex/texinfo/texinfo.tex
    Loading texinfo [version 2014-12-03.16]: pdf, fonts, markup, glyphs,
    page headings, tables, conditionals, indexing, sectioning, toc, environments,
    defuns, macros, cross references, insertions,
    (/usr/local/texlive/2014/texmf-dist/tex/generic/epsf/epsf.tex
    This is `epsf.tex' v2.7.4 <14 February 2011>
    ) localization, formatting, and turning on texinfo input format.) (./find.aux)
    (./version.texi)
    ./find.texi:10: I can't find file `../locate/dblocation.texi'.
    @temp ->@input ../locate/dblocation.texi
    
    @includezzz ...and @input #1 }@expandafter }@temp
                                                      @popthisfilestack
    l.10 @include ../locate/dblocation.texi
    
    (Press Enter to retry, or Control-D to exit)
    

答案1

PDF 文件以多种方式创建,有时通过 DVI 文件转换dvipdfm,有时通过gs...

对于findutils,提供的构建脚本不正确;这是提取源代码后的简短版本(适用于 4.6.0):

cd findutils-4.6.0
./configure
make -C lib
make -C gl/lib
make -C locate

(这会创建dblocation.texi

cd doc
texi2pdf -I ../locate find.texi

一般来说,应该总是可以从.info文件生成带有链接等的 PDF;但您可能需要弄清楚如何生成所有必需的输入文件......

答案2

有一个命令texi2pdf(1)(Fedora 上的部分texinfo-tex)可以从 (TeXinfo) 源中获取.texiGNUinfo文档。

文件.texi本身通常捆绑在源包中。您应该能够使用标准./configure; make舞蹈或make doc.

请注意,一些命令捆绑find在 中findutils,并且许多标准 Unix 命令捆绑在 中coreutils。他们的文档是一个更大文档的一部分,可能无法独立构建。

相关内容