abenori / jlreq

Other
127 stars 18 forks source link

\contentsname と \indexname 中の空白について #13

Closed yudai-nkt closed 6 years ago

yudai-nkt commented 6 years ago

クラスファイル中で \contentsname\indexname を定義する際に,文字の間に空白を挟んでいるのは大きなサイズで出力した時の見栄えなど何か意図的な理由があるのでしょうか?

https://github.com/abenori/jlreq/blob/3e748c9d181f484afe22641cd111ed7d4275d63d/jlreq.cls#L4398-L4400

基本的には問題ないのですが,目次を PDF のブックマークに含めるために

\documentclass[uplatex,article,dvipdfmx]{jlreq}
\usepackage{hyperref}  % あるいは \usepackage{bookmark}
\usepackage{pxjahyper}
\begin{document}
\tableofcontents
\addcontentsline{toc}{section}{\contentsname}
\section{目次ではない}
\end{document}

のような文書を作成すると,.out ファイルへ \BOOKMARK [1][-]{Doc-Start}{目 次}{}% 1 と書き出されて最終的に(少なくとも私は望まない)空白文字がブックマークに挿入されます.

2017-11-21 14 42 00

ユーザーが \contentsname を再定義するなり \addcontentsline{toc}{section}{目次} とベタで書けば済む話ですしこういう設計と言われればそれまでですが,一方で日本語としては不要な文字が両命令に含まれるのはなんらかの意図があるにせよ少々悪手なようにも感じます.少し気になったのでお聞きした次第です.

abenori commented 6 years ago

理由はただ一つで「jarticleがこうなっていたから」です.ただ実は自分も少し気になっていたので,この際ですから(いただいたPRのようなマイルドなものではなく)\newcommand{\contentsname}{目次}としちゃいましょうかね.

yudai-nkt commented 6 years ago

主要な和文文書クラスを見てみると,(u)pLaTeX の標準クラス由来のものは「目 次」で JS 由来のものは「目次」のようですね.個人的には \newcommand{\contentsname}{目次} でもまったく問題はないので,abenori さんも多少気になっていたということであれば破壊的に変更するかも含めてお任せしようと思います(これが原因で改行・改ページが変わるような事態も考えにくいですし).

abenori commented 6 years ago

後方互換性はあまり強くは守ろうという気も無いので(まだ新しいクラスファイルだし,ということもありますが)スペースを除いてしまいました. 結構デフォルトはjarticleから持ってきているというのも多いので,他にも気になることがあれば教えてください.