如何在Sphinx生成的Latex文档中添加版权声明?

3
我已经设置了版权配置值,它在HTML输出中正确显示。然而,在LaTeX输出中根本没有出现,我找不到任何LaTeX输出选项可以使它出现。
使用Sphinx,我该如何自动在LaTeX输出中包含版权声明?当然,我可以手动添加或编写一个小脚本来添加它,但我希望能够在Sphinx框架内实现它。
显然,有一个改进请求可以使这更容易。

2
考虑到LaTeX输出是单个文件,因此只需要在一页上进行版权,就像任何印刷书籍一样。因此,请创建一个包含有关项目的版权、许可和其他元信息的文件。 - Steve Piercy
1个回答

3
如果您想在每个页面(标题页和其后面的页面除外)上拥有版权,可以使用这个冗长的LaTeX宏来实现(抱歉,它将忽略版权配置值)。
latex_elements = {
    'preamble': r'''
\makeatletter
   \fancypagestyle{normal}{
% this is the stuff in sphinx.sty
    \fancyhf{}
    \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}}
% we comment this out and
    %\fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}}
    %\fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}}
% add copyright stuff
    \fancyfoot[LO,RE]{{This is \textcopyright\ 2019, Sphinx Team.}}
% again original stuff
    \fancyhead[LE,RO]{{\py@HeaderFamily \@title\sphinxheadercomma\py@release}}
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\footrulewidth}{0.4pt}
    }
% this is applied to each opening page of a chapter
   \fancypagestyle{plain}{
    \fancyhf{}
    \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}}
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0.4pt}
% add copyright stuff for example at left of footer on odd pages,
% which is the case for chapter opening page by default
    \fancyfoot[LO,RE]{{This is \textcopyright\ 2019, Sphinx Team.}}
    }
\makeatother
''',
}

更多关于LaTeX语法的信息,请参见fancyhdr文档。你必须自己转义任何令人担忧的字符,比如$
自从Sphinx 1.8.3版本起,你可以直接在标题页的背面放置LaTeX内容(对于'manual'文档类,因为'howto'文档类没有这样的概念),通过可选的LaTeX宏\sphinxbackoftitlepage,你可以在'preamble''maketitle'中定义。请参见文档(需要向下滚动到'maketitle')。
似乎只在一个位置发布版权信息确实更有意义,那么为什么不在标题页的背面发布呢?('manual'文档类)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接