最后一个字
我现在已经接受了@MatthewLeingang的回答。这让我想到了hyperxmp
包,它似乎是最简单的解决方案(对于我这个终端用户来说)。事实上,这在我的 工作流程和环境不是马修的错。
为了追查我的问题的其余部分,这似乎涉及到与memoir
,读者可能感兴趣这个衍生问题。
再次感谢大家的帮助。
进度更新1:
首先,不顾惯例,我真诚地感谢所有回答或评论(适当点赞)的人。特别感谢@diabonas,他的 PDF 样本确实包含版权声明。
然而,这里可能有一个线索:虽然他的 PDF 是这样说的:
PDF 制作器:XeTeX 0.9997
我的说法是:
PDF 制作器:xdvipdfmx (0.7.8)
现在,我正在用 XeLaTeX 处理它通过 latexmk
,但为了保持诚实,我只用 XeLaTeX 重新做了一遍,结果是一样的。
进度更新2:
这是一个失败的 MWE,并给出“PDF Producer:xdvipdfmx (0.7.8)”:
% !TEX TS-program = XeLaTeX
% !TEX encoding = UTF-8 Unicode
\documentclass{memoir}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{hyperxmp}
\hypersetup{
pdfauthor={Brent Longborough},
pdftitle={O Hai},
pdfcopyright=Copyright © 2012 by Brent Longborough. All rights reserved.}
\begin{document}
\lipsum[1]
\end{document}
只需将文档类别更改为文章,我们就得到“PDF Producer:XeTeX 0.9997”,并且会出现版权声明!
原始问题:
使用 XeLaTeX。我想向 PDF 添加两部分元数据:版权状态和版权声明。
我已经hyperref
在文档中使用它了,我并不特别担心“开销”,只关心保持工作流程简单。
根据“有样学样”的原理,我尝试了这个方法,但没有成功:
\hypersetup{%
pdfinfo={%
CopyrightStatus={Copyrighted},
CopyrightNotice={Copyright © 2012 by Brent Longborough}
}
}
到目前为止,我还无法找到正确的标签名称,甚至无法发现我是否有机会。
欢迎所有建议,但我特别希望能有一本关于 PDF 元数据标签名称的书。
我对 Martin 和 EGreg 的回答和评论值得做一些额外的解释。
我的 PDF 阅读器是 Tracker Software 的 PDF Xchange Viewer。当我查看文档属性并选择“其他元数据...”按钮时,会出现一个 [第三个] 窗口,其中出现一个标有“版权状态:”的下拉列表,其中包含“未知”、“版权所有”和“公共领域”选项;以及一个标有“版权声明:”的文本框:
所以你可以看到我半盲地摸索元数据标签的来源......
所以,我想我真的问题是“我应该使用什么标签名称来填写这些字段?”
在破解 PDF 之后(使用 @egreg 的提示,然后使用查看器本身),我在某些 RDF dc: 命名空间中找到了版权信息。从那时起,我尝试使用hyperxmp 包,但没有成功(PDF 中没有显示任何内容),我怀疑这可能是因为它只适用于 pdfLaTeX。
我也尝试过@MatthewLeingang 的答案,但可以确认它确实需要 pdfLaTeX,而且我真的不想回头。
答案1
正如 egreg 所指出的,权限信息不是文档信息目录的一部分。但它可以包含在文档的可扩展元数据配置文件中。
以下是适用于 Adobe Acrobat 和 的两个解决方案pdflatex
。我不知道您是否会在与 Acrobat 相同的位置看到元数据;PDF XChange Viewer 是一款 Windows 应用程序,而我有一台 Mac,因此无法测试它。
还 (潜在的亮点,希望我早点注意到这一点) 这两种解决方案都无法解决问题xetex
。也许可以劝说他们,但这需要修补软件包。
韓貨幣
确保您拥有
xmpincl
包。它在 TeX-live 中。创建一个这样的基本 XMP 文件:
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.2-c001 63.139439, 2010/09/27-13:37:26 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/">
<xmpRights:Marked>True</xmpRights:Marked>
</rdf:Description>
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:rights>
<rdf:Alt>
<rdf:li xml:lang="x-default">Copyright (C) 2012 by Brent Longborough. All rights reserved.</rdf:li>
</rdf:Alt>
</dc:rights>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
我们称之为copyright.xmp
。如果你想授予更多权利,你可以;你只需要更详细的东西。知识共享有一个页面可以帮助你生成 XMP 文件。
将此许可证文件包含到您的文档中,如下所示:
\documentclass{article} \title{My article} \author{Brent Longborough} \usepackage{xmpincl} \includexmp{copyright} \usepackage{lipsum} \begin{document} \maketitle \lipsum \end{document}
就是这样!当我在 Adobe Acrobat 中打开文档时,我可以在预期的位置看到版权信息。如果我选择文件 > 属性... 并单击“其他元数据...”,它就在那里。
超XMP
这hyperxmp
实现额外的文档信息键pdfcopyright
,并且pdfcopyrighturl
可以以与键非常相似的方式声明\pdfinfo
。在后台,它会为您创建 XMP 文件。因此,您只需要一个这样的文件:
\documentclass{article}
\title{My article}
\author{Brent Longborough}
\usepackage{hyperref}
\usepackage{hyperxmp}
\hypersetup{
pdfauthor={Brent Longborough},
pdfcopyright={Copyright (C) 2012 by Brent Longborough. All rights reserved.}
}
\usepackage{lipsum}
\begin{document}
\maketitle
\lipsum
\end{document}
但是,在 中也不起作用xetex
。
答案2
主要参考资料应该是“PDF 参考书”,第四版,第 714 页列出了已知的条目类型文献信息字典:
标题、作者、主题、关键词、创作者、制作人、创作日期、修改日期、被困
第 713 页上说
笔记: 虽然查看器应用程序可以在文档信息字典中存储自定义元数据,但在那里存储私有内容或结构信息并不合适;这些信息应该存储在文档目录中(参见第 3.6.1 节“文档目录”)。
然而,第 882 页(附录 E)写道
笔记: 文档信息字典(参见第 10.2.1 节“文档信息字典”)或线程信息字典(在线程字典的 I 条目中;参见第 8.3.2 节“文章”)的新键不需要注册。
我想这不是预期的答案。如果没有编程,PDF 查看器将不知道如何访问信息。
编辑
使用 Adobe Reader X 可以识别您的密钥:
答案3
您的代码将工作(如 egreg 指出的那样)并将键及其值写入 PDF 信息字典,但我不知道此信息有任何标准化的键。您可能更幸运的是虚拟主机(抱歉,维基百科因 SOPA 而被屏蔽)。不过,LaTeX 对 XMP 的支持并不多。
答案4
如果你有 Perl 并且安装了 CPAN 模块Image::ExifTool
,那么你可以使用
exiftool -@ copyright.txt pdffile.pdf`
其中copyright.txt
包含类似
-d
%Y
-copyright<Copyright ©$createdate, Brent Longborough
创建带日期的版权条目。
这种方法的优点是可以轻松实现自动化,版权年份会自动创建。除了需要安装工具外,缺点是需要维护一个文件(但可能位于共享位置)并且手动操作时需要多一个步骤。