我想要定义一个注释环境,利用fbox和minipage实现,但新定义环境无法正常编译,求解?

发布于 2024-12-30 20:34:29

我想要定义一个注释环境,利用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}

查看更多

关注者
0
被浏览
141
2 个回答
雾月
雾月 2024-12-30
这家伙很懒,什么也没写!

先保存到盒子里就好了。

\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} % 
}
Sagittarius Rover
Sagittarius Rover 2024-12-30
我要成为Typst糕手/(ㄒoㄒ)/~~

根据报错信息猜测是编组被\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.

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览