diff --git a/biblatex-gb7714-2015.pdf b/biblatex-gb7714-2015.pdf index 2a3d7ad..1666c43 100644 Binary files a/biblatex-gb7714-2015.pdf and b/biblatex-gb7714-2015.pdf differ diff --git a/biblatex-gb7714-2015.tex b/biblatex-gb7714-2015.tex index 0173bb3..cc4b879 100644 --- a/biblatex-gb7714-2015.tex +++ b/biblatex-gb7714-2015.tex @@ -430,7 +430,21 @@ \subsection{文献表条目格式控制}\label{sec:entry:fmt} \caption{文献表条目著录格式示例二}\label{fig:content:fmtb} \end{figure} -图\ref{fig:content:fmtc}给出了选项设置为 style=gb7714-2015ay, maxcitenames=2, mincitenames=1, gbbiblocal, gbcitelocal=chinese, sortcites, sorting=gbyntd 时的引用标注和文献表,可以看到引用标注和文献表中的不同本地化字符串输出效果。 +图\ref{fig:content:fmtc}为选项和本地化字符串如例\ref{eg:localstr:diff}设置时的引用标注和文献表,注意其中引用标注和文献表中的不同本地化字符串输出效果,引用标注中英文作者和中文作者缩略词的不同。这是中科院大学资环类学位论文的要求格式,可以看到尽管有些特殊,但通过选项设置和本地化字符串设置也能实现。 + +\begin{example}{作者年制标注和文献表不同本地字符串效果}{eg:localstr:diff} +\begin{texlist} +\usepackage[backend=biber,style=gb7714-2015ay,gbnamefmt=lowercase,maxcitenames=2,mincitenames=1, +gbbiblocal,sortcites,sorting=gbyntd]{biblatex} +\DefineBibliographyStrings{english}{ + andincite = {和}, + andincitecn = {和}, + andothersincitecn = {等}, + andothersincite = {等{\adddot}},%adddot才能避开标点追踪 +} +\end{texlist} +\end{example} + \begin{figure}[!htb] \centering @@ -788,7 +802,7 @@ \subsection{多语言混合文献表}\label{sec:multilan:combine} \end{enumerate} 本样式做了中日韩英俄法六种语言的测试,详细内容见: -\href{run:example/opt-eg-multilan.tex}{opt-eg-multilan.tex}, +\href{run:example/opt-eg-multilan.tex}{opt-eg-multilan.tex}, \href{run:example/opt-autolang-multilan.tex}{opt-autolang-multilan.tex}。 diff --git a/egfigure/egcontentfmtc.tex b/egfigure/egcontentfmtc.tex index 6c64ce3..fc9a5f5 100644 --- a/egfigure/egcontentfmtc.tex +++ b/egfigure/egcontentfmtc.tex @@ -8,11 +8,13 @@ \usepackage{xltxtra,mflogo,texnames} %\usepackage[backend=biber,style=gb7714-2015,gbnamefmt=givenahead, %gbpub=false,gbbiblabel=box,gbtitlelink=true]{biblatex}%sorting=nyt -\usepackage[backend=biber,style=gb7714-2015ay,maxcitenames=2,mincitenames=1, -gbbiblocal,gbcitelocal=chinese,sortcites,sorting=gbyntd]{biblatex} +\usepackage[backend=biber,style=gb7714-2015ay,gbnamefmt=lowercase,maxcitenames=2,mincitenames=1, +gbbiblocal,sortcites,sorting=gbyntd]{biblatex} \DefineBibliographyStrings{english}{ - andincite = {and}, + andincite = {和}, andincitecn = {和}, + andothersincitecn = {等}, + andothersincite = {等{\adddot}},%adddot才能避开标点追踪 } \renewcommand{\bibfont}{\small} \usepackage{filecontents} diff --git a/gb7714-2015.bbx b/gb7714-2015.bbx index 23b4732..5f49952 100644 --- a/gb7714-2015.bbx +++ b/gb7714-2015.bbx @@ -543,6 +543,8 @@ % 新建当地化字符串,用来记录“等”字符、“和”字符 % \NewBibliographyString{andotherscn} + \NewBibliographyString{andothersincitecn} + \NewBibliographyString{andothersincite} \NewBibliographyString{andcn} \NewBibliographyString{andincitecn} \NewBibliographyString{andincite} @@ -564,6 +566,8 @@ andincite = {\addcomma}, %andothers = {et al.},%将超过3个人名的省略,et al.改成为 等 andotherscn = {\str@andotherscn},%将超过3个人名的省略,et al.改成为 等 + andothersincitecn={\str@andotherscn},%将标注中的分开,便于与文献表中的区分 + andothersincite={et al.}, backrefpage = {\str@backrefpage:}, backrefpages = {\str@backrefpages:}, in={in\intitlepunct}, @@ -1215,11 +1219,11 @@ \addspace%%做一个判断是在处理author还是translator,用于两者是不同语言的情况 \ifcurrentname{translator}{\testCJKfirst{usere}}{\testCJKfirst{userf}}% \ifcase\value{gbcitelocalcase}% - \iftoggle{ifCJKforgbt}{\bibstring{andotherscn}}{\bibstring{andothers}}\space% + \iftoggle{ifCJKforgbt}{\bibstring{andothersincitecn}}{\bibstring{andothersincite}}\space% \or% - \bibstring{andotherscn}\space% + \bibstring{andothersincitecn}\space% \or% - \bibstring{andothers}\space% + \bibstring{andothersincite}\space% \fi} \DeclareDelimFormat[bib,biblist]{strandothersdelim}{% \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% @@ -2185,7 +2189,7 @@ test {\iflistundef{location}} and test {\iflistundef{publisher}}% % % 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。 \renewbibmacro*{in:}{% - \iftoggle{bbx:gbpunctin}{\printtext{\texttt{//}\addthinspace}}% + \iftoggle{bbx:gbpunctin}{\printtext{\texttt{//}\allowbreak}}%\addthinspace {\setunit{\adddot\addspace}\printtext{\bibstring{in}}}}%\newunit\newblock\intitlepunct diff --git a/gb7714-2015ay.bbx b/gb7714-2015ay.bbx index 73928c4..19369f0 100644 --- a/gb7714-2015ay.bbx +++ b/gb7714-2015ay.bbx @@ -513,6 +513,8 @@ % 新建当地化字符串,用来记录“等”字符、“和”字符 % \NewBibliographyString{andotherscn} + \NewBibliographyString{andothersincitecn} + \NewBibliographyString{andothersincite} \NewBibliographyString{andcn} \NewBibliographyString{andincitecn} \NewBibliographyString{andincite} @@ -532,7 +534,9 @@ andincitecn = {\addcomma},%将标注中的分开,便于与文献表中的区分 andincite = {\addcomma}, %andothers = {et al.}, %将超过3个人名的省略,et al.改成为 等 - andotherscn = {\str@andotherscn}, %将超过3个人名的省略,et al.改成为 等 + andotherscn = {\str@andotherscn},%将超过3个人名的省略,et al.改成为 等 + andothersincitecn={\str@andotherscn},%将标注中的分开,便于与文献表中的区分 + andothersincite={et al.}, backrefpage = {\str@backrefpage:}, backrefpages = {\str@backrefpages:}, in={in\intitlepunct}, @@ -1381,11 +1385,11 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7 \addspace%%做一个判断是在处理author还是translator,用于两者是不同语言的情况 \ifcurrentname{translator}{\testCJKfirst{usere}}{\testCJKfirst{userf}}% \ifcase\value{gbcitelocalcase}% - \iftoggle{ifCJKforgbt}{\bibstring{andotherscn}}{\bibstring{andothers}}\space% + \iftoggle{ifCJKforgbt}{\bibstring{andothersincitecn}}{\bibstring{andothersincite}}\space% \or% - \bibstring{andotherscn}\space% + \bibstring{andothersincitecn}\space% \or% - \bibstring{andothers}\space% + \bibstring{andothersincite}\space% \fi} \DeclareDelimFormat[bib,biblist]{strandothersdelim}{% \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% diff --git a/gb7714-2015ms.bbx b/gb7714-2015ms.bbx index a55c5f6..7937bd9 100644 --- a/gb7714-2015ms.bbx +++ b/gb7714-2015ms.bbx @@ -355,6 +355,8 @@ % 新建当地化字符串,用来记录“等”字符、“和”字符 % \NewBibliographyString{andotherscn} + \NewBibliographyString{andothersincitecn} + \NewBibliographyString{andothersincite} \NewBibliographyString{andcn} \NewBibliographyString{andincitecn} \NewBibliographyString{andincite} @@ -375,6 +377,8 @@ andincite = {\addcomma}, %andothers = {et al.}, %将超过3个人名的省略,et al.改成为 等 andotherscn = {\str@andotherscn}, %将超过3个人名的省略,et al.改成为 等 + andothersincitecn={\str@andotherscn},%将标注中的分开,便于与文献表中的区分 + andothersincite={et al.}, backrefpage = {\str@backrefpage:}, backrefpages = {\str@backrefpages:}, in={in\intitlepunct}, @@ -1196,11 +1200,11 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{cn}} \addspace%%做一个判断是在处理author还是translator,用于两者是不同语言的情况 \ifcurrentname{translator}{\testCJKfirst{usere}}{\testCJKfirst{userf}}% \ifcase\value{gbcitelocalcase}% - \iftoggle{ifCJKforgbt}{\bibstring{andotherscn}}{\bibstring{andothers}}\space% + \iftoggle{ifCJKforgbt}{\bibstring{andothersincitecn}}{\bibstring{andothersincite}}\space% \or% - \bibstring{andotherscn}\space% + \bibstring{andothersincitecn}\space% \or% - \bibstring{andothers}\space% + \bibstring{andothersincite}\space% \fi} \DeclareDelimFormat[bib,biblist]{strandothersdelim}{% \ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}% @@ -1641,7 +1645,7 @@ test {\iflistundef{location}} and test {\iflistundef{publisher}}% % % 原理方法:使用bibmacro{in:}改变了以前在driver中直接输出//的方式,同时也简化了标点控制。 \renewbibmacro*{in:}{% - \iftoggle{bbx:gbpunctin}{\printtext{\texttt{//}\addthinspace}}% + \iftoggle{bbx:gbpunctin}{\printtext{\texttt{//}\allowbreak}}%\addthinspace {\setunit{\adddot\addspace}\printtext{\bibstring{in}}}}%\newunit\newblock\intitlepunct % diff --git a/makeclear.bat b/makeclear.bat index b87413c..b1ff419 100644 --- a/makeclear.bat +++ b/makeclear.bat @@ -22,4 +22,21 @@ del *.def /Q del *.pdf /Q +cd .. + +cd egfigure + +call makeclear + + +del *.bbx /Q + +del *.cbx /Q + +del *.def /Q + + +del *.pdf /Q + + cd .. \ No newline at end of file