확장 후 `\cref`를 주변 텍스트의 동일한 그룹에 두는 방법은 무엇입니까?

확장 후 `\cref`를 주변 텍스트의 동일한 그룹에 두는 방법은 무엇입니까?

\cref확장 후 주변 텍스트의 동일한 그룹에 서도록 만들고 싶습니다 .

를 사용하면 조판을 올바르게 하기 위해 사용해야 \crefname{figure}{图}{图}합니다 .如\cref{...} 所示figure 중국어 숫자로 설정되지 않은 . 있음을 참고하세요공백 없음~ 전에\cref 있지만하나후에. 이로 인해 \cref{...}중국어나 영어와 유사점이 없습니다. 따라서 구문은 더욱 복잡해집니다. 중국어, 영어, 중국어로 시작하지만 영어로 끝나는 가상 언어의 세 가지 언어가 있습니다. 게다가 가상 언어는 카운터 형식에 따라 달라집니다. 주변 텍스트의 동일한 그룹에서 스탠드 를 확장함으로써 \cref세 번째 단어가 제거되고 영어 전용 시나리오에서는 동작이나 구문 변화가 없습니다. 왜냐하면 \cref텍스트에서 의미상 일반 영어 단어처럼 취급되고 항상 다음으로 둘러싸여 있기 때문입니다. 공백.

때때로(예: 를 사용하는 경우) 그룹화가 필요할 수 있다는 점을 염두에 두고 \crefname{figure}{\bfseries FIG.}{\bfseries Fig.}저는 (가능한 경우) 스위치를 선호합니다.

\textbf{...}이 요청은 주변 텍스트와 같은 그룹에 스탠드 를 확장하는 것과 비슷하다고 생각합니다 .

이것이 달성될 수 있을까?

편집하다: XeLaTeX를 사용하면 다음 코드가 출력을 제공합니다.

산출

MWE:

% !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}

여기에 이미지 설명을 입력하세요

관련 정보