2010-07-14 17 views
10

LaTeX ile PDF oluşturuyorum. Birkaç bölümüm ve alt bölümlerim var. Belgenin en üstüne doğru bir bağlantı koymak istiyorum, böylece PDF'de bir kişi üzerine tıklayabilir ve bu bölüme/alt kısma gidecektir. Bunu linklenebilir bir tabloya sahip olmanın mümkün olduğunu biliyorum, ama bir içerik tablosu yapmak istemiyorum, daha fazla kontrole ihtiyacım var.LaTeX - PDF belgesine sahip bir bölüme/alt kısma tıklanabilir bağlantılar ekleyin

+0

Belgenin en üstündeki bir bağlantı, tam olarak bir içerik tablosunun ne hakkında olduğuyla ilgilidir. Bağlantınızın nasıl bir TOC'den farkı var? – Philipp

+0

Philipp, Bunun yerine varsayılan Tm gibi bir liste daha özel bir düzen istiyorum. Şu anki düzenim bitti, ve bana bir link vermenin, bir ToC'nin nasıl istediğime bakmasından daha kolay olacağını düşünüyorum. – Rory

cevap

27

Belgenizin girişine \usepackage{hyperref}'u ekleyin. Bölümlerinize uygun etiketler atayın ve bu etiketleri \ref{} kullanarak gönderin. Bu referanslar pdflatex ile PDF oluştururken tıklanabilir linklere dönüştürülecektir.

+2

Hyperref'i kullanmak için 'documentclass'da' taslak 'seçeneğine sahip olamayacağınızı unutmayın! – Cerran

13

hyperref paketi, bu tür bir şey için (önceki bir yanıtta belirtildiği gibi) kapsamlı desteğe sahiptir.

Notlar ve öneriler: hyperref büyük bir pakettir ve (gereğinde) LaTeX'in bağırsaklarıyla oldukça kirli oyunlar oynar. En son hiperref paketini yükleyin ve belgeniz aniden garip geliyorsa, bu paketi yorumlayın, dizinizden .out ve .aux dosyalarından kurtulun ve sorunun ortadan kalkıp çıkmadığını görmek için tekrar deneyin. Eğer yaparsa, o zaman bir şey düşünün.

hypertex paketi, aynı şeylerden bazılarını yapabilir ve biraz daha hafiftir. Ama benim hatırladığım şey biraz kırılgan ve artık çok fazla korunamayabilir.

Bu malzemeden bazılarını PDF özellikli (bkz. Pdftex elkitabı) ile yapabilirsiniz, ancak bu biraz daha serttir ve PDF hakkında biraz bilgi sahibi olmanızı gerektirir.

6

Diğer yanıtlarda da belirtildiği gibi, hyperref package'u kullanabilirsiniz.

\usepackage{hyperref} 
\hypersetup{ 
    colorlinks = true, % Colours links instead of ugly boxes 
    urlcolor  = blue, % Colour for external hyperlinks 
    linkcolor = blue, % Colour of internal links 
    citecolor = red  % Colour of citations 
} 

Ayrıca durumda kullandığınız,: Ancak, varsayılan ayarları (çoğu her bağlantı etrafında çirkin düşünün bir kutu ekler) oldukça kötü, bu yüzden burada en yararlı ayarlarını özelleştirmek için tipik bir kod parçacığı olduğunu

enter image description here

Bunu düzeltmek için, add:

\usepackage{etoolbox} 

\makeatletter 

\pretocmd{\[email protected]}{% 
    \let\[email protected]@\[email protected]@citex 
    \def\[email protected]{#2}% 
    \setcounter{[email protected]@cites}{0}% 
    \setcounter{[email protected]@cites}{0}% 
    \forcsvlist{\stepcounter{[email protected]@cites}\@gobble}{#3}}{}{} 
\newcounter{[email protected]@cites} 
\newcounter{[email protected]@cites} 
\def\[email protected]{} 

% include postnote and \citet closing bracket in hyperlink 
\def\[email protected]@citex#1{% 
    \stepcounter{[email protected]@cites}% 
    \[email protected]{\@citeb\@[email protected]@citeb}#1% 
    \ifnumequal{\value{[email protected]@cites}}{\value{[email protected]@cites}} 
    {\[email protected]\else\if*\[email protected]*\else% 
    \[email protected]\[email protected]\global\def\[email protected]{}\fi\fi}{}% 
    \[email protected]\else\if\relax\[email protected]\relax 
    \else\[email protected]@close\global\let\[email protected]\@empty\fi\fi% avoid compact citations 
    \[email protected]} 
\renewcommand\[email protected][2]{#1} 

% avoid extraneous postnotes, closing brackets 
\patchcmd{\[email protected]} 
    {\[email protected]\else\if*#2*\else\[email protected]#2\fi 
    \if\relax\[email protected]\relax\else\[email protected]@close\fi\fi}{}{}{} 
\patchcmd{\[email protected]} 
    {\if\relax\[email protected]\relax\[email protected]@citea\else\[email protected]@[email protected]\fi} 
    {\if\relax\[email protected]\relax\[email protected]@citea\else\[email protected]@[email protected]\fi}{}{} 

\makeatother 
paket natlib ( \usepackage{natbib}), Hyperref iki bağlantıya üretecek

İlgili konular