ceo.styでの問題番号の書式変更について

ceo.styでの問題番号の書式変更について

- よう ちゃん の投稿
返信数: 15
TeXでceo.styを使って問題作成をしています。
_begin{reidai}
ホゲホゲ
_end{reidai}
_begin{mondai}
ほげほげ
_end{mondai}
を使うと問題番号を自動で振ってくれるので大変ありがたく使用しています。
この問題番号の書式を自分好みに修正したいと思っています。
普通のsffamilyで「例題4−3」(セクション番号と連番を併記)と表示できるようにしたいです。
問題の方も同様に、sffamilyで「4−3」(セクション番号と連番を併記)と表示できるようにしたいです。
どのように修正すれば良いでしょうか?
ちなみに、CloudLaTeXでpLaTeXを使用しています。
添付 10D3BF5D-27B6-43A7-B308-4C12426E57B4.jpeg
よう ちゃん への返信

Re: ceo.styでの問題番号の書式変更について

- 和田 勇 の投稿

改造の目安

  • \begin{reidai} ... \end{reidai} と \begin{mondai} ... \end{mondai} の定義では共通の \@mondai を利用している

    ceo.sty
    1216:\def\mondai{\@mondai{\Mondai}}
    1217-\def\endmondai{\@endmondai}
    
    1272:\def\reidai{\@mondai{\Reidai}}
    1273-\def\endreidai{\@endreidai}
    
  • \@mondai は list 構造を利用して与えられた引数の情報を \item[...] として表示している(ceo.sty を見ると \@mondai の 1214 行目)

    ceo.sty
    1199:\def\@mondai#1{%#1:\Mondai etc.
    1200-   \alist{}{%
    ... リスト構造の設定
    1213-      \advance\itemindent-\leftmargin}%
    1214-   \item[#1]} ←← ここで表示
    
  • \Mondai (含む関連情報)と \Reidai の定義

    ceo.sty
    947:\renewcommand{\themondaibango}{\kigoub{\arabic{mondaibango}}} %% ここに section 番号を
    948:\newcommand{\Mondai}[1][]{\refstepcounter{mondaibango}%
    949-#1\themondaibango{\ba{.}}} %% 最後 . になっているので暫定で空きスペースに置き換えてみる
    
    1072:\renewcommand{\thereidaibango}{\reidaid\;\;\ceorb{\arabic{reidaibango}.\;\;}} %% ここに section 番号を
    1073:\newcommand{\Reidai}[1][]{\refstepcounter{reidaibango}#1\thereidaibango} %% こっちは変更しなくて良いようだ
    

改造

  • その1 ご希望は「-」だがクイックハックでは暫定で「.」とした

    \renewcommand{\themondaibango}{\kigoub{\arabic{section}{.}\arabic{mondaibango}}}%% 「-」でなく「.」で実装
    \renewcommand{\Mondai}[1][]{\refstepcounter{mondaibango}%
    #1\themondaibango{{\quad}}}%%% \quad で番号の後に若干空きを入れているが \, などで適宜調整
    
    \renewcommand{\thereidaibango}{\reidaid\;\;\ceorb{\thesection{.}\arabic{reidaibango}\;\;}}%% 「-」でなく「.」で実装
    
  • その2 問題番号や例題番号はドキュメントで連番になっているので section 毎に採番したい場合は section を別名で定義してみました。

    documentclass が指定されていなかったので section の再定義ではなく別名にしました。

    不要であれば採択されなくても良いです。

    \def\SECTION#1{
        リセットしたい番号に 0 を設定
        \section{#1}
    }
    

その他気がついた「参照」について

  • 参照を利用する場合は以下のようにしてください。

    \Mondai[\label{hoge}]
    

添付ファイル情報

   Archive:  ceo-test.zip
   Zip file size: 20774 bytes, number of entries: 4
   -rw-r--r--  3.0 unx      536 tx defN 21-Jun-14 11:15 ceo-test/test.aux
   -rw-r--r--  3.0 unx    31412 tx defN 21-Jun-14 11:15 ceo-test/test.log
   -rw-r--r--  3.0 unx    14308 bx defN 21-Jun-14 11:15 ceo-test/test.pdf
   -rw-r--r--  3.0 unx     2397 tx defN 21-Jun-14 11:15 ceo-test/test.tex
   4 files, 48653 bytes uncompressed, 20104 bytes compressed:  58.7%
和田 勇 への返信

Re: ceo.styでの問題番号の書式変更について

- よう ちゃん の投稿
早速ありがとうございます。
documentclassを書き忘れていました。。。

\documentclass[10pt,b5paper,fleqn,papersize,dvipdfmx]{jsarticlek}
です。

どこかで失敗しました。。。

/usr/local/texlive/texmf-local/tex/latex/local/ceo/ceo.sty line 1197 ! LaTeX Error: Command \nagamaru already defined. Or name \end... illegal, see p.192 of the manual. ...]{\refstepcounter{naganum}#1\thenaganum}

/usr/local/texlive/texmf-local/tex/latex/local/ceo/ceo.sty line 1197 ! Emergency stop. ... ...]{\refstepcounter{naganum}#1\thenaganum}

https://texwiki.texjp.org/?TeX%20%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8#s9ac5238

No pages of output.

よう ちゃん への返信

Re: ceo.styでの問題番号の書式変更について

- 和田 勇 の投稿

動揺せずエラーを読みましょう

エラー部分を取りさせているのですからそこに書かれている内容を辞書をひいたり、コピペしてインターネット検索してみましょう。

     \\nagamaru already defined.

というのですから、ceo.sty の別のところとか、拡張した部分とかどこかで nagamaru を既に定義してあるからです。

なお Emaergency の方は、処理できないエラーが発生したので今回は緊急停止したというような意味合いです。

検索

利用されている OS の情報や editor が不明なので、具体的にはかけませんが /usr/local/texlive/texmf-local/tex/latex/local/ceo/ceo.sty や documentclass が書かれたファイルのどこにあるか調べてください。

unix 系のコマンドであれば grep を使ったり、vscode 使っていれば検索することも可能です。

エラー箇所の推定

  • エラー対策の基本「最後に修正した箇所を疑え」

  • usepackage{ceo} の前に nagamaru は定義できません

    \documentclass
    nagamaru に関する定義
    \usepackage{ceo}
    
  • ceo.sty で nagamaru を複数箇所で定義することはできません

ceo.sty を直接改造されたのでしょうか?

nagamaru の定義されている行数が違いますね。1197 行目となっていますが、私のところでは 1140 行目です。

     texmf/tex/latex/ceo/ceo.sty
     1140:\newcommand{\nagamaru}[1][]{\refstepcounter{naganum}#1\thenaganum}

何か ceo.sty を直接改造されましたか? 改造されたら差分か ceo.sty を添付ファイルとしてアップしてください。

追伸

このフォーラムに質問する際の注意事項読まれましたか?

「動かない」「エラ=」だとだけ言われてもなんとも答えようがありません。

このフォーラムでは、タイプセットする際のソースファイル、タイプセットした際にできるログファイルも必要になルことがあります。

今回のケースであれば、とりあえず以下の三ファイルが必要になりますので zip などでアーカイブしたものをアップしてください。

  1. documentclass を含んだファイル

  2. タイプセット時にできる拡張子 .log のログファイル

  3. /usr/local/texlive/texmf-local/tex/latex/local/ceo/ceo.sty そのものか、差分情報

和田 勇 への返信

Re: ceo.styでの問題番号の書式変更について

- よう ちゃん の投稿
OSはWindows10Proです。
エディターはCloudLaTeXを使用と既に書いています。
ソースファイルは上に貼ってありますが。
ログは貼り忘れました、すみません。
ceo.styは直接改造していませんし、
CloudLaTeXにあるものを使用していますから、改造できないと思っています。
注意事項は読みました。
新参者は来るなと言われている気分です。非常に敷居の高いフォーラムですね・・・
よう ちゃん への返信

Re: ceo.styでの問題番号の書式変更について

- 和田 勇 の投稿

最初の投稿で添付ファイルがあるのに気がついていませんでした。 そのためご気分を害させてしまう書き込みをしてしまい申し訳ございません。

また、私は CloudLaTeX を使っていないので、答えるべきではなかったのですね。

さて、この添付された main.tex をplatex で処理すると別の宣言degreeが重複でエラーになるので、emath を調べると最近いろいろと改定されているので、改定されたものに置き換えたところ、同様に nagamaru でエラーになりました。 CloudLaTeX 側の emath.sty は Package: emath 2018/01/21 2.81 でしたが、先ほどダウンロードしたものは Package: emath 2021/02/06 2.83 と若干上がっています。

degree の方は emath 側でコメントアウトされていましたが、 nagamaru の方は一部残っているようで、二重定義エラーになるようです。ちなみに main.tex から emath をコメントアウトするとタイプセットはできました。

参考情報です。行番号は私の環境のものです。

    main.tex
   \usepackage{emath}
   \usepackage{ceo}

   emath.sty
   2072:\newcommand{\nagamarucnt}[1]{\protect\nagamaru{\arabic{#1}}}%
   2179:\let\nagamaru\EMnagamaru ←ここ?
   2181:  \def\nagamaru@thickness{1pt}\mbox{\normalfont\bfseries\EMnagamaru{#1}}}}%
   2182:\def\knagamaru#1{\nagamaru[1]{\textcolor{white}{#1}}}
   3666:%  \@ifundefined{nagamaru}{%
   3668:%      \let\nagamaru\EMnagamaru
   3670:%      \let\nagamaru\emNagamaru
   3899:  \let\nagamaru\undefined  ←ここ?

   ceo.sty
   1140:\newcommand{\nagamaru}[1][]{\refstepcounter{naganum}#1\thenaganum}

以上から \nagamaru already defined. のエラーに関しては emath の掲示板に『「emath.sty」と「ceo.sty」を併用すると\nagamaru already defined. とエラーとなる』旨質問されてみてはいかがでしょうか?

改修されたら、emath.sty を main.tex と同じところに置いてテストして OK であれば CloudLaTeX 側にパッケージのアップデート依頼などをリクエストすることになるかと思います。

PS 当初の質問・要望が emath を使わないで main.tex で問題なく利用できるかの確認は明日にします。

和田 勇 への返信

Re: ceo.styでの問題番号の書式変更について

- 帯田 木偶太 の投稿
ceo を直接読込まずに、\usepackage[ceo]{emth}\relax にすれば
よいのではなかったかと…

cf. http://emath.s40.xrea.com/ydir/Wiki/index.php?ceo-LO
帯田 木偶太 への返信

Re: ceo.styでの問題番号の書式変更について

- 和田 勇 の投稿

\usepackage[ceo]{emath}\relax だと以下のように別の問題を引き起こしてしまいます。

     ...省略... (./emath.sty
     (./emathC.sty (./EMhairetu.sty)

     ! LaTeX hooks Error: Missing \PopDefaultHookLabel.
    (hooks)              The label 'emathC' was pushed but never popped.
    (hooks)              Something is wrong.

emath を以下のように使用しないタイプセットを実施したものを確認しましたが、私の意図通りカスタマイズできていました

   --- ~/Downloads/discussion/18777//yochan/main.tex    2021-06-15 23:37:30.000000000 +0900
   +++ main.tex 2021-06-16 09:27:31.418447892 +0900
   @@ -4,7 +4,7 @@
    \usepackage{graphicx}
    \usepackage{pdfpages}
    \usepackage{here}
   -\usepackage{emath}
   +%%\usepackage{emath}
    \usepackage{ceo}
    \pagestyle{empty}
和田 勇 への返信

Re: ceo.styでの問題番号の書式変更について

- 帯田 木偶太 の投稿
》 \usepackage[ceo]{emath}\relax だと以下のように別の問題を引き起こしてしまいます。
》      ...省略... (./emath.sty
》      (./emathC.sty (./EMhairetu.sty)

》      ! LaTeX hooks Error: Missing \PopDefaultHookLabel.
》    (hooks)              The label 'emathC' was pushed but never popped.
》    (hooks)              Something is wrong.

質問者からの発言
    https://okumuralab.org/tex/mod/forum/discuss.php?d=3133&parent=18777
に添付のソースから、2行コメントアウトして ceo オプション付きでの emath の
読込みを追加したものを、CloudLaTeX で処理したところ、警告は多量に出ましたが、
エラーは生じませんでした。ソースとログを添付します。
※  ただし、ログは、ファイルとしてダウンロードしたものではなく、
    文字列としてコピーして、エディタに貼り付けたものです。

CloudLaTeX と和田さんの環境とで、ceo や emath のバージョンとかが
違ってたりしないでしょうか。
※  当方のローカルな環境には ceo は入れておらず、emath も古いままなので
    直接確認できず申し訳ないのですが…。
帯田 木偶太 への返信

Re: ceo.styでの問題番号の書式変更について

- 和田 勇 の投稿

帯田 さん追跡調査ありがとうございます。 現状の CloudLaTeX では、大丈夫とのことで一安心ですが、 最新の改訂版emath をそのままバージョンアップされたときのことを危惧しております。

さて、ceo のバージョンも emath のも CloudLaTeX と私のとでは異なるようだということは認識しています。 以下のレポートを参考にしてください。

ceo.sty

  • ceo.sty は、質問者の nagamaru に関する行番号が異なるので CloudLaTeX のものとは異なると思われます
  • タイプセット時には ceo.sty はバージョン情報や更新日情報を出力しないので色々な情報を収集してみました
  • ダウンロードと ceo.sty の各種情報

    # ダウンロード URL
    # http://hocsom.com/links.html に記されたceosty.zip(当社スタッフ以外用ceostyのダウンロード)をダウンロード
    url=http://hocsom.com/ceosty_settei.zip
    curl -L -O $url
    
    # zip ファイルの ceo.sty のファイルスタンプ
    zipfile=$(basename $url)
    7z l $zipfile | grep ceo.sty
    2014-01-20 23:15:34 ....A        92469        17815  ceosty-UTF-8 -2/ceosty/into latex/ceo/ceo.sty
    
    # zip ファイル展開 (ファイル名の文字コード対策で unar を使う)
    unar $zipfile
    
    echo       target=$(find . -name ceo.sty) $target
    ./ceosty-UTF-8 -2/ceosty/into latex/ceo/ceo.sty
    
    # 展開したファイルの ceo.sty のファイルスタンプ情報・行数など・ファイルハッシュ
    ls -l --time-style=full-iso $target ; wc $target ; sha1sum $target
    -rwxr-xr-x 1 i-wada wheel 92469 2014-01-20 23:15:34.000000000 +0900 './ceosty-UTF-8 -2/ceosty/into latex/ceo/ceo.sty'
     2398  3532 92469 ./ceosty-UTF-8 -2/ceosty/into latex/ceo/ceo.sty
    1874167f92a6c292fc166a1540768b33384a9ee7  ./ceosty-UTF-8 -2/ceosty/into latex/ceo/ceo.sty
    
    # ceo.sty に書き込まれた日付情報(ceo.sty にはバージョン情報が見当たらないので)
    grep '20..' $target | nkf -w
    % Create by Toru Yasuda, May 2005:
    \def\akid{\hbox{\vrule width0pt height20pt depth15pt}}
    \def\@verb@less{\textless}%       2006-02-02 追加
    \def\@verb@greater{\textgreater}% 2006-02-02 追加
        \else\ifnum `\<=\count@   {\@verb@less}%    2006-02-02 追加
        \else\ifnum `\>=\count@   {\@verb@greater}% 2006-02-02 追加
        \fi\fi\fi\fi\fi\fi\fi\fi\fi % 2006-02-02: \fi を 2 個追加
    %上ではまずいらしい.2008-11-28に下記に変更
    

emath.sty

  • バージョン情報

    バージョン情報
    質問者 Package: emath 2018/01/21 2.81
    和 田 Package: emath 2021/02/06 2.83
  • 和田が http://emath.s40.xrea.com/index1.html からダウンロードした情報(→丸ごとパックに訂正版を上書き)

    タイトル URL
    丸ごとパック http://emath.s40.xrea.com/allinone.htm
    訂正版 http://emath.s40.xrea.com/teisei.htm
和田 勇 への返信

Re: ceo.styでの問題番号の書式変更について

- 帯田 木偶太 の投稿
ceo と emath のそれぞれ最新版をダウンロードして、質問者さん提示のソースを
ローカルでタイプセットしてみましたが、今回の問題とは関係なさそうな
エラーがあれこれ出てしまいました。TeX そのものが古いし、フルインストールで
ないので、無理っぽいので、挫折。

CloudLaTeX のプロジェクト内に、最新版の ceo.sty をアップロードし(ceo の付随
パッケージ類はアップロードせず)、件のソースをタイプセットしてみると、
和田さんと同様、
        ceo.sty
        line 1140
        ! LaTeX Error: Command \nagamaru already defined.
                      Or name \end... illegal, see p.192 of the manual.
    ...]{\refstepcounter{naganum}#1\thenaganum}
とエラーになりました。
従って、CloudLaTeX にある ceo は、最新ではなさそうです。
そして CloudLaTeX でのログによれば、emath のバージョンは 2018/01/21 2.81 と
なっており、質問者さんのログにあるバージョン表記と一致します。
さらに、最新版の emath.sty も CloudLaTeX のプロジェクト内にアップロードして
タイプセットしてみました。
※  これが、和田さんのローカルでタイプセットされたのと、概ね同じ
    環境なのだろうと思いますが…
結果は
        ceo.sty
        line 1140
        ! LaTeX Error: Command \nagamaru already defined.
                      Or name \end... illegal, see p.192 of the manual.
        ...]{\refstepcounter{naganum}#1\thenaganum}
となり、変化ありません。

これまでの経過から、次のように推測できるかと。

    1.  CloudLaTeX では、ceo も emath も最新ではない。
    2.  CloudLaTeX でのタイプセットを前提にすれば、質問者さんの
        問題は、\usepackage[ceo]{emath} で解決する。
        少なくとも、エラーは生じなくなる。
    3.  emath のパッケージ・オプション ceo は、最新の ceo.sty には
        追随できていない。
帯田 木偶太 への返信

Re: ceo.styでの問題番号の書式変更について

- 和田 勇 の投稿

概ね OK ですが二点。

一つは ceo に関しては、https://cloudlatex.io/ceosty に以下のように 記述されているので CloudLaTeX のが古いバージョンだとは言い切れ ないようです。

    なお、ホクソム社のページにて個人利用用途限定で無料配布され
    ております公開版の ceo.sty と比較して、Cloud LaTeX に搭載
    されました ceo.sty はフルバージョンとなっており、『大学入
    試問題解答集』や、東京出版『東大数学で1点でも多く取る方法』
    で使われている記号が追加で利用可能となっています。

もう一点、質問者さんが記述されているように個別に emath ceo を個別に usepackage で利用できるようになって欲しいのではないかと思います。

和田 勇 への返信

Re: ceo.styでの問題番号の書式変更について

- 帯田 木偶太 の投稿
CloudLaTeX の環境では、先に ceo を読込んで、後から emath を読込むとエラーにならないようで…。

※  どうも私は emath の ceo オプションの意味を取り違えていたような気がします。
    つまり、emath の作者さん(tDB さん)の意図としては、ceo のあとから emath を
    読込め、衝突する部分についてどちらの定義を優先するかは、パッケージ・オップションで
    切替えよ、ということのような。
帯田 木偶太 への返信

Re: ceo.styでの問題番号の書式変更について

- 和田 勇 の投稿

パッケージ読み込み順序

なるほどと思いローカル環境でも ceo emath の順でテストしたら OK でした。

emath の ceo オプションについては I have no idea です :-(

和田 勇 への返信

Re: ceo.styでの問題番号の書式変更について

- 帯田 木偶太 の投稿
パッケージの機能がぶつかったときはロード順を替えてみる…
あるあるネタのはずなのに、私も和田さんもうっかりしてましたね。

emath には結構充実したドキュメントがあったはずと思いましたが、
今回、配布元を見ても探し当てることができず。
私の記憶違いなのか、emathWiKi に移行したので、配布されなくなったのか。
でも、Wiki とか、ヘルプ・ファイルとかだと、こういった俯瞰的な情報って
見落としたり、探し損ねたりしがちで…。

あと、蛇足ながら、配布元の記述によれば、現在の emath のインストールは、
訂正版をしかるべき場所に置けば済むようです。
丸ごとパックを入れてさらに上書きという手順は不要になっているようですね。
帯田 木偶太 への返信

Re: ceo.styでの問題番号の書式変更について

- 和田 勇 の投稿

あるあるネタ関連

  • 普段 ceo や emath 使っていないし、最近新しいパッケージを使う機会もないので忘れていました :-(

疑問

  • 対処の方向性は見えたけど ...
  • 質問者さんは私のカスタマイズ案をほぼそのまま main.tex に書き加えたように思いますが ...
  • 書き加える前も emath ceo の順でタイプセットできていたのだろうか?
  • 書き加えた結果 nagamaru の二重定義を発生させたのだろうか?