如何使擴充後的`\cref`與周圍的文字處於同一組?

如何使擴充後的`\cref`與周圍的文字處於同一組?

我想\cref在擴展後站在同一組周圍的文本上。

使用,如果環境計數器沒有設定為中文數字,\crefname{figure}{图}{图}我需要使用來使排版正確。請注意,有如\cref{...} 所示figure沒有空格之前\cref,而有後。這\cref{...}與中文或英文毫無相似之處。因此文法變得更加複雜──有三種語言:中文、英文,一種以中文開頭、以英文結尾的虛擬語言。此外,虛擬語言取決於計數器的格式。透過在同一組周圍文本中擴展\crefstand,第三個被消除了,並且在純英語場景中既沒有行為也沒有句法變化,因為它在\cref語義上被視為文本中的普通英語單詞並且總是被包圍空間。

請記住,有時需要分組(例如,使用 時\crefname{figure}{\bfseries FIG.}{\bfseries Fig.}),我更喜歡(如果可能的話)一個開關。

我想這個請求很像\textbf{...}在同一組周圍文字上擴展支架。

這能實現嗎?

編輯:使用 XeLaTeX,以下程式碼給出輸出:

輸出

微量元素:

% !TEX program = xelatex
\documentclass{article}
\usepackage{ctex}% Note: some Chinese fonts are needed
\usepackage[a6paper]{geometry}
\usepackage{cleveref}
  \crefname{figure}{图}{图}
  
\begin{document}

\begin{figure}
\centering
$a^2 + b^2 = c^2$
\caption{test}
\label{eq:test}
\end{figure}

中文 字符 之间 不 需要 空格。% direct translation of each piece: Chinese, character(s), between, not, need, whitespace(s). Combination: There is no need to place whitespaces between Chinese characters.

前后\par % case 1
前 后\par% case 2
前\cref{eq:test}后 --- \verb|\cref|\par  % case 3
前 \cref{eq:test} 后 --- \verb|\cref|\par% case 4. I would like to make case 4 behave like case 3.
前\ref{eq:test}后 --- \verb|\ref|\par  % case 5
前 \ref{eq:test} 后 --- \verb|\ref|\par% case 6. I would like to make case 6 behave like case 5.

Note the very different behaviour of \verb|\ref| and \verb|\cref|.

one \textbf{two} three\par
one\textbf{two}three\par
\end{document}

答案1

您可以透過重新定義格式命令來抑制空格。如果您也希望它適用於普通 \ref,最簡單的方法是定義您自己的命令:

\documentclass{article}
\usepackage{ctex}% Note: some Chinese fonts are needed
\usepackage[a6paper]{geometry}
\usepackage{cleveref}
\crefname{figure}{\unskip 图}{\unskip 图}
\crefdefaultlabelformat{#2#1#3\aftergroup\ignorespaces} 
\newcommand\myref[1]{\unskip\ref{#1}\ignorespaces}
\begin{document}

\begin{figure}
\centering
$a^2 + b^2 = c^2$
\caption{test}
\label{eq:test}
\end{figure}

前后\par % case 1
前 后\par% case 2
前\cref{eq:test}后 --- \verb|\cref|\par  % case 3
前 \cref{eq:test}  后 --- \verb|\cref|\par% case 4. I would like to make case 4 behave like case 3.
前\myref{eq:test}后 --- \verb|\ref|\par  % case 5
前 \myref{eq:test} 后 --- \verb|\ref|\par% case 6. I would like to make case 6 behave like case 5.

Note the very different behaviour of \verb|\ref| and \verb|\cref|.
\end{document}

在此輸入影像描述

相關內容