我想numbered, unnumbered section
通过 \setcounter{secnumdepth}{5}
命令来控制。
我的要求是默认情况下所有部分标题都应不编号。所以我将设置默认值\setcounter{secnumdepth}{0}
。如果我给出\numbered
命令,所有标题级别都应编号。所以我应该创建命令\newcommand{\numbered}{\setcounter{secnumdepth}{5}}
另一个要求是section
级别应大写。所以我使用命令命令\MakeUppercase
。
但问题出现在以下案例中(书签链接不起作用):
同时我使用两个命令\setcounter{secnumdepth}{0} and \MakeUppercase
,pdfbookmark 不起作用。
情况1。 \setcounter{secnumdepth}{0}
并且\MakeUppercase
使用的两个命令 - pdfbookmark 不起作用。
案例 2。 \setcounter{secnumdepth}{5}
并且\MakeUppercase
使用的两个命令-pdfbookmark 正在运行。
我不知道第一种情况是否有效。第二种情况有效。请提供建议。
或者我使用下面提到的 pdfstring 命令。但这个命令不起作用
\pdfstringdefDisableCommands{%
\let\MakeUppercase\relax%
}
梅威瑟:
\documentclass{article}
\usepackage{hyperref}
\usepackage{lipsum}
\setcounter{secnumdepth}{0}
\makeatletter
\newcommand{\numbered}{\setcounter{secnumdepth}{5}}
\makeatother
\hypersetup{%
colorlinks,%
linkcolor=black,%
citecolor=gray,%
bookmarks=true,
bookmarksopen=true,%
bookmarksnumbered=true,%
pdftitle={\@mytitle},%
pdfauthor={Maria Luisa Di Vona},%
pdfkeywords={},%
pdfsubject={}%
}
\pdfstringdefDisableCommands{%
\let\MakeUppercase\relax%
}
\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-2.8ex}%
{8.25pt}%
{\raggedright\MakeUppercase}}
\makeatother
\begin{document}
\title{This is the sample title}
\author{Steven}
\maketitle
\section{This is the sample section one $\alpha$}
\lipsum[1-5]
\section{Second section}
\lipsum[5-10]
\section{Second section}
\lipsum[4]
\lipsum[5]
\section{This is the sample section two}
\lipsum[1]
\lipsum[1]
\end{document}
答案1
\MakeUppercase
还将部分的目标名称转换为大写。结果是书签具有错误的链接目标。以下示例通过移动到来修复它\MakeUppercase
,\Sectionformat
该宏由包引入nameref
,通常在中加载\begin{document}
。该示例先前加载了包以重新定义\SectionFormat
。第一个参数是标题,第二个参数是级别编号。
另一个问题:
- 当包
bookmark
加载时,书签会更快地更新。 \alpha
unicode
由 Unicode 书签(选项或pdfencoding=auto
)以及psdextra
添加大量数学符号的选项支持。- 未
\@mytitle
命中\makeatletter
。而且它未定义,因此示例直接将标题放在中\pdftitle
。还可以定义一个宏,稍后在选项pdftitle
和命令中使用\title
。
完整示例:
\documentclass{article}
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage{lipsum}
\setcounter{secnumdepth}{0}
\hypersetup{%
colorlinks,%
linkcolor=black,%
citecolor=gray,%
bookmarksopen=true,%
bookmarksnumbered=true,%
pdfencoding=auto,%
psdextra,%
pdftitle={This is a sample title},%
pdfauthor={Maria Luisa Di Vona},%
pdfkeywords={},%
pdfsubject={}%
}
\pdfstringdefDisableCommands{%
\let\MakeUppercase\relax%
}
\usepackage{nameref}
\makeatletter
\renewcommand{\Sectionformat}[2]{%
\ifnum#2=1 %
\expandafter\MakeUppercase
\else
\expandafter\@firstofone
\fi
{#1}%
}
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-2.8ex}%
{8.25pt}%
{\raggedright}}
\makeatother
\begin{document}
\title{This is the sample title}
\author{Steven}
\maketitle
\section{This is the sample section one $\alpha$}
\lipsum[1-5]
\section{Second section}
\lipsum[5-10]
\section{Second section}
\lipsum[4]
\lipsum[5]
\section{This is the sample section two}
\lipsum[1]
\lipsum[1]
\end{document}