我想要定义一个注释环境,利用fbox和minipage实现,但定义环境后无法正常编译,以下是我的最小工作示例,其中使用mynote环境无法编译,求问是什么原因?
%!TEX program = xelatex
\documentclass[10.5pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{natbib}
\usepackage{graphicx}
\usepackage[fleqn]{amsmath}
\usepackage{amssymb}
\usepackage{multirow}
\usepackage{float}
\usepackage{caption}
\usepackage{subcaption}
\usepackage[hyperfootnotes=false, colorlinks=true, linkcolor=blue]{hyperref}
\usepackage{ctex}
\usepackage{zhlipsum}
\usepackage{lipsum}
\usepackage{fbox}
\graphicspath{{./figures/}}
%%% HEADER & FOOTER %%%%%
\pagestyle{myheadings}
\markright{Header left\hfill Header right\hfill}
%%%%% TITLE %%%%%
\title{\LaTeX~Note}
\author{Author——作者}
\date{\today}
\newenvironment{mynote}
{%
\begin{center} % 开始居中环境
\fbox{
\begin{minipage}{0.9\textwidth} % 设置内容宽度为页面的 90%
\small\itshape % 设置内容为小字号和斜体
}
{
\end{minipage} % 关闭 minipage
}
\end{center} %
}
%%%%% BODY %%%%%
\begin{document}
\maketitle
\clearpage
\tableofcontents
\clearpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{First Section}
%%不可运行,环境定义似乎有问题
\begin{mynote}
This is a note.
\end{mynote}
%% 可运行
% \begin{center} % 开始居中环境
% \fbox{
% \begin{minipage}{0.9\textwidth} % 设置内容宽度为页面的 90%
% \small\itshape % 设置内容为小字号和斜体
% This is a note.
% \end{minipage} % 关闭 minipage
% }
% \end{center} %
\end{document}
先保存到盒子里就好了。
\newbox\mynotebox
\newenvironment{mynote}
{%
\begin{center} % 开始居中环境
\begin{lrbox}{\mynotebox} %% <- 这里
\begin{minipage}{0.9\textwidth} % 设置内容宽度为页面的 90%
\small\itshape % 设置内容为小字号和斜体
}
{
\end{minipage} % 关闭 minipage
\end{lrbox}%
\fbox{\box\mynotebox}
\end{center} %
}
根据报错信息猜测是编组被\newenvironment
拆后和\fbox
的定义出现了{
和}
的错配,提供一种曲线救国(不优雅)的方案。
\documentclass[11pt,fontset=ubuntu]{ctexart}
\usepackage[margin=1in]{geometry}
\usepackage{zhlipsum}
\newcommand{\createenv}[1]{%
\begin{center}% 开始居中环境
\fbox{%
\begin{minipage}{0.9\textwidth}
{\small\itshape {#1}}
\end{minipage}
}%
\end{center} %
}
\NewDocumentEnvironment{mynote}{+b}{%
\begingroup%
\createenv{#1}%
}{\endgroup}%
\begin{document}
\begin{mynote}%
\zhlipsum[1]
\end{mynote}%
\section{A Section}
\begin{center}%
\fbox{%
\begin{minipage}{0.9\textwidth}
\small\itshape
\zhlipsum[2]
\end{minipage}
}%
\end{center}%
\end{document}
另外,你的最小工作示例中还有很多和本问题无关的宏包;同时article
文档类有且只有10pt(default),11pt,12pt
这三个选项,你选择的10.5pt
实际上为默认值10pt
.
感谢!学到了!