理想的效果是这样:
理想的环境是这样:(粗略版)
在原文中输入\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}