2605 \else
2606 /#1/#2%
2607 \fi
2608}
2659\define@key{Hyp}{linktoc}{%
2660 \@ifundefined{Hy@linktoc@#1}{%
2661 \Hy@Warning{%
2662 Unexpected value ‘#1’ of\MessageBreak
2663 option ‘linktoc’ instead of ‘none’,\MessageBreak
2664 ‘section’, ‘page’ or ‘all’%
2665 }%
2666 }{%
2667 \expandafter\let\expandafter\Hy@linktoc
2668 \csname Hy@linktoc@#1\endcsname
2669 }%
2670}
2671\define@key{Hyp}{extension}{\def\XR@ext{#1}}
2672\let\XR@ext\relax
2673\define@key{Hyp}{verbose}[true]{%
2674 \Hy@boolkey{verbose}{#1}%
2675}
2676\define@key{Hyp}{typexml}[true]{%
2677 \Hy@boolkey{typexml}{#1}%
2678}
If we are going to PDF via HyperTeX\specialcommands, the dvips (-z option) processor does not know the height of a link, as it works solely on the position of the closing
\special. If we use this option, the\specialis raised up by the right amount, to fool the dvi processor.
2679\define@key{Hyp}{raiselinks}[true]{%
2680 \Hy@boolkey{raiselinks}{#1}%
2681}
Most PDF-creating drivers do not allow links to be broken
2682\def\Hy@setbreaklinks#1{%
2683 \csname breaklinks#1\endcsname
2684}
2685\def\Hy@breaklinks@unsupported{%
2686 \ifx\Hy@setbreaklinks\@gobble
2687 \ifHy@breaklinks
2688 \Hy@WarningNoLine{%
2689 You have enabled option ‘breaklinks’.\MessageBreak
2690 But driver ‘\[email protected]’ does not suppport this.\MessageBreak
2691 Expect trouble with the link areas of broken links%
2692 }%
2693 \fi
2694 \fi
2695}
2696\define@key{Hyp}{breaklinks}[true]{%
2697 \Hy@boolkey{breaklinks}{#1}%
2698 \let\Hy@setbreaklinks\@gobble
2699}
2700\define@key{Hyp}{localanchorname}[true]{%
2701 \Hy@boolkey{localanchorname}{#1}%
2702}
Determines whether an automatic anchor is put on each page
2703\define@key{Hyp}{pageanchor}[true]{%
2704 \Hy@boolkey{pageanchor}{#1}%
2705}
Are the page links done as plain arabic numbers, or do they follow the formatting of the package? The latter loses if you put in typesetting like\textbfor the like.
2706\define@key{Hyp}{plainpages}[true]{%
2707 \Hy@boolkey{plainpages}{#1}%
2708}
Are the names for anchors made as per the HyperTeX system, or do they simply use what LATEX provides?
2709\define@key{Hyp}{naturalnames}[true]{%
2710 \Hy@boolkey{naturalnames}{#1}%
2711}
Completely ignore the names as per the HyperTeX system, and use unique counters.
2712\define@key{Hyp}{hypertexnames}[true]{%
2713 \Hy@boolkey{hypertexnames}{#1}%
2714}
Currently,dvipsdoesn’t allow anchors nested within targets, so this option tries to stop that happening. Other processors may be able to cope.
2715\define@key{Hyp}{nesting}[true]{%
2716 \Hy@boolkey{nesting}{#1}%
2717}
2718\define@key{Hyp}{unicode}[true]{%
2719 \Hy@boolkey{unicode}{#1}%
2720 \ifHy@unicode
2721 \def\HyPsd@pdfencoding{unicode}%
2722 \HyPsd@LoadUnicode
2723 \else
2724 \def\HyPsd@pdfencoding{pdfdoc}%
2725 \fi
2726}
2727\def\HyPsd@LoadUnicode{%
2728 \@ifundefined{T@PU}{%
2729 \input{puenc.def}%
2730 \HyLinguex@Restore
2731 }{}%
2732 \DeclareFontFamily{PU}{pdf}{}%
2733 \DeclareFontShape{PU}{pdf}{m}{n}{ <-> cmr10 }{}%
2734 \DeclareFontSubstitution{PU}{pdf}{m}{n}%
2735 \global\let\HyPsd@LoadUnicode\relax
2736}
2737\Hy@AtBeginDocument{%
2738 \ifx\HyPsd@LoadUnicode\relax
2739 \else
2740 \def\HyPsd@LoadUnicode{%
2741 \Hy@Error{%
2742 Unicode support for bookmarks is not available.\MessageBreak
2743 Activate unicode support by using one of the options\MessageBreak
2744 ‘unicode’, ‘pdfencoding=unicode’, ‘pdfencoding=auto’\MessageBreak
2745 in the preamble%
2746 }\@ehc
2747 \global\let\HyPsd@LoadUnicode\relax
2748 \global\Hy@unicodefalse
2749 \global\let\Hy@unicodetrue\Hy@unicodefalse
2750 }%
2751 \fi
2752}
2753\define@key{Hyp}{pdfencoding}{%
2754 \edef\HyPsd@temp{#1}%
2755 \ifx\HyPsd@temp\HyPsd@pdfencoding@pdfdoc
2756 \let\HyPsd@pdfencoding\HyPsd@temp
2757 \Hy@unicodefalse
2758 \else
2759 \ifcase\ifx\HyPsd@temp\HyPsd@pdfencoding@unicode
2760 \z@
2761 \else
2762 \ifx\HyPsd@temp\HyPsd@pdfencoding@auto
2763 \z@
2764 \else
2765 \@ne
2766 \fi
2767 \fi
2768 \let\HyPsd@pdfencoding\HyPsd@temp
2769 \hypersetup{unicode}%
2770 \ifHy@unicode
2771 \def\HyPsd@pdfencoding{#1}%
2772 \ifx\HyPsd@pdfencoding\HyPsd@pdfencoding@auto
2773 \HyPsd@LoadStringEnc
2774 \fi
2775 \else
2776 \Hy@Warning{Cannot switch to unicode bookmarks}%
2777 \let\HyPsd@pdfencoding\HyPsd@pdfencoding@pdfdoc
2778 \fi
2779 \else
2780 \@onelevel@sanitize\HyPsd@temp
2781 \Hy@Warning{%
2782 Values of option ‘pdfencoding’:\MessageBreak
2783 ‘pdfdoc’, ‘unicode’, ‘auto’.\MessageBreak
2784 Ignoring unknown value ‘\HyPsd@temp’%
2785 }%
2786 \fi
2787 \fi
2788}
2789\def\HyPsd@pdfencoding@auto{auto}
2790\def\HyPsd@pdfencoding@pdfdoc{pdfdoc}
2791\def\HyPsd@pdfencoding@unicode{unicode}
2792\let\HyPsd@pdfencoding\Hy@pdfencoding@pdfdoc
2793\def\HyPsd@LoadStringEnc{%
2794 \RequirePackage{stringenc}[2009/12/15]%
2795 \let\HyPsd@LoadStringEnc\relax
2796}
2797\Hy@AtBeginDocument{%
2798 \@ifpackageloaded{stringenc}{%
2799 \let\HyPsd@LoadStringEnc\relax
2800 }{%
2801 \def\HyPsd@LoadStringEnc{%
2802 \Hy@WarningNoLine{%
2803 Missing package ‘stringenc’. Use ‘pdfencoding=auto’\MessageBreak
2804 in the preamble or load the package there%
2805 }%
2806 }%
2807 }%
2808}
2809\def\hypersetup{\kvsetkeys{Hyp}}
2810\newif\ifHy@setpdfversion
2811\define@key{Hyp}{pdfversion}{%
2812 \@ifundefined{Hy@pdfversion@#1}{%
2813 \PackageWarning{hyperref}{%
2814 Unsupported PDF version ‘#1’.\MessageBreak
2815 Valid values: 1.2 until 1.9%
2816 }%
2817 }{%
2818 \Hy@setpdfversiontrue
2819 \edef\Hy@pdfversion{\@nameuse{Hy@pdfversion@#1}}%
2820 }%
2821}
2822\@namedef{Hy@[email protected]}{2}%
2823\@namedef{Hy@[email protected]}{3}%
2824\@namedef{Hy@[email protected]}{4}%
2825\@namedef{Hy@[email protected]}{5}%
2826\@namedef{Hy@[email protected]}{6}%
2827\@namedef{Hy@[email protected]}{7}%
2828\@namedef{Hy@[email protected]}{8}%
2829\@namedef{Hy@[email protected]}{9}%
2830\def\Hy@pdfversion{2}
10 Options for different drivers
2831\newif\ifHy@DviMode
2832\let\Hy@DviErrMsg\ltx@empty
2833\ifpdf
2834 \def\Hy@DviErrMsg{pdfTeX or LuaTeX is running in PDF mode}%
2835\else
2836 \ifxetex
2837 \def\Hy@DviErrMsg{XeTeX is running}%
2838 \else
2839 \ifvtex
2840 \ifvtexdvi
2841 \Hy@DviModetrue
2842 \else
2843 \def\Hy@DviErrMsg{VTeX is running, but not in DVI mode}%
2844 \fi
2845 \else
2846 \Hy@DviModetrue
2847 \fi
2848 \fi
2849\fi
2850\def\HyOpt@CheckDvi#1{%
2851 \ifHy@DviMode
2852 \expandafter\ltx@firstofone
2853 \else
2854 \Hy@Error{%
2855 Wrong DVI mode driver option ‘#1’,\MessageBreak
2856 because \Hy@DviErrMsg
2857 }\@ehc
2858 \expandafter\ltx@gobble
2859 \fi
2860}
2861\DeclareVoidOption{tex4ht}{%
2862 \Hy@texhttrue
2863 \kvsetkeys{Hyp}{colorlinks=true}%
2864 \def\BeforeTeXIVht{\RequirePackage{color}}%
2865 \def\Hy@driver{htex4ht}%
2866 \def\MaybeStopEarly{%
2867 \Hy@Message{Stopped early}%
2868 \Hy@AtBeginDocument{%
2869 \PDF@FinishDoc
2870 \gdef\PDF@FinishDoc{}%
2871 }%
2872 \endinput
2873 }%
2874}
2875\DeclareVoidOption{pdftex}{%
2876 \ifpdf
2877 \def\Hy@driver{hpdftex}%
2878 \else
2879 \Hy@Error{%
2880 Wrong driver option ‘pdftex’,\MessageBreak
2881 because pdfTeX in PDF mode is not detected%
2882 }\@ehc
2883 \fi
2884}
2885\DeclareVoidOption{nativepdf}{%
2886 \HyOpt@CheckDvi{nativepdf}{%
2887 \def\Hy@driver{hdvips}%
2888 }%
2889}
2890\DeclareVoidOption{dvipdfm}{%
2891 \HyOpt@CheckDvi{dvipdfm}{%
2892 \def\Hy@driver{hdvipdfm}%
2893 }%
2894}
2895\DeclareVoidOption{dvipdfmx}{%
2896 \HyOpt@CheckDvi{dvipdfmx}{%
2897 \def\Hy@driver{hdvipdfm}%
2898 }%
2899}
2900\define@key{Hyp}{dvipdfmx-outline-open}[true]{%
2901 \expandafter\ifx\csname if#1\expandafter\endcsname
2902 \csname iftrue\endcsname
2903 \chardef\SpecialDvipdfmxOutlineOpen\@ne
2904 \else
2905 \chardef\SpecialDvipdfmxOutlineOpen\z@
2906 \fi
2907}
2908\DeclareVoidOption{xetex}{%
2909 \ifxetex
2910 \def\Hy@driver{hxetex}%
2911 \else
2912 \Hy@Error{%
2913 Wrong driver option ‘xetex’,\MessageBreak
2914 because XeTeX is not detected%
2915 }\@ehc
2916 \fi
2917}
2918\DeclareVoidOption{pdfmark}{%
2919 \HyOpt@CheckDvi{pdfmark}{%
2920 \def\Hy@driver{hdvips}%
2921 }%
2922}
2923\DeclareVoidOption{dvips}{%
2924 \HyOpt@CheckDvi{dvips}{%
2925 \def\Hy@driver{hdvips}%
2926 }%
2927}
2928\DeclareVoidOption{hypertex}{%
2929 \HyOpt@CheckDvi{hypertex}{%
2930 \def\Hy@driver{hypertex}%
2931 }%
2932}
2933\let\Hy@MaybeStopNow\relax
2934\DeclareVoidOption{vtex}{%
2935 \ifvtex
2936 \ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 %
2937 \def\Hy@driver{hvtex}%
2938 \else
2939 \ifnum\OpMode=10\relax
2940 \def\Hy@driver{hvtexhtm}%
2941 \def\MaybeStopEarly{%
2942 \Hy@Message{Stopped early}%
2943 \Hy@AtBeginDocument{%
2944 \PDF@FinishDoc
2945 \gdef\PDF@FinishDoc{}%
2946 }%
2947 \endinput
2948 }%
2949 \else
2950 \Hy@Error{%
2951 Wrong driver option ‘vtex’,\MessageBreak
2952 because of wrong OpMode (\the\OpMode)%
2953 }\@ehc
2954 \fi
2955 \fi
2956 \else
2957 \Hy@Error{%
2958 Wrong driver option ‘vtex’,\MessageBreak
2959 because VTeX is not running%
2960 }\@ehc
2961 \fi
2962}
2963\DeclareVoidOption{vtexpdfmark}{%
2964 \ifvtex
2965 \ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 %
2966 \def\Hy@driver{hvtexmrk}%
2967 \else
2968 \Hy@Error{%
2969 Wrong driver option ‘vtexpdfmark’,\MessageBreak
2970 because of wrong OpMode (\the\OpMode)%
2971 }\@ehc
2972 \fi
2973 \else
2974 \Hy@Error{%
2975 Wrong driver option ‘vtexpdfmark,\MessageBreak
2976 because VTeX is not running%
2977 }\@ehc
2978 \fi
2979}
2980\DeclareVoidOption{dviwindo}{%
2981 \HyOpt@CheckDvi{dviwindo}{%
2982 \def\Hy@driver{hdviwind}%
2983 \kvsetkeys{Hyp}{colorlinks}%
2984 \PassOptionsToPackage{dviwindo}{color}%
2985 }%
2986}
2987\DeclareVoidOption{dvipsone}{%
2988 \HyOpt@CheckDvi{dvipsone}{%
2989 \def\Hy@driver{hdvipson}%
2990 }%
2991}
2992\DeclareVoidOption{textures}{%
2993 \HyOpt@CheckDvi{textures}{%
2994 \def\Hy@driver{htexture}%
2995 }%
2996}
2997\DeclareVoidOption{latex2html}{%
2998 \HyOpt@CheckDvi{latex2html}{%
2999 \Hy@AtBeginDocument{\@@latextohtmlX}%
3000 }%
3001}
No more special treatment for ps2pdf. Let it sink or swim.
3002\DeclareVoidOption{ps2pdf}{%
3003 \HyOpt@CheckDvi{ps2pdf}{%
3004 \def\Hy@driver{hdvips}%
3005 }%
3006}
3007\let\HyOpt@DriverFallback\ltx@empty
3008\define@key{Hyp}{driverfallback}{%
3009 \ifHy@DviMode
3010 \def\HyOpt@DriverFallback{#1}%
3011 \Hy@Match\HyOpt@DriverFallback{%
3012 ^(|dvipdfm|dvipdfmx|dvips|dvipsone|dviwindo|hypertex|ps2pdf|%
3013 latex2html|tex4ht)$%
3014 }{}{%
3015 \let\HyOpt@DriverFallback\ltx@empty
3016 }%
3017 \fi
3018}
11 Options to add extra features
Make included figures (assuming they use the standard graphics package) be hypertext links. Off by default. Needs more work.
3019\define@key{Hyp}{hyperfigures}[true]{%
3020 \Hy@boolkey[hyperfigures]{figures}{#1}%
3021}
The automatic footnote linking can be disabled by option hyperfootnotes.
3022\define@key{Hyp}{hyperfootnotes}[true]{%
3023 \Hy@boolkey{hyperfootnotes}{#1}%
3024}
Set up back-referencing to be hyper links, by page, slide or section number,
3025\def\back@none{none}
3026\def\back@section{section}
3027\def\back@page{page}
3028\def\back@slide{slide}
3029\define@key{Hyp}{backref}[section]{%
3030 \lowercase{\def\Hy@tempa{#1}}%
3031 \ifx\Hy@tempa\@empty
3032 \let\Hy@tempa\back@section
3033 \fi
3034 \ifx\Hy@tempa\Hy@false
3035 \let\Hy@tempa\back@none
3036 \fi
3037 \ifx\Hy@tempa\back@slide
3038 \let\Hy@tempa\back@section
3039 \fi
3040 \ifx\Hy@tempa\back@page
3041 \PassOptionsToPackage{hyperpageref}{backref}%
3042 \Hy@backreftrue
3043 \else
3044 \ifx\Hy@tempa\back@section
3045 \PassOptionsToPackage{hyperref}{backref}%
3046 \Hy@backreftrue
3047 \else
3048 \ifx\Hy@tempa\back@none
3049 \Hy@backreffalse
3050 \else
3051 \Hy@WarnOptionValue{#1}{backref}{%
3052 ‘section’, ‘slide’, ‘page’, ‘none’,\MessageBreak
3053 or ‘false’}%
3054 \fi
3055 \fi
3056 \fi
3057}
3058\define@key{Hyp}{pagebackref}[true]{%
3059 \edef\Hy@tempa{#1}%
3060 \lowercase\expandafter{%
3061 \expandafter\def\expandafter\Hy@tempa\expandafter{\Hy@tempa}%
3062 }%
3063 \ifx\Hy@tempa\@empty
3064 \let\Hy@tempa\Hy@true
3065 \fi
3066 \ifx\Hy@tempa\Hy@true
3067 \PassOptionsToPackage{hyperpageref}{backref}%
3068 \Hy@backreftrue
3069 \else
3070 \ifx\Hy@tempa\Hy@false
3071 \Hy@backreffalse
3072 \else
3073 \Hy@WarnOptionValue{#1}{pagebackref}{‘true’ or ‘false’}%
3074 \fi
3075 \fi
3076}
Make index entries be links back to the relevant pages. By default this is turned on, but may be stopped.
3077\define@key{Hyp}{hyperindex}[true]{%
3078 \Hy@boolkey{hyperindex}{#1}%
3079}
Configuration of encap char.
3080\define@key{Hyp}{encap}[\|]{%
3081 \def\HyInd@EncapChar{#1}%
3082}
12 Language options
The\autoreffeature depends on the language.
3083\def\HyLang@afrikaans{%
3084 \def\equationautorefname{Vergelyking}%
3085 \def\footnoteautorefname{Voetnota}%
3086 \def\itemautorefname{Item}%
3087 \def\figureautorefname{Figuur}%
3088 \def\tableautorefname{Tabel}%
3089 \def\partautorefname{Deel}%
3090 \def\appendixautorefname{Bylae}%
3091 \def\chapterautorefname{Hoofstuk}%
3092 \def\sectionautorefname{Afdeling}%
3093 \def\subsectionautorefname{Subafdeling}%
3094 \def\subsubsectionautorefname{Subsubafdeling}%
3095 \def\paragraphautorefname{Paragraaf}%
3096 \def\subparagraphautorefname{Subparagraaf}%
3097 \def\FancyVerbLineautorefname{Lyn}%
3098 \def\theoremautorefname{Teorema}%
3099 \def\pageautorefname{Bladsy}%
3100}
3101\def\HyLang@english{%
3102 \def\equationautorefname{Equation}%
3103 \def\footnoteautorefname{footnote}%
3104 \def\itemautorefname{item}%
3105 \def\figureautorefname{Figure}%
3106 \def\tableautorefname{Table}%
3107 \def\partautorefname{Part}%
3108 \def\appendixautorefname{Appendix}%
3109 \def\chapterautorefname{chapter}%
3110 \def\sectionautorefname{section}%
3111 \def\subsectionautorefname{subsection}%
3112 \def\subsubsectionautorefname{subsubsection}%
3113 \def\paragraphautorefname{paragraph}%
3114 \def\subparagraphautorefname{subparagraph}%
3115 \def\FancyVerbLineautorefname{line}%
3116 \def\theoremautorefname{Theorem}%
3117 \def\pageautorefname{page}%
3118}
3119\def\HyLang@french{%
3120 \def\equationautorefname{\’Equation}%
3121 \def\footnoteautorefname{note}%
3122 \def\itemautorefname{item}%
3123 \def\figureautorefname{Figure}%
3124 \def\tableautorefname{Tableau}%
3125 \def\partautorefname{Partie}%
3126 \def\appendixautorefname{Appendice}%
3127 \def\chapterautorefname{chapitre}%
3128 \def\sectionautorefname{section}%
3129 \def\subsectionautorefname{sous-section}%
3130 \def\subsubsectionautorefname{sous-sous-section}%
3131 \def\paragraphautorefname{paragraphe}%
3132 \def\subparagraphautorefname{sous-paragraphe}%
3133 \def\FancyVerbLineautorefname{ligne}%
3134 \def\theoremautorefname{Th\’eor\‘eme}%
3135 \def\pageautorefname{page}%
3136}
3137\def\HyLang@german{%
3138 \def\equationautorefname{Gleichung}%
3139 \def\footnoteautorefname{Fu\ss note}%
3140 \def\itemautorefname{Punkt}%
3141 \def\figureautorefname{Abbildung}%
3142 \def\tableautorefname{Tabelle}%
3143 \def\partautorefname{Teil}%
3144 \def\appendixautorefname{Anhang}%
3145 \def\chapterautorefname{Kapitel}%
3146 \def\sectionautorefname{Abschnitt}%
3147 \def\subsectionautorefname{Unterabschnitt}%
3148 \def\subsubsectionautorefname{Unterunterabschnitt}%
3149 \def\paragraphautorefname{Absatz}%
3150 \def\subparagraphautorefname{Unterabsatz}%
3151 \def\FancyVerbLineautorefname{Zeile}%
3152 \def\theoremautorefname{Theorem}%
3153 \def\pageautorefname{Seite}%
3154}
3155\def\HyLang@italian{%
3156 \def\equationautorefname{Equazione}%
3157 \def\footnoteautorefname{nota}%
3158 \def\itemautorefname{punto}%
3159 \def\figureautorefname{Figura}%
3160 \def\tableautorefname{Tabella}%
3161 \def\partautorefname{Parte}%
3162 \def\appendixautorefname{Appendice}%
3163 \def\chapterautorefname{Capitolo}%
3164 \def\sectionautorefname{sezione}%
3165 \def\subsectionautorefname{sottosezione}%
3166 \def\subsubsectionautorefname{sottosottosezione}%
3167 \def\paragraphautorefname{paragrafo}%
3168 \def\subparagraphautorefname{sottoparagrafo}%
3169 \def\FancyVerbLineautorefname{linea}%
3170 \def\theoremautorefname{Teorema}%
3171 \def\pageautorefname{Pag.\@}%
3172}
3173\def\HyLang@magyar{%
3174 \def\equationautorefname{Egyenlet}%
3175 \def\footnoteautorefname{l\’abjegyzet}%
3176 \def\itemautorefname{Elem}%
3177 \def\figureautorefname{\’Abra}%
3178 \def\tableautorefname{T\’abl\’azat}%
3179 \def\partautorefname{R\’esz}%
3180 \def\appendixautorefname{F\"uggel\’ek}%
3181 \def\chapterautorefname{fejezet}%
3182 \def\sectionautorefname{szakasz}%
3183 \def\subsectionautorefname{alszakasz}%
3184 \def\subsubsectionautorefname{alalszakasz}%
3185 \def\paragraphautorefname{bekezd\’es}%
3186 \def\subparagraphautorefname{albekezd\’es}%
3187 \def\FancyVerbLineautorefname{sor}%
3188 \def\theoremautorefname{T\’etel}%
3189 \def\pageautorefname{oldal}%
3190}
3191\def\HyLang@portuges{%
3192 \def\equationautorefname{Equa\c c\~ao}%
3193 \def\footnoteautorefname{Nota de rodap\’e}%
3194 \def\itemautorefname{Item}%
3195 \def\figureautorefname{Figura}%
3196 \def\tableautorefname{Tabela}%
3197 \def\partautorefname{Parte}%
3198 \def\appendixautorefname{Ap\^endice}%
3199 \def\chapterautorefname{Cap\’itulo}%
3200 \def\sectionautorefname{Se\c c\~ao}%
3201 \def\subsectionautorefname{Subse\c c\~ao}%
3202 \def\subsubsectionautorefname{Subsubse\c c\~ao}%
3203 \def\paragraphautorefname{par\’agrafo}%
3204 \def\subparagraphautorefname{subpar\’agrafo}%
3205 \def\FancyVerbLineautorefname{linha}%
3206 \def\theoremautorefname{Teorema}%
3207 \def\pageautorefname{P\’agina}%
3208}
Next commented section for Russian is provided by Olga Lapko.
Next follow the checked reference names with commented variants and explanations.
All they are abbreviated and they won’t create a grammatical problems in themiddleof sentences.
The most weak points in these abbreviations are the \equationautorefname,
\theoremautorefnameand the\FancyVerbLineautorefname. But those three, and also the\footnoteautorefnameare nottoooften referenced. Another rather weak point is the\appendixautorefname.
3209\def\HyLang@russian{%
The abbreviated reference to the equation: it is not for “the good face of the book”, but maybe it will be better to get the company for the\theoremautorefname?
3210 \def\equationautorefname{\cyr\cyrv\cyrery\cyrr.}%
The name of the equation reference has common form for both nominative and accusative but changes in other forms, like “of\autoref{auto}” etc. The full name must follow full name of the\theoremautorefname.
3211% \def\equationautorefname{%
3212% \cyr\cyrv\cyrery\cyrr\cyra\cyrzh\cyre\cyrn\cyri\cyre
3213% }%
The variant of footnote has abbreviation form of the synonym of the word “footnote”.
This variant of abbreviated synonym has alternative status (maybe obsolete?).
3214 \def\footnoteautorefname{%
3215 \cyr\cyrp\cyro\cyrd\cyrs\cyrt\cyrr.\ \cyrp\cyrr\cyri\cyrm.%
3216 }%
Commented form of the full synonym for “footnote”. It has common form for both nom- inative and accusative but changes in other forms, like “of\autoref{auto}”
3217% \def\footnoteautorefname{%
3218% \cyr\cyrp\cyro\cyrd\cyrs\cyrt\cyrr\cyro\cyrch\cyrn\cyro\cyre\ %
3219% \cyrp\cyrr\cyri\cyrm\cyre\cyrch\cyra\cyrn\cyri\cyre
3220% }%
Commented forms of the “footnote”: have different forms, the same is for the nominative and accusative. (The others needed?)
3221% \def\Nomfootnoteautorefname{\cyr\cyrs\cyrn\cyro\cyrs\cyrk\cyra}%
3222% \def\Accfootnoteautorefname{\cyr\cyrs\cyrn\cyro\cyrs\cyrk\cyru}%
Name of the list item, can be confused with the paragraph reference name, but reader could understand meaning from context(?). Commented variant has common form for both nominative and accusative but changes in other forms, like “of\autoref{auto}”
etc.
3223 \def\itemautorefname{\cyr\cyrp.}%
3224% \def\itemautorefname{\cyr\cyrp\cyru\cyrn\cyrk\cyrt}%
Names of the figure and table have stable (standard) abbreviation forms. No problem in the middle of sentence.
3225 \def\figureautorefname{\cyr\cyrr\cyri\cyrs.}%
3226 \def\tableautorefname{\cyr\cyrt\cyra\cyrb\cyrl.}%
Names of the part, chapter, section(s) have stable (standard) abbreviation forms. No problem in the middle of sentence.
3227 \def\partautorefname{\cyr\cyrch.}%
3228 \def\chapterautorefname{\cyr\cyrg\cyrl.}%
3229 \def\sectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
Name of the appendix can use this abbreviation, but it is not standard for books, i.e, not for “the good face of the book”. Commented variant has common form for both nominative and accusative but changes in other forms, like “of\autoref{auto}” etc.
3230 \def\appendixautorefname{\cyr\cyrp\cyrr\cyri\cyrl.}%
3231% \def\appendixautorefname{%
3232% \cyr\cyrp\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyre
3233% }%
The sectioning command have stable (almost standard) and common abbreviation form for all levels (the meaning of these references visible from the section number). No problem.
3234 \def\subsectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
3235 \def\subsubsectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}%
The names of references to paragraphs also have stable (almost standard) and common abbreviation form for all levels (the meaning of these references is visible from the section number). No problem in the middle of sentence.
3236 \def\paragraphautorefname{\cyr\cyrp.}%
3237 \def\subparagraphautorefname{\cyr\cyrp.}%
Commented variant can be used in books but since it has common form for both nomina- tive and accusative but it changes in other forms, like “of\autoref{auto}” etc.
3238% \def\paragraphautorefname{\cyr\cyrp\cyru\cyrn\cyrk\cyrt}%
3239% \def\subparagraphautorefname{\cyr\cyrp\cyru\cyrn\cyrk\cyrt}%
The name of verbatim line. Here could be a standard of the abbreviation (used very rare). But the author preprint publications (which have not any editor or corrector) can use this abbreviation for the page reference. So the meaning of the line reference can be read as reference to the page.
3240 \def\FancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr.}%
Commented names of the “verbatim line”: have different forms, also the nominative and accusative.
3241% \def\NomFancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr\cyro\cyrk\cyra}%
3242% \def\AccFancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr\cyro\cyrk\cyru}%
The alternative, ve-e-e-ery professional abbreviation, was used in typography markup for typesetters.
3243% \def\FancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr\cyrk.}%
The names of theorem: if we want have “the good face of the book”, so the theorem reference must have the full name (like equation reference). But . . .
3244 \def\theoremautorefname{\cyr\cyrt\cyre\cyro\cyrr.}%
Commented forms of the “theorem”: have different forms, also the nominative and ac- cusative.
3245% \def\Nomtheoremautorefname{\cyr\cyrt\cyre\cyro\cyrr\cyre\cyrm\cyra}%
3246% \def\Acctheoremautorefname{\cyr\cyrt\cyre\cyro\cyrr\cyre\cyrm\cyru}%
Name of the page stable (standard) abbreviation form. No problem.
3247 \def\pageautorefname{\cyr\cyrs.}%
3248}
3249\def\HyLang@spanish{%
3250 \def\equationautorefname{Ecuaci\’on}%
3251 \def\footnoteautorefname{Nota a pie de p\’agina}%
3252 \def\itemautorefname{Elemento}%
3253 \def\figureautorefname{Figura}%
3254 \def\tableautorefname{Tabla}%
3255 \def\partautorefname{Parte}%
3256 \def\appendixautorefname{Ap\’endice}%
3257 \def\chapterautorefname{Cap\’itulo}%
3258 \def\sectionautorefname{Secci\’on}%
3259 \def\subsectionautorefname{Subsecci\’on}%
3260 \def\subsubsectionautorefname{Subsubsecci\’on}%
3261 \def\paragraphautorefname{P\’arrafo}%
3262 \def\subparagraphautorefname{Subp\’arrafo}%
3263 \def\FancyVerbLineautorefname{L\’inea}%
3264 \def\theoremautorefname{Teorema}%
3265 \def\pageautorefname{P\’agina}%
3266}
3267\def\HyLang@vietnamese{%
3268 \def\equationautorefname{Ph\uhorn{}\ohorn{}ng tr\‘inh}%
3269 \def\footnoteautorefname{Ch\’u th\’ich}%
3270 \def\itemautorefname{m\d{u}c}%
3271 \def\figureautorefname{H\‘inh}%
3272 \def\tableautorefname{B\h{a}ng}%
3273 \def\partautorefname{Ph\‘\acircumflex{}n}%
3274 \def\appendixautorefname{Ph\d{u} l\d{u}c}%
3275 \def\chapterautorefname{ch\uhorn{}\ohorn{}ng}%
3276 \def\sectionautorefname{m\d{u}c}%
3277 \def\subsectionautorefname{m\d{u}c}%
3278 \def\subsubsectionautorefname{m\d{u}c}%
3279 \def\paragraphautorefname{\dj{}o\d{a}n}%
3280 \def\subparagraphautorefname{\dj{}o\d{a}n}%
3281 \def\FancyVerbLineautorefname{d\‘ong}%
3282 \def\theoremautorefname{\DJ{}\d{i}nh l\’y}%
3283 \def\pageautorefname{Trang}%
3284}
Instead of package babel’s definition of\addtothe implementation of package vari- oref is used. Additionally argument#1is checked for\relax.
3285\def\HyLang@addto#1#2{%
3286 #2%
3287 \@temptokena{#2}%
3288 \ifx#1\relax
3289 \let#1\@empty
3290 \fi
3291 \ifx#1\@undefined
3292 \edef#1{\the\@temptokena}%
3293 \else
3294 \toks@\expandafter{#1}%
3295 \edef#1{\the\toks@\the\@temptokena}%
3296 \fi
3297 \@temptokena{}\toks@\@temptokena
3298}
3299\def\HyLang@DeclareLang#1#2#3{%
3300 \@ifpackagewith{babel}{#1}{%
3301 \expandafter\HyLang@addto
3302 \csname extras#1\expandafter\endcsname
3303 \csname HyLang@#2\endcsname
3304 \begingroup
3305 \edef\x{\endgroup
3306 #3%
3307 }%
3308 \x
3309 \@namedef{HyLang@#1@done}{}%
3310 }{}%
3311 \begingroup
3312 \edef\x##1##2{%
3313 \noexpand\ifx##2\relax
3314 \errmessage{No definitions for language #2’ found!}%
3315 \noexpand\fi
3316 \endgroup
3317 \noexpand\define@key{Hyp}{#1}[]{%
3318 \noexpand\@ifundefined{HyLang@#1@done}{%
3319 \noexpand\HyLang@addto{\noexpand##1}{\noexpand##2}%
3320 #3%
3321 \noexpand\@namedef{HyLang@#1@done}{}%
3322 }{}%
3323 }%
3324 }%
3325 \expandafter\x\csname extras#1\expandafter\endcsname
3326 \csname HyLang@#2\endcsname
3327}
3328\HyLang@DeclareLang{english}{english}{}
3329\HyLang@DeclareLang{UKenglish}{english}{}
3330\HyLang@DeclareLang{british}{english}{}
3331\HyLang@DeclareLang{USenglish}{english}{}
3332\HyLang@DeclareLang{american}{english}{}
3333\HyLang@DeclareLang{german}{german}{}
3334\HyLang@DeclareLang{austrian}{german}{}
3335\HyLang@DeclareLang{ngerman}{german}{}
3336\HyLang@DeclareLang{naustrian}{german}{}
3337\HyLang@DeclareLang{russian}{russian}{\noexpand\hypersetup{unicode}}
3338\HyLang@DeclareLang{brazil}{portuges}{}
3339\HyLang@DeclareLang{brazilian}{portuges}{}
3340\HyLang@DeclareLang{portuguese}{portuges}{}
3341\HyLang@DeclareLang{spanish}{spanish}{}
3342\HyLang@DeclareLang{afrikaans}{afrikaans}{}
3343\HyLang@DeclareLang{french}{french}{}
3344\HyLang@DeclareLang{frenchb}{french}{}
3345\HyLang@DeclareLang{francais}{french}{}
3346\HyLang@DeclareLang{acadian}{french}{}
3347\HyLang@DeclareLang{canadien}{french}{}
3348\HyLang@DeclareLang{italian}{italian}{}
3349\HyLang@DeclareLang{magyar}{magyar}{}
3350\HyLang@DeclareLang{hungarian}{magyar}{}
More work is needed in case of optionsvietnameseandvietnam.
3351\DeclareVoidOption{vietnamese}{%
3352 \HyLang@addto\extrasvietnamese\HyLang@vietnamese
3353 \Hy@AtEndOfPackage{%
3354 \@ifundefined{T@PU}{}{%
3355 \input{puvnenc.def}%
3356 }%
3357 }%
3358}
3359\DeclareVoidOption{vietnam}{%
3360 \HyLang@addto\extrasvietnam\HyLang@vietnamese
3361 \Hy@AtEndOfPackage{%
3362 \@ifundefined{T@PU}{}{%
3363 \input{puvnenc.def}%
3364 }%
3365 }%
3366}
Similar for optionarabicthat just loads the additions to PU encoding for Arabi.
3367\DeclareVoidOption{arabic}{%
3368 \Hy@AtEndOfPackage{%
3369 \@ifundefined{T@PU}{}{%
3370 \input{puarenc.def}%
3371 }%
3372 }%
3373}
13 Options to change appearance of links
Colouring links at the LATEX level is useful for debugging, perhaps.
3374\define@key{Hyp}{colorlinks}[true]{%
3375 \Hy@boolkey{colorlinks}{#1}%
3376}
3377\DeclareVoidOption{hidelinks}{%
3378 \Hy@colorlinksfalse
3379 \Hy@ocgcolorlinksfalse
3380 \Hy@frenchlinksfalse
3381 \def\Hy@colorlink##1{\begingroup}%
3382 \def\Hy@endcolorlink{\endgroup}%
3383 \def\@pdfborder{0 0 0}%
3384 \let\@pdfborderstyle\ltx@empty
3385}
3386\define@key{Hyp}{ocgcolorlinks}[true]{%
3387 \Hy@boolkey{ocgcolorlinks}{#1}%
3388}
3389\Hy@AtBeginDocument{%
3390 \begingroup
3391 \@ifundefined{OBJ@OCG@view}{%
3392 \ifHy@ocgcolorlinks
3393 \Hy@Warning{%
3394 Driver does not support ‘ocgcolorlinks’,\MessageBreak
3395 using ‘colorlinks’ instead%
3396 }%
3397 \fi
3398 }{}%
3399 \endgroup
3400}
3401\define@key{Hyp}{frenchlinks}[true]{%
3402 \Hy@boolkey{frenchlinks}{#1}%
3403}
14 Bookmarking
3404\begingroup\expandafter\expandafter\expandafter\endgroup
3405\expandafter\ifx\csname chapter\endcsname\relax
3406 \def\toclevel@part{0}%
3407\else
3408 \def\toclevel@part{-1}%
3409\fi
3410\def\toclevel@chapter{0}
3411\def\toclevel@section{1}
3412\def\toclevel@subsection{2}
3413\def\toclevel@subsubsection{3}
3414\def\toclevel@paragraph{4}
3415\def\toclevel@subparagraph{5}
3416\def\toclevel@figure{0}
3417\def\toclevel@table{0}
3418\@ifpackageloaded{listings}{%
3419 \providecommand*\theHlstlisting{\thelstlisting}%
3420 \providecommand*\toclevel@lstlisting{0}%
3421}{}
3422\@ifpackageloaded{listing}{%
3423 \providecommand*\theHlisting{\thelisting}%
3424 \providecommand*\toclevel@listing{0}%
3425}{}
3426\define@key{Hyp}{bookmarks}[true]{%
3427 \Hy@boolkey{bookmarks}{#1}%
3428}
3429\define@key{Hyp}{bookmarksopen}[true]{%
3430 \Hy@boolkey{bookmarksopen}{#1}%
3431}
The depth of the outlines is controlled by optionbookmarksdepth. The option acts globally and distinguishes three cases:
• bookmarksdepth: Without value hyperref uses countertocdepth(compatible behaviour and default).
• bookmarksdepth=<number>: the depth is set to<number>.
• bookmarksdepth=<name>: The<name>must not start with a number or minus sign. It is a document division name (part, chapter, section, . . . ). Internally the value of macro\toclevel@<name>is used.
3432\let\Hy@bookmarksdepth\c@tocdepth
3433\define@key{Hyp}{bookmarksdepth}[]{%
3434 \begingroup
3435 \edef\x{#1}%
3436 \ifx\x\empty
3437 \global\let\Hy@bookmarksdepth\c@tocdepth
3438 \else