texlive[52237] Master: nanicolle

commits+karl at tug.org commits+karl at tug.org
Tue Oct 1 18:39:42 CEST 2019


Revision: 52237
          http://tug.org/svn/texlive?view=revision&revision=52237
Author:   karl
Date:     2019-10-01 18:39:42 +0200 (Tue, 01 Oct 2019)
Log Message:
-----------
nanicolle

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/xelatex/nanicolle/nanicolle-example.pdf
    trunk/Master/texmf-dist/doc/xelatex/nanicolle/nanicolle.pdf
    trunk/Master/texmf-dist/doc/xelatex/nanicolle/nanicolle.tex
    trunk/Master/texmf-dist/tex/xelatex/nanicolle/nanicolle.cls
    trunk/Master/tlpkg/libexec/ctan2tds

Modified: trunk/Master/texmf-dist/doc/xelatex/nanicolle/nanicolle-example.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/xelatex/nanicolle/nanicolle.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/xelatex/nanicolle/nanicolle.tex
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/nanicolle/nanicolle.tex	2019-10-01 16:35:03 UTC (rev 52236)
+++ trunk/Master/texmf-dist/doc/xelatex/nanicolle/nanicolle.tex	2019-10-01 16:39:42 UTC (rev 52237)
@@ -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 at 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 @@
 	\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 @@
 
 \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 @@
 	\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}

Modified: trunk/Master/texmf-dist/tex/xelatex/nanicolle/nanicolle.cls
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/nanicolle/nanicolle.cls	2019-10-01 16:35:03 UTC (rev 52236)
+++ trunk/Master/texmf-dist/tex/xelatex/nanicolle/nanicolle.cls	2019-10-01 16:39:42 UTC (rev 52237)
@@ -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 at xt@{\vbox to}
 % CATCODE PART II
-\catcode`\^^@\@other
 % CONDITIONS
 \newif\if at param@enough@
 \newif\if at drew@map@
@@ -100,6 +99,32 @@
 \newbox\pin at point
   \setbox\pin at point=\vb at xt@\z@{\vss\hb at 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 at 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 at box#1{%
+  \setbox\@tempboxa=\vbox{#1\par}%
+  \vbox to \ht\@tempboxa{\leaders\hb at xt@\hsize{%
+    \kern1em\uline{\strut\hfill}}\vfill
+    \kern-1em}\vskip-\ht\@tempboxa\box\@tempboxa\par}
 % UNIT EXPRESSIONS
 \def\degree{\ensuremath{^\circ}}
 \def\gobble at char#1{\relax}
@@ -120,116 +145,95 @@
 \def\plus at one@cm#1{\plus at one@second{#1}{cm}}
 \def\plus at one@m#1{\plus at one@second{#1}{m}}
 % PARSING
-\RequirePackage{calc}
+% LATIN PARSING
+\def\inter at taxon@skip{ \hskip .1667em minus .1667em\relax}
+\def\upd at shape{%
+  \advance\word at cnt-\@ne
+  \ifcase\word at cnt
+    \upshape
+    \unskip\penalty-\f at ur
+    \inter at taxon@skip
+  \or
+    \itshape
+  \fi\ignorespaces}
+\RequirePackage{xstring}
+\def\strsubs#1#2{%
+  \StrSubstitute{\@tempstring}{#1}{#2}[\@tempstring]\ignorespaces}
+\def\handle at f{\textup{f.}\unless\ifnum\word at cnt<0\word at cnt\tw@\fi}
+\def\latin at parse#1{%
+  \word at cnt\tw@
+  \edef\@tempstring{#1}%
+  \expandarg
+  \strsubs{ '}{ \upshape`}
+  \strsubs{ }{ \upd at shape}%
+  \strsubs{subsp.}{\textup{subsp.}\word at cnt\tw@}
+  \strsubs{var.}{\textup{var.}\word at cnt\tw@}
+  \strsubs{f.}{\handle at f}
+  \strsubs{sp.}{\upshape sp.\word at cnt\z@}
+  \strsubs{cf.}{\textup{cf.}\word at cnt\tw@}
+  \strsubs{aff.}{\textup{aff.}\word at 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 at cnt\@ne\ignorespaces}
+  {\itshape\@tempstring}}
+\def\col at latin#1{%
+  \raggedright
+  \hangindent=4em
+  \latin at parse{#1}}
+\def\det at latin#1{%
+  \latin at parse{#1}}
 \RequirePackage{listofitems}
   \reademptyitems
+  \catcode`\^^I\@other
+  \setsepchar{^^I}
 \def\get at argin#1{%
   \ifnum#1>\temp at arginlen\relax
     \else\temp at argin[#1]\fi}
 \def\col at parse@params#1{%
-  \edef\temp at list{#1}
-  \setsepchar{^^@}
-  \readlist\temp at argin{\temp at list}
+  \readlist\temp at argin{#1}
   \@param at enough@true
-  \edef\RecordNo{\get at argin{2}}
-  \edef\Collector{\get at argin{3}}
-  \edef\CollectionNo{\get at argin{4}}
-  \edef\DateCollection{\get at argin{5}}
-  \edef\Family{\get at argin{6}}
-  \edef\ChineseName{\get at argin{7}}
-  \edef\ScientificName{\get at argin{8}}
-  \edef\PhotoNo{\get at argin{9}}
-  \edef\NoDuplication{\get at argin{10}}
-  \edef\Location{\get at argin{11}}
-  \edef\Longitude{\get at argin{12}}
-  \edef\Latitude{\get at argin{13}}
-  \edef\Altitude{\get at argin{14}}
-  \edef\Habitat{\get at argin{15}}
-  \edef\LifeForm{\get at argin{16}}
-  \edef\Height{\get at argin{17}}
-  \edef\DBH{\get at argin{18}}
-  \edef\Description{\get at argin{19}}
+  \def\RecNum{\get at argin{2}}
+  \def\Collector{\get at argin{3}}
+  \def\ColNum{\get at argin{4}}
+  \def\ColDate{\get at argin{5}}
+  \def\Family{\get at argin{6}}
+  \def\ChnName{\get at argin{7}}
+  \edef\LatName{\get at argin{8}}
+  \def\PhotoNum{\get at argin{9}}
+  \def\NumDup{\get at argin{10}}
+  \def\Location{\get at argin{11}}
+  \def\Longitude{\get at argin{12}}
+  \def\Latitude{\get at argin{13}}
+  \def\Altitude{\get at argin{14}}
+  \def\Habitat{\get at argin{15}}
+  \def\LifeForm{\get at argin{16}}
+  \def\Height{\get at argin{17}}
+  \def\DBH{\get at argin{18}}
+  \def\Descr{\get at argin{19}}
   \repeat at cnt\@ne
-  \if at auto@duplicate\if\relax\NoDuplication\relax\else
-    \repeat at cnt\NoDuplication\relax
+  \if at auto@duplicate\if\relax\NumDup\relax\else
+    \repeat at cnt\NumDup\relax
   \fi\fi
   \if\relax\Collector\relax\@param at enough@false\fi
-  \if\relax\DateCollection\relax\@param at enough@false\fi
+  \if\relax\ColDate\relax\@param at enough@false\fi
   \if\relax\Location\relax\@param at enough@false\fi
   }
 \def\det at parse@params#1{%
-  \edef\temp at list{#1}
-  \setsepchar{^^@}
-  \readlist\temp at argin{\temp at list}
+  \readlist\temp at argin{#1}
   \@param at enough@true
-  \edef\RecordNo{\get at argin{2}}
-  \edef\ScientificName{\get at argin{3}}
-  \edef\ChineseName{\get at argin{4}}
-  \edef\Identifier{\get at argin{5}}
-  \edef\IdentifierStd{\get at argin{6}}
-  \edef\DateIdentification{\get at argin{7}}
-  \edef\Remark{\get at argin{8}}
-  \edef\temp at name{\Identifier\IdentifierStd}
-  \if\relax\ScientificName\relax\@param at enough@false\fi
+  \def\RecNum{\get at argin{2}}
+  \def\LatName{\get at argin{3}}
+  \def\ChnName{\get at argin{4}}
+  \def\Identifier{\get at argin{5}}
+  \def\IdentifierStd{\get at argin{6}}
+  \def\DateIdentification{\get at argin{7}}
+  \def\Remark{\get at argin{8}}
+  \def\temp at name{\Identifier\IdentifierStd}
+  \if\relax\LatName\relax\@param at enough@false\fi
   \if\relax\temp at name\relax\@param at enough@false\fi
   \if\relax\DateIdentification\relax\@param at enough@false\fi
   }
-% LATIN PARSING
-\def\col at latin@break{\hfill\penalty-\@ne
-  \hskip -3em plus -1fill\relax\hbox{}\hskip3em\relax}
-\def\col at latin@prefix{=-=}
-\def\col at latin@mark#1#2{%
-  \expandafter\gdef\csname\col at latin@prefix#1\endcsname{#2}}
-  \col at latin@mark{subsp.}{\col at latin@break{\upshape subsp\@.}\itshape\space}
-  \col at latin@mark{var.}{\col at latin@break{\upshape var\@.}\itshape\space}
-  \col at latin@mark{f.}{\col at latin@break{\upshape f\@.}\itshape\space}
-  \col at latin@mark{cf.}{{\upshape cf\@.}\space}
-  \col at latin@mark{aff.}{{\upshape aff\@.}\space}
-  \col at latin@mark{sp.}{\upshape sp\@.\space}
-  \col at latin@mark{@bquote}{\upshape\string`}
-  \col at latin@mark{@equote}{\unskip\string'}
-  \col at latin@mark{@times}{\ensuremath{\times}}
-  \col at latin@mark{@end}{\global\let\@iterator\relax}
-\def\col at latin#1{%
-  \itshape
-  \gdef\@iterator##1 {%
-    \@ifundefined{\col at latin@prefix##1}%
-      {##1\space}%
-      {\csname\col at latin@prefix##1\endcsname}%
-    \@iterator}%
-  \@iterator#1 @end 
-}
-\def\inter at taxon@skip{\hskip .1667em minus .1667em\relax}
-\def\det at latin@prefix{^_^}
-\def\det at latin@mark#1#2{%
-  \expandafter\gdef\csname\det at latin@prefix#1\endcsname{#2}}
-  \det at latin@mark{subsp.}{{\upshape subsp\@.}\word at cnt\tw@\space}
-  \det at latin@mark{var.}{{\upshape var\@.}\word at cnt\tw@\space}
-  \det at latin@mark{f.}{{\upshape f\@.}\advance\word at cnt\tw@\space}
-  \det at latin@mark{cf.}{{\upshape cf\@.}\word at cnt\tw@\space}
-  \det at latin@mark{aff.}{{\upshape aff\@.}\word at cnt\tw@\space}
-  \det at latin@mark{sp.}{\upshape sp\@.\word at cnt\z@\space}
-  \det at latin@mark{@bquote}{\upshape\string`}
-  \det at latin@mark{@equote}{\unskip\string'}
-  \det at latin@mark{@times}{\ensuremath{\mathsf\times}\advance\word at cnt\@ne}
-  \det at latin@mark{et}{\penalty-\@ne et\penalty-\@ne\space}
-  \det at latin@mark{ex}{\penalty-\tw@ et\penalty-\tw@\space}
-  \det at latin@mark{@lparen}{\penalty-\thr@@\lparen}
-  \det at latin@mark{@rparen}{\unskip\rparen\penalty-\thr@@}
-  \det at latin@mark{@end}{\global\let\@iterator\relax}
-\def\det at latin#1{%
-  \itshape
-  \word at cnt\tw@
-  \leavevmode
-  \gdef\@iterator##1 {%
-    \@ifundefined{\det at latin@prefix##1}%
-      {##1\space}%
-      {\csname\det at latin@prefix##1\endcsname}%
-    \advance\word at cnt-\@ne
-    \ifcase\word at cnt\penalty-\f at ur\upshape\inter at 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 at seprule}\hss}}
 % COMPONENTS OF COLLECTION LABELS
+\RequirePackage{color}
 \def\form at line#1#2{%
   \par\hangindent=1em%
   \leavevmode
-  \setbox\header at box=\hbox{\headerstyle#1}%
+  \setbox\header at box=\hbox{\headerstyle\white at uline{#1}}%
   \setbox\temp at box=\hbox{\copy\header at box\quad#2}%
   \def\glue at begin{\quad\hfill}%
   \def\glue at end{\hfill\hfill\hbox{}}%
   \ifdim\wd\temp at box>\linewidth
-    \def\glue at begin{\CJKglue\quad\CJKglue}\fi
+    \def\glue at begin{\CJKglue\quad\CJKglue}%
+    \def\glue at end{}\fi
   \box\header at box
-    \uline{\glue at begin#2\glue at end}\par}
+    \glue at begin#2\glue at end\par}
 \def\form at cell#1#2{%
   \leavevmode
-  \hbox{\headerstyle#1}\nobreak
-  \uline{\;\hfill#2\hfill\;}\hbox{}\penalty-1\relax}
+  \hbox{\headerstyle\white at uline{#1}}\nobreak
+  \;\hfill#2\hfill\;\hbox{}\penalty-1\relax\ignorespaces}
 \def\heading at line#1{%
   \setbox\temp at box=\hbox{#1}%
   \ifdim\wd\temp at box>\linewidth
@@ -313,23 +319,24 @@
     \fi
   \fi}
 \def\printform{%
-  \form at line{采集人}{\Collector}%
-  \form at cell{采集号}{\CollectionNo}%
-    \if at internal\form at cell{照片号}{\PhotoNo}\par\fi
-  \form at cell{采集日期}{\DateCollection}%
-    \if at internal\form at cell{标本份数}{\NoDuplication}\fi\par
-  \form at line{产地}{\Location}%
-  \form at cell{经度}{\plus at one@long\Longitude}%
-    \form at cell{纬度}{\plus at one@lat\Latitude}\par
-  \form at cell{海拔}{\plus at one@m\Altitude}%
-    \form at cell{生境}{\Habitat}\par
-  \form at cell{生活型}{\LifeForm}\penalty-2\relax%
-    \form at cell{体高}{\plus at one@m\Height}%
-    \form at cell{胸径}{\plus at one@cm\DBH}\par
-  \form at cell{科名}{\Family}%
-    \form at cell{中文名}{\ChineseName}\par
-  \form at line{学名}{\expandafter\col at latin\expandafter{\ScientificName}}
-  \form at line{附注}{\Description}
+  \lines at box{%
+    \form at line{采集人}{\Collector}%
+    \form at cell{采集号}{\ColNum}%
+      \if at internal\form at cell{照片号}{\PhotoNum}\par\fi
+    \form at cell{采集日期}{\ColDate}%
+      \if at internal\form at cell{标本份数}{\NumDup}\fi\par
+    \form at line{产地}{\Location}%
+    \form at cell{经度}{\plus at one@long\Longitude}%
+      \form at cell{纬度}{\plus at one@lat\Latitude}\par
+    \form at cell{海拔}{\plus at one@m\Altitude}%
+      \form at cell{生境}{\Habitat}\par
+    \form at cell{生活型}{\LifeForm}\penalty-2\relax%
+      \form at cell{体高}{\plus at one@m\Height}%
+      \form at cell{胸径}{\plus at one@cm\DBH}\par
+    \form at cell{科名}{\Family}%
+      \form at cell{中文名}{\ChnName}\par
+    \form at line{学名}{\col at latin{\LatName}}
+    \form at line{附注}{\Descr}}
   \nointerlineskip}
 \if at col@barcode
   \RequirePackage[code=Code39,X=.5mm,H=4mm]{makebarcode}
@@ -336,16 +343,17 @@
 \fi
 \def\printbarcode{%
   \let\if at barcodeprepared@\if at col@barcode
-  \if\relax\RecordNo\relax\@barcodeprepared at false\fi
+  \if\relax\RecNum\relax\@barcodeprepared at false\fi
   \if\relax\@herbariumcode\relax\@barcodeprepared at false\fi
   \if at 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 at margin
   \fi
   \cutting at line}
+\RequirePackage{calc}
 \def\makemap#1{%
   \unless\if at drew@map@
     \if\relax\Longitude\relax\else
@@ -396,11 +404,11 @@
 \fi
 \def\printqrcode{%
   \let\if at barcodeprepared@\if at det@barcode
-  \if\relax\RecordNo\relax\@barcodeprepared at false\fi
+  \if\relax\RecNum\relax\@barcodeprepared at false\fi
   \if\relax\@herbariumcode\relax\@barcodeprepared at false\fi
   \if at barcodeprepared@
-    \vb at xt@\z@{\vss\hbox{\qrcode[height=1cm]{\@herbariumcode.\RecordNo}}\kern-5pt}\fi}
-\def\identifier at skip{\hskip12mm minus 12mm}
+    \vb at xt@\z@{\vss\hbox{\qrcode[height=1cm]{\@herbariumcode.\RecNum}}\kern-5pt}\fi}
+\def\identifier at skip{\hskip 12mm minus 12mm}
 \def\@Identify#1{%
   \@identifying at true
   \det at parse@params{#1}%
@@ -410,8 +418,8 @@
       \vskip\NC at margin
       \begingroup
         \centering
-        {\detlatinstyle\expandafter\det at latin\expandafter{\ScientificName}\par}%
-        {\detchinesestyle\leavevmode\ChineseName\par}%
+        {\detlatinstyle\expandafter\det at latin\expandafter{\LatName}\par}%
+        {\detchinesestyle\leavevmode\ChnName\par}%
       \endgroup
       \vskip7pt\relax
       \hb at xt@\linewidth{%
@@ -431,31 +439,11 @@
   \@identifying at false}
 \def at 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 at 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

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2019-10-01 16:35:03 UTC (rev 52236)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2019-10-01 16:39:42 UTC (rev 52237)
@@ -143,6 +143,7 @@
  'autotab',     "die 'skipping, noinfo license, latex 2.09'",
  'avantgar',    "die 'skipping, part of urw-base35, frozen'",
  'axessibility',"die 'skipping, nonfree'",
+ 'axodraw',	"die 'skipping, update for next TL release'",
  'babel-frenchb',  "die 'skipping, use babel-french'",
  'babel-serbianc', "&MAKEflatten",
  'babel-slovene',  "die 'skipping, use babel-slovenian'",



More information about the tex-live-commits mailing list