\usepackage{amsmath}
\begin{subequations}
\begin{equation}
\operatorname{min}_{a,b,c}
\frac{1}{2}\mathbf{w}^{T}\mathbf{w} + C \sum_{i=1}^{l}\xi_{i}
\end{equation}
\begin{equation}
y_{i}\left(\mathbf{w}^{T}\phi(x_{i})+b\right)
\end{equation}
\end{subequations}
سلام، امیدوارم به کارتون بیادخطهای خالی و استفاده از دو equation پشت سر هم باعث ایجاد فاصلهی اضافی میشه.کد: [انتخاب]\usepackage{amsmath}
\begin{subequations}
\begin{equation}
\operatorname{min}_{a,b,c}
\frac{1}{2}\mathbf{w}^{T}\mathbf{w} + C \sum_{i=1}^{l}\xi_{i}
\end{equation}
\begin{equation}
y_{i}\left(\mathbf{w}^{T}\phi(x_{i})+b\right)
\end{equation}
\end{subequations}
سپاس برای پاسختون؛ اما تو این حالت شمارهها (مثلاً) بهصورت (۲-۳آ)، (۲-۳ب)، (۲-۳ج) و ... گذاشته میشن. اگه بشه یکی از این دو کار رو کرد بهتر میشه:استانداردش اینه. اما اگر دوس داشتین تغییر بدین باید به صورت زیر عمل کنید. (در راهنمای بستهی amsmath نوشته.)
۱- بهجای حروف «ابجد» از حروف فارسی (آ، ب، پ و ...) استفاده بشه؛ یا اینکه
۲- بهطور کلی بهجای حروف از اعداد استفاده بشه.
در ضمن اگه بشه قبلش یه خط تیره (-) یا نقطه (.) هم گذاشت خیلی خوب میشه!! (یعنی بشه (۲-۳-آ) یا (۲-۳.آ) یا (۲-۳-۱))
\begin{subequations}
\renewcommand{\theequation}{\theparentequation{}.\alph{equation}}
\begin{align}
\operatorname{min}_{a,b,c}
\frac{1}{2}\mathbf{w}^{T}\mathbf{w} + C \sum_{i=1}^{l}\xi_{i}
\\
y_{i}\left(\mathbf{w}^{T}\phi(x_{i})+b\right)
\end{align}
\end{subequations}
استانداردش اینه. اما اگر دوس داشتین تغییر بدین باید به صورت زیر عمل کنید. (در راهنمای بستهی amsmath نوشته.)میشه تعریف محیط subequations رو به صورت فایل پیوست شده، تغییر داد تا دیگه مجبور نباشیم اون خط دستور رو هر بار وارد کنیم.
وحید جان، میشه در مورد اون کد یکم توضیح بدی؟برای راحتی کار، کدهارو شمارهگذاری میکنم تا بتونم بهشون ارجاع بدم:
در مورد let مخصوصا.
ممنون
1 \let\oldsubequations\subequations
2 \let\endoldsubequations\endsubequations
3 \renewenvironment{subequations}{\bgroup\oldsubequations%
4 \renewcommand{\theequation}{\theparentequation{}\@SepMark\alph{equation}}%
5 }%
6 {\endoldsubequations\egroup}
همونطور که میدونی یک دستور یا محیط رو نمیشه برحسب خودش redefine کرد؛ چون داخل یه حلقه بیپایان میافته. بنابراین اول باید تعریفشو (تعریف قدیمیشو) توی یه دستور جدید (در اینجا، \oldsubequations) ذخیره کنیم. برای این کار از دستور let\ استفاده کردم. شکل کلی استفاده از این دستور به صورت\let\newcommand=\oldcommand
هستش. وجود علامت مساوی هم اختیاریه. در ضمن، چون در اینجا میخوایم که یه محیط (و نه یه دستور) رو redefine کنیم، پس باید هر دو دستور \begin{subequations}
و\end{subequations}
رو توی یه دستور جدید ذخیره کنیم که با دستورهای شماره ۱ و ۲ این کار انجام شده (اگه میخواستیم یه دستوری مثل foo رو redefine کنیم، احتیاجی به خط شماره ۲ نبود). دقت کن که موقع تعریف یا بازتعریف یه محیطی مثل foo، بجای \begin{foo}
و\end{foo}
کافیه فقط به ترتیب بنویسیم foo\ و endfoo\. برای راحتی کار، کدهارو شمارهگذاری میکنم تا بتونم بهشون ارجاع بدم:احتیاجی به \bgroup و \egroup اضافی نیست. به جای از نو تعریف کردن محیط خیلی ساده میتونی از دستور \bidi@AtBeginEnvironment استفاده کنی.کد: [انتخاب]1 \let\oldsubequations\subequations
همونطور که میدونی یک دستور یا محیط رو نمیشه برحسب خودش redefine کرد؛ چون داخل یه حلقه بیپایان میافته. بنابراین اول باید تعریفشو (تعریف قدیمیشو) توی یه دستور جدید (در اینجا، \oldsubequations) ذخیره کنیم. برای این کار از دستور let\ استفاده کردم. شکل کلی استفاده از این دستور به صورت
2 \let\endoldsubequations\endsubequations
3 \renewenvironment{subequations}{\bgroup\oldsubequations%
4 \renewcommand{\theequation}{\theparentequation{}\@SepMark\alph{equation}}%
5 }%
6 {\endoldsubequations\egroup}کد: [انتخاب]\let\newcommand=\oldcommand
هستش. وجود علامت مساوی هم اختیاریه. در ضمن، چون در اینجا میخوایم که یه محیط (و نه یه دستور) رو redefine کنیم، پس باید هر دو دستورکد: [انتخاب]\begin{subequations}
وکد: [انتخاب]\end{subequations}
رو توی یه دستور جدید ذخیره کنیم که با دستورهای شماره ۱ و ۲ این کار انجام شده (اگه میخواستیم یه دستوری مثل foo رو redefine کنیم، احتیاجی به خط شماره ۲ نبود). دقت کن که موقع تعریف یا بازتعریف یه محیطی مثل foo، بجایکد: [انتخاب]\begin{foo}
وکد: [انتخاب]\end{foo}
کافیه فقط به ترتیب بنویسیم foo\ و endfoo\.
خب حالا میریم و در خط شماره ۳، شروع میکنیم به redefine کردن محیط subequations. دقت کن که در اینجا بجای subequations باید از \oldsubequations استفاده کنیم؛ (چون در غیر این صورت، دوباره وارد همون حلقه بیپایان میافتیم). خط ۴ و ۵ هم که احتیاج به توضیح نداره. با استفاده از خط ۶ هم، کار redefine کردن رو تموم میکنیم. اما کار دو دستور bgroup\ و \egroup چی هست؟ این دو دستور مخفف دستورهای begingroup\ و endgroup\ هستن و همونطور که از اسمشون پیداست، برای ایجاد یه حائل ازشون استفاده میشه. به عبارت دیگه توی کد بالا، برای اینکه مطمئن شیم که اثر خط شماره ۴ فقط توی این محیط باشه، خط شماره ۴ رو بین این دستور قرار میدیم تا اثر خط شماره ۴ روی بقیه سندمون تاثیر نذاره.
امیدوارم که خوب توضیح داده باشم. هرکجاش رو که متوجه نشدی، بگو تا دوباره توضیح بدم.