summaryrefslogtreecommitdiff
path: root/macros/xetex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/xetex')
-rw-r--r--macros/xetex/latex/nanicolle/nanicolle-example.pdfbin179032 -> 174330 bytes
-rw-r--r--macros/xetex/latex/nanicolle/nanicolle.cls280
-rw-r--r--macros/xetex/latex/nanicolle/nanicolle.pdfbin377571 -> 387379 bytes
-rw-r--r--macros/xetex/latex/nanicolle/nanicolle.tex72
4 files changed, 200 insertions, 152 deletions
diff --git a/macros/xetex/latex/nanicolle/nanicolle-example.pdf b/macros/xetex/latex/nanicolle/nanicolle-example.pdf
index 07d4c95e04..0c110b2d80 100644
--- a/macros/xetex/latex/nanicolle/nanicolle-example.pdf
+++ b/macros/xetex/latex/nanicolle/nanicolle-example.pdf
Binary files differ
diff --git a/macros/xetex/latex/nanicolle/nanicolle.cls b/macros/xetex/latex/nanicolle/nanicolle.cls
index 2f3d72bff4..76f4cddc7c 100644
--- a/macros/xetex/latex/nanicolle/nanicolle.cls
+++ b/macros/xetex/latex/nanicolle/nanicolle.cls
@@ -20,7 +20,7 @@
% - the example files: [nanicolle-example.tex, nanicolle-example.pdf].
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{nanicolle}[2019/04/28 v2.00 class nanicolle]
+\ProvidesClass{nanicolle}[2019/09/27 v2.01 class nanicolle]
% CATCODE PART I
\makeatletter
% CLASS OPTIONS
@@ -57,7 +57,6 @@
\def\@unit{pt}
\def\vb@xt@{\vbox to}
% CATCODE PART II
-\catcode`\^^@\@other
% CONDITIONS
\newif\if@param@enough@
\newif\if@drew@map@
@@ -100,6 +99,32 @@
\newbox\pin@point
\setbox\pin@point=\vb@xt@\z@{\vss\hb@xt@\z@{%
\hss\includegraphics{point.pdf}\hss}\vss}
+% 20190926
+\newdimen\whiterule
+\newdimen\whitevsep
+\newdimen\whitehsep
+\whiterule=1.5pt
+\whitevsep=0.7pt
+\whitehsep=0.3pt
+\def\white@uline#1{%
+ \setbox\@tempboxa\hbox{\bfseries#1}%
+ \@tempdima\dimexpr\whiterule+%
+ \whitevsep+\dp\@tempboxa\relax
+ \leavevmode\allowbreak\hbox{%
+ \kern-\whitehsep
+ \lower\@tempdima\vbox{%
+ \hbox{%
+ \kern\whitehsep
+ \box\@tempboxa
+ \kern\whitehsep}%
+ \vskip\whitevsep
+ {\color{white}\hrule\@height\whiterule}}%
+ \kern-\whitehsep}}
+\long\def\lines@box#1{%
+ \setbox\@tempboxa=\vbox{#1\par}%
+ \vbox to \ht\@tempboxa{\leaders\hb@xt@\hsize{%
+ \kern1em\uline{\strut\hfill}}\vfill
+ \kern-1em}\vskip-\ht\@tempboxa\box\@tempboxa\par}
% UNIT EXPRESSIONS
\def\degree{\ensuremath{^\circ}}
\def\gobble@char#1{\relax}
@@ -120,116 +145,95 @@
\def\plus@one@cm#1{\plus@one@second{#1}{cm}}
\def\plus@one@m#1{\plus@one@second{#1}{m}}
% PARSING
-\RequirePackage{calc}
+% LATIN PARSING
+\def\inter@taxon@skip{ \hskip .1667em minus .1667em\relax}
+\def\upd@shape{%
+ \advance\word@cnt-\@ne
+ \ifcase\word@cnt
+ \upshape
+ \unskip\penalty-\f@ur
+ \inter@taxon@skip
+ \or
+ \itshape
+ \fi\ignorespaces}
+\RequirePackage{xstring}
+\def\strsubs#1#2{%
+ \StrSubstitute{\@tempstring}{#1}{#2}[\@tempstring]\ignorespaces}
+\def\handle@f{\textup{f.}\unless\ifnum\word@cnt<0\word@cnt\tw@\fi}
+\def\latin@parse#1{%
+ \word@cnt\tw@
+ \edef\@tempstring{#1}%
+ \expandarg
+ \strsubs{ '}{ \upshape`}
+ \strsubs{ }{ \upd@shape}%
+ \strsubs{subsp.}{\textup{subsp.}\word@cnt\tw@}
+ \strsubs{var.}{\textup{var.}\word@cnt\tw@}
+ \strsubs{f.}{\handle@f}
+ \strsubs{sp.}{\upshape sp.\word@cnt\z@}
+ \strsubs{cf.}{\textup{cf.}\word@cnt\tw@}
+ \strsubs{aff.}{\textup{aff.}\word@cnt\tw@}
+ \strsubs{et}{\penalty-\@ne et\penalty-\@ne}
+ \strsubs{ex}{\penalty-\tw@ et\penalty-\tw@}
+ \strsubs{(}{\penalty-\thr@@(}\strsubs{)}{)\penalty-\thr@@}
+ \strsubs{×}{\ensuremath{\mathsf{\times}}\word@cnt\@ne\ignorespaces}
+ {\itshape\@tempstring}}
+\def\col@latin#1{%
+ \raggedright
+ \hangindent=4em
+ \latin@parse{#1}}
+\def\det@latin#1{%
+ \latin@parse{#1}}
\RequirePackage{listofitems}
\reademptyitems
+ \catcode`\^^I\@other
+ \setsepchar{^^I}
\def\get@argin#1{%
\ifnum#1>\temp@arginlen\relax
\else\temp@argin[#1]\fi}
\def\col@parse@params#1{%
- \edef\temp@list{#1}
- \setsepchar{^^@}
- \readlist\temp@argin{\temp@list}
+ \readlist\temp@argin{#1}
\@param@enough@true
- \edef\RecordNo{\get@argin{2}}
- \edef\Collector{\get@argin{3}}
- \edef\CollectionNo{\get@argin{4}}
- \edef\DateCollection{\get@argin{5}}
- \edef\Family{\get@argin{6}}
- \edef\ChineseName{\get@argin{7}}
- \edef\ScientificName{\get@argin{8}}
- \edef\PhotoNo{\get@argin{9}}
- \edef\NoDuplication{\get@argin{10}}
- \edef\Location{\get@argin{11}}
- \edef\Longitude{\get@argin{12}}
- \edef\Latitude{\get@argin{13}}
- \edef\Altitude{\get@argin{14}}
- \edef\Habitat{\get@argin{15}}
- \edef\LifeForm{\get@argin{16}}
- \edef\Height{\get@argin{17}}
- \edef\DBH{\get@argin{18}}
- \edef\Description{\get@argin{19}}
+ \def\RecNum{\get@argin{2}}
+ \def\Collector{\get@argin{3}}
+ \def\ColNum{\get@argin{4}}
+ \def\ColDate{\get@argin{5}}
+ \def\Family{\get@argin{6}}
+ \def\ChnName{\get@argin{7}}
+ \edef\LatName{\get@argin{8}}
+ \def\PhotoNum{\get@argin{9}}
+ \def\NumDup{\get@argin{10}}
+ \def\Location{\get@argin{11}}
+ \def\Longitude{\get@argin{12}}
+ \def\Latitude{\get@argin{13}}
+ \def\Altitude{\get@argin{14}}
+ \def\Habitat{\get@argin{15}}
+ \def\LifeForm{\get@argin{16}}
+ \def\Height{\get@argin{17}}
+ \def\DBH{\get@argin{18}}
+ \def\Descr{\get@argin{19}}
\repeat@cnt\@ne
- \if@auto@duplicate\if\relax\NoDuplication\relax\else
- \repeat@cnt\NoDuplication\relax
+ \if@auto@duplicate\if\relax\NumDup\relax\else
+ \repeat@cnt\NumDup\relax
\fi\fi
\if\relax\Collector\relax\@param@enough@false\fi
- \if\relax\DateCollection\relax\@param@enough@false\fi
+ \if\relax\ColDate\relax\@param@enough@false\fi
\if\relax\Location\relax\@param@enough@false\fi
}
\def\det@parse@params#1{%
- \edef\temp@list{#1}
- \setsepchar{^^@}
- \readlist\temp@argin{\temp@list}
+ \readlist\temp@argin{#1}
\@param@enough@true
- \edef\RecordNo{\get@argin{2}}
- \edef\ScientificName{\get@argin{3}}
- \edef\ChineseName{\get@argin{4}}
- \edef\Identifier{\get@argin{5}}
- \edef\IdentifierStd{\get@argin{6}}
- \edef\DateIdentification{\get@argin{7}}
- \edef\Remark{\get@argin{8}}
- \edef\temp@name{\Identifier\IdentifierStd}
- \if\relax\ScientificName\relax\@param@enough@false\fi
+ \def\RecNum{\get@argin{2}}
+ \def\LatName{\get@argin{3}}
+ \def\ChnName{\get@argin{4}}
+ \def\Identifier{\get@argin{5}}
+ \def\IdentifierStd{\get@argin{6}}
+ \def\DateIdentification{\get@argin{7}}
+ \def\Remark{\get@argin{8}}
+ \def\temp@name{\Identifier\IdentifierStd}
+ \if\relax\LatName\relax\@param@enough@false\fi
\if\relax\temp@name\relax\@param@enough@false\fi
\if\relax\DateIdentification\relax\@param@enough@false\fi
}
-% LATIN PARSING
-\def\col@latin@break{\hfill\penalty-\@ne
- \hskip -3em plus -1fill\relax\hbox{}\hskip3em\relax}
-\def\col@latin@prefix{=-=}
-\def\col@latin@mark#1#2{%
- \expandafter\gdef\csname\col@latin@prefix#1\endcsname{#2}}
- \col@latin@mark{subsp.}{\col@latin@break{\upshape subsp\@.}\itshape\space}
- \col@latin@mark{var.}{\col@latin@break{\upshape var\@.}\itshape\space}
- \col@latin@mark{f.}{\col@latin@break{\upshape f\@.}\itshape\space}
- \col@latin@mark{cf.}{{\upshape cf\@.}\space}
- \col@latin@mark{aff.}{{\upshape aff\@.}\space}
- \col@latin@mark{sp.}{\upshape sp\@.\space}
- \col@latin@mark{@bquote}{\upshape\string`}
- \col@latin@mark{@equote}{\unskip\string'}
- \col@latin@mark{@times}{\ensuremath{\times}}
- \col@latin@mark{@end}{\global\let\@iterator\relax}
-\def\col@latin#1{%
- \itshape
- \gdef\@iterator##1 {%
- \@ifundefined{\col@latin@prefix##1}%
- {##1\space}%
- {\csname\col@latin@prefix##1\endcsname}%
- \@iterator}%
- \@iterator#1 @end
-}
-\def\inter@taxon@skip{\hskip .1667em minus .1667em\relax}
-\def\det@latin@prefix{^_^}
-\def\det@latin@mark#1#2{%
- \expandafter\gdef\csname\det@latin@prefix#1\endcsname{#2}}
- \det@latin@mark{subsp.}{{\upshape subsp\@.}\word@cnt\tw@\space}
- \det@latin@mark{var.}{{\upshape var\@.}\word@cnt\tw@\space}
- \det@latin@mark{f.}{{\upshape f\@.}\advance\word@cnt\tw@\space}
- \det@latin@mark{cf.}{{\upshape cf\@.}\word@cnt\tw@\space}
- \det@latin@mark{aff.}{{\upshape aff\@.}\word@cnt\tw@\space}
- \det@latin@mark{sp.}{\upshape sp\@.\word@cnt\z@\space}
- \det@latin@mark{@bquote}{\upshape\string`}
- \det@latin@mark{@equote}{\unskip\string'}
- \det@latin@mark{@times}{\ensuremath{\mathsf\times}\advance\word@cnt\@ne}
- \det@latin@mark{et}{\penalty-\@ne et\penalty-\@ne\space}
- \det@latin@mark{ex}{\penalty-\tw@ et\penalty-\tw@\space}
- \det@latin@mark{@lparen}{\penalty-\thr@@\lparen}
- \det@latin@mark{@rparen}{\unskip\rparen\penalty-\thr@@}
- \det@latin@mark{@end}{\global\let\@iterator\relax}
-\def\det@latin#1{%
- \itshape
- \word@cnt\tw@
- \leavevmode
- \gdef\@iterator##1 {%
- \@ifundefined{\det@latin@prefix##1}%
- {##1\space}%
- {\csname\det@latin@prefix##1\endcsname}%
- \advance\word@cnt-\@ne
- \ifcase\word@cnt\penalty-\f@ur\upshape\inter@taxon@skip\or\itshape\fi
- \@iterator}%
- \@iterator#1 @end
-}
% FONT STYLE
\def\headerstyle{\bfseries}
\def\headingstyle{\scshape}
@@ -268,21 +272,23 @@
\nointerlineskip
\centerline{\hss\rule{.25\paperwidth}{\NC@seprule}\hss}}
% COMPONENTS OF COLLECTION LABELS
+\RequirePackage{color}
\def\form@line#1#2{%
\par\hangindent=1em%
\leavevmode
- \setbox\header@box=\hbox{\headerstyle#1}%
+ \setbox\header@box=\hbox{\headerstyle\white@uline{#1}}%
\setbox\temp@box=\hbox{\copy\header@box\quad#2}%
\def\glue@begin{\quad\hfill}%
\def\glue@end{\hfill\hfill\hbox{}}%
\ifdim\wd\temp@box>\linewidth
- \def\glue@begin{\CJKglue\quad\CJKglue}\fi
+ \def\glue@begin{\CJKglue\quad\CJKglue}%
+ \def\glue@end{}\fi
\box\header@box
- \uline{\glue@begin#2\glue@end}\par}
+ \glue@begin#2\glue@end\par}
\def\form@cell#1#2{%
\leavevmode
- \hbox{\headerstyle#1}\nobreak
- \uline{\;\hfill#2\hfill\;}\hbox{}\penalty-1\relax}
+ \hbox{\headerstyle\white@uline{#1}}\nobreak
+ \;\hfill#2\hfill\;\hbox{}\penalty-1\relax\ignorespaces}
\def\heading@line#1{%
\setbox\temp@box=\hbox{#1}%
\ifdim\wd\temp@box>\linewidth
@@ -313,39 +319,41 @@
\fi
\fi}
\def\printform{%
- \form@line{采集人}{\Collector}%
- \form@cell{采集号}{\CollectionNo}%
- \if@internal\form@cell{照片号}{\PhotoNo}\par\fi
- \form@cell{采集日期}{\DateCollection}%
- \if@internal\form@cell{标本份数}{\NoDuplication}\fi\par
- \form@line{产地}{\Location}%
- \form@cell{经度}{\plus@one@long\Longitude}%
- \form@cell{纬度}{\plus@one@lat\Latitude}\par
- \form@cell{海拔}{\plus@one@m\Altitude}%
- \form@cell{生境}{\Habitat}\par
- \form@cell{生活型}{\LifeForm}\penalty-2\relax%
- \form@cell{体高}{\plus@one@m\Height}%
- \form@cell{胸径}{\plus@one@cm\DBH}\par
- \form@cell{科名}{\Family}%
- \form@cell{中文名}{\ChineseName}\par
- \form@line{学名}{\expandafter\col@latin\expandafter{\ScientificName}}
- \form@line{附注}{\Description}
+ \lines@box{%
+ \form@line{采集人}{\Collector}%
+ \form@cell{采集号}{\ColNum}%
+ \if@internal\form@cell{照片号}{\PhotoNum}\par\fi
+ \form@cell{采集日期}{\ColDate}%
+ \if@internal\form@cell{标本份数}{\NumDup}\fi\par
+ \form@line{产地}{\Location}%
+ \form@cell{经度}{\plus@one@long\Longitude}%
+ \form@cell{纬度}{\plus@one@lat\Latitude}\par
+ \form@cell{海拔}{\plus@one@m\Altitude}%
+ \form@cell{生境}{\Habitat}\par
+ \form@cell{生活型}{\LifeForm}\penalty-2\relax%
+ \form@cell{体高}{\plus@one@m\Height}%
+ \form@cell{胸径}{\plus@one@cm\DBH}\par
+ \form@cell{科名}{\Family}%
+ \form@cell{中文名}{\ChnName}\par
+ \form@line{学名}{\col@latin{\LatName}}
+ \form@line{附注}{\Descr}}
\nointerlineskip}
\if@col@barcode
\RequirePackage[code=Code39,X=.5mm,H=4mm]{makebarcode}
\fi
\def\printbarcode{%
\let\if@barcodeprepared@\if@col@barcode
- \if\relax\RecordNo\relax\@barcodeprepared@false\fi
+ \if\relax\RecNum\relax\@barcodeprepared@false\fi
\if\relax\@herbariumcode\relax\@barcodeprepared@false\fi
\if@barcodeprepared@
\vskip6.6pt\relax
- \resizebox{\columnwidth}{4mm}{\barcode{\@herbariumcode-\RecordNo}}\par
+ \resizebox{\columnwidth}{4mm}{\barcode{\@herbariumcode-\RecNum}}\par
\nointerlineskip\vskip13.9pt\relax
\else
\vskip\NC@margin
\fi
\cutting@line}
+\RequirePackage{calc}
\def\makemap#1{%
\unless\if@drew@map@
\if\relax\Longitude\relax\else
@@ -396,11 +404,11 @@
\fi
\def\printqrcode{%
\let\if@barcodeprepared@\if@det@barcode
- \if\relax\RecordNo\relax\@barcodeprepared@false\fi
+ \if\relax\RecNum\relax\@barcodeprepared@false\fi
\if\relax\@herbariumcode\relax\@barcodeprepared@false\fi
\if@barcodeprepared@
- \vb@xt@\z@{\vss\hbox{\qrcode[height=1cm]{\@herbariumcode.\RecordNo}}\kern-5pt}\fi}
-\def\identifier@skip{\hskip12mm minus 12mm}
+ \vb@xt@\z@{\vss\hbox{\qrcode[height=1cm]{\@herbariumcode.\RecNum}}\kern-5pt}\fi}
+\def\identifier@skip{\hskip 12mm minus 12mm}
\def\@Identify#1{%
\@identifying@true
\det@parse@params{#1}%
@@ -410,8 +418,8 @@
\vskip\NC@margin
\begingroup
\centering
- {\detlatinstyle\expandafter\det@latin\expandafter{\ScientificName}\par}%
- {\detchinesestyle\leavevmode\ChineseName\par}%
+ {\detlatinstyle\expandafter\det@latin\expandafter{\LatName}\par}%
+ {\detchinesestyle\leavevmode\ChnName\par}%
\endgroup
\vskip7pt\relax
\hb@xt@\linewidth{%
@@ -431,31 +439,11 @@
\@identifying@false}
\def@to@eol\Identify\@Identify
% CATCODES PART III
-\def\markdown{\catcode`\*\active\catcode`\'\active}
-\def\endmarkdown{\catcode`\*\@other\catcode`\'\@other}
-\markdown
-\def*#1*{{\noexpand\noexpand\noexpand\itshape#1}}
-\def'#1'{@bquote #1 @equote }
-\endmarkdown
-\catcode`\×\active
- \def×{@times }
\catcode`\&\active
\def&{et}
-\let\lparen(%)
-\let\rparen)%(
-\catcode`\(\active%\)
-\def(#1){%
- \if@identifying@
- @lparen\space #1 @rparen\space
- \else
- \lparen#1\rparen
- \fi}
-\catcode`\^^@\@other
-\catcode`\^^I\active
- \def^^I{^^@}
\makeatother
% HOOKS
-\AtBeginDocument{\begin{multicols*}{4}\markdown}
-\AtEndDocument{\endmarkdown\end{multicols*}}
+\AtBeginDocument{\begin{multicols*}{4}}
+\AtEndDocument{\end{multicols*}}
\endinput
% END OF FILE nanicolle.cls
diff --git a/macros/xetex/latex/nanicolle/nanicolle.pdf b/macros/xetex/latex/nanicolle/nanicolle.pdf
index 81ac650d42..797eacb915 100644
--- a/macros/xetex/latex/nanicolle/nanicolle.pdf
+++ b/macros/xetex/latex/nanicolle/nanicolle.pdf
Binary files differ
diff --git a/macros/xetex/latex/nanicolle/nanicolle.tex b/macros/xetex/latex/nanicolle/nanicolle.tex
index 3695fbd7c6..fef51adda8 100644
--- a/macros/xetex/latex/nanicolle/nanicolle.tex
+++ b/macros/xetex/latex/nanicolle/nanicolle.tex
@@ -31,11 +31,17 @@
\usepackage{rulerbox}
% \usepackage{url}
\usepackage{color}
- \definecolor{darkmiku}{RGB}{19, 149, 139}
+ \definecolor{mikudark}{RGB}{19, 149, 139}
\usepackage{array}
\newcolumntype{+}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}#1\ignorespaces}
+\usepackage{enumitem}
+ \setlist[description]{font=\color{mikudark}\bfseries}
+\usepackage{multicol}
+ \setlength\columnsep{2.5em}
+ \setlength\columnseprule{0.4pt}
+\usepackage{adjustbox}
\makeatletter
\let\url\texttt
@@ -50,7 +56,7 @@
\def\@ran{\raisebox{.2ex}{\ensuremath{\rangle}}}
\def\param#1{\textrm{\@lan\textit{#1}\@ran}}
\def\stopurl{\rlap{\char00}} % WHY URL IS TO GRAB EVERYTHING IT SEES?
-\long\def\cmd#1{{\ttfamily\color{darkmiku}#1}}
+\long\def\cmd#1{{\ttfamily\color{mikudark}#1}}
\long\def\pbox#1{\leavevmode\parbox{.86\linewidth}{\cmd{#1}}\kern-.03\linewidth}
\long\edef\[#1\]{$$\noexpand\pbox{\noexpand\raggedright#1\par}$$}
\catcode`\$=\active
@@ -76,7 +82,7 @@
\author{杨宇昌%
\footnote{电子邮箱为\url{yang.yc.allium@gmail.com}\stopurl 。}%
\quad〔\textsc{Negimoriya}〕}
-\date{2019年4月28日\qquad ver.~2.00}
+\date{2019年9月27日\qquad ver.~2.01}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -90,7 +96,7 @@
本文介绍的\LaTeX{}文档类\pkgname{nanicolle}可用于植物标本中文采集标签和鉴定标签的排版。两种标签分别用$\string\Collect$命令和$\string\Identify$名称产生。排好的标签可直接打印。
-\pkgname{nanicolle}依赖\pkgname{ctex}宏集和\pkgname{graphicx}、\pkgname{geometry}、\pkgname{multicol}、\pkgname{calc}、\pkgname{listofitems}等宏包。目前,\pkgname{nanicolle}文档类仅支持\XeLaTeX{}编译方式。
+\pkgname{nanicolle}依赖\pkgname{ctex}宏集和\pkgname{graphicx}、\pkgname{geometry}、\pkgname{multicol}、\pkgname{calc}、\pkgname{listofitems}、\pkgname{color}、\pkgname{xstring}等宏包。目前,\pkgname{nanicolle}文档类仅支持\XeLaTeX{}编译方式。
\pkgname{nanicolle}按 The \LaTeX{} Project Public License (LPPL) 1.3c 协议\footnote{LPPL 1.3c 协议的详细内容见\url{http://www.latex-project.org/lppl.txt}\stopurl 。}授权。
@@ -140,7 +146,7 @@ $\string\Collect$命令的格式为
\item $\param{采集日期}$:采集植物材料的日期,可使用$\param{年}.\param{月}.\param{日}$的阿拉伯数字表示。此参数不得为空。
\item $\param{科名}$:临时鉴定的科的名称,建议使用中文表示。
\item $\param{中文名}$:临时鉴定的植物中文名。
- \item $\param{学名}$:临时鉴定的植物学名,不带命名人引证。当非空时,可用通式$\param{属级部分}\param{种级部分}\param{种下等级部分}$表示。
+ \item $\param{学名}$:临时鉴定的植物学名,建议不带作者引证。当非空时,可用通式$\param{属级部分}\param{种级部分}\param{种下等级部分}$表示。
其中,$\param{属级部分}$有2类结构:
\[\clearcnt
\ritem{\param{属名}}%
@@ -193,7 +199,7 @@ $\string\Identify$命令的格式为
\begin{enumerate}
\item $\param{记录号}$:仅为数据组织方便而设,不在采集标签上出现。
- \item $\param{学名}$:正式鉴定的植物学名,须带有命名人引证,可用通式$\param{属级部分}\param{种级部分}\param{种下等级部分}\param{命名人引证}$表示。此参数不得为空。
+ \item $\param{学名}$:正式鉴定的植物学名,须带有作者引证,可用通式$\param{属级部分}\param{种级部分}\param{种下等级部分}\param{作者引证}$表示。此参数不得为空。
\item $\param{中文名}$:与$\param{学名}$相关联的中文种名。
\item $\param{鉴定人}$:标本鉴定者的姓名。
\item $\param{鉴定人标准形式}$:标本鉴定者的姓名在分类学上约定的标准形式。此参数与$\param{鉴定人}$不得同时为空。
@@ -259,4 +265,58 @@ $\string\Collect$与$\string\Identify$之所以不遵照\LaTeX{}惯例而用制
\caption{样例PDF文件 \texttt{nanicolle-example.pdf} 的前2栏(左半页)}\label{example}
\end{figure}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{更新日志}
+\begin{multicols}{2}
+\begin{description}[style=nextline]
+ \item[ver. 2.01 (2019.9.27)]
+ 改进采集标签中下划线表的实现。\\
+ 支持在附注等项目中直接用\LaTeX{}命令如 $\string\textit$ 等控制字体样式。\\
+ 合并解析拉丁学名的两处代码,允许在采集标签的学名后引证作者。
+ \item[ver. 2.00 (2019.4.28)]
+ 全部代码重构,打包为文档类,重新命名为\pkgname{nanicolle}。\\
+ 新增地图自定义与自动选择功能。\\
+ 暂时删去英文采集标签排版功能。\\
+ 暂时删去标本条码标签排版功能。\\
+ 暂时删去植物所建筑地图。\\
+ 开始发布于CTAN和Github上。
+ \item[ver. 1.14 (2018.12.2)]
+ 新增 $\textbackslash ifinternal$ 开关,以快速控制条码、照片号、标题等。
+ \item[ver. 1.13 (2018.9.15)]
+ 改进采集标签中下划线表的实现。\\
+ 修正地图中的国界。\\
+ 采集标签中增加植物所建筑地图。\\
+ 缩减采集标签中的悬挂缩进量。\\
+ 代码模块化。
+ \item[ver. 1.12 (2018.5.15)]
+ 优化拉丁学名断行位置。\\
+ 调整标本条码标签的段落样式。
+ \item[ver. 1.11 (2018.3.28)]
+ 调整原始数据结构。\\
+ 鉴定标签中增加命名人标准缩写。
+ \item[ver. 1.10 (2018.2.9)]
+ 采集标签中增加东莞市镇街地图。
+ \item[ver. 1.09 (2018.1.28)]
+ 实现标本条码标签排版。
+ \item[ver. 1.08 (2017.10.31)]
+ 采集标签中增加地理范围为经度 \ensuremath{73\mbox{--}136\,^\circ\mathrm E}、纬度 \ensuremath{17\mbox{--}54\,^\circ\mathrm N}的国界与中国省界地图。
+ \item[ver. 1.07 (2017.10.22)]
+ 采集标签与鉴定标签中增加条码。\\
+ 实现带有尼泊尔分区地图的英文采集标签排版,用于2017年中国—尼泊尔联合植物考察。
+ \item[ver. 1.06 (2017.10.21)]
+ 采集标签中增加标题。
+ \item[ver. 1.05 (2017.7.4)]
+ 调整页面布局,使标签尺寸缩小为原来的\ensuremath{\sqrt{2}/2},与A4台纸相配。\\
+ 改进水平切割线的样式。
+ \item[ver. 1.03 (2017.7.2)]
+ 参数的表示由\LaTeX{}格式改成TSV格式,方便用电子表格储存。\\
+ 此版本曾发布于Github上。
+ \item[ver. 1.02 (2016.8.6)]
+ 新造“\raisebox{-0.3pt}{\resizebox{10pt}{8.5pt}{\raisebox{8pt}{\clipbox{0 6.2pt 0 0pt}{苗}}\kern-10pt\relax 杭}}”字。
+ \item[ver. 1.01 (2016.8.3)]
+ 实现采集标签与鉴定标签排版。
+\end{description}
+\end{multicols}
+
\end{document}