hyperrefを読み込むと\refの直前の\nolinebreakが効かなくなる

hyperrefを読み込むと\refの直前の\nolinebreakが効かなくなる

- x の投稿
返信数: 4

「図1」のような出力をするマクロ\reffigを書いています. 「図」と数字の間に改行が入らないようにしたいのですが,hyperrefを読み込んでいる場合にうまくいきません. hyperrefがなければ問題ありません. hyperrefがあっても改行されないようにするにはどうしたらよいでしょうか.

現在使用しているうまくいかない例を載せます:

\documentclass[dvipdfmx,uplatex]{jsarticle}
\setlength{\textwidth}{10zw}
\usepackage{hyperref,pxjahyper}
\newcommand{\reffig}[1]{図\nolinebreak\ref{#1}}
\begin{document}
ああああああああ\reffig{fig:a}あ
\begin{figure}
  \caption{い}\label{fig:a}
\end{figure}
\end{document}

\nolinebreakの代わりに~を使えば問題ないのですが,スペースとxkanjiskipが混ざってしまうため避けたいです. また,\mboxに入れて改行できなくするというのも考えましたが,xkanjiskipが伸縮できなくなってしまうのでこれも避けたいです.

x への返信

Re: hyperrefを読み込むと\refの直前の\nolinebreakが効かなくなる

- Z. R. の投稿

もし「\ref の出力は欧文文字である」という前提が成り立つなら、\xkanjiskip を明示的に入れることでこの問題を回避できます。

\newcommand{\reffig}[1]{図\nolinebreak\hspace{\xkanjiskip}\ref{#1}}
x への返信

Re: hyperrefを読み込むと\refの直前の\nolinebreakが効かなくなる

- Z. R. の投稿

\ref{} だけ\mbox に入れることでも(恐らく)問題を回避できるようです。

\newcommand{\reffig}[1]{図\nolinebreak\mbox{\ref{#1}}}

(この場合 xkanjiskip はボックスの外に入るので伸縮できる。)

Z. R. への返信

Re: hyperrefを読み込むと\refの直前の\nolinebreakが効かなくなる

- x の投稿

ありがとうございます. \xkanjiskipを明示的に入れるというのは思いつきませんでした. \mboxの方も上手くいきました.

x への返信

Re: hyperrefを読み込むと\refの直前の\nolinebreakが効かなくなる

- mizzo quimara の投稿
ホーム » ガイド » DNSアンロッカーCMウィルスのクローム、ファイアーフォックス、インターネットエクスプローラでの削除方法

この記事は殆どのウェブページに気になるDNSアンロッカーのCMで苦しむユーザのために書いています。

ブラウザーのプラグインや延長機能のほとんどは役に立つものですが、ウェブの楽しみを妨げるものもあります。DNSアンロッカーにかかってしまうと、かなり不愉快な経験をするユーザも多く、解決策はなかなか見つかりません。ウィルス検索ツールにはアドウェアとして発見され、このソフトはアドウェア以上にもCMなどをウェブサイトに表示させたり、感染されたパソコンが操られます。厄介なCMはDNSUnlockerによるCMですぐにわかります。これらのCMは一見だけでは前からあったものなど、少しのサイトでしか表示sれないとか思われがちですが、違います。バグ自体はPC内に潜め、実行中の内、ずっとCMを表示し続けます。