diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/xelatex/xduts/xduts.pdf | bin | 429543 -> 441342 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/xelatex/xduts/xduts.dtx | 131 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xelatex/xduts/xdufont.sty | 9 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls | 41 | ||||
-rw-r--r-- | Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls | 44 |
5 files changed, 182 insertions, 43 deletions
diff --git a/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf b/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf Binary files differindex 8cd7f1c048c..4160cedd526 100644 --- a/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf +++ b/Master/texmf-dist/doc/xelatex/xduts/xduts.pdf diff --git a/Master/texmf-dist/source/xelatex/xduts/xduts.dtx b/Master/texmf-dist/source/xelatex/xduts/xduts.dtx index 8ec2d39d830..967e6c1c4aa 100644 --- a/Master/texmf-dist/source/xelatex/xduts/xduts.dtx +++ b/Master/texmf-dist/source/xelatex/xduts/xduts.dtx @@ -1,14 +1,14 @@ % \iffalse %<*driver> \ProvidesFile{xduts.dtx} -[2022/05/08 v1.13.2.0 Xidian University TeX Suite] +[2022/05/15 v1.15.0.1 Xidian University TeX Suite] %</driver> %<class|sty>\NeedsTeXFormat{LaTeX2e} %<class|sty>\RequirePackage{expl3} %<xdufont>\ProvidesExplPackage{xdufont} %<xdupgthesis>\ProvidesExplClass{xdupgthesis} %<xduugthesis>\ProvidesExplClass{xduugthesis} -%<class|sty> {2022/05/08}{1.13.2.0} +%<class|sty> {2022/05/15}{1.15.0.1} %<xdufont> {Xidian University Font package} %<xdupgthesis> {Xidian University Postgraduate Thesis document class} %<xduugthesis> {Xidian University Undergraduate Thesis document class} @@ -155,7 +155,7 @@ \end{document} %</driver> % \fi -% \CheckSum{1283} +% \CheckSum{1315} % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -278,7 +278,9 @@ % \end{document} % \end{latexexample} % \par -% \secrefx{编译}介绍了如何编译,\secrefx{参数设置}介绍了如何自定义配置。 +% \secrefx{编译}介绍了如何编译, +% \secrefx{参考文献引用}介绍了如何引用参考文献, +% \secrefx{参数设置}介绍了如何自定义配置。 % 其中,字体选项见\secrefx{字体选项}, % 部分英文字体切换见\secrefx{英文字体}, % 参考文献配置见\secrefx{参考文献配置}, @@ -313,6 +315,7 @@ % \end{latexexample} % \par % 学会以上用法后即可使用\clsx{xduugthesis}文档类。 +% 另外,在\secrefx{额外命令}中提供了部分额外命令来增强排版。 % \changes{v1.3.0.1}{2022/04/20}{增加兼容性说明} % \section{兼容性说明} % \label{兼容性说明} @@ -325,7 +328,8 @@ % \pkgx{algorithm2e}宏包提供了算法环境, % 该宏包提供的\envx{algorithm}环境实际将浮动体与算法内容合二为一。 % \subsection{图片} -% 主要适配子图caption字体字号, +% \changes{v1.13.5.1}{2022/05/08}{补充子图引用样式文档} +% 主要适配子图caption字体字号和子图引用样式, % \changes{v1.4.1.1}{2022/04/27}{修正子图适配宏包名称} % 包括\pkgx{subfig}宏包和\pkgx{subcaption}宏包。 % \subsection{表格} @@ -339,7 +343,14 @@ % \subsection{编译} % \label{编译} % \changes{v0.5.1.2}{2022/04/07}{增加编译说明} -% \LaTeX{}本身是命令行程序,通过不同的命令调用所需的编译引擎,编辑器提供的快捷按钮实际只是做了包装。\xduts{}仅支持\XeLaTeX{},参考文献默认使用\biber{},也可以切换为\bibtex{}。 +% \LaTeX{}本身是命令行程序,通过不同的命令调用所需的编译引擎,编辑器提供的快捷按钮实际只是做了包装。 +% \xduts{}仅支持\XeLaTeX{},参考文献默认使用\biber{},也可以切换为\bibtex{}。 +% \subsection{参考文献引用} +% \label{参考文献引用} +% \xduts{}提供了两种参考文献处理方式, +% 一种是\pkgx{natbib}和\pkgx{gbt7714}宏包组合,搭配\cmdx{bibtex}命令; +% 另一种是\pkgx{biblatex}宏包,搭配\cmdx{biber}命令。 +% 引用参考文献时,\tnx{cite}为上标样式,\tnx{parencite}为非上标样式。 % \subsection{参数设置} % \label{参数设置} % \changes{v0.5.1.1}{2022/04/06}{增加xdusetup配置文档} @@ -595,15 +606,18 @@ % \end{optdesc} % \subsection{交叉引用配置} % \label{交叉引用配置} -% \begin{function}[added=2022-04-16]{style/ref-add-space} +% \begin{function}[added=2022-04-16,updated=2022-05-08]{style/ref-add-space} % \begin{syntax} % \optx{style/ref-add-space}=\metax{true|(false)} % \end{syntax} -% 是否自动调整\tnx{ref}两侧中英文间空白。 +% 是否自动调整\tnx{ref}和\tnx{pageref}两侧中英文间空白。 % \end{function} % \begin{optdesc} -% \item[true] 自动调整\tnx{ref}两侧中英文间空白。未避免产生不正常的空白宽度,请不要在\tnx{ref}两侧输入空格。仅在\optx{language}等于|zh|时有效。 -% \item[false] 保持原始\tnx{ref}命令效果。 +% \item[true] 自动调整\tnx{ref}和\tnx{pageref}两侧中英文间空白。 +% 未避免产生不正常的空白宽度,请不要在\tnx{ref}和\tnx{pageref}两侧输入空格。 +% 仅在\optx{language}等于|zh|时有效。 +% 请不要使用\pkgx{subcaption}宏包的提供的\tnx{subref}和\tnx{subref*}命令。 +% \item[false] 保持原始\tnx{ref}和\tnx{pageref}命令效果。 % \end{optdesc} % \subsection{Caption配置} % \label{Caption配置} @@ -926,10 +940,28 @@ % \end{syntax} % 设置致谢文件路径,相应文件内仅撰写致谢内容,无需任何环境。 % \end{function} +% \subsection{额外命令} +% \label{额外命令} +% \begin{function}[added=2022-05-13]{\noauxwrite} +% \begin{syntax} +% \tn{noauxwrite}\marg{参考文献引用命令} +% \end{syntax} +% \tnx{noauxwrite}允许添加不影响现有引用列表顺序的引用。 +% 一个简单的例子如下所示: +% \begin{latexexample}[moretexcs={\noauxwrite,\caption,\parencite}] +% \caption{本文与文献\noauxwrite{\parencite{某文献}}计算开销对比} +% \end{latexexample} +% \end{function} % \section{贡献者} -% \xduts{}的开发过程中,维护者为 +% \xduts{}的开发过程中,唯一维护者为 % \href{https://github.com/note286/}{\ttfamily @note286}。 -% 同时,也要感谢所有在GitHub和睿思上提出问题的同学、老师们。 +% \changes{v1.15.0.1}{2022/05/15}{增加\clsx{xduugthesis}内测人员} +% 其中,在\clsx{xduugthesis}的开发过程中, +% \href{https://github.com/Ke-Huo}{\ttfamily @Ke-Huo}、 +% \href{https://github.com/GRHun}{\ttfamily @RH}、 +% \href{https://github.com/songyueran}{\ttfamily @syr-bloom} +% 等人参与了内测。 +% 同时,也要感谢所有在GitHub和睿思上反馈问题和提出建议的同学、老师们。 % \xduts{}的持续发展,离不开你们的帮助与支持。 % \section{致谢} % 在学习文学编程的过程中, @@ -1718,13 +1750,13 @@ % \end{macro} % \subsubsection{数学字体} % \begin{macro}{\@@_load_unicode_math_pkg:} +% \changes{v1.14.1.0}{2022/05/10}{使用\tnx{PassOptionsToPackage}传递\pkgx{unicode-math}宏包参数} % 加载\pkgx{unicode-math}宏包。 % \begin{macrocode} \cs_new:Npn \@@_load_unicode_math_pkg: { - \RequirePackage - [ \l_@@_unicode_math_tl ] - { unicode-math } + \PassOptionsToPackage { \l_@@_unicode_math_tl } { unicode-math } + \RequirePackage { unicode-math } } % \end{macrocode} % \end{macro} @@ -1789,7 +1821,7 @@ \@@_load_unicode_math_pkg: \setmathfont { XITSMath-Regular.otf } \setmathfont { XITSMath-Bold.otf } - [range= { bfup -> up, bfit -> it } ] + [ range= { bfup -> up, bfit -> it } ] } } % \end{macrocode} @@ -2259,7 +2291,7 @@ % \begin{macrocode} \clist_new:N \l_@@_bib_file_clist % \end{macrocode} -% 是否在\tnx{ref}两侧自动调整中英文间空白。 +% 是否在\tnx{ref}和\tnx{pageref}两侧自动调整中英文间空白。 % \begin{macrocode} \tl_new:N \l_@@_ref_add_space % \end{macrocode} @@ -2322,7 +2354,7 @@ % \begin{macrocode} bib-resource .clist_set:N = \l_@@_bib_file_clist, % \end{macrocode} -% 是否在\tnx{ref}两侧自动调整中英文间空白。 +% 是否在\tnx{ref}和\tnx{pageref}两侧自动调整中英文间空白。 % \begin{macrocode} ref-add-space .bool_set:N = \l_@@_ref_add_space, % \end{macrocode} @@ -2652,6 +2684,23 @@ } % \end{macrocode} % \end{macro} +% \subsection{额外命令} +% \begin{macro}{\noauxwrite} +% \changes{v1.15.0.0}{2022/05/13}{\tnx{noauxwrite}允许添加不影响现有引用列表顺序的引用} +% \tnx{noauxwrite}允许添加不影响现有引用列表顺序的引用。 +% \begin{macrocode} +\NewDocumentCommand \noauxwrite { m } + { + \if@filesw + \@fileswfalse + #1 + \@fileswtrue + \else + #1 + \fi + } +% \end{macrocode} +% \end{macro} % \subsection{页面设置} % \subsubsection{页面尺寸} % \begin{macro}{\geometry,\newgeometry,\savegeometry} @@ -3039,9 +3088,11 @@ % \subsection{目录} % \begin{macro}{\RequirePackage} % \changes{v0.4.1.0}{2022/04/05}{设置目录样式} +% \changes{v1.14.1.0}{2022/05/10}{使用\tnx{PassOptionsToPackage}传递\pkgx{tocloft}宏包参数} % 设置目录样式。 % \begin{macrocode} -\RequirePackage [ titles ] { tocloft } +\PassOptionsToPackage { titles } { tocloft } +\RequirePackage { tocloft } % \end{macrocode} % \end{macro} % \begin{variable}{\cftchapleader} @@ -3289,6 +3340,30 @@ \captionsetup [ sub ] { font = customfont } % \end{macrocode} % \end{macro} +% \begin{macro}{\captionsetup} +% \changes{v1.13.4.0}{2022/05/08}{设置\pkgx{subfig}宏包子图引用样式} +% 设置\pkgx{subfig}宏包子图引用样式。 +% \begin{macrocode} +\ctex_at_end_preamble:n + { + \@ifpackageloaded { subfig } + { \captionsetup [ subfloat ] { subrefformat = parens } } + { } + } +% \end{macrocode} +% \end{macro} +% \begin{macro}{\thesubfigure} +% \changes{v1.13.5.0}{2022/05/08}{设置\pkgx{subcaption}宏包子图引用样式} +% 设置\pkgx{subcaption}宏包子图引用样式。 +% \begin{macrocode} +\ctex_at_end_preamble:n + { + \@ifpackageloaded { subcaption } + { \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) } } + { } + } +% \end{macrocode} +% \end{macro} % \subsection{表格} % \changes{v0.10.0.0}{2022/04/13}{设置表格字号是否为五号} % \changes{v1.0.2.0}{2022/04/14}{修复表格五号字无法设定浮动位置} @@ -3374,9 +3449,10 @@ % \end{macrocode} % \end{macro} % \subsection{交叉引用} -% \begin{macro}{\@@_trad_ref:n,\ref} +% \begin{macro}{\ref,\pageref} % \changes{v1.2.0.0}{2022/04/16}{优化中文环境下\tnx{ref}两侧中英文间空白} -% 优化中文环境下\tnx{ref}两侧中英文间空白。 +% \changes{v1.13.3.0}{2022/05/08}{优化中文环境下\tnx{pageref}两侧中英文间空白} +% 优化中文环境下\tnx{ref}和\tnx{pageref}两侧中英文间空白。 % \begin{macrocode} \ctex_at_end_preamble:n { @@ -3396,6 +3472,9 @@ { \@@_trad_ref:n { #1 } } { \xspace \@@_trad_ref:n { #1 } \xspace } } + \cs_set_eq:NN \@@_trad_page_ref:n \pageref + \cs_set:Npn \pageref #1 + { \xspace \@@_trad_page_ref:n { #1 } \xspace } } } } @@ -3411,18 +3490,24 @@ % \end{macrocode} % \end{macro} % \begin{macro}{\RequirePackage,\bibliographystyle,\addbibresource} +% \changes{v1.13.6.0}{2022/05/09}{移除\pkgx{natbib}宏包显式调用} +% \changes{v1.14.0.0}{2022/05/10}{为\bibtex{}提供\tnx{parencite}命令} +% \changes{v1.14.1.0}{2022/05/10}{使用\tnx{PassOptionsToPackage}传递\pkgx{gbt7714}和\pkgx{biblatex}宏包参数} % 参考文献。 % \begin{macrocode} +\PassOptionsToPackage { sort&compress } { gbt7714 } +\PassOptionsToPackage { style = gb7714-2015 } { biblatex } \@@_begin_document:n { \tl_if_eq:NnTF \l_@@_bib_tool_tl { bibtex } { - \RequirePackage [ sort&compress,square,super,comma,numbers ] { natbib } \RequirePackage { gbt7714 } \bibliographystyle { gbt7714-numerical } + \NewDocumentCommand \parencite { m } + { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: } } { - \RequirePackage [ style = gb7714-2015 ] { biblatex } + \RequirePackage { biblatex } \clist_map_inline:Nn \l_@@_bib_file_clist { \addbibresource { #1 } } } } diff --git a/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty b/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty index 6c799297fdd..322f06f5211 100644 --- a/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty +++ b/Master/texmf-dist/tex/xelatex/xduts/xdufont.sty @@ -28,7 +28,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplPackage{xdufont} - {2022/05/08}{1.13.2.0} + {2022/05/15}{1.15.0.1} {Xidian University Font package} \RequirePackage { xparse, l3keys2e } \PassOptionsToPackage { quiet } { xeCJK } @@ -385,9 +385,8 @@ \cs_new:Npn \__xdu_load_latin_font_none: { } \cs_new:Npn \__xdu_load_unicode_math_pkg: { - \RequirePackage - [ \l__xdu_unicode_math_tl ] - { unicode-math } + \PassOptionsToPackage { \l__xdu_unicode_math_tl } { unicode-math } + \RequirePackage { unicode-math } } \cs_new:Npn \__xdu_load_math_font_cambria: { @@ -430,7 +429,7 @@ \__xdu_load_unicode_math_pkg: \setmathfont { XITSMath-Regular.otf } \setmathfont { XITSMath-Bold.otf } - [range= { bfup -> up, bfit -> it } ] + [ range= { bfup -> up, bfit -> it } ] } } \cs_new:Npn \__xdu_load_math_font_cm: { } diff --git a/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls b/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls index c62cf50c5c9..a0b094d3133 100644 --- a/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls +++ b/Master/texmf-dist/tex/xelatex/xduts/xdupgthesis.cls @@ -28,7 +28,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{xdupgthesis} - {2022/05/08}{1.13.2.0} + {2022/05/15}{1.15.0.1} {Xidian University Postgraduate Thesis document class} \RequirePackage { xparse, l3keys2e } \PassOptionsToPackage { quiet } { xeCJK } @@ -398,9 +398,8 @@ \cs_new:Npn \__xdu_load_latin_font_none: { } \cs_new:Npn \__xdu_load_unicode_math_pkg: { - \RequirePackage - [ \l__xdu_unicode_math_tl ] - { unicode-math } + \PassOptionsToPackage { \l__xdu_unicode_math_tl } { unicode-math } + \RequirePackage { unicode-math } } \cs_new:Npn \__xdu_load_math_font_cambria: { @@ -443,7 +442,7 @@ \__xdu_load_unicode_math_pkg: \setmathfont { XITSMath-Regular.otf } \setmathfont { XITSMath-Bold.otf } - [range= { bfup -> up, bfit -> it } ] + [ range= { bfup -> up, bfit -> it } ] } } \cs_new:Npn \__xdu_load_math_font_cm: { } @@ -738,6 +737,16 @@ \item \clist_use:Nnnn #2 { #3 } { #3 } { #3 } \end { list } } +\NewDocumentCommand \noauxwrite { m } + { + \if@filesw + \@fileswfalse + #1 + \@fileswtrue + \else + #1 + \fi + } \newgeometry { top = 3cm, @@ -924,6 +933,18 @@ \captionsetup [ sub ] { font = customfont } \ctex_at_end_preamble:n { + \@ifpackageloaded { subfig } + { \captionsetup [ subfloat ] { subrefformat = parens } } + { } + } +\ctex_at_end_preamble:n + { + \@ifpackageloaded { subcaption } + { \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) } } + { } + } +\ctex_at_end_preamble:n + { \bool_if:NT \l__xdu_tab_small_bool { \renewenvironment { table } @@ -994,22 +1015,28 @@ { \__xdu_trad_ref:n { #1 } } { \xspace \__xdu_trad_ref:n { #1 } \xspace } } + \cs_set_eq:NN \__xdu_trad_page_ref:n \pageref + \cs_set:Npn \pageref #1 + { \xspace \__xdu_trad_page_ref:n { #1 } \xspace } } } } } \cs_new_protected:Npn \__xdu_begin_document:n #1 { \ctex_gadd_ltxhook:nn { env/document/begin } { #1 } } +\PassOptionsToPackage { sort&compress } { gbt7714 } +\PassOptionsToPackage { style = gb7714-2015 } { biblatex } \__xdu_begin_document:n { \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex } { - \RequirePackage [ sort&compress,square,super,comma,numbers ] { natbib } \RequirePackage { gbt7714 } \bibliographystyle { gbt7714-numerical } + \NewDocumentCommand \parencite { m } + { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: } } { - \RequirePackage [ style = gb7714-2015 ] { biblatex } + \RequirePackage { biblatex } \clist_map_inline:Nn \l__xdu_bib_file_clist { \addbibresource { #1 } } } } diff --git a/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls b/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls index 5d4b275af06..2725418a548 100644 --- a/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls +++ b/Master/texmf-dist/tex/xelatex/xduts/xduugthesis.cls @@ -28,7 +28,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3} \ProvidesExplClass{xduugthesis} - {2022/05/08}{1.13.2.0} + {2022/05/15}{1.15.0.1} {Xidian University Undergraduate Thesis document class} \RequirePackage { xparse, l3keys2e } \PassOptionsToPackage { quiet } { xeCJK } @@ -399,9 +399,8 @@ \cs_new:Npn \__xdu_load_latin_font_none: { } \cs_new:Npn \__xdu_load_unicode_math_pkg: { - \RequirePackage - [ \l__xdu_unicode_math_tl ] - { unicode-math } + \PassOptionsToPackage { \l__xdu_unicode_math_tl } { unicode-math } + \RequirePackage { unicode-math } } \cs_new:Npn \__xdu_load_math_font_cambria: { @@ -444,7 +443,7 @@ \__xdu_load_unicode_math_pkg: \setmathfont { XITSMath-Regular.otf } \setmathfont { XITSMath-Bold.otf } - [range= { bfup -> up, bfit -> it } ] + [ range= { bfup -> up, bfit -> it } ] } } \cs_new:Npn \__xdu_load_math_font_cm: { } @@ -670,6 +669,16 @@ \item \clist_use:Nnnn #2 { #3 } { #3 } { #3 } \end { list } } +\NewDocumentCommand \noauxwrite { m } + { + \if@filesw + \@fileswfalse + #1 + \@fileswtrue + \else + #1 + \fi + } \newgeometry { top = 3cm, @@ -862,7 +871,8 @@ paragraph / afterskip = { \clist_item:Nn \l__xdu_after_skip_clist { 5 } }, subparagraph / afterskip = { \clist_item:Nn \l__xdu_after_skip_clist { 6 } } } -\RequirePackage [ titles ] { tocloft } +\PassOptionsToPackage { titles } { tocloft } +\RequirePackage { tocloft } \cs_set:Npn \cftchapleader { \bfseries \cftdotfill { \cftdotsep } } \dim_set_eq:NN \cftbeforechapskip \cftbeforesecskip \clist_map_inline:nn @@ -982,6 +992,18 @@ \captionsetup [ sub ] { font = customfont } \ctex_at_end_preamble:n { + \@ifpackageloaded { subfig } + { \captionsetup [ subfloat ] { subrefformat = parens } } + { } + } +\ctex_at_end_preamble:n + { + \@ifpackageloaded { subcaption } + { \cs_set:Npn \thesubfigure { ( \alph { subfigure } ) } } + { } + } +\ctex_at_end_preamble:n + { \bool_if:NT \l__xdu_tab_small_bool { \renewenvironment { table } @@ -1052,22 +1074,28 @@ { \__xdu_trad_ref:n { #1 } } { \xspace \__xdu_trad_ref:n { #1 } \xspace } } + \cs_set_eq:NN \__xdu_trad_page_ref:n \pageref + \cs_set:Npn \pageref #1 + { \xspace \__xdu_trad_page_ref:n { #1 } \xspace } } } } } \cs_new_protected:Npn \__xdu_begin_document:n #1 { \ctex_gadd_ltxhook:nn { env/document/begin } { #1 } } +\PassOptionsToPackage { sort&compress } { gbt7714 } +\PassOptionsToPackage { style = gb7714-2015 } { biblatex } \__xdu_begin_document:n { \tl_if_eq:NnTF \l__xdu_bib_tool_tl { bibtex } { - \RequirePackage [ sort&compress,square,super,comma,numbers ] { natbib } \RequirePackage { gbt7714 } \bibliographystyle { gbt7714-numerical } + \NewDocumentCommand \parencite { m } + { \group_begin: \citestyle { numbers } \cite { #1 } \group_end: } } { - \RequirePackage [ style = gb7714-2015 ] { biblatex } + \RequirePackage { biblatex } \clist_map_inline:Nn \l__xdu_bib_file_clist { \addbibresource { #1 } } } } |