我尝试按照同样的方式如何在每个部分自动添加[转至摘要] | [返回]?:
\documentclass{memoir}
\usepackage{etoolbox}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % fix utf8 encoding problems
\usepackage{newtxtext,newtxmath} % updated times new roman font
\usepackage{xcolor}
\definecolor{link_color}{RGB}{26,13,178}
\definecolor{ultramarine}{RGB}{0,32,96}
\usepackage[backref,colorlinks,linkcolor=link_color]{hyperref}
\newcommand{\goToSummaryText}
{
\small\mdseries
\hyperlink{summary} {\textcolor{ultramarine}{{ } [Go To Top]}}
{{ }|}
\Acrobatmenu{GoBack}{\textcolor{ultramarine}{{ } [Go Back]}}
}
% How can the go to summary be fixed so does not throw all these errors?
% https://tex.stackexchange.com/questions/388045/how-can-the-go-to-summary-be-fixed
\makeatletter
\newcommand{\addGoToSummary}
{%
\renewcommand{\Sectionformat}[2]{##1 \protect\goToSummaryText}
\renewcommand{\Chapterformat}[2]{##1 \protect\goToSummaryText}
}
\newcommand{\removeGoToSummary}
{
\renewcommand{\Sectionformat}[2]{##1}
\renewcommand{\Chapterformat}[2]{##1}
}
\makeatother
\let\oldtableofcontents\tableofcontents
\renewcommand{\tableofcontents}
{
% Insert internal document link
\hypertarget{summary}
\oldtableofcontents
}
\begin{document}
\addGoToSummary
\tableofcontents
\chapter*{Foreword}
\addcontentsline{toc}{chapter}{Foreword}
\chapter*{Abstract}
\addcontentsline{toc}{chapter}{Abstract}
\chapter{Chapter One}
\section{Section One One}
\section{Section One Two}
\section{Section One Three}
\section{Section One Four}
\end{document}
但它完全停止了工作:
它应该是下面这样,我用油漆将它涂上去。我不确定它到底是怎样的,但应该遵循类似这样的东西就可以了:
更新
我忘了打电话\addGoToSummary
,现在我修复了主要代码,但现在我收到了错误:
test2.tex:48: LaTeX Error: \Chapterformat undefined.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help
TeX STOPPED: fatal errors occurred. Check the TeX log file for details
\Sectionformat
问题实际上是回忆录课上的相当于什么。
答案1
我发现命令是\printchaptertitle
:
\makeatletter
\newif\ifismemoirloaded\ismemoirloadedfalse
\newif\ifisabntexloaded\isabntexloadedfalse
\@ifclassloaded{memoir}{%
\ismemoirloadedtrue%
}{}
\@ifclassloaded{abntex2}{%
\isabntexloadedtrue%
}{}
\newcommand{\addGoToSummary}
{%
\@ifundefined{printparttitle}{\message{printparttitle patch for addGoToSummary could NOT
be applied because there is no printparttitle command available!^^J}}{%
\let\oldAddGoToprintparttitle\printparttitle
\xapptocmd{\printparttitle}{~\protect\goToSummaryText}{}{}
}
\@ifundefined{Sectionformat}{\message{Sectionformat patch for addGoToSummary could NOT
be applied because there is no Sectionformat command available!^^J}}{%
\let\oldAddGoToSectionformat\Sectionformat
\xapptocmd{\Sectionformat}{~\protect\goToSummaryText}{}{}
}
\ifismemoirloaded
\ifisabntexloaded
\let\oldAddGoToABNTEXchapterupperifneeded\ABNTEXchapterupperifneeded
\xapptocmd{\ABNTEXchapterupperifneeded}{~\protect\goToSummaryText}{}{}
\else
\let\oldAddGoToprintchaptertitle\printchaptertitle
\xapptocmd{\printchaptertitle}{~\protect\goToSummaryText}{}{}
\fi
\else
\@ifundefined{Chapterformat}{\message{Chapterformat patch for addGoToSummary could NOT
be applied because there is no Chapterformat command available!^^J}}{%
\let\oldAddGoToChapterformat\Chapterformat
\xapptocmd{\Chapterformat}{~\protect\goToSummaryText}{}{}
}
\fi
}
\newcommand{\removeGoToSummary}
{%
\@ifundefined{oldAddGoToprintparttitle}{}{\let\printparttitle\oldAddGoToprintparttitle}
\@ifundefined{oldAddGoToSectionformat}{}{\let\Sectionformat\oldAddGoToSectionformat}
\ifismemoirloaded
\ifisabntexloaded
\@ifundefined{oldAddGoToABNTEXchapterupperifneeded}{}{\let\ABNTEXchapterupperifneeded\oldAddGoToABNTEXchapterupperifneeded}
\else
\@ifundefined{oldAddGoToprintchaptertitle}{}{\let\printchaptertitle\oldAddGoToprintchaptertitle}
\fi
\else
\@ifundefined{oldAddGoToChapterformat}{}{\let\Chapterformat\oldAddGoToChapterformat}
\fi
}
\makeatother
完整示例:
\documentclass{memoir}
\usepackage{etoolbox}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % fix utf8 encoding problems
\usepackage{xcolor}
\definecolor{link_color}{RGB}{26,13,178}
\usepackage[backref,colorlinks,linkcolor=link_color]{hyperref}
\definecolor{ultramarine}{RGB}{0,32,96}
\RequirePackage{xpatch}
\RequirePackage{amssymb}
\newcommand{\goToSummaryText}{{%
\small\mdseries
\hyperlink{summary}{\textcolor{ultramarine}{$\leftleftarrows$}}
{$|$}
\Acrobatmenu{GoBack}{\textcolor{ultramarine}{$\leftarrow$}}
}}
\makeatletter
\newif\ifismemoirloaded\ismemoirloadedfalse
\newif\ifisabntexloaded\isabntexloadedfalse
\@ifclassloaded{memoir}{%
\ismemoirloadedtrue%
}{}
\@ifclassloaded{abntex2}{%
\isabntexloadedtrue%
}{}
\newcommand{\addGoToSummary}
{%
\@ifundefined{printparttitle}{\message{printparttitle patch for addGoToSummary could NOT
be applied because there is no printparttitle command available!^^J}}{%
\let\oldAddGoToprintparttitle\printparttitle
\xapptocmd{\printparttitle}{~\protect\goToSummaryText}{}{}
}
\@ifundefined{Sectionformat}{\message{Sectionformat patch for addGoToSummary could NOT
be applied because there is no Sectionformat command available!^^J}}{%
\let\oldAddGoToSectionformat\Sectionformat
\xapptocmd{\Sectionformat}{~\protect\goToSummaryText}{}{}
}
\ifismemoirloaded
\ifisabntexloaded
\let\oldAddGoToABNTEXchapterupperifneeded\ABNTEXchapterupperifneeded
\xapptocmd{\ABNTEXchapterupperifneeded}{~\protect\goToSummaryText}{}{}
\else
\let\oldAddGoToprintchaptertitle\printchaptertitle
\xapptocmd{\printchaptertitle}{~\protect\goToSummaryText}{}{}
\fi
\else
\@ifundefined{Chapterformat}{\message{Chapterformat patch for addGoToSummary could NOT
be applied because there is no Chapterformat command available!^^J}}{%
\let\oldAddGoToChapterformat\Chapterformat
\xapptocmd{\Chapterformat}{~\protect\goToSummaryText}{}{}
}
\fi
}
\newcommand{\removeGoToSummary}
{%
\@ifundefined{oldAddGoToprintparttitle}{}{\let\printparttitle\oldAddGoToprintparttitle}
\@ifundefined{oldAddGoToSectionformat}{}{\let\Sectionformat\oldAddGoToSectionformat}
\ifismemoirloaded
\ifisabntexloaded
\@ifundefined{oldAddGoToABNTEXchapterupperifneeded}{}{\let\ABNTEXchapterupperifneeded\oldAddGoToABNTEXchapterupperifneeded}
\else
\@ifundefined{oldAddGoToprintchaptertitle}{}{\let\printchaptertitle\oldAddGoToprintchaptertitle}
\fi
\else
\@ifundefined{oldAddGoToChapterformat}{}{\let\Chapterformat\oldAddGoToChapterformat}
\fi
}
\makeatother
\let\oldAddGoTotableofcontents\tableofcontents
% Insert internal document link
\renewcommand{\tableofcontents}{%
\hypertarget{summary}%
\oldAddGoTotableofcontents%
}
\begin{document}
\addGoToSummary
\tableofcontents
\chapter*{Foreword}
\addcontentsline{toc}{chapter}{Foreword}
\chapter*{Abstract}
\addcontentsline{toc}{chapter}{Abstract}
\chapter{Chapter One}
\section{Section One One}
\section{Section One Two}
\section{Section One Three}
\section{Section One Four}
\end{document}