在 Tcolorbox 中将计数器增加十倍......结果好吗?

在 Tcolorbox 中将计数器增加十倍......结果好吗?

我正在用阿拉伯语写一本关于概率的书,使用多语言,我想将一些盒子的计数器以十为单位增加十倍(原因是阿拉伯字母是用辅音素字母表进行数字表示的,第九个字母使用个位数,接下来的第九个字母使用十位数,接下来的第九个字母使用百位数,第 28 个也是最后一个字母使用千位数...你可以查看法语版的维基百科,我没有其他来源...http://fr.wikipedia.org/wiki/Num%C3%A9ration_arabe).. 我发现一个解决方案是使用命令在每次迭代中将计数器增加 9 phantom={\addtocounter{\tcbcounter}{9}},但此框的标签在此命令之前引用计数器...我看到这是 tcolorbox 包文档中的自然做法。. 那么我如何将我的示例标签引用到我的项目中添加 9 后的标签...或其他一些想法。谢谢。这是我的文件中的示例。.

\documentclass[14pt,a4paper]{extbook}

\usepackage{titlesec}


\usepackage{amsmath,amssymb}
\usepackage[most]{tcolorbox}


\usepackage{boxedminipage}
\usepackage{slashbox}

\usepackage{titlesec}


\usepackage{enumitem}

\usepackage{minitoc}

\usepackage{rotating}

\usepackage{fmultico}
\setlength{\columnseprule}{0.1pt}

\usepackage{fancyhdr}
\pagestyle{fancy}

\usepackage{pdflscape}

\usepackage{array}


\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}

\newfontfamily\arabicfont[Script=Arabic, AutoFakeSlant=-0.02]{Amiri}
\setsansfont[Script=Arabic,Scale=1.5]{Amiri}


\tikzstyle{boxwhite} =
    [draw=white, thick, scale=.7, fill=white,
        line width=0.1pt, text=black, rectangle,
        font=\Large,
        left, minimum height=.5cm]

\newcounter{example}

\newtcolorbox[auto counter, 
number within=section,
number freestyle={\noexpand\arabic{section}\noexpand\alph{\tcbcounter}}]{example}[2][]{
enhanced,
colback=white,
colframe=white,
top=-.7cm,
bottom=-2mm,
enlarge top by=\baselineskip/2+1mm,
enlarge top at break by=0mm,pad at break=2mm,
fontupper=\normalsize,
label={#2},
overlay unbroken and first={
\node[boxwhite]
at ([xshift=1.4cm,yshift=-.15cm]frame.north east)
{\strut\RL{\setlength{\extrarowheight}{-30.5pt}\textbf{$\begin{array}{c}
\hline
\rule{0pt}{2ex}
\mbox{\RL{مثال}}
\\
\mbox{\large\thetcbcounter}
\rule{0pt}{1.5ex}
\end{array}$}}};},
breakable,
width=1.048\textwidth,       
arc=0pt,outer arc=0pt,
enlarge left by=-.085\textwidth,
extrude right by=-5pt,
extrude left by=-5pt,
#1}%

\newtcolorbox[use counter from=example]{example9}[2][]{
enhanced,
phantom={\addtocounter{\tcbcounter}{9}},
colback=white,
colframe=white,
top=-.7cm,
bottom=-2mm,
enlarge top by=\baselineskip/2+1mm,
enlarge top at break by=0mm,pad at break=2mm,
fontupper=\normalsize,
label={#2},
overlay unbroken and first={%
\node[boxwhite]
at ([xshift=1.4cm,yshift=-.15cm]frame.north east)
{\strut\RL{\setlength{\extrarowheight}{-30.5pt}\textbf{$\begin{array}{c}
\hline
\rule{0pt}{2ex}
\mbox{\RL{مثال}}
\\
\mbox{\large\thetcbcounter}
\rule{0pt}{1.5ex}
\end{array}$}}};},
breakable,
width=1.048\textwidth,      
arc=0pt,outer arc=0pt,
enlarge left by=-.085\textwidth,
extrude right by=-5pt,
extrude left by=-5pt,
#1}%
\begin{document}

\begin{example}{ex0:a}
First 
\end{example}
\begin{example}{ex0:b}
Second 
\end{example}
\begin{example}{ex0:c}
....
\end{example}
\begin{example}{ex0:d}
....
\end{example}
\begin{example}{ex0:e}
....
\end{example}
\begin{example}{ex0:f}
....
\end{example}
\begin{example}{ex0:g}
....
\end{example}
\begin{example}{ex0:h}
....
\end{example}
\begin{example}{ex0:i}
....
\end{example}
\begin{example}{ex0:j}
....
\end{example}
\begin{example9}{ex0:k}
\LR{A good numeroted}
\end{example9}
\begin{example}{ex0:l}
\LR{A bad numeroted}
\end{example}
\LR{but the reference \ref{ex0:k} of the ten-th exercise is bad...}

 \end{document}

答案1

如果要引用计数器,则必须将其增加\refstepcounter。这会更改标签使用的内部命令。

因此你应该增加计数器

\addtocounter{\tcbcounter}{8}\refstepcounter{tcbcounter}}

以便最后一步能够正确完成。

相关内容