Adobe Reader 打开 PDF 时提示错误

Adobe Reader 打开 PDF 时提示错误

我正在将硕士论文从 Word 转移到 LaTex(我不是这方面的专家)。我必须使用我们从学校得到的模板。我粘贴了它在 pastebin.com 上

我的问题是什么:当我用这个模板创建 PDF 时,它在某些地方运行正常。但 Adob​​e reader 出现了一些问题。

我正在使用 TexWorks(我将其与 MikTex 一起安装)和 pdfLatex 来创建 pdf。我在 TexWorks 查看器中看到一切都很好。Google Chrome 也显示一切正常。但是当我在 Adob​​e Reader X 中打开它时,标题页是空白的,当我滚动到第一个实际页面(包含第 1 章)时,它告诉我页面上有问题(内容、表格列表和图像列表都很好)。

我的发现:当我对 insertOutline 周围的东西进行评论时,情况会好一些(它显示更多文本),但仍然没有标题页,我仍然收到来自 Adob​​e 的消息。

你们中没有人知道问题出在哪里吗?

编辑:

根据评论,我发现问题出在大纲和超链接上(我已更新 pastebin 代码)。第一个空白页是空白的,因为有这行:\usepackage[table]{xcolor}

但我不明白大纲和超链接的代码。有人能告诉我这是什么意思吗,这样我就可以尝试通过模板以外的其他方式来修复它?

%% external hyperlinks
\def\@@ignorewhs#1{%
  \bgroup \catcode`\ =9 \catcode`\~=12 \catcode`\_=12 \catcode`\@=12
  #1}

\def\mail{\@@ignorewhs{\s@mail}}
\def\s@mail#1{\@pdfuri{\lowercase{\tt\char60#1\char62}}{mailto:#1}\egroup}

\def\url{\@@ignorewhs{\s@url}}
\def\s@url#1{\@pdfuri{\lowercase{\tt#1}}{#1}\egroup}

\def\link#1{\gdef\@linktxt{#1}\@@ignorewhs{\s@link}}
\def\s@link#1{\@pdfuri{\@linktxt}{#1}\egroup}

%% internal hyperlinks
\def\emphref#1{\gdef\@emphreftxt{#1}\@@ignorewhs{\s@emphref}}
\def\s@emphref#1{\@pdflink{\@emphreftxt}{lnk#1}\egroup}

\def\hyplabel#1{\@pdfdest{lnk#1}}

\def\emphref#1{\gdef\@emphreftxt{#1}\@@ignorewhs{\s@emphref}}
\def\s@emphref#1{\@pdflink{\@emphreftxt}{lnk#1}\egroup}

%% initialize outlines
\def\insertoutline#1#2{%
  \@inspdf{\special{pdf:outline #1 
      << /Title (#2) /Dest [ @thispage /FitH @ypos ] >>}}}

\def\nextoutline#1{\gdef\@@nextoutlinelabel{#1}}
\let\@oldsect=\@sect
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifx\@@nextoutlinelabel\undefined\insertoutline{#2}{#7}%
  \else\insertoutline{#2}{\@@nextoutlinelabel}%
  \let\@@nextoutlinelabel=\undefined\fi%
  \@oldsect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{#8}}

%% insert outlines manually
\def\outline{\insertoutline{1}}
\def\suboutline{\insertoutline{2}}
\def\subsuboutline{\insertoutline{3}}
\def\subsubsuboutline{\insertoutline{4}}

我还修改了我的乳胶代码,它使用这种样式:

%%% Deklarace hlavičky dokumentu, použijte písmo velikosti 12 bodů.
\documentclass[12pt]{article}

\usepackage[tables,figures]{updiplom}
\usepackage[utf8]{inputenc}

%%% Moje package navic
\usepackage{hyperref}


\title{Název diplomové práce}
\author{Nějaký Pán}
\year{2012}
\date{13. březen 2012}

\docinfo{Nejakjy Pan}{Nazev diplomove prace}

%%% Vytvoření anotace. Pouze jeden odstavec!
\annotation{
Anotace 
}

%%% Nepovinný text poděkování. Pouze jeden odstavec!
\thanks{%
Poděkování vedoucímu práce, rodině apod. (nepovinné)}

\begin{document}

%%% Vytvoření úvodních stránek, obsahu a seznamu tabulek a obrázků.
\maketitle
\newpage


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 1. chapter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Programátorská dokumentace}

Již na začátku diplomové práce bylo přesně definováno, jaký druh aplikace má vzniknout. Mělo se jednat o webovou aplikaci a dle toho také byl zvolen přístup k vývoji, jak už z pohledu použitých programovacích jazyků, tak z~pohledu návrhu architektury aplikace. Při vývoji byly respektovány zažité normy a idiomy.


\end{document}

它不再给我错误(我已经评论了有关超链接和大纲的内容),但 Adob​​e Reader 仍然不显示标题页。

如果您想尝试一下,请创建一些名为 uplogo 的小图像并将其放入 latex 代码文件夹中。

答案1

我理解你的痛苦,但你使用的模板有很多\special处理 PDF 的命令。TeX 中有一个特殊命令,它直接写入输出文件(即,它们是 PDF 命令而不是 TeX 命令)。问题就在这里,如果不知道编写模板时使用的 pdf 版本,就很难解决。

如果不修改或修补模板,这个问题不太可能得到解决。更好的方法是不使用任何需要的命令specials。只需添加包,您就可以获得相同的效果hyperref。我会从最小工作量开始慢慢工作,然后添加项目,直到出现错误。

相关内容