虚拟语气if

问题描述:

虚拟语气if
大多数的虚拟条件句属于上面三种情况的一种,但并不排除存在条件和后果中,一个和现在情况相反,另一个和过去情况相反,例如:If you had followed what the doctor said,you would not have been so painful now
例句该怎么详细分析 我觉得主从句都是过去时的虚拟语气啊?
虚拟现在时表示与现在事实相反的假设,其if 从句的谓语形式用动词的过去式(be 一般用were),主句用would/ should/ could/ might +动词原形
you would not have been so painful now 是对现在的虚拟 那为什么要用have been 不应用be吗

他的解释本身就是矛盾的.
例句里面主句和从句虚拟的时间很明显应该不一样(错综时间条件句),if从句中应该用与过去事实相反的虚拟(had done),主句应该用与现在事实相反的虚拟(would/ could/ should/ might + do).应该说成
If you had followed what the doctor said,you would not be so painful now.
再举个例子:If I had taken your advice,I wouldn't be in such trouble now.
PS:书是盗版的吧?百分百错了.