我正在将硕士论文从 Word 转移到 LaTex(我不是这方面的专家)。我必须使用我们从学校得到的模板。我粘贴了它在 pastebin.com 上。
我的问题是什么:当我用这个模板创建 PDF 时,它在某些地方运行正常。但 Adobe reader 出现了一些问题。
我正在使用 TexWorks(我将其与 MikTex 一起安装)和 pdfLatex 来创建 pdf。我在 TexWorks 查看器中看到一切都很好。Google Chrome 也显示一切正常。但是当我在 Adobe Reader X 中打开它时,标题页是空白的,当我滚动到第一个实际页面(包含第 1 章)时,它告诉我页面上有问题(内容、表格列表和图像列表都很好)。
我的发现:当我对 insertOutline 周围的东西进行评论时,情况会好一些(它显示更多文本),但仍然没有标题页,我仍然收到来自 Adobe 的消息。
你们中没有人知道问题出在哪里吗?
编辑:
根据评论,我发现问题出在大纲和超链接上(我已更新 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}
它不再给我错误(我已经评论了有关超链接和大纲的内容),但 Adobe Reader 仍然不显示标题页。
如果您想尝试一下,请创建一些名为 uplogo 的小图像并将其放入 latex 代码文件夹中。
答案1
我理解你的痛苦,但你使用的模板有很多\special
处理 PDF 的命令。TeX 中有一个特殊命令,它直接写入输出文件(即,它们是 PDF 命令而不是 TeX 命令)。问题就在这里,如果不知道编写模板时使用的 pdf 版本,就很难解决。
如果不修改或修补模板,这个问题不太可能得到解决。更好的方法是不使用任何需要的命令specials
。只需添加包,您就可以获得相同的效果hyperref
。我会从最小工作量开始慢慢工作,然后添加项目,直到出现错误。