Skip to content

Instantly share code, notes, and snippets.

@zr-tex8r
Last active February 25, 2025 14:28
Show Gist options
  • Save zr-tex8r/83cca70798584aeecd7c87f74f1613c7 to your computer and use it in GitHub Desktop.
Save zr-tex8r/83cca70798584aeecd7c87f74f1613c7 to your computer and use it in GitHub Desktop.
LaTeX:算用数字のカウンタ書式をもつ参照を漢数字で出力する

pxkansujiref

機能

  • \kansujiref{‹ラベル›}:[命令]カウンタ値を漢数字で出力する\ref
  • \kansujipageref{‹ラベル›}:[命令]カウンタ値を漢数字で出力する\pageref

注意

  • \kansujiref\kansujipagerefは完全展開可能ではない。
  • 参照対象のカウンタ書式(\the...)は算用数字(\arabic{...})での出力である必要がある。
    • \rensujiまたは\tatechuyokoが適用されていてもよい。

ライセンス

MITライセンスの下で配布される。

% This is 'pxkansujiref.sty'.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pxkansujiref}[2025/02/22 v0.2]
\def\pxqkr@pkgname{pxkansujiref}
%% packages
\RequirePackage{refcount}
%% \pxqkr@ext@gobble...{<arg>}
\def\pxqkr@ext@gobble#1#{\pxqkr@ext@gobble@a}
\def\pxqkr@ext@gobble@a#1{#1}
%%<*> \kansujiref{<label>}
\@ifdefinable\kansujiref{
\DeclareRobustCommand*\kansujiref[1]{%
\pxqkr@kansuji@ref\getrefnumber{#1}%
}
}
%%<*> \kansujipageref{<label>}
\@ifdefinable\kansujipageref{
\DeclareRobustCommand*\kansujipageref[1]{%
\pxqkr@kansuji@ref\getpagerefnumber{#1}%
}
}
%% \pxqkr@kansuji@ref\getXXnumber{<label>}
\def\pxqkr@kansuji@ref#1#2{%
\refused{#2}%
\IfRefUndefinedExpandable{#2}{%
\textbf{\kansuji0}%
}{%else
\begingroup
\let\rensuji\pxqkr@ext@gobble % for plext
\let\tatechuyoko\pxqkr@ext@gobble % for jlreq
\kansuji#1{#2}\relax
\endgroup
}%
}
%% EOF
%#!uplatex
\documentclass[uplatex,tate]{jlreq}
\usepackage{pxkansujiref}
\usepackage{bxjalipsum}
\begin{document}
\section{いろは}
\jalipsum{iroha}
\section{寿限無}\label{sec:jugemu}
\jalipsum{jugemu}
\section{まとめ}
\kansujiref{sec:jugemu}節
(\kansujipageref{sec:jugemu}ページ)の結果より、
{\TeX}はアレ。
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment