Assorted tins of nasal snuff tobacco
Several types and consistencies of snuff tobacco

Snuff is a smokeless tobacco made from ground or pulverized tobacco leaves.[1] It is insufflated or "snuffed" into the nasal cavity, delivering a swift hit of nicotine and a lasting flavored scent (especially if flavoring has been blended with the tobacco).[1] Traditionally it is sniffed or inhaled lightly after a pinch of snuff is placed onto the back surface of the hand, held pinched between thumb and index finger, or held by a specially made "snuffing" device.

It originated in the Americas and was in common use in Europe by the 17th century. Traditional snuff production consists of a lengthy, multi-step process, in tobacco snuff mills.[1] The selected tobacco leaves are first subject to special tobacco curing or fermentation processes, where they will later provide the individual characteristics and flavor for each type of snuff blend.[1] Snuff is usually scented or flavored, with many blends of snuff requiring months to years of special storage to reach the required maturity.[1] Typical traditional flavors are varieties of carefully blended tobacco leaves considered original "fine snuff" without any addition of scents or essences,[1] varieties of spice, piquant, fruit, floral, and mentholated (also called "medicated") soon followed, either pure or in blends.[1] Each snuff manufacturer usually has a variety of unique recipes and blends, as well as special recipes for individual customers.[1] Common flavors also include coffee, chocolate, bordeaux, honey, vanilla, cherry, orange, apricot, plum, camphor, cinnamon, rose and spearmint. Modern flavors include Bourbon, Cola and whiskey. Traditional classic German snuff blends are the piquant Schmalzler and Brasil.

Snuff comes in a range of texture and moistness, from very fine to coarse, and from toast (very dry) to very moist.[1] Often drier snuffs are ground more finely. There is also a range of tobacco-free snuffs, such as Pöschl's Weiss (White), made from glucose powder or herbs. While strictly speaking these are not snuffs because they contain no tobacco, they are an alternative for those who wish to avoid nicotine, or for "cutting" a strong snuff to an acceptable strength.

History

Painting of a man taking snuff using the thumb and index finger method

The indigenous populations of Brazil were the first people known to have used ground tobacco as snuff.[2] They would grind the tobacco leaves using a mortar and pestle made of rosewood, where the tobacco would also acquire a delicate aroma of the wood.[2] The resulting snuff was then stored airtight in ornate bone bottles or tubes to preserve its flavor for later consumption.[2]

Snuff-taking by the Taino and Carib people of the Lesser Antilles was observed by the Franciscan monk Ramón Pané on Columbus' second voyage to the New World in 1493.[2][3] Friar Pané's return to Spain with snuff signaled its arrival in Europe that would last for centuries.[2]

In the early 16th century, the Spanish Casa de Contratación (House of Trade) established and held a trade monopoly in the first manufacturing industries of snuff, in the City of Seville, which became Europe's first manufacturing and development center for snuff.[2] The Spanish called snuff polvo or rapé. At first they were independent production mills dispersed within the city, state control over the activity later concentrated the production to one location opposite the Church of San Pedro. By the mid-18th century it was decided to build a large and grand industrial building outside the city walls, and thus the Royal Tobacco Factory (Real Fábrica de Tabacos) was built, becoming Europe's first industrial tobacco factory, producing snuff and auctioning tobacco at first, and Spain's second largest building at the time.[2]

In 1561 Jean Nicot, the French ambassador in Lisbon, Portugal, who described tobacco's medicinal properties as a panacea in his writings, is credited with introducing ground tobacco snuff to the Royal Court of Catherine de' Medici to treat her persistent headaches.[2][4] Catherine de' Medici was so impressed with its curative relieving properties, she promptly declared the tobacco would henceforth be termed Herba Regina (Queens' Herb), her royal seal of approval would help popularize snuff among the French nobility.[2][5]

The Dutch, who named the ground powdered tobacco "snuff" (snuif), were using the product by 1560.[2] By the early 1600s, snuff had become an expensive luxury commodity.[2] In 1611, commercially manufactured snuff made its way to North America by way of John Rolfe, the husband of Pocahontas, who introduced a sweeter Spanish variety of tobacco to North America. Though most of the colonists in America never fully accepted the English style of snuff use, American aristocrats used snuff.[2] Snuff use in England increased in popularity after the Great Plague of London (1665–1666) as people believed snuff had valuable antiseptic properties, which added a powerful impetus to its consumption. By 1650, snuff use had spread from France to England, Scotland, and Ireland, and throughout Europe, as well as Japan, China, and Africa.[2]

By the 17th century some prominent objectors to snuff-taking arose. Pope Urban VIII banned the use of snuff in churches and threatened to excommunicate snuff-takers.[2] In Russia in 1643, Tsar Michael who prohibited the sale of tobacco, instituted the punishment of removing the nose of those who used snuff, persistent users of tobacco would be killed.[2] Despite this, use persisted elsewhere; King Louis XIII of France was a devout snuff-taker, whereas later, Louis XV of France banned the use of snuff from the Royal Court of France during his reign.[2]

By the 18th century, snuff had become the tobacco product of choice among the elite. Snuff use reached a peak in England during the reign of [1][2] Napoleon, Lord Nelson, the Duke of Wellington, Marie Antoinette, Alexander Pope, Samuel Johnson and Benjamin Disraeli all used snuff, as well as numerous other notable persons.[1][2] The taking of snuff helped to distinguish the elite members of society from the common populace, which generally smoked its tobacco.[5]

It was also during the 18th century that an English author and botanist, John Hill, concluded nasal cancer could develop with the use of snuff; under the guise of a doctor, he reported five cases of 'polyps, a swelling in the nostril adherent with the symptoms of open cancer'.[2][6] Modern studies, however, have concluded there is no conclusive evidence of a relationship with nasal snuff-taking and cancer.[7] In Victorian era Britain, a few miracle "snake oil" claims on the health or curative benefits of certain snuff types surfaced in publications, for instance, a London weekly journal called The Gentlewoman advised readers with ailing sight to use the correct type of Portuguese snuff, "whereby many eminent people had cured themselves so that they could read without spectacles after having used them for many years".require('Module:No globals')

local p = {}

-- articles in which traditional Chinese preceeds simplified Chinese local t1st = { ["228 Incident"] = true, ["Chinese calendar"] = true, ["Lippo Centre, Hong Kong"] = true, ["Republic of China"] = true, ["Republic of China at the 1924 Summer Olympics"] = true, ["Taiwan"] = true, ["Taiwan (island)"] = true, ["Taiwan Province"] = true, ["Wei Boyang"] = true, }

-- the labels for each part local labels = { ["c"] = "Chinese", ["s"] = "simplified Chinese", ["t"] = "traditional Chinese", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Cantonese Yale", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Zhuyin Fuhao", ["l"] = "literally", }

-- article titles for wikilinks for each part local wlinks = { ["c"] = "Chinese language", ["s"] = "simplified Chinese characters", ["t"] = "traditional Chinese characters", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Yale romanization of Cantonese", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Bopomofo", }

-- for those parts which are to be treated as languages their ISO code local ISOlang = { ["c"] = "zh", ["t"] = "zh-Hant", ["s"] = "zh-Hans", ["p"] = "zh-Latn-pinyin", ["tp"] = "zh-Latn", ["w"] = "zh-Latn-wadegile", ["j"] = "yue-jyutping", ["cy"] = "yue", ["poj"] = "hak", ["zhu"] = "zh-Bopo", }

local italic = { ["p"] = true, ["tp"] = true, ["w"] = true, ["j"] = true, ["cy"] = true, ["poj"] = true, } -- Categories for different kinds of Chinese text local cats = { ["c"] = "", ["s"] = "", ["t"] = "", }

function p.Zh(frame) -- load arguments module to simplify handling of args local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._Zh(args) end function p._Zh(args) local uselinks = not (args["links"] == "no") -- whether to add links local uselabels = not (args["labels"] == "no") -- whether to have labels local capfirst = args["scase"] ~= nil

        local t1 = false -- whether traditional Chinese characters go first
        local j1 = false -- whether Cantonese Romanisations go first
        local testChar
        if (args["first"]) then
                 for testChar in mw.ustring.gmatch(args["first"], "%a+") do
          if (testChar == "t") then
           t1 = true
           end
          if (testChar == "j") then
           j1 = true
           end
         end
        end
        if (t1 == false) then
         local title = mw.title.getCurrentTitle()
         t1 = t1st[title.text] == true
        end

-- based on setting/preference specify order local orderlist = {"c", "s", "t", "p", "tp", "w", "j", "cy", "poj", "zhu", "l"} if (t1) then orderlist[2] = "t" orderlist[3] = "s" end if (j1) then orderlist[4] = "j" orderlist[5] = "cy" orderlist[6] = "p" orderlist[7] = "tp" orderlist[8] = "w" end -- rename rules. Rules to change parameters and labels based on other parameters if args["hp"] then -- hp an alias for p ([hanyu] pinyin) args["p"] = args["hp"] end if args["tp"] then -- if also Tongyu pinyin use full name for Hanyu pinyin labels["p"] = "Hanyu Pinyin" end if (args["s"] and args["s"] == args["t"]) then -- Treat simplified + traditional as Chinese if they're the same args["c"] = args["s"] args["s"] = nil args["t"] = nil elseif (not (args["s"] and args["t"])) then -- use short label if only one of simplified and traditional labels["s"] = labels["c"] labels["t"] = labels["c"] end local body = "" -- the output string local params -- for creating HTML spans local label -- the label, i.e. the bit preceeding the supplied text local val -- the supplied text -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if (args[part]) then -- build label label = "" if (uselabels) then label = labels[part] if (capfirst) then label = mw.language.getContentLanguage():ucfirst(

Snuff's image as an aristocratic luxury attracted the first U.S. federal tax on tobacco, created in 1794. North Americans, by the mid-1850s, in spite of two centuries of pipe smoking and snuff use, rejected the European practices in general, especially British practices, that entailed snuff boxes and formality. By the late 1700s, taking snuff nasally had fallen out of fashion in the United States. Instead, dry snuff users would use a twig as a brush to "dip" the snuff, which then involved placing the snuff inside the cheek.[8] This is seen as a precursor to dipping tobacco (moist snuff) use which is still very much popular today. In addition, orally chewing tobacco or dipping snuff was more convenient for Americans trekking westward in their wagons.[2] During the 1800s until the mid 1930s, a communal snuff box was installed for members of the US Congress.[2] American snuff is subject to the same warning labels on all smokeless tobacco, indicating a possibility of oral cancer and tooth loss. This reflects the fact that American dry snuff users may still use the product orally,[9] unlike the majority of Europe, but nasal use of snuff is also practiced by some users. Dry snuff is typically not readily available outside of The South and Appalachia, unlike its successor, dipping tobacco (moist snuff), which is available throughout the United States and is much more widely consumed.

In certain areas of Africa, some claim that snuff reached native Africans before white Europeans did, even though tobacco is not indigenous to Africa. A fictional representation of this is in Chinua Achebe's novel Things Fall Apart, where the Igbo villagers are regular snuff-takers long before they ever encountered the first British missionaries. In some African countries, such as South Africa and Nigeria, snuff is still popular with the older generation, though its use is slowly declining, with cigarette smoking becoming the dominant form of tobacco use.require('Module:No globals')

local p = {}

-- articles in which traditional Chinese preceeds simplified Chinese local t1st = { ["228 Incident"] = true, ["Chinese calendar"] = true, ["Lippo Centre, Hong Kong"] = true, ["Republic of China"] = true, ["Republic of China at the 1924 Summer Olympics"] = true, ["Taiwan"] = true, ["Taiwan (island)"] = true, ["Taiwan Province"] = true, ["Wei Boyang"] = true, }

-- the labels for each part local labels = { ["c"] = "Chinese", ["s"] = "simplified Chinese", ["t"] = "traditional Chinese", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Cantonese Yale", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Zhuyin Fuhao", ["l"] = "literally", }

-- article titles for wikilinks for each part local wlinks = { ["c"] = "Chinese language", ["s"] = "simplified Chinese characters", ["t"] = "traditional Chinese characters", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Yale romanization of Cantonese", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Bopomofo", }

-- for those parts which are to be treated as languages their ISO code local ISOlang = { ["c"] = "zh", ["t"] = "zh-Hant", ["s"] = "zh-Hans", ["p"] = "zh-Latn-pinyin", ["tp"] = "zh-Latn", ["w"] = "zh-Latn-wadegile", ["j"] = "yue-jyutping", ["cy"] = "yue", ["poj"] = "hak", ["zhu"] = "zh-Bopo", }

local italic = { ["p"] = true, ["tp"] = true, ["w"] = true, ["j"] = true, ["cy"] = true, ["poj"] = true, } -- Categories for different kinds of Chinese text local cats = { ["c"] = "", ["s"] = "", ["t"] = "", }

function p.Zh(frame) -- load arguments module to simplify handling of args local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._Zh(args) end function p._Zh(args) local uselinks = not (args["links"] == "no") -- whether to add links local uselabels = not (args["labels"] == "no") -- whether to have labels local capfirst = args["scase"] ~= nil

        local t1 = false -- whether traditional Chinese characters go first
        local j1 = false -- whether Cantonese Romanisations go first
        local testChar
        if (args["first"]) then
                 for testChar in mw.ustring.gmatch(args["first"], "%a+") do
          if (testChar == "t") then
           t1 = true
           end
          if (testChar == "j") then
           j1 = true
           end
         end
        end
        if (t1 == false) then
         local title = mw.title.getCurrentTitle()
         t1 = t1st[title.text] == true
        end

-- based on setting/preference specify order local orderlist = {"c", "s", "t", "p", "tp", "w", "j", "cy", "poj", "zhu", "l"} if (t1) then orderlist[2] = "t" orderlist[3] = "s" end if (j1) then orderlist[4] = "j" orderlist[5] = "cy" orderlist[6] = "p" orderlist[7] = "tp" orderlist[8] = "w" end -- rename rules. Rules to change parameters and labels based on other parameters if args["hp"] then -- hp an alias for p ([hanyu] pinyin) args["p"] = args["hp"] end if args["tp"] then -- if also Tongyu pinyin use full name for Hanyu pinyin labels["p"] = "Hanyu Pinyin" end if (args["s"] and args["s"] == args["t"]) then -- Treat simplified + traditional as Chinese if they're the same args["c"] = args["s"] args["s"] = nil args["t"] = nil elseif (not (args["s"] and args["t"])) then -- use short label if only one of simplified and traditional labels["s"] = labels["c"] labels["t"] = labels["c"] end local body = "" -- the output string local params -- for creating HTML spans local label -- the label, i.e. the bit preceeding the supplied text local val -- the supplied text -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if (args[part]) then -- build label label = "" if (uselabels) then label = labels[part] if (capfirst) then label = mw.language.getContentLanguage():ucfirst(

In recent years, because of the ban on smoking in enclosed public places, the practice of snuff-taking is once again gaining popularity among men as well as women.[10]

Accessories

Spring-loaded novelty device used to shoot snuff directly into one's nostrils
The Monk of Calais (1780) by Angelica Kauffman, depicting Pastor Yorick exchanging snuffboxes with Father Lorenzo "..having a horn snuff box in his hand, he presented it open to me.—You shall taste mine—said I, pulling out my box and putting it into his hand." From Laurence Sterne's A Sentimental Journey.

When snuff-taking was fashionable, the manufacture of snuff accessories was a lucrative industry in several cultures.[1] In Europe, snuff boxes ranged from those made in very basic materials, such as horn, to highly ornate designs featuring precious materials made using state of the art techniques.[1] Since prolonged exposure to air causes snuff to dry out and lose its quality, pocket snuff boxes were designed to be airtight containers with strong hinges, generally with enough space for a day's worth of snuff only.[11] Large snuff containers, called mulls (made from a variety of materials, notably including rams horns decorated with silver), were usually kept on the table.require('Module:No globals')

local p = {}

-- articles in which traditional Chinese preceeds simplified Chinese local t1st = { ["228 Incident"] = true, ["Chinese calendar"] = true, ["Lippo Centre, Hong Kong"] = true, ["Republic of China"] = true, ["Republic of China at the 1924 Summer Olympics"] = true, ["Taiwan"] = true, ["Taiwan (island)"] = true, ["Taiwan Province"] = true, ["Wei Boyang"] = true, }

-- the labels for each part local labels = { ["c"] = "Chinese", ["s"] = "simplified Chinese", ["t"] = "traditional Chinese", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Cantonese Yale", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Zhuyin Fuhao", ["l"] = "literally", }

-- article titles for wikilinks for each part local wlinks = { ["c"] = "Chinese language", ["s"] = "simplified Chinese characters", ["t"] = "traditional Chinese characters", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Yale romanization of Cantonese", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Bopomofo", }

-- for those parts which are to be treated as languages their ISO code local ISOlang = { ["c"] = "zh", ["t"] = "zh-Hant", ["s"] = "zh-Hans", ["p"] = "zh-Latn-pinyin", ["tp"] = "zh-Latn", ["w"] = "zh-Latn-wadegile", ["j"] = "yue-jyutping", ["cy"] = "yue", ["poj"] = "hak", ["zhu"] = "zh-Bopo", }

local italic = { ["p"] = true, ["tp"] = true, ["w"] = true, ["j"] = true, ["cy"] = true, ["poj"] = true, } -- Categories for different kinds of Chinese text local cats = { ["c"] = "", ["s"] = "", ["t"] = "", }

function p.Zh(frame) -- load arguments module to simplify handling of args local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._Zh(args) end function p._Zh(args) local uselinks = not (args["links"] == "no") -- whether to add links local uselabels = not (args["labels"] == "no") -- whether to have labels local capfirst = args["scase"] ~= nil

        local t1 = false -- whether traditional Chinese characters go first
        local j1 = false -- whether Cantonese Romanisations go first
        local testChar
        if (args["first"]) then
                 for testChar in mw.ustring.gmatch(args["first"], "%a+") do
          if (testChar == "t") then
           t1 = true
           end
          if (testChar == "j") then
           j1 = true
           end
         end
        end
        if (t1 == false) then
         local title = mw.title.getCurrentTitle()
         t1 = t1st[title.text] == true
        end

-- based on setting/preference specify order local orderlist = {"c", "s", "t", "p", "tp", "w", "j", "cy", "poj", "zhu", "l"} if (t1) then orderlist[2] = "t" orderlist[3] = "s" end if (j1) then orderlist[4] = "j" orderlist[5] = "cy" orderlist[6] = "p" orderlist[7] = "tp" orderlist[8] = "w" end -- rename rules. Rules to change parameters and labels based on other parameters if args["hp"] then -- hp an alias for p ([hanyu] pinyin) args["p"] = args["hp"] end if args["tp"] then -- if also Tongyu pinyin use full name for Hanyu pinyin labels["p"] = "Hanyu Pinyin" end if (args["s"] and args["s"] == args["t"]) then -- Treat simplified + traditional as Chinese if they're the same args["c"] = args["s"] args["s"] = nil args["t"] = nil elseif (not (args["s"] and args["t"])) then -- use short label if only one of simplified and traditional labels["s"] = labels["c"] labels["t"] = labels["c"] end local body = "" -- the output string local params -- for creating HTML spans local label -- the label, i.e. the bit preceeding the supplied text local val -- the supplied text -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if (args[part]) then -- build label label = "" if (uselabels) then label = labels[part] if (capfirst) then label = mw.language.getContentLanguage():ucfirst(

A floral-scented snuff called "English Rose" is provided for members of the British House of Commons. Recent practice has been for this tradition to be maintained at the principal doorkeeper's personal expense due to smoking in the House being banned since 1693. A famous silver communal snuff box kept at the entrance of the House was destroyed in an air raid during World War II with a replacement being subsequently presented to the House by Winston Churchill. Very few members are said to take snuff nowadays.[12]

In China, snuff bottles were used, usually available in two forms, both made of glass. In one type, glass bottles were decorated on the inside to protect the design. Another type used layered multi-colored glass; parts of the layers were removed to create a picture.require('Module:No globals')

local p = {}

-- articles in which traditional Chinese preceeds simplified Chinese local t1st = { ["228 Incident"] = true, ["Chinese calendar"] = true, ["Lippo Centre, Hong Kong"] = true, ["Republic of China"] = true, ["Republic of China at the 1924 Summer Olympics"] = true, ["Taiwan"] = true, ["Taiwan (island)"] = true, ["Taiwan Province"] = true, ["Wei Boyang"] = true, }

-- the labels for each part local labels = { ["c"] = "Chinese", ["s"] = "simplified Chinese", ["t"] = "traditional Chinese", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Cantonese Yale", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Zhuyin Fuhao", ["l"] = "literally", }

-- article titles for wikilinks for each part local wlinks = { ["c"] = "Chinese language", ["s"] = "simplified Chinese characters", ["t"] = "traditional Chinese characters", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Yale romanization of Cantonese", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Bopomofo", }

-- for those parts which are to be treated as languages their ISO code local ISOlang = { ["c"] = "zh", ["t"] = "zh-Hant", ["s"] = "zh-Hans", ["p"] = "zh-Latn-pinyin", ["tp"] = "zh-Latn", ["w"] = "zh-Latn-wadegile", ["j"] = "yue-jyutping", ["cy"] = "yue", ["poj"] = "hak", ["zhu"] = "zh-Bopo", }

local italic = { ["p"] = true, ["tp"] = true, ["w"] = true, ["j"] = true, ["cy"] = true, ["poj"] = true, } -- Categories for different kinds of Chinese text local cats = { ["c"] = "", ["s"] = "", ["t"] = "", }

function p.Zh(frame) -- load arguments module to simplify handling of args local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._Zh(args) end function p._Zh(args) local uselinks = not (args["links"] == "no") -- whether to add links local uselabels = not (args["labels"] == "no") -- whether to have labels local capfirst = args["scase"] ~= nil

        local t1 = false -- whether traditional Chinese characters go first
        local j1 = false -- whether Cantonese Romanisations go first
        local testChar
        if (args["first"]) then
                 for testChar in mw.ustring.gmatch(args["first"], "%a+") do
          if (testChar == "t") then
           t1 = true
           end
          if (testChar == "j") then
           j1 = true
           end
         end
        end
        if (t1 == false) then
         local title = mw.title.getCurrentTitle()
         t1 = t1st[title.text] == true
        end

-- based on setting/preference specify order local orderlist = {"c", "s", "t", "p", "tp", "w", "j", "cy", "poj", "zhu", "l"} if (t1) then orderlist[2] = "t" orderlist[3] = "s" end if (j1) then orderlist[4] = "j" orderlist[5] = "cy" orderlist[6] = "p" orderlist[7] = "tp" orderlist[8] = "w" end -- rename rules. Rules to change parameters and labels based on other parameters if args["hp"] then -- hp an alias for p ([hanyu] pinyin) args["p"] = args["hp"] end if args["tp"] then -- if also Tongyu pinyin use full name for Hanyu pinyin labels["p"] = "Hanyu Pinyin" end if (args["s"] and args["s"] == args["t"]) then -- Treat simplified + traditional as Chinese if they're the same args["c"] = args["s"] args["s"] = nil args["t"] = nil elseif (not (args["s"] and args["t"])) then -- use short label if only one of simplified and traditional labels["s"] = labels["c"] labels["t"] = labels["c"] end local body = "" -- the output string local params -- for creating HTML spans local label -- the label, i.e. the bit preceeding the supplied text local val -- the supplied text -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if (args[part]) then -- build label label = "" if (uselabels) then label = labels[part] if (capfirst) then label = mw.language.getContentLanguage():ucfirst(

Sneezing

1894 Kinetoscope of Fred Ott taking a pinch of snuff and then sneezing, taken by Thomas Edison's laboratory
A man takes snuff from a box in a 19th-century painting

When sniffed, snuff often causes a sneeze though this is often seen by snuff-takers as the sign of a beginner. The tendency to sneeze varies with the person and the particular snuff. Generally, drier snuffs are more likely to do this. For this reason, sellers of snuff often sell handkerchiefs. Slapstick comedy and cartoons have often made use of snuff's sneeze-inducing properties.require('Module:No globals')

local p = {}

-- articles in which traditional Chinese preceeds simplified Chinese local t1st = { ["228 Incident"] = true, ["Chinese calendar"] = true, ["Lippo Centre, Hong Kong"] = true, ["Republic of China"] = true, ["Republic of China at the 1924 Summer Olympics"] = true, ["Taiwan"] = true, ["Taiwan (island)"] = true, ["Taiwan Province"] = true, ["Wei Boyang"] = true, }

-- the labels for each part local labels = { ["c"] = "Chinese", ["s"] = "simplified Chinese", ["t"] = "traditional Chinese", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Cantonese Yale", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Zhuyin Fuhao", ["l"] = "literally", }

-- article titles for wikilinks for each part local wlinks = { ["c"] = "Chinese language", ["s"] = "simplified Chinese characters", ["t"] = "traditional Chinese characters", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Yale romanization of Cantonese", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Bopomofo", }

-- for those parts which are to be treated as languages their ISO code local ISOlang = { ["c"] = "zh", ["t"] = "zh-Hant", ["s"] = "zh-Hans", ["p"] = "zh-Latn-pinyin", ["tp"] = "zh-Latn", ["w"] = "zh-Latn-wadegile", ["j"] = "yue-jyutping", ["cy"] = "yue", ["poj"] = "hak", ["zhu"] = "zh-Bopo", }

local italic = { ["p"] = true, ["tp"] = true, ["w"] = true, ["j"] = true, ["cy"] = true, ["poj"] = true, } -- Categories for different kinds of Chinese text local cats = { ["c"] = "", ["s"] = "", ["t"] = "", }

function p.Zh(frame) -- load arguments module to simplify handling of args local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._Zh(args) end function p._Zh(args) local uselinks = not (args["links"] == "no") -- whether to add links local uselabels = not (args["labels"] == "no") -- whether to have labels local capfirst = args["scase"] ~= nil

        local t1 = false -- whether traditional Chinese characters go first
        local j1 = false -- whether Cantonese Romanisations go first
        local testChar
        if (args["first"]) then
                 for testChar in mw.ustring.gmatch(args["first"], "%a+") do
          if (testChar == "t") then
           t1 = true
           end
          if (testChar == "j") then
           j1 = true
           end
         end
        end
        if (t1 == false) then
         local title = mw.title.getCurrentTitle()
         t1 = t1st[title.text] == true
        end

-- based on setting/preference specify order local orderlist = {"c", "s", "t", "p", "tp", "w", "j", "cy", "poj", "zhu", "l"} if (t1) then orderlist[2] = "t" orderlist[3] = "s" end if (j1) then orderlist[4] = "j" orderlist[5] = "cy" orderlist[6] = "p" orderlist[7] = "tp" orderlist[8] = "w" end -- rename rules. Rules to change parameters and labels based on other parameters if args["hp"] then -- hp an alias for p ([hanyu] pinyin) args["p"] = args["hp"] end if args["tp"] then -- if also Tongyu pinyin use full name for Hanyu pinyin labels["p"] = "Hanyu Pinyin" end if (args["s"] and args["s"] == args["t"]) then -- Treat simplified + traditional as Chinese if they're the same args["c"] = args["s"] args["s"] = nil args["t"] = nil elseif (not (args["s"] and args["t"])) then -- use short label if only one of simplified and traditional labels["s"] = labels["c"] labels["t"] = labels["c"] end local body = "" -- the output string local params -- for creating HTML spans local label -- the label, i.e. the bit preceeding the supplied text local val -- the supplied text -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if (args[part]) then -- build label label = "" if (uselabels) then label = labels[part] if (capfirst) then label = mw.language.getContentLanguage():ucfirst(

Advantages over cigarettes

Users of smokeless tobacco products, including snuff, face no known cancer risk to the lungs, but, depending on the form of the smokeless tobacco product being consumed, may have other increased cancer risks than people who do not consume any form of tobacco products.[13] To date there have been no health suits filed against any of the UK's snuff manufacturers and, based on current knowledge, there is no evidence to suggest that nasal snuff causes lung cancer when used, as intended, nasally. As the primary harm from smoking comes from the smoke itself, snuff has been proposed as a way of reducing harm from tobacco.[14]

A study program initiated in 1969 by the World Health Organization (WHO) International Agency for Research on Cancer (IARC), titled "IARC Monographs on the Evaluation of Carcinogenic Risks to Humans, Volume 89, Smokeless Tobacco and Some Tobacco-specific N-Nitrosamines", published in 2007 representing the views and expert opinions of the IARC Working Group; concluded on snuff-taking and snuff tobacco that "studies on nasal use of snuff did not provide conclusive evidence of a relationship with cancer."[7] The study programme was also supported by the United States National Cancer Institute, the European Commission Directorate-General (Employment and Social Affairs) Health, Safety and Hygiene at Work Unit, and the United States National Institute of Environmental Health Sciences.[7]

Sapundzhiev, N., & Werner, J. A. (2003) found that the chronic "abuse [of nasal sniffing of dry snuff] leads to morphological and functional changes in the nasal mucosa;" but, although dry nasal snuff "contains many substances that are potentially carcinogenic, there is no epidemiological evidence for increased incidence of local malignancies in habitual snuff users."[15]

An article from the 1981 British Medical Journal examining "Nicotine intake by snuff users"[16] concluded:

Unlike tobacco smoke, snuff is free of tar and harmful gases such as carbon monoxide and nitrogen oxides. Since it cannot be inhaled into the lungs, there is no risk of lung cancer, bronchitis, and emphysema. It is not known whether nicotine or carbon monoxide is the major culprit responsible for cigarette-induced coronary heart disease. If it is carbon monoxide a switch to snuff would reduce the risk substantially, but even if nicotine plays a part our results show that the intake from snuff is no greater than from smoking. In conclusion, the rapid absorption of nicotine from snuff confirms its potential as an acceptable substitute for smoking. Switching from cigarettes to snuff would substantially reduce the risk of lung cancer, bronchitis, emphysema, and possibly coronary heart disease as well.

Sale of snuff, tax and legal issues

A container of Peach dry snuff, made in the United States.

Snuff is readily available over the counter in most European tobacco shops, it is also subject to the same sale and purchase age restrictions as with other tobacco products in accordance with local laws. In the United Kingdom, tobacco duty is not charged on "nasal" snuff tobacco.[17][18]

In the United States, snuff is less readily available and typically is found only in specialty tobacco shops or online. Nasal snuff is subject to the warning label found on other smokeless tobacco products, "WARNING: This product is not a safe alternative to cigarettes", and the warning must appear on 30% of the packaging.

Manufacturers

There are several companies still in operation:

  • Belgium: Sifaco
  • Brazil: Fumo Paulistao Ltda., Henriques e Casarin Ltda, Rapé Real de Guarani-MG
  • Netherlands: Lelie and De Ster, Kralingse plas, Rotterdam
  • India: N.C Arya Snuff & Cigar Company, Arora Products, Bishamber Das Charan Jeet Lal, Dholakia Tobacco, Jayaram Rathnakumar, Khetu Ram Bishamber Das, Kishore Tobacco Company, Lachhman Dass Amar Nath, M/S. Ranchhoddas Zinabhai Dholakia, Perumal Snuff Company, Pitamberdas Anandji Mehta, Rahmania Snuff Co., Sun Snuffs, UMA Makeshwari Madras Snuff Co., V.V. Vartak Company, Dhanavilas Madras Snuff Co.
  • Iceland: ATVR
  • Israel: Oneg
  • Germany: Bernard Schnupftabak (since 1733) Germany's first and oldest Tobacco Snuff manufacturer, Sternecker (since 1900), Pöschl Tabak (since 1902), J.H. von Eicken, Rosinski Schnupf
  • Poland: Cygara i Tytoń, Paul Gotard, Synchro
  • Portugal: Fabrica de Tabaco Estrela
  • South Africa: M.L.P., Leonard Dingler, Van Erkoms Tabakke
  • Sweden: Atherthons, Swedish Match
  • Switzerland: A+S Tabak
  • United Kingdom: Wilsons of Sharrow, Samuel Gawith, McChrystals, Gawith, Hoggarth & Co. and Toque are the only remaining independent UK millers still producing their own brands. These companies make a wide range of own-name snuffs, including some based on old recipes – such as Wilson's 'Fribourg and Treyer' line – that were acquired when the original manufacturers ceased trading. Some old family firms, such as Hedges and J and H Wilson, are now owned by multinational tobacco companies, and are simply retained brand names. Brands such as Jaxons, Mullins and Westbury and various others are made for commissioning retailers by one of the remaining millers and are known as contract brands. There are two small producers of hand-made, luxury snuffs: Sir Walter Scott and Abraxas
  • United States: American Snuff Company (formerly Conwood, since 1782), Swisher, US Smokeless Tobacco

See also

References


-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
  1. ^ a b c d e f g h i j k l m The Old Snuff House of Fribourg & Treyer at the Sign of the Rasp & Crown, No.34 St. James's Haymarket, London, S.W., 1720, 1920. Author: George Evens and Fribourg & Treyer. Publisher: Nabu Press, London, England. Reproduced 5 August 2010, ISBN 978-1176904705
  2. ^ a b c d e f g h i j k l m n o p q r s t u v w World Health Organization (WHO) International Agency for Research on Cancer (IARC), Title: IARC Monographs on the Evaluation of Carcinogenic Risks to Humans, Volume 89, Smokeless Tobacco and Some Tobacco-specific N-Nitrosamines, Lyon, France, 2007, Historical Overview 1.1.2 Snuff taking, pp. 43–47, ISBN 9789283212898 [1]
  3. ^ Bourne, G. E.: Columbus, Ramon Pane, and the Beginnings of American Anthropology (1906), Kessinger Publishing, 2003, p. 5.
  4. ^ McKenna, T.: Food of the Gods – The Search for the Original Tree of Knowledge – A Radical History of Plants, Drugs, and Human Evolution, Bantam Books, 1993, p. 199.
  5. ^ a b Porter, R., Teich, M.: Drugs and Narcotics in History, Cambridge University Press, 1997, p. 39.
  6. ^ Techmedexperts.com
  7. ^ a b c World Health Organization (WHO) International Agency for Research on Cancer (IARC), Title: IARC Monographs on the Evaluation of Carcinogenic Risks to Humans, Volume 89, Smokeless Tobacco and Some Tobacco-specific N-Nitrosamines, Lyon, France, 2007, p. 33, 43, 239, 366, ISBN 9789283212898 [2]
  8. ^
  9. ^
  10. ^
  11. ^
  12. ^
  13. ^ Boffetta P, Hecht S, Gray N, Gupta P, Straif K. Smokeless tobacco and cancer. Lancet Oncol. 2008;9(7):667–75. doi:10.1016/S1470-2045(08)70173-6. PMID 18598931.
  14. ^
  15. ^ Sapundzhiev, N., & Werner, J. A.. Nasal snuff: Historical review and health related aspects. Laryngology and Otology. 2003;117(9):686–691. doi:10.1258/002221503322334486.
  16. ^
  17. ^ HM Revenue & Customs A guide to tobacco duties and procedures
  18. ^

Further reading

  • Bourne, Ursula Snuff. Shire Publications, 1990. ISBN 978-0-7478-0089-7
  • Hazen, Edward, The Panorama of Professions and Trades. 1836.
  • Hinds, John D., The Use of Tobacco. 1882. Medicolegal.tripod.com