TransWikia.com

Section roman and section cross-reference arabic

TeX - LaTeX Asked on November 23, 2021

I want to change just the section cross-reference from roman to Arabic numbers in a paper using the IEEE template. An MWE of my problem is

documentclass[journal]{IEEEtran} 
begin{document} 
Section~ref{sec-test} is incorrect. 
section{My Test}label{sec-test}
end{document}

The text showed in the phrase must be: “Section 1 is incorrect.” (Arabic number) But the displayed text is “Section I is incorrect.” (Roman number) The section title must remain “Section I” (Roman number).

Does someone know how to set this up?

2 Answers

The specification is quite bizarre: if a section is numbered “I” (with a Roman numeral), also cross-references should follow the scheme.

Anyway, it is quite easy to provide the required numbering scheme, because IEEEtran detaches title numbering from the related counter's representation: for the numbering of section it uses thesectiondis. Thus the following works.

documentclass[journal]{IEEEtran}

renewcommandthesection{arabic{section}}
renewcommandthesectiondis{Roman{section}.}

begin{document}

Section~ref{sec-test} is incorrect.

section{My Test}label{sec-test}

end{document}

enter image description here

Answered by egreg on November 23, 2021

The following minimal example updates refstepcounter in a way that re-stores @currentlabel using arabic rather than Roman specifically when the section counter is being stepped. Both subsections and subsubsections require similar treatment and have been added as well.

enter image description here

documentclass[journal]{IEEEtran} 

makeatletter
letoldrefstepcounterrefstepcounter
renewcommand{refstepcounter}[1]{%
  oldrefstepcounter{#1}% Regular refstepcounter
  ifnumpdfstrcmp{#1}{section}=0
    % Update @currentlabel for section to be arabic
    edef@currentlabel{arabic{section}}%
  else
    ifnumpdfstrcmp{#1}{subsection}=0
      % Update @currentlabel for subsection to match default + arabic section counter
      edef@currentlabel{arabic{section}-Alph{subsection}}%
    else
      ifnumpdfstrcmp{#1}{subsubsection}=0
        % Update @currentlabel to match default for subsubsection + arabic for section
        edef@currentlabel{arabic{section}-Alph{subsection}arabic{subsubsection}}%
      fi
    fi
  fi
}
makeatother

begin{document} 

Section~ref{sec-test} is correct.

section{My Test}label{sec-test}

end{document}

This has not been extensively tested and therefore comes with no guarantee.

Answered by Werner on November 23, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP