diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-28 03:00:42 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-28 03:00:42 +0000 |
commit | f41a5d46017f730e9586332f28744912872326f5 (patch) | |
tree | 0e7ebb355adbdb56ac9d1e236dd5cde0b71e1520 /macros/xetex | |
parent | 5827a950592f8a91468bcd0b5963d1df8d3518d8 (diff) |
CTAN sync 201909280300
Diffstat (limited to 'macros/xetex')
-rw-r--r-- | macros/xetex/latex/nanicolle/nanicolle-example.pdf | bin | 179032 -> 174330 bytes | |||
-rw-r--r-- | macros/xetex/latex/nanicolle/nanicolle.cls | 280 | ||||
-rw-r--r-- | macros/xetex/latex/nanicolle/nanicolle.pdf | bin | 377571 -> 387379 bytes | |||
-rw-r--r-- | macros/xetex/latex/nanicolle/nanicolle.tex | 72 |
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 Binary files differindex 07d4c95e04..0c110b2d80 100644 --- a/macros/xetex/latex/nanicolle/nanicolle-example.pdf +++ b/macros/xetex/latex/nanicolle/nanicolle-example.pdf 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 Binary files differindex 81ac650d42..797eacb915 100644 --- a/macros/xetex/latex/nanicolle/nanicolle.pdf +++ b/macros/xetex/latex/nanicolle/nanicolle.pdf 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} |