你的困惑源自于你错误地把非真实条件句和虚拟语气对等起来,把真实条件句和陈述语气对等起来。
无论传统语法还是现代语法,非真实条件句和真实条件句的含义都是一样的。前者指假设的条件与事实相反或者不大可能会实现,后者表示可能实现的条件。
关键的被你忽略的一点是,if引导的条件状语从句的谓语动词都不是陈述事实,而是表示一种假设。所以在早期英语,if从句都是要用虚拟语气的。非真实条件句,if从句和主句都用were式虚拟语气(即限定动词必须是某种过去形式);真实条件句中,if从句用be式虚拟语气,即用动词原型,主句用陈述语气。
英语的发展趋势是,虚拟语气动词形式逐渐被陈述语气动词形式所替代。不同的句型中虚拟语气被陈述语气替代的速度是不均衡的。
if引导的非真实条件句中的虚拟语气形式一直保留至今,这也是绝大多数英语学习者所了解和熟悉的。
但是,真实条件句的be式虚拟语气在现代英语已经完全被陈述语气所替代。很多网友忽略了if引导的真实条件句中,谓语动词表示的也并不是事实。例如,If it rains tomorrow, ...。明天是否下雨是不肯定的,只是有下雨的可能性,但也有不下雨的可能性。所以if 从句的陈述语气rains表示的并不是事实,而只是一种可能性。这在早期英语是要用动词原型式虚拟语气的:If it rain tomorrow,...。现代英语则用陈述语气形式rains替代了虚拟语气形式rain,二者的意义是完全相同的,只是时态不同了,英语的用法发生了演变而已。在if从句中的be是虚拟语气被陈述语气形式完全替代之前,出现了一种过渡形式should do, 这个should被称为推定式should, 作为动词原型的替代形式(类似于表示建议、命令的that从句中的should do), 表示假设的条件在将来有可能实现,也有可能实现不了。这种if 从句的should do形式在现代英语仍然使用,主要用于较为正式的书面语。而动词原型则仅仅见于法典或法律文书中,日常英语已经不再用动词原型了。
所以,真实条件句的if 从句的动词形式实际上有三种:
1 be式虚拟语气;
2 should do 属于传统语法虚拟语气范畴;
3 陈述语气。
值得一提的是,if 从句用should do形式,假设的是将来条件。该条件可能实现,也可能实现不了。说话人如果侧重可能实现这一点,则主句用陈述语气形式;如果侧重条件可能实现不了这一点,主句则用虚拟语气形式。另外,主句也可以用祈使语气。例如:
It it rain tomorrow, I will stay at home. 真实条件句,从句为虚拟语气,主句为陈述语气。
If it rains tomorrow, I will stay at home. 真实条件句,陈述语气。
If it rained tomorrow, I would stay at home. 非真实条件句,虚拟语气。
If it should rain tomorrow, I will stay at home. 真实条件句,从句为虚拟语气,主句为陈述语气。
If it should rain tomorrow, stay at home. 真实条件句,从句为虚拟语气,主句为祈使语气。
If it should rain tomorrow, I would stay at home. 非真实条件句,主从句均为虚拟语气。
你看章振邦的书有一个误解。例如:
If you had studied harder, you would have passed the examination.
这个句子在传统语法被认为是虚拟语气,但在现代语法却被认为是陈述语气。但无论在哪个语法体系,这个句子都是非真实条件句,表示的都是与过去事实相反的假设,只不过现代语法认为这是陈述语气里的过去完成体表示与过去事实相反的假设。
你误以为现代语法认为这个句子不是虚拟语气,这个句子就不是非真实条件句了,你的误解太深了。你学习现代语法,必须结合现代语法的时体体系一起学习。传统语法虚拟语气的很多内容,被现代语法分散到语气、时体形式和情态动词三部分讨论了。