30 如何定义一个“段落型注释”环境?

发布于 2025-02-08 13:33:01

理想的效果是这样:

pdf-1.png

理想的环境是这样:(粗略版)

在原文中输入\parnote{#1}{#2},会在原文中排版#1,并自动在注释中生成#1:#2

代码如下:

%% xelatex 250207.tex  这个文件,我是这么命名的......
%% 要点1:原文原则上就只有一个段落,内容较多时,要支持段落中间可以断页,注释同理,不过注释用enumerate的话是原生支持断页的
%% 要点2:“【原文】”这几个字符和原文的第一行之间不可断页,“【注释】”同理
%% 要点3:原文中的上标序号、标红的词语、解释的内容,和【注释】中的列表序号、标示的词条、解释的内容需要一一对应。我的粗略想法是为需要解释的内容声明一个新的盒子,以供随时调用,可惜我不会给盒子变量取名字,难倒英雄汉
%% 要点4:参看导言区最后的iffalse里的\newcommand\PARNOTE
\documentclass[UTF8]{ctexart}
\usepackage[margin=1.5cm,papersize={10.5cm,14.85cm}]{geometry}
\geometry{showframe}
\usepackage{circledsteps}
\newcounter{parnote}
\newcommand\parnote[1]{%
    \textcolor{red}{#1}%
    \clap{~\stepcounter{parnote}}%
    ${}^{\Circled{\protect\theparnote}}$%
    \kern0em%
}
\newcommand\qingling{\setcounter{parnote}{0}}%%希望在“【原文】”这两个字开始的时候就清零,且前面加上\vskip2cm,使其看起来和上一段原文和注释分隔开来
\iffalse
\newcommand\PARNOTE[2]{%我希望这个命令可以有2个参数,对于第1个参数我需要他在原文中标红,并在其后添加一个计数器来表示序号,对于第二个参数,我希望它声明一个盒子变量并把#2储存为这个盒子变量的内容,用来解释原文中标红的字或词语,另外,我希望在原文中使用\parnote{#1}{#2}命令后,在原文部分只会排版标红的#1和上标序号,在注释中会自动生成列表序号、标示的词条、冒号以及使用刚才声明的盒子变量,调用盒子内容的命令准备是\usebox{\PARNOTE@#1}。列表序号和上标序号应该是要一一对应的,词条和解释也是对应的。有点类似于魔改版的脚注?
    \textcolor{red}{#1}%
    \clap{~\stepcounter{parnote}}%
    ${}^{\Circled{\protect\theparnote}}$%
    \kern0em%
    \makeatletter%
    \catcode`#1=11%%首先这个写法不知道对不对,其次#1不止一个字怎么办?
    \newsavebox{\PARNOTE@#1}\sbox{\PARNOTE@#1}{#2}%%自己臆想的命令名。可以用临时的命名吗?
    \makeatother%写不下去了。。。。。。一堆错误。。。。。。或许还是准备将之改为定义一个新的环境比较好吧?
}
\fi
\begin{document}
【原文】

制曰:“立皇子闳为\parnote{齐}王,旦为\parnote{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为\parnote{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。

【注释】
\begin{enumerate}
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。

\end{enumerate}
%\newpage
\qingling

【原文】

制曰:“立皇子闳为\parnote{齐}王,旦为\parnote{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为\parnote{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。制曰:“立皇子闳为{齐}王,旦为{燕}王,胥为{广陵}王。

【注释】
\begin{enumerate}
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\item 齐:今山东淄博之临淄西北。
\item 燕:今北京。
\item 广陵:今江苏扬州西北。
\end{enumerate}
\end{document}

查看更多

关注者
0
被浏览
49
0 个回答
暂无答案,快来添加答案吧

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览