我正在尝试以一种看起来非常漂亮的方式输入课本练习的答案。我希望练习编号出现在所有文本的左侧,问题之间的分隔线比文本宽,但不要超过练习编号。我目前的做法是将练习和文本的小页面堆叠在一起。
该图片是第一页(Overleaf 将矩形放在那里是因为文档各部分之间存在内部链接 - 它不会显示在实际的 pdf 中),下面是重现第一个问题的一些代码:
\documentclass[14pt]{extarticle}
\usepackage[margin=1in]{geometry}
\usepackage[dvipsnames]{xcolor}
\usepackage{amssymb, amsmath, amsfonts}
\usepackage{fouriernc}
\usepackage[scale=0.92]{tgschola}
\def\vhrulefill{\leavevmode\leaders\hrule height 0.7ex depth \dimexpr0.4pt-0.7ex\hfill\kern0pt}
\begin{document}
\noindent {\color{Cerulean}\underline{Chapter One (3-18): \textbf{Classical Groups I}}} \vspace{0.75cm}
\noindent\begin{minipage}[l]{0.082\linewidth}
~~~~~{\color{Plum}(1)}\vspace{6.4cm}
\end{minipage}
\begin{minipage}[l]{0.9\linewidth}
The usual linear algebra argument applies even if $F=\mathbf{H}$. Given any right $F$-linear endomorphism $A$ of $F^n$, define its matrix by $[A]=[a_{ij}]$, where $Ae_i=\sum_{j=1}^n e_ja_{ij}$ for $i=1,...,n$, so that $Av=[A]v$ identically:
\vspace{-0.35cm}\begin{equation*} Av=A\Big(\sum_{i=1}^n e_iv_i\Big)=\sum_{i=1}^n(Ae_i)v_i=\sum_{i=1}^n \Big(\sum_{j=1}^n e_ja_{ij}\Big)v_j=\sum_{j=1}^n e_j\Big(\sum_{i=1}^n a_{ij}v_j\Big)=[A]v. \end{equation*}
\vspace{-0.36cm} Therefore the identities $(A+B)v=Av+Bv$ and $(AB)v=A(Bv)$ imply $[A+B]=[A]+[B]$ and $[AB]=[A][B]$, plus $(\lambda A)v=\lambda(Av)$ for scalars $\lambda\in F$ implies $[\lambda A]=\lambda[A]$, so $A\mapsto [A]$ is an algebra homomorphism $\mathrm{End}_FF^n\to M_n(F)$ (of $\mathbf{C}$-algebras if $F=\mathbf{C}$ else as $\mathbf{R}$-algebras). Indeed, $Av=[A]v$ implies $A\mapsto[A]$ is a one-to-one correspondence, so this is an isomorphism, which restricted to units yields the same for $\mathrm{GL}(n,F)$.
\end{minipage} \\
\quad{\color{orange}\vhrulefill} \vspace{0.3cm}
\end{document}
不幸的是,这会导致代码变得笨重,工作量也很大。请注意,练习编号的小页面中的 vspace 必须调整为该解决方案中的文本大小。而且,每当练习超出时,我都必须将其拆分到多个页面中,这意味着如果我想返回并更改文档中较早的内容,我或多或少必须更改整个文档中的内容以正确填满页面,这对于整个过程来说似乎是一个糟糕的主意。
是否有一个好的方法可以“自动化”此模板,以减少工作量,并且我可以稍后返回并更改文档中的某些内容,而不必在之后更改所有内容?
(我查看了前几页的标签并选择了看起来最相关的标签,但也许其他人对如何标记这个标签有更好的想法。)
答案1
您应该尝试在文档中尽可能少地使用格式化指令:使用正确定义的环境和命令将确保整个文档的统一性。
\documentclass[14pt]{extarticle}
\usepackage[margin=1in]{geometry}
\usepackage[dvipsnames]{xcolor}
\usepackage{amssymb, amsmath, amsfonts}
\usepackage{fouriernc}
\usepackage[scale=0.92]{tgschola}
\usepackage{changepage}
\newenvironment{exercise}[1]{%
\par\addvspace{\topsep}
\begin{adjustwidth}{0.1\textwidth}{}%
\setlength{\parindent}{0pt}%
\makebox[0pt][r]{\color{Plum}(#1)\enspace}\ignorespaces
}{\end{adjustwidth}\par\addvspace{\topsep}}
\newcommand\vhrulefill{%
\par\addvspace{\topsep}
\nointerlineskip
\hbox{\hspace{\dimexpr0.1\textwidth-0.5em}%
\color{orange}\vrule width\dimexpr0.9\textwidth+0.5em\relax height 0.4pt
}%
\nointerlineskip
\addvspace{\topsep}%
}
\newcommand{\exegroup}[2]{%
\par\addvspace{\topsep}
\noindent\textcolor{Cerulean}{#1: \textbf{#2}}%
\par\addvspace{\topsep}
}
\DeclareMathOperator{\GL}{GL}
\DeclareMathOperator{\End}{End}
\newcommand{\numberfield}[1]{\mathbf{#1}}
\newcommand{\HH}{\numberfield{H}}% quaternions
\newcommand{\CC}{\numberfield{C}}% complex
\newcommand{\RR}{\numberfield{R}}% real
\begin{document}
\exegroup{Chapter One (3-18)}{Classical Groups I}
\begin{exercise}{1}
The usual linear algebra argument applies even if $F=\HH$.
Given any right $F$-linear endomorphism $A$ of $F^n$, define its
matrix by $[A]=[a_{ij}]$, where $Ae_i=\sum_{j=1}^n e_ja_{ij}$ for
$i=1,\dots,n$, so that $Av=[A]v$ identically:
\begin{equation*}
Av=A\Bigl(\,\sum_{i=1}^n e_iv_i\Bigr)=
\sum_{i=1}^n(Ae_i)v_i=
\sum_{i=1}^n \Bigl(\,\sum_{j=1}^n e_ja_{ij}\Bigr)v_j=
\sum_{j=1}^n e_j\Bigl(\,\sum_{i=1}^n a_{ij}v_j\Bigr)=[A]v.
\end{equation*}
Therefore the identities $(A+B)v=Av+Bv$ and $(AB)v=A(Bv)$ imply
$[A+B]=[A]+[B]$ and $[AB]=[A][B]$, plus $(\lambda A)v=\lambda(Av)$
for scalars $\lambda\in F$ implies $[\lambda A]=\lambda[A]$, so
$A\mapsto [A]$ is an algebra homomorphism $\End_FF^n\to M_n(F)$
(of $\CC$-algebras if $F=\CC$ else as $\RR$-algebras).
Indeed, $Av=[A]v$ implies $A\mapsto[A]$ is a one-to-one correspondence,
so this is an isomorphism, which restricted to units yields the same
for $\GL(n,F)$.
\end{exercise}
\vhrulefill
\begin{exercise}{2}
The usual linear algebra argument applies even if $F=\mathbf{H}$.
Given any right $F$-linear endomorphism $A$ of $F^n$, define its
matrix by $[A]=[a_{ij}]$, where $Ae_i=\sum_{j=1}^n e_ja_{ij}$ for
$i=1,\dots,n$, so that $Av=[A]v$ identically:
\end{exercise}
\end{document}
还请看一下我对公式所做的更改:...
应该是\dots
,\Big
应该是\Bigl
或;如果后面是带边界的求和,则后面\Bigr
跟着一个大括号。我为 GL、End 和数字(倾斜)字段定义了命令。\,
答案2
使用任务环境怎么样?
\documentclass[14pt]{extarticle}
\usepackage[margin=1in]{geometry}
\usepackage[dvipsnames]{xcolor}
\usepackage{amssymb, amsmath, amsfonts}
\usepackage{fouriernc}
\usepackage[scale=0.92]{tgschola}
\def\vhrulefill{\leavevmode\leaders\hrule height 0.7ex depth \dimexpr0.4pt-0.7ex\hfill\kern0pt}
\def\vhrulefilled{\>\>\>{\color{orange}\vhrulefill}}
\begin{document}
\begin{tasks}
\task first task
\end{tasks}
\vhrulefilled
\begin{tasks}[resume]
\task second task
\end{tasks}
\end{document}
看起来像这样:
您可以在 \vhrulefilled 的定义中调整行间距。