我正在尝试使用 dnaseq 包(文档在此处:http://mirrors.linsrv.net/tex-archive/macros/latex/contrib/dnaseq/dnaseq.pdf)
基本上,它会获取您在“\DNA!”和“!”之间输入的任何内容,将其组织成可自定义长度的块,并在左侧显示带有编号的文本,从 1 开始。
这个包对于显示易于阅读的 DNA 序列很有用,但出于某种原因,我希望它从负数开始编号(实际上我的起始参考位于我的序列的中间)。
所以我必须将起始数字重新定义为负数。我对 Latex 并不陌生,但我从未尝试过自定义包,这就是为什么我请求一些帮助:
-在代码中本地化要改变的变量(我认为它是 \@tempcntb=0)
- 编写一个命令来从我的序言中重新定义这个变量(类似于 \def,不习惯它的语法)
这个包相对简单,所以我希望有人能帮助我。
不管怎样,谢谢你 !
答案1
提问时,请始终提供“MWE”完整文档并说明预期输出应该是什么,这使得回答/测试问题变得更加容易。这是一个未经测试的答案。
dnaseq 定义
\def\DNA#1{%
\def\@DNA@end{#1}\bgroup\ttfamily\DNAc@lcline
\settoheight\dimen@{I}\advance\dimen@ by 1pt
\edef\htst{\the\dimen@}%
\def\struty{\rule[-.5pt]{\z@}{\htst}}%
%% dnabase per line counter
\count@=0
%% block counter
\@tempcnta=0
%% total dnabase counter
\@tempcntb=0
\fboxrule=0pt \fboxsep=0pt
\noindent\phantom{\DNAreserve}\llap 1\
\@DNA
}
例如,你可以在加载包后
\makeatletter
\def\DNA#1#2{%
\def\@DNA@end{#2}\bgroup\ttfamily\DNAc@lcline
\settoheight\dimen@{I}\advance\dimen@ by 1pt
\edef\htst{\the\dimen@}%
\def\struty{\rule[-.5pt]{\z@}{\htst}}%
%% dnabase per line counter
\count@=0
%% block counter
\@tempcnta=0
%% total dnabase counter
\@tempcntb=#1
\fboxrule=0pt \fboxsep=0pt
\advance\@tempcntb 1
\noindent\phantom{\DNAreserve}\llap{\the\@tempcntb}\
\advance\@tempcntb -1
\@DNA
}
\makeatother
并使用...\DNA{25}!....!
将计数器从 25 而不是 0 初始化。