删除 \crossref 后的空格

删除 \crossref 后的空格

由于我必须制作三卷书并进行交叉引用,因此我的参考系统相对复杂。到目前为止,除了一件小事外,一切都运行良好:

引用页面后,页码后和点前会有空格,如下所示:

第八部分 4。

它应该是:

第八章 4.

我可以通过在命令中添加一个点来解决这个问题,但我做不到,因为有时我应该写的地方:

第八页第 4、12、15 页。

在该命令中添加一个点将产生:

Vgl. S. 4., 12., 15..

所以我需要找到一种方法让 Latex 停止在页码后添加空白。

这是我的 MWE。

\documentclass[twoside]{scrbook}
\usepackage[]{scrlayer-scrpage}
\usepackage{lipsum}
\usepackage{hyperref}
\hypersetup{%
    colorlinks,%
    citecolor=black,%
    filecolor=black,%
    linkcolor=black,%
    urlcolor=black,%
    hypertexnames=false%
}%
\usepackage[counter,user,hyperref]{zref}
\makeatletter
\AtBeginDocument{%
\@ifpackageloaded{hyperref}{%
}{
  \providecommand{\phantomsection}{}
  \providecommand{\hyperlink}[2]{#2}
}

\zref@newlist{partpage}
\zref@newprop*{partprop}[-1]{\number\value{part}}
\zref@addprops{partpage}{partprop,page,anchor}

%\newcounter{herecntr}

\newcommand{\here}[1]{%
  \phantomsection% Needed for correct hyper links
  \zref@labelbyprops{#1}{partprop,page,anchor}%
}

\newcommand{\crossref}[1]{%
  \ifnum\value{part}=\zref@extract{#1}{partprop}\relax% Check whether the current part counter value is the same as the extracted part property from the label
  S. \hyperlink{\zref@extract{#1}{anchor}}{\zpageref{#1}}
  \else% No, it is not the same!
  Booktitle, Bd. \zref[partprop]{#1}, S. \hyperlink{\zref@extract{#1}{anchor}}{\zpageref{#1}}%
  \fi
}
}
\makeatother
\clearpairofpagestyles
\lehead{}
\cehead{Chapter\space\leftmark}
\lehead{\pagemark}
\lohead{}
\cohead{\rightmark}
\rohead{\pagemark}
\lefoot{}
\cfoot{}
\begin{document}
\chapter{CHTITLE}
\lipsum[1-20]\here{test}\label{test}
\section{STITLE}
\lipsum[21-40]\footnote{Vgl. \crossref{test}.}
\end{document}

答案1

你有不需要的空白在代码中的页码后面。您可以通过注释掉定义中的换行符来解决这个问题\crossref

\newcommand{\crossref}[1]{%
  \ifnum\value{part}=\zref@extract{#1}{partprop}\relax% Check whether the current part counter value is the same as the extracted part property from the label
  S. \hyperlink{\zref@extract{#1}{anchor}}{\zpageref{#1}}% <-- HERE
  \else% No, it is not the same!
  Booktitle, Bd. \zref[partprop]{#1}, S. \hyperlink{\zref@extract{#1}{anchor}}{\zpageref{#1}}%
  \fi
}

相关内容