mdframed.sty を利用すると\newcommandでエラーが出る。

mdframed.sty を利用すると\newcommandでエラーが出る。

- Merzong の投稿
返信数: 2
以下のようなプリアンブルを書くと,

! LaTeX Error: Missing \begin{document}
l.53 \newcommand{\qed}{\hfill $\square$}

というエラーが出てしまいます。 "! LaTeX Error: Missing \begin{document}" ということで http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?LaTeX%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#d3420228 などが原因と考えられるかなとも思ったのですが,他のtexファイル(具体的にはmdframedパッケージではなくtheoremパッケージの定理環境を用いたもの)では\newcommand{\qed}{\hfill \square}も正しく機能しているので,何が原因でエラーになるのか分かりませんでした。

原因が分かる方いましたら宜しくお願いします。

【エラーの出るプリアンブル】
\documentclass[uplatex,titlepage]{jsarticle}
\usepackage{amsmath,amssymb,bm,cases,url}
\usepackage[dvipdfmx,hiresbb]{graphicx}
\usepackage[dvipdfmx,bookmarks=true,pdfborder={0 0 0},pdfauthor={(私の名前)}]{hyperref}
\usepackage[dvipdfmx]{xcolor}
\usepackage{mdframed}
\usepackage{pxjahyper}
\setcounter{tocdepth}{2} %目次にはsubsectionまで記載(jsarticle)

%%%ここからmdframed環境での定理環境%%%
\mdfdefinestyle{theoremstyle}{
linecolor=gray!40,linewidth=.5pt,
backgroundcolor=gray!10,
skipabove=8pt,
skipbelow=5pt,
innerleftmargin=7pt,
innerrightmargin=7pt,
frametitlerule=true,
frametitlerulewidth=.5pt,
frametitlebackgroundcolor=gray!25,
frametitleaboveskip=0pt,
frametitlebelowskip=0pt,
innertopmargin=.4\baselineskip,
innerbottommargin=.4\baselineskip,
shadow=true,shadowsize=3pt,shadowcolor=black!15,
theoremseparator={},
}
\mdtheorem[style=theoremstyle]{defi}{定義}[section]
\mdtheorem[style=theoremstyle]{prop}[defi]{命題}
\mdtheorem[style=theoremstyle]{theo}[defi]{定理}
\mdtheorem[style=theoremstyle]{lemm}[defi]{補題}
\mdtheorem[style=theoremstyle]{coro}[defi]{系}
\mdtheorem[style=theoremstyle]{axi}[defi]{公理}
%%%ここまでmdframed環境での定理環境%%%

%%%ここから参照コマンドの定義%%%
\renewcommand{\eqref}[1]{式\,(\ref{#1})} %式参照
\newcommand{\figref}[1]{図\,\ref{#1}} %図参照
\newcommand{\tabref}[1]{表\,\ref{#1}} %表参照
\newcommand{\axiref}[1]{公理\,\ref{#1}} %公理参照
\newcommand{\theoref}[1]{定理\,\ref{#1}} %定理参照
\newcommand{\defiref}[1]{定義\,\ref{#1}} %定義参照
\newcommand{\lemmref}[1]{補題\,\ref{#1}} %補題参照
%%%ここまで参照コマンドの定義%%%

%%%ここから数学関連の記号の定義%%%
\newcommand{\eqdef}{\stackrel{\mathrm{def.}}{\equiv}} %定義記号
\newcommand{\dif}[2]{\dfrac{d #1}{d #2}} %導関数
\newcommand{\pdif}[2]{\dfrac{\partial #1}{\partial #2}} %偏導関数
\renewcommand{\div}{\operatorname{div}} %div
\newcommand{\rot}{\operatorname{rot}} %rot
\newcommand{\grad}{\operatorname{grad}} %grad
\newcommand{\qed}{\hfill $\square$} %証明終
%%%ここまで数学関連の記号の定義%%%

\renewcommand{\theequation}{\arabic{section}.\arabic{equation}} %数式番号を(section.通し番号)の形式に
\renewcommand{\labelitemi}{・} %itemize環境の第1レベルの記号
\newcommand{\var}{\operatorname{var}} %分散
\newcommand\cov{\operatorname{cov}} %共分散

\makeatletter
\@addtoreset{equation}{section} %数式番号を節ごとにリセット
\AtBeginDocument{\hypersetup{pdftitle={\@title}}} %pdfのタイトルを自動的に\titleにする
%%%ここからproof環境作成%%%
\newenvironment{proof}[1][\proofname]{\par
\normalfont
\topsep6\p@\@plus6\p@ \trivlist
\item[\hskip\labelsep{\bfseries #1}\@addpunct{\bfseries}]\ignorespaces
}{%
\endtrivlist
}
\newcommand{\proofname}{証明}
%%%ここまでproof環境作成%%%
\makeatother

Merzong への返信

Re: mdframed.sty を利用すると\newcommandでエラーが出る。

- 奥村 晴彦 の投稿
ちゃんと読んでいないので誤解しているかもしれませんが,これに

\begin{document}

ほげ

\end{document}

を付けただけでは私のところではエラーが出ませんでした。
奥村 晴彦 への返信

Re: mdframed.sty を利用すると\newcommandでエラーが出る。

- Merzong の投稿
奥村先生,回答ありがとうございます。

ご指摘を受けて,自分が作っていたtexファイル(foo.tex)の中身を丸ごと新規ファイル(bar.tex)にコピペしてコンパイルしたところ,bar.texの方はエラーは出なくなりました。
そこで,もとのファイルの関連ファイル(foo.auxなど)に何かの拍子に破損があったのかなと思い,foo.tex以外削除してもう一度foo.texをコンパイルしてみると依然としてエラーが出ます。

何が悪いのか結局よく分かりませんが,ひとまずエラーが出ずに解決したのでありがとうございました。