crefname 中是否需要 \@ 和 \-?

crefname 中是否需要 \@ 和 \-?

使用 cleveref 我有时会写一些东西,例如

\documentclass[deutsch,graybox,envcountchap]{svmono}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[USenglish,british,canadian,latin,russian,french,german,ngerman]{babel}
\usepackage[ngerman,capitalize]{cleveref}
\crefname{example}{Bsp.\@}{Bei\-spie\-le}
\Crefname{example}{Beispiel}{Bei\-spie\-le}
\crefname{exercise}{Übg.\@}{Übgn.\@}
\Crefname{exercise}{Übung}{Übun\-gen}
....

我的问题是:

  • 我是否需要\@在句号后面加上缩写来说明这些缩写通常不在句末,或者 cleveref 可以帮我做这件事吗?
  • \-鉴于主要文档语言是现代德语,我是否需要通过明确指定连字点,或者 cleveref 是否只是假设是现代德语而允许连字?

答案1

一些评论和意见:

  • 如果 babel 包加载了germanand/orngerman语言选项,\frenchspacing则默认情况下会生效,这意味着Bsp.\@除了 之外,写 也是多余的Bsp.:句末句号后不会有任何多余的空格。请参阅下面显示的屏幕截图中的前三行。

  • 如果将选项传递ngermancleveref包,则不需要为与exampleenv./counter 一起的标签指定德语形式,除非您更喜欢使用某些特殊的缩写形式。

  • 如下面的截图所示,LaTeX 成功找到了单词“Beispiele”和“Übungen”中的所有标准连字符点,如果语言ngerman选项已生效。(垂直标记以黄色突出显示,由showhyphens包插入 - 使用 LuaLaTeX 编译代码)。

在此处输入图片描述

\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{showhyphens}
\usepackage{amsthm}
\usepackage{cleveref}
\newtheorem{example}{Beispiel}
\newtheorem{exercise}{Übung}
\crefname{example}{Bsp.}{Beispiele} % the "Bsp." abbrev. is a bit nonstandard
\crefname{exercise}{Übg.}{Übgn.}
\Crefname{exercise}{Übung}{Übungen}

\begin{document}
\begin{example} \label{exp:a} aaa \end{example}
\begin{exercise}\label{exc:b} bbb \end{exercise}
\begin{example} \label{exp:c} ccc \end{example}
\begin{exercise}\label{exc:d} ddd \end{exercise}

\noindent
\cref{exp:a}, \cref{exc:d}.

\noindent
Bsp.\ 1, Übg.\ 2.

\noindent
Bsp. 1, Übg. 2. % just to demonstrate that '\frenchspacing' is in effect

\noindent
\Cref{exp:a,exp:c} und \Cref{exc:b,exc:d}.
\end{document}

相关内容