siunitxと※

siunitxと※

- liki の投稿
返信数: 7
test.tex
\documentclass[pdflatex,ja=standard]{bxjsarticle}
\usepackage{siunitx}
\begin{document}
※ほげ
\end{document}

pdflatex test

! Undefined control sequence.
<argument> \textreferencemark

bxjscls v1.1 2016/02/14
siunitx Released 2016/01/19
pdfTeX Version 3.14159265-2.6-1.40.16

※が\textreferencemarkと解釈されているっぽい?
siunitxパッケージを使わなければエラーは出ない。
※を消してsiunitxパッケージを使ってもエラーはでません。

pdflatexを使っているのはpdfxパッケージを使いたいからです。

liki への返信

Re: siunitxと※

- 前田 一貴 の投稿
以下でも再現しますね.

\documentclass[pdflatex,ja=standard]{bxjsarticle}
\DeclareFontEncoding{TS1}{}{}
\begin{document}
※ほげ
\end{document}

こうすると ts1enc.dfu というファイルが読み込まれるのですが,
この中で U+203B が \textreferencemark に紐付けられ,しかし
\textreferencemark は未定義なのでエラーということになるようです.

textcomp を読み込めば \textreferencemark が定義されますが,
フォントが変わってしまいます.とりあえず

\documentclass[pdflatex,ja=standard]{bxjsarticle}
\def\DeclareUnicodeCharacter#1#2{}
\usepackage{siunitx}
\begin{document}
※ほげ
\end{document}

とでもしておけば ts1enc.dfu の読み込みを無効化できそうです.
前田 一貴 への返信

Re: siunitxと※

- liki の投稿
ありがとうございます。
ややこしそうですね。明日、試してみます。
まだまだ日本語はuplatexが無難そうですね。
liki への返信

Re: siunitxと※

- aminophen の投稿
> pdflatexを使っているのはpdfxパッケージを使いたいからです。

pdfx パッケージを使ったからといって PDF/X-1a や PDF/A-1b の規格に合致するかどうかは
まったく保証されないということも,一応留意する必要があります。確認できるのは Acrobat だけでしょう。
aminophen への返信

Re: siunitxと※

- liki の投稿
本題とは外れてしまいますが、PDF/Aにするにはやはりtex → dvi → ps → pdf(Acrobat Distiller)という手順にすべきなんですね。
pdflatexかlualatexだけで完結したいですね。
ちなみにPDF/A検証ソフトなんてあるんでしょうか?
liki への返信

Re: siunitxと※

- Z. R. の投稿

BXJS クラス + pdflatex では bxcjkjatype パッケージが使われるので、その機能を利用することができます。

  • \CJKforced{<文字1つ>} で和文文字として出力できます。
    \documentclass[pdflatex,ja=standard]{bxjsarticle}
    \usepackage{siunitx}
    \begin{document}
    \CJKforced{※}ほげ
    \end{document}
    
  • \CJKforce{<文字列>} を実行すると、引数に書いた全ての文字が、それ以降和文として扱われます。
    \documentclass[pdflatex,ja=standard]{bxjsarticle}
    \usepackage{siunitx}
    \CJKforce{※}
    \begin{document}
    ※ほげ
    \end{document}
    

(おまけ) 実は BXJS クラスに \jsJaChar という命令があり、これはエンジン共通で使えます。

\documentclass[pdflatex,ja=standard]{bxjsarticle}
\usepackage{siunitx}
\begin{document}
\jsJaChar{※}ほげ
\end{document}

ただしこちらは undocumented であり将来変更される可能性があります。