Lorem ipsum is placeholder text: Latin-looking words that fill a layout before the real copy exists. It is not random. It is a cut and altered piece of Cicero’s De finibus bonorum et malorum (“On the ends of good and evil”), written in 45 BC, taken from book 1, sections 32 and 33. The passage as a whole means nothing, because words are clipped, merged and reordered, but most of them are real Latin. “Lorem” itself is not a word: it is the second half of dolorem, “pain”.
This guide traces each word back to Cicero, shows the page break in a 1914 edition that explains the odd first word, checks the dates people quote, measures how the text differs from English, and covers when real or realistic content is the better choice. Word and letter counts are computed by the site’s test suite from the text of the lorem ipsum generator and from the Latin of the 1914 edition.
The Latin it comes from
In book 1 of De finibus, the character Torquatus defends Epicurus’ view that people seek pleasure and avoid pain. Section 32 contains this sentence, quoted from the 1914 Loeb Classical Library edition:
Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia nonnumquam eiusmodi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
H. Rackham’s English translation in the same volume reads: “Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure.”
The standard lorem ipsum paragraph keeps the order of this passage but cuts many words short. Of its 69 words, 41 appear unchanged somewhere in sections 32 and 33. Most of the rest are clipped or altered forms of words in the same sections:
| Lorem ipsum | Cicero (Loeb 1914) |
|---|---|
| lorem ipsum | (do)lorem ipsum |
| adipiscing | adipisci |
| eiusmod | eiusmodi |
| incididunt | incidunt |
| magna aliqua | magnam aliquam |
| minim veniam | minima veniam |
| nostrud exercitation ullamco | nostrum exercitationem ullam |
| aliquip | aliquid |
| commodo consequat | commodi consequatur |
| excepteur sint occaecat | excepturi sint occaecati |
| cupidatat non proident | cupiditate non provident |
| mollit anim | mollitia animi |
Only the full Latin words carry meaning, and only in Cicero’s sentences: dolorem ipsum is “pain itself”. Read as a sentence, the lorem ipsum version says nothing.
The page break that produced “lorem”
Why would a text start with half a word? The 1914 Loeb edition prints Latin on the left-hand pages and Rackham’s English on the right. In the scanned volume, the Latin of section 32 runs to the foot of a left-hand page and stops at “Neque porro quisquam est qui do-”. The next Latin page, after the English facing page, opens with “lorem ipsum quia dolor sit amet, consectetur, adipisci velit”. Someone who took the second page as a block of text would begin exactly where lorem ipsum begins.
Two spellings point the same way. The Loeb text prints nonnumquam eiusmodi as two run-together words and the participle occaecati. The online text at The Latin Library prints non numquam eius modi and obcaecati. Lorem ipsum has eiusmod as one word and occaecat, both matching the Loeb spelling.
Who traced it, and the “1500s” claim
The source was identified by Richard McClintock, a Latin scholar at Hampden-Sydney College in Virginia, who searched for the rare word consectetur. He set it out in a letter that the graphic design magazine Before & After published in 1994. That letter is also where the popular dating comes from: it said the text had been the standard dummy text since a printer in the 1500s scrambled a galley of type to make a type specimen book.
No 16th-century specimen has been produced. In 2012 the French Latinist Philippe Cibois collected the evidence in Lorem ipsum: nouvel état de la question. Jacques André, a retired Inria researcher who runs a site on typography, told him he had found no mention of lorem ipsum in typesetting manuals before the 20th century. The oldest printed example Cibois could examine was an undated Letraset brochure of dry-transfer “dummy text” sheets, which he dates to the 1970s from its typefaces. In Google Books Ngram data, “lorem ipsum” only starts to climb in the 1970s, after the word “Letraset”. His conclusion: the text cannot be older than the 1914 Loeb edition and was created for Letraset sheets in the 1960s at the latest. Letraset was founded in 1959.
Desktop publishing carried it further. Microsoft Word still inserts a version when you type =lorem() and press Enter, with =lorem(p,l) setting the number of paragraphs and lines, according to Microsoft’s support page. Word’s version begins “Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa”, a different variant with an extra u in consectetuer.
How far it is from English text
Lorem ipsum is often said to look like English at a glance. The standard paragraph can be counted directly. Peter Norvig’s counts from the Google Books corpus give the English reference:
| Measure | Standard lorem ipsum paragraph | English (Norvig) |
|---|---|---|
| Letters that never appear | j, k, w, y, z | none |
| h | 0.3% | 5.05% |
| u | 7.9% | 2.73% |
| q | 1.4% | 0.12% |
| i | 11.4% | 7.57% |
| Average word length | 5.35 letters | 4.79 letters |
| Longest word | 13 letters (reprehenderit) |
Because English text has th, wh, -ing and many short words, and lorem ipsum has almost no h at all, a paragraph of it has a different texture: longer words, and fewer of the ascender letters h and k. Two practical consequences follow. A font check done only with lorem ipsum never shows the glyphs for k, w, y and z, so use a pangram or a real paragraph for that. And line breaks, hyphenation and the number of lines a heading takes will change once English copy goes in, because word lengths differ.
When placeholder text helps
Placeholder text is useful when you want people to judge structure without reading. A study described by Jakob Nielsen in Testing Whether Web Page Templates are Helpful (1998) did exactly that: Thomas Tullis at Fidelity replaced every word on five intranet templates with nonsense text and asked users to mark nine standard elements, such as the page title and the site navigation. The best original template let users find 67% of the elements, and a combined final design reached 72%. Because nobody could read the words, the result measured the layout alone.
The same reasoning covers most day-to-day uses: checking spacing, line height and column widths in a template, filling a component in a design system to see how it wraps, or showing a client a wireframe without a debate about wording.
When to use real or realistic content instead
Nielsen Norman Group’s Page Laubheimer summarizes the risk in A Downside of Fake Copy in UI Prototypes (2017): placeholder text causes problems when the real content has different characteristics. These are the common cases:
- Content tests. NN/g’s guidance on testing content asks for realistic tasks and representative participants. A test of whether people understand a page needs the actual words.
- Labels and buttons that will be translated. The W3C article Text size in translation quotes IBM’s guideline: English strings of up to 10 characters grow by 200–300% in European languages, strings of 11–20 characters by 180–200%, and strings over 70 characters by about 130%. A button that fits “Submit” in lorem ipsum can overflow in German.
- Chinese, Japanese and Korean layouts. Line breaking and character widths work differently; lorem ipsum tells you nothing about how those pages wrap.
- Data views. Names, prices, dates and email addresses have formats and lengths that Latin words do not imitate. Use generated test data for tables and forms.
- Anything that might ship. A forgotten placeholder paragraph in production is hard to spot in review when everyone is used to seeing it.
What the ZeroTool generator produces
The lorem ipsum generator makes 1 to 20 paragraphs in the browser. With “Start with Lorem ipsum dolor sit amet…” ticked, the first paragraph is the standard passage, 69 words and 445 characters, written as five sentences: the tool ends the first sentence after elit and starts the second with a capital Sed, where the canonical text has “elit, sed”.
Every other paragraph picks 3 to 6 sentences at random from a list of 20 and joins them. The list holds the five sentences of the standard passage plus 15 others, so the classic sentences can reappear in later paragraphs. The 20 sentences are 8 to 17 words long, so a paragraph has between 26 and 89 words. The 15 extra sentences use 104 different words, and only 20 of them occur in Cicero’s sections 32 and 33; they come from the wider family of lorem ipsum variants. One of them, “Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.”, also appears in the text Word inserts.
The count box accepts 1 to 20; a larger number gives 20, and 0 or an empty box gives the default of 5. Copy All copies plain text with a blank line between paragraphs, which pastes as separate paragraphs into most editors and design tools. There is no option for a number of words or characters, and the output has no HTML tags.
When you need an exact number of words in a script, for example to seed a development database, cycling through the standard passage is enough:
STANDARD = (
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor "
"incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud "
"exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure "
"dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. "
"Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt "
"mollit anim id est laborum."
)
WORDS = STANDARD.replace(",", "").replace(".", "").split()
def lorem_words(n: int) -> str:
picked = [WORDS[i % len(WORDS)] for i in range(n)]
return " ".join(picked).capitalize() + "."
print(len(WORDS))
print(lorem_words(12))
It prints 69 and Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor. Using the same text every time is a feature in tests: a screenshot or a snapshot test stays stable between runs, which the generator’s random sentence order would not give you.