Thank you. I have a doubt on Hamlet's plot.

1) Hamlet's father has been dead only two months, but but his mother, Queen Gertrude, has married her brother-in-law, Claudius, who has now become king.
2) Does it mean that "he had died two months before"? I wanted to rephrase "has been dead". Why is "for" been omitted? for two months?

1) Hamlet's father has been dead only two months by the time he returns home from university, but his mother, Queen Gertrude, had already married her brother-in-law, Claudius, who had become king.

2) Does it mean that "he had died two months before"? I wanted to rephrase "has been dead". Why is "for" been omitted? for two months?

The play starts two months after the death of King Hamlet (Prince Hamlet's father). Prince Hamlet had been attending university in Wurttemberg, in southern Germany, and it apparently took two months to send a messenger to call him back home and another month for him to make the journey.

During those two months, his mother married her brother-in-law Claudius, and Claudius had made himself king.

a) one "but" is sufficient.

He has been dead two months, means he died two months ago. You could put "for" in there, or leave it out.

Sra

That first one is still not great. I think the problem is that both the dead king and the prince were both named Hamlet!!

Well, THAT was badly phrased!!

... and it apparently took a month to send a messenger to call him back home and another month for him to make the journey.

In the sentence, "Hamlet's father has been dead only two months," the phrase "has been dead" is used to indicate the duration of time since Hamlet's father passed away. The phrase "for two months" is indeed commonly used to express duration, but in this context, it has been omitted for brevity.

To rephrase the sentence with the phrase "for two months," you can say, "Hamlet's father had been dead for only two months." This rephrased sentence conveys the same meaning by explicitly stating the duration (two months) using the preposition "for."