可以写出参考的章节编号吗?
代替
I’m referencing Chapter 1, „Referencing“
我想看看
I’m referencing Chapter one, „Referencing“
。
梅威瑟:
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage{hyperref}
\begin{document}
\chapter{Referencing}
\label{cha:referencing}
I'm referencing Chapter~\ref{cha:referencing},~\enquote{\nameref{cha:referencing}}
\end{document}
答案1
cleveref
与以下产品一起使用fmtcount
:
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage{fmtcount}
\usepackage{hyperref}
\usepackage{cleveref}
\crefformat{chapter}{\chaptername~#2\numberstringnum{#1}#3}
\begin{document}
\chapter{Referenzieren}
\label{cha:referencing}
Dies ist ein Verweis auf \cref{cha:referencing}.
\end{document}
如果德语不好就怪谷歌吧。
如果你希望超链接中也包含“Kapitel”,请将以下\crefformat
行更改为
\crefformat{chapter}{#2\chaptername~\numberstringnum{#1}#3}
如果您希望数字名称以大写字母开头,请使用\Numberstringnum
。
答案2
是的,这是可能的,但必须先提取章节号才能使用。\ref...
根本没有提供数字,所以refcount
它就getrefnumber
起作用了。这将1
在这里产生。
1
要在此处获得as的口头表达Eins
,请使用\Numberstringnum
或\numberstringnum
for eins
fromfmtcount
包。
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage{refcount}
\usepackage{fmtcount}
\usepackage{hyperref}
\begin{document}
\chapter{Hallo Welt}
I'm referencing Chapter~\Numberstringnum{\getrefnumber{cha:referencing}},~\enquote{\nameref{cha:referencing}}
\chapter{Referencing}
\label{cha:referencing}
\end{document}
答案3
我写了一个小宏来处理德国红衣主教和以正确的方式显示序数。对于后者,\Ordinalstringnum
和\ordinalstringnum
fromfmtcount
无法有效使用,因为它们仅提供强形式(例如“erster”,如果你想打印“erstes Kapitel”、“das erste Kapitel”等,这是毫无用处的)。以下是带有一些示例输出的代码:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{refcount,fmtcount}
\newcommand{\refzw}[2][o]{%
\def\refnum{\getrefnumber{#2}}%
\lowercase{\ifnum\ifx#1}o\ifnum\refnum=1 1\else\ifnum\refnum=3 1\else\ifnum\refnum=7 1\else\ifnum\refnum=8 1\else0\fi\fi\fi\fi\else0\fi=1%
\ifnum\refnum=1\def\zw{ers}\def\zwg{Ers}\fi%
\ifnum\refnum=3\def\zw{drit}\def\zwg{Drit}\fi%
\ifnum\refnum=7\def\zw{sieb}\def\zwg{Sieb}\fi%
\ifnum\refnum=8\def\zw{ach}\def\zwg{Ach}\fi%
\else\def\zwg{\Numberstringnum{\refnum}}\def\zw{\numberstringnum{\refnum}} \fi%
\if1\ifx#1O1\else\ifx#1K1\else0\fi\fi\zwg\else\zw\fi%
\ifnum\refnum>19\lowercase{\ifx#1o{s}\fi}\fi%
}
\begin{document}
\section{Einleitung}\label{einl}
\refzw[O]{einl}tens steht das \refzw{einl}te Kapitel in Kapitel \refzw[k]{einl} – oder schreibt man Kapitel \refzw[K]{einl}? Dann gibts aber noch ein \refzw{haupt1}tes und ein \refzw{haupt2}tes Kapitel, aber kein dreites. Dann kommen die Kapitel \refzw[K]{haupt3} und \refzw[K]{haupt4}.
\section{Hauptteil}\label{haupt1}
\section{Fazit}\label{haupt2}
\section{Schluss}\label{haupt3}
\section{jetzt}\label{haupt4}
\end{document}
该命令将引用键作为必需参数,并将以下选项之一作为可选参数:
- o (默认)打印序数,例如“ers”
- O 打印大写的序数词,例如“Ers”
- k 打印基数,例如“eins”
- K 打印大写的基数,例如“Eins”
您可能已经注意到,序数没有任何结尾,您必须输入例如“im \refzw{key}ten Kapitel”才能输出“im ersten Kapitel”。该宏适用于文章中的 \section 标题以及书籍中的 \chapter,并打印正确的数字,直到 100。它需要以下软件包:
\usepackage[ngerman]{fmtcount}
\usepackage{refcount}
或者
\usepackage[ngerman]{babel}
\usepackage{refcount,fmtcount}
fmtcount
顺便说一下可能需要更新,旧版本(Ubuntu 14.04 的 TexLive 附带)错误地打印了“eins和平与安宁”。
打印长版本
如果您希望打印出“erste”而不是“ers”(因此只需添加“n”,“s”等),请将}
末尾的替换为:
\lowercase{\ifx#1}ote\fi%
}