Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
munepi opened this issue Nov 9, 2024 · 2 comments
Open

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

munepi opened this issue Nov 9, 2024 · 2 comments

Comments

@munepi
Copy link

munepi commented Nov 9, 2024

[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}
@mako09
Copy link

mako09 commented Nov 10, 2024

フォーラムへの最初の報告者です。対応ありがとうございます。

\label が aux ファイルへの \newlabel の行を書き出す動作は、既に LaTex 本体の機能です。\@currentlabelname に値をセットすることは、もはや hyperref とも nameref とも無関係と言えると思いました。

@mako09
Copy link

mako09 commented Nov 10, 2024

もう一つ要望を、忘れないうちに書いておきます。

同行見出しや窓見出しこそ、節の名前を aux に書き出してほしい、ということです。

一般に、別行見出し(sectionやsubsection)には節番号が付きます。それに対して同行見出し(paragraphや独自の窓見出し)に節番号は付きません。ユーザーが文章の中で参照して言及したいとき、前者については

詳細は第\ref{sec5}節で述べる。

のように節番号を使うのが一般的ですが、後者については番号がないので

このことは「\nameref{para2}」(\pageref{para2}ページ)で指摘したとおりである。

のようにその節の名前そのものを使って示したくなるからです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants