jlreq icon indicating copy to clipboard operation
jlreq copied to clipboard

[TeXQA:3859] jlreq で hyperref の \nameref を使いたい

Open munepi opened this issue 1 year ago • 2 comments

[TeXQA:3859] jlreq で hyperref の \nameref を使いたい https://okumuralab.org/tex/mod/forum/discuss.php?d=3859

は、現状のhyperrefパッケージの実装に場当たり的に習うと、\jlreq@BlockHeading@start@ii\NR@gettitle{<running heading>}を入れることになりそうですが…、nameref側の実装が変わったらめんどいので、\@part, \@spart, \@chapter, \@schapter, \@ssect柱文字列だけの互換性だけ作っとけば良さそうな気もします。

%#!lualatex --synctex=1 d3859
\documentclass[luatex,article]{jlreq}
\usepackage[unicode]{hyperref}
\makeatletter
\@ifpackageloaded{nameref}{%
\let\clone@jlreq@BlockHeading@start@ii\jlreq@BlockHeading@start@ii
\long\def\jlreq@BlockHeading@start@ii#1#2#3#4#5#6#7#8{%
  \NR@gettitle{#5}\clone@jlreq@BlockHeading@start@ii{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
}
}{}
\makeatother

\begin{document}
\section{test1}
\label{sec:test1}

節の名前を参照しています。 \ref{sec:test2} の「\nameref{sec:test2}」と \ref{sec:test3} の「\nameref{sec:test3}」です。

節の名前を参照しています。 \ref{sec:日本語のラベル} の「\nameref{sec:日本語のラベル}」です。

\section{test2 は日本語を含む節の名前}
\label{sec:test2}

\section{test3}
\label{sec:test3}

節の名前を参照しています。 \ref{sec:test1} の「\nameref{sec:test1}」と \ref{sec:test2} の「\nameref{sec:test2}」です。

\section{test4}
\label{sec:日本語のラベル}

\end{document}

munepi avatar Nov 09 '24 12:11 munepi