Springer Nature 模板和 qtree 存在的问题

Springer Nature 模板和 qtree 存在的问题

我在使用 qtree 软件包与 Springer Nature 模板结合使用时遇到了问题。将论文放入此模板后,树会呈现出奇怪的形状:节点看起来是分开的,树图像与文本重叠。有人知道这个问题的解决方案吗?

\documentclass[referee,sn-basic]{sn-jnl}

   \usepackage{graphicx}

\usepackage{stmaryrd}




 \usepackage{graphicx}




 \usepackage{qtree,tree-dvips}

 \usepackage{linguex}

\begin{document}

\ex. \Tree  [.A \qroof{something here}.DP [.B  C  ]]
\end{document}

` 树形图像

在 qtree 的文档中,它说:

Qtree 无法与期刊样式 X 配合使用 当然,很多事情都可能出错,但首先要检查期刊样式是否重新定义了表格环境。Qtree 会对表格进行内部调用,因此这经常是问题的根源。样式的编写者通常会以不同的名称保存 \tabular 的原始定义,因此您需要做的就是安排在调用 \Tree 期间恢复原始定义。您可以定义 \qtreeinithook 来执行必要的重新定义。它在每次调用 \Tree 时都会被调用,具有本地范围(因此它所做的任何重新定义都会在调用 \Tree 时自动取消)。例如,JNLE 样式 (nle.sty) 将开始和结束表格的标准命令分别保存为 \oldtabular 和 \endoldtabular,替换宏会产生真正宽的树。

下面将仅恢复对 \Tree 调用的原始定义。\def\qtreeinithook{\let\tabular=\oldtabular \let\endtabular=\endoldtabular}

但是,我不知道如何在日志的样式文件中找到定义 qtreeinithook 的命令。

答案1

这里有两件事。如注释中所述,[referee]类的选项加载setspace并将间距设置为\doublespacing。但该类还重新定义,\raggedright这会导致在节点标签上方插入额外的空间,因为qtree标签是使用{flushleft}环境创建的(使用定义为列表\raggedright)。

该类绝对不应该破坏内核定义,\raggedright但由于几乎不可能让发布者更改其类文件,因此这里有一个通用解决方案,它通过修复环境{flushleft}本身至少解决了部分底层问题。这也会解决您的注释问题,因为使用的clgoss4e注释宏linguex也使用{flushleft}环境。它还将解决使用该环境的任何包的任何类似问题{flushleft}

恢复定义后,{flushleft}我们只需要添加\singlespacing到宏中\qtreeinithook以确保树的其余部分是单倍行距。我还在树后添加了一些额外的空间;如果不需要,您可以将其删除。

\documentclass[referee,sn-basic]{sn-jnl}
\usepackage{qtree}
\usepackage{linguex}
\usepackage{lipsum}
\providecommand{\singlespacing}{}
\makeatletter
% We first create a version of the kernel \raggedright command
\DeclareRobustCommand\oldrr{%
  \let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip
  \finalhyphendemerits=\z@
  \leftskip\z@skip
  \parindent\z@}
\makeatother
% Now redefine \flushleft to use the original version
\renewcommand\flushleft{\trivlist\oldrr\item\relax}
% Add \singlespacing to trees
\newcommand\qtreeinithook{\singlespacing}
% Add some extra space after the tree 
\newcommand\qtreefinalhook{\vspace{\baselineskip}}
\begin{document}
\lipsum[1]

\ex.\Tree  [.A \qroof{something here}.DP [.B  C  ]]


\lipsum[2]

\end{document}

代码输出

相关内容