以下是 MWE:
\documentclass[13pt, a4paper]{book}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage[english, greek]{babel}
\usepackage[shortlabels]{enumitem}
\usepackage{kmath}
\usepackage{gfsartemisia}
\usepackage{xcolor}
\newcommand{\sub}[2]{{\color{blue}{$\text{#1}_{#2}$)}}}
\begin{document}
\sub{A}{1} Αν οι συναρτήσεις $f, g$ είναι παραγωγίσιμες στο $x_0$ τότε να
αποδείξετε ότι και η συνάρτηση $f+g$ είναι παραγωγίσιμη στο $x_0$ και ισχύει
\[
(f + g)'(x_0) = f'(x_0) + g'(x_0)
\]
\end{document}
它产生以下内容:
正如您所看到的,我已经声明了一个带有两个参数的新自定义命令。
我想要实现的是将文本对齐到文本下方,就像 enumitem 使用自定义枚举所做的那样,不过我可以用任意字母替换“A”,也可以用任意数字替换“1”。例如,请参阅以下代码:
\begin{enumerate}[(a)]
\item Αν οι συναρτήσεις $f, g$ είναι παραγωγίσιμες στο $x_0$ τότε να
αποδείξετε ότι και η συνάρτηση $f+g$ είναι παραγωγίσιμη στο $x_0$ και ισχύει
\end{enumerate}
显然,当前的输出相当丑陋。有什么建议吗?如果解决方案使用 enumitem,我不会感到惊讶。
更新:从图片中可以看到,当行发生变化时,文本会从自定义枚举中移到下方。我不希望这种情况发生。相反,我希望当行发生变化时,新文本会与上一行文本对齐。类似这样:
A1) This is some text.
This is a new line of text.
我们现在有的就是这个。
A1) This is a text.
This is a new line of text.
答案1
您可以定义一个\myitem
带有两个参数的宏,如下所示。请注意,如果有新行(但没有新项目),则悬挂缩进会保留。
\documentclass[12pt, a4paper]{book}
\usepackage{amsmath,amssymb}
\usepackage[utf8]{inputenc}
\usepackage[english, greek]{babel}
\usepackage[shortlabels]{enumitem}
\usepackage{kmath,gfsartemisia,xcolor}
\newcommand{\sub}[2]{\textcolor{blue}{#1\textsubscript{#2})}}
\newcommand\myitem[2]{\item[\sub{#1}{#2}]}
\begin{document}
\begin{itemize}
\myitem{A}{1} Αν οι συναρτήσεις $f$, $g$ είναι παραγωγίσιμες \dots
Αν οι συναρτήσεις $f$, $g$ είναι παραγωγίσιμες \dots
\myitem{B}{7} Αν οι συναρτήσεις $f$, $g$ είναι παραγωγίσιμες \dots
\item Αν οι συναρτήσεις $f$, $g$ είναι παραγωγίσιμες \dots
\myitem{\selectlanguage{english}CD}{89} Αν οι συναρτήσεις $f$, $g$ είναι παραγωγίσιμες \dots
\end{itemize}
\end{document}
答案2
使用来自的参数enumitem
,特别是wide=0pt
键。我必须更改字体(我的系统上未安装):
\documentclass[12pt, a4paper]{book}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[utf8]{inputenc}
% \usepackage[iso-8859-7]{inputenc}
\usepackage{tgbonum}
%\usepackage{gfsartemisia}
\usepackage[english, greek]{babel}
\usepackage[shortlabels]{enumitem}
% \usepackage{kmath}
\usepackage{xcolor}
\newcommand{\sub}[2]{{\color{blue}{$\text{#1}_{#2}$)}}}
\begin{document}
\begin{enumerate}[label=A\textsubscript{\arabic*}), wide=0pt, font=\color{blue}]
\item Αν οι συναρτήσεις $f, g$ είναι παραγωγίσιμες στο $x_0$ τότε να αποδείξετε ότι και η συνάρτηση $f+g$ είναι παραγωγίσιμη στο $x_0$ και ισχύει
\[ \left( f + g\right)'(x_0) = f'(x_0) + g'(x_0) \]
\end{enumerate}
\end{document}
答案3
尝试
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage[english, greek]{babel}
%\usepackage[shortlabels]{enumitem}
\usepackage{kmath}
\usepackage{gfsartemisia}
\usepackage{xcolor}
\newcounter{steps}
\newcommand\reset{\setcounter{steps}{0}}
\newenvironment{exercises}[1][]{\setcounter{steps}{0}\list{\bfseries\upshape\stepcounter{steps} $#1_\thesteps$}
{%
\setlength{\labelwidth}{2cm}\setlength{\leftmargin}{2.6cm}
\setlength{\labelsep}{0.5cm}\setlength{\rightmargin}{1cm}
\setlength{\parsep}{0.5ex plus0.2ex minus0.1ex}
\setlength{\itemsep}{0ex plus0.2ex minus0pt}\relax \slshape %
}}
{\endlist}
\begin{document}
\begin{exercises}[A]
\item Αν οι συναρτήσεις $f, g$ είναι παραγωγίσιμες στο $x_0$ τότε να
αποδείξετε ότι και η συνάρτηση $f+g$ είναι παραγωγίσιμη στο $x_0$ και ισχύει
\[ \left( f + g\right)'(x_0) = f'(x_0) + g'(x_0) \]
\item Αν οι συναρτήσεις $f, g$ είναι παραγωγίσιμες στο $x_0$ τότε να
αποδείξετε ότι και η συνάρτηση $f+g$ είναι παραγωγίσιμη στο $x_0$ και ισχύει
\[ \left( f + g\right)'(x_0) = f'(x_0) + g'(x_0) \]
\end{exercises}
\begin{exercises}[B]
\item Αν οι συναρτήσεις $f, g$ είναι παραγωγίσιμες στο $x_0$ τότε να
αποδείξετε ότι και η συνάρτηση $f+g$ είναι παραγωγίσιμη στο $x_0$ και ισχύει
\[ \left( f + g\right)'(x_0) = f'(x_0) + g'(x_0) \]
\item Αν οι συναρτήσεις $f, g$ είναι παραγωγίσιμες στο $x_0$ τότε να
αποδείξετε ότι και η συνάρτηση $f+g$ είναι παραγωγίσιμη στο $x_0$ και ισχύει
\[ \left( f + g\right)'(x_0) = f'(x_0) + g'(x_0) \]
\end{exercises}
\end{document}
该\list
命令是 LaTeX 提供的一种定义任何列表的强大方法。LaTeX 中的列表设置起来有点困难,因为在 LaTeX 内核中,列表是使用\parshape
许多\everypar
技巧定义的。但是,一旦定义,它们就会继续正常工作,即使在其他环境中也是如此。
如果您注意到,我提供了一个命令\reset
。如果您希望列表具有连续编号,则从\setcounter{0}
环境定义中删除。然后使用\reset
将计数器归零到您需要的位置。