改造の目安
\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%
/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}
No pages of output.
動揺せずエラーを読みましょう
エラー部分を取りさせているのですからそこに書かれている内容を辞書をひいたり、コピペしてインターネット検索してみましょう。
\\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 などでアーカイブしたものをアップしてください。
documentclass を含んだファイル
タイプセット時にできる拡張子 .log のログファイル
/usr/local/texlive/texmf-local/tex/latex/local/ceo/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 で問題なく利用できるかの確認は明日にします。
\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}
》 ...省略... (./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 も古いままなので
直接確認できず申し訳ないのですが…。
帯田 さん追跡調査ありがとうございます。 現状の 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
ローカルでタイプセットしてみましたが、今回の問題とは関係なさそうな
エラーがあれこれ出てしまいました。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 には
追随できていない。
概ね OK ですが二点。
一つは ceo に関しては、https://cloudlatex.io/ceosty に以下のように 記述されているので CloudLaTeX のが古いバージョンだとは言い切れ ないようです。
なお、ホクソム社のページにて個人利用用途限定で無料配布され
ております公開版の ceo.sty と比較して、Cloud LaTeX に搭載
されました ceo.sty はフルバージョンとなっており、『大学入
試問題解答集』や、東京出版『東大数学で1点でも多く取る方法』
で使われている記号が追加で利用可能となっています。
もう一点、質問者さんが記述されているように個別に emath ceo を個別に usepackage で利用できるようになって欲しいのではないかと思います。
あるあるネタのはずなのに、私も和田さんもうっかりしてましたね。
emath には結構充実したドキュメントがあったはずと思いましたが、
今回、配布元を見ても探し当てることができず。
私の記憶違いなのか、emathWiKi に移行したので、配布されなくなったのか。
でも、Wiki とか、ヘルプ・ファイルとかだと、こういった俯瞰的な情報って
見落としたり、探し損ねたりしがちで…。
あと、蛇足ながら、配布元の記述によれば、現在の emath のインストールは、
訂正版をしかるべき場所に置けば済むようです。
丸ごとパックを入れてさらに上書きという手順は不要になっているようですね。