
私は使用していますアルナムセック英数字のセクション番号付け用。パッケージ\myreference
への参照を作成するための新しいコマンドがありますhyperref
。これは正常に動作します。
作成したすべての脚注を\myreference
1 つのドットで終わらせたいです。このため、セクション (例: 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
現在のスペース係数が 1000 より大きい場合は、引数を追加しない\@addpunct
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}
マクロ定義の行末をマスクすることを忘れないでください。