
나는 사용하고있다alnumsec영숫자 섹션 번호 매기기의 경우. 패키지 \myreference
로 참조를 생성하는 새로운 명령이 있습니다 hyperref
. 이것은 잘 작동합니다.
\myreference
내가 작성한 모든 각주는 점 하나로 끝나기를 원합니다 . 이것이 섹션(예: I.1.)이 이미 점으로 끝나는지 확인해야 하는 이유입니다. 사용해 보았지만 \IfEndWith{\detokenize{\ref{#1}}}{.}{(already has dot)}{.}
작동하지 않습니다.
이것은 나의 예입니다:
\documentclass[]{report}
\usepackage{hyperref}
\usepackage{xstring}
\usepackage{alnumsec}
\alnumsectionlevels{1}{section,subsection,subsubsection}
\alnumsecstyle{Ral}
\newcommand{\myreference}[1]{
\footnote{
See page \pageref{#1}, section \ref{#1}
\IfEndWith{\detokenize{\ref{#1}}}{.}{(already has dot)}{.}
}
}
\begin{document}
\section{Section}\label{a}
First section\myreference{a}
\subsection{jkhahjkas}
My subsection.
\subsubsection{three}\label{b}
Third section\myreference{b}
\end{document}
\endinput
답변1
\ref
확장이 불가능하므로 \IfEndWith
실제로 작동할 수 없지만 \ref
패키지 \getrefnumber
에서는 refcount
확장이 가능합니다. 어쨌든 패키지가 로드됩니다 hyperref
.
\documentclass[]{report}
\usepackage{xstring}
\usepackage{hyperref}
\usepackage{alnumsec}
\alnumsectionlevels{1}{section,subsection,subsubsection}
\alnumsecstyle{Ral}
\newcommand{\myreference}[1]{
\footnote{
See page \pageref{#1}, section \ref{#1}
\IfEndWith{\getrefnumber{#1}}{.}{(already has dot)}{.}
}
}
\begin{document}
\section{Section}\label{a}
First section\myreference{a}
\subsection{jkhahjkas}
My subsection.
\subsubsection{three}\label{b}
Third section\myreference{b}
\end{document}
답변2
\@addpunct
현재 공간 인자가 1000보다 큰 경우 인수를 추가하지 않는 from을 사용할 수 있습니다. amsthm
그러나 이를 위해서는 로마 숫자 뒤의 공간 인자를 약간 변경해야 합니다.
\documentclass[]{report}
\usepackage{amsthm} % for \@addpunct
\usepackage{hyperref}
\usepackage{alnumsec}
\alnumsectionlevels{1}{section,subsection,subsubsection}
\alnumsecstyle{Ral}
\protected\def\Romanperiod{\spacefactor1001 .}
\surroundRoman{}{\Romanperiod}
\makeatletter
\newcommand{\myreference}[1]{% <-- don't forget
\footnote{% <-- don't forget
See page~\pageref{#1}, section~\ref{#1}\@addpunct{.}% <-- don't forget
}% <-- don't forget
}
\makeatother
\begin{document}
\section{Section}\label{a}
First section\myreference{a}
\subsection{jkhahjkas}
My subsection.
\subsubsection{three}\label{b}
Third section\myreference{b}
\end{document}
매크로 정의에서 줄 끝을 가리는 것을 잊지 마세요.