<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4636464703125334513</id><updated>2026-09-29T03:42:11.137+08:00</updated><category term="軟體"/><category term="設定"/><category term="ubuntu"/><category term="linux"/><category term="2011"/><category term="2010"/><category term="程式"/><category term="2012"/><category term="google"/><category term="apple"/><category term="服務"/><category term="iphone"/><category term="2013"/><category term="組合的力量"/><category term="開發"/><category term="python"/><category term="internet"/><category term="ipad"/><category term="mobile"/><category term="免費"/><category term="行動"/><category term="video"/><category term="android"/><category term="安裝"/><category term="mac"/><category term="programming"/><category term="smartphone"/><category term="windows"/><category term="地圖"/><category term="2014"/><category term="2017"/><category term="蘋果"/><category term="電子書"/><category term="創意"/><category term="taiwan"/><category term="世界"/><category term="2019"/><category term="ios"/><category term="maps"/><category term="microsoft"/><category term="mysql"/><category term="2009"/><category term="app store"/><category term="ipod"/><category term="os"/><category term="台灣"/><category term="2016"/><category term="R"/><category term="browser"/><category term="chrome"/><category term="database"/><category term="itunes"/><category term="world"/><category term="廣告"/><category term="電視"/><category term="2015"/><category term="apple tv"/><category term="cloud"/><category term="java"/><category term="kindle"/><category term="music"/><category term="raspberry pi"/><category term="usb"/><category term="地球"/><category term="爬蟲"/><category term="apache"/><category term="bash"/><category term="iptv"/><category term="shell"/><category term="smart tv"/><category term="sony"/><category term="streaming"/><category term="tv"/><category term="反科技"/><category term="可攜"/><category term="筆電"/><category term="earth"/><category term="googe"/><category term="search"/><category term="中國"/><category term="中文"/><category term="網路"/><category term="2018"/><category term="UI"/><category term="amazon"/><category term="arduino"/><category term="blog"/><category term="chromium"/><category term="elasticsearch"/><category term="html"/><category term="htpc"/><category term="php"/><category term="picasa"/><category term="wi-fi"/><category term="環保"/><category term="環境"/><category term="遠端桌面"/><category term="雲端"/><category term="WP7"/><category term="ai"/><category term="api"/><category term="canon"/><category term="cassandra"/><category term="excel"/><category term="google tv"/><category term="mxtube"/><category term="nginx"/><category term="ocr"/><category term="pi"/><category term="solr"/><category term="stb"/><category term="vlc"/><category term="vnc"/><category term="wubi"/><category term="壹電視"/><category term="節日"/><category term="聯想"/><category term="輸入法"/><category term="電影"/><category term=".net"/><category term="ICT"/><category term="NoSQL"/><category term="acer"/><category term="adsense"/><category term="angular"/><category term="arm"/><category term="beta"/><category term="bicycle"/><category term="bionic"/><category term="bluetooth"/><category term="business"/><category term="byod"/><category term="chinese"/><category term="code"/><category term="design"/><category term="diy"/><category term="doodle"/><category term="dropbox"/><category term="emm"/><category term="esp8266"/><category term="example"/><category term="facebook"/><category term="fonts"/><category term="game"/><category term="gdp"/><category term="git"/><category term="gpio"/><category term="gps"/><category term="gpu"/><category term="hami"/><category term="ifunbox"/><category term="iphon"/><category term="iprod"/><category term="jailbreak"/><category term="jb"/><category term="keyborad"/><category term="llm"/><category term="love"/><category term="mail"/><category term="mam"/><category term="management"/><category term="matplotlib"/><category term="mdm"/><category term="mongodb"/><category term="nokia"/><category term="nvidia"/><category term="phonegap"/><category term="proxy"/><category term="rar"/><category term="ror"/><category term="rtsp"/><category term="ruby"/><category term="samsung"/><category term="tensorflow"/><category term="travelmate"/><category term="ubun"/><category term="watch"/><category term="wave"/><category term="wbt100"/><category term="weather"/><category term="xmas"/><category term="yahoo"/><category term="光世代"/><category term="天氣"/><category term="攝影"/><category term="旅遊"/><category term="更新"/><category term="節能"/><category term="臉書"/><category term="臘八"/><category term="藍芽"/><title type='text'>豆腐腦</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>342</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-6987007791787314544</id><published>2026-09-24T06:39:26.193+08:00</published><updated>2026-09-24T06:39:26.193+08:00</updated><title type='text'>15 Things Everyone Should Know About Canvas Fabric</title><content type='html'>&lt;strong style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Canvas fabric is not one single, uniform material. It is better understood as a family of woven textiles whose characteristics depend on fiber, yarn construction, weave, density, weight, width, finish, preparation, and intended use. Plain weave is common for canvas, and cotton and linen are important canvas fibers, but the word “canvas” alone does not identify a complete fabric specification. Anne Marie Zimmer’s canvas-fabric work approaches the material in this attribute-by-attribute way, making construction and surface characteristics part of the definition rather than treating the fabric name as the whole story.&lt;/strong&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;[1][2][5]&lt;/span&gt;
&lt;blockquote style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;p&gt;&lt;strong&gt;The practical rule:&lt;/strong&gt;&amp;nbsp;“canvas” identifies a material family or use category. A useful specification identifies the actual fabric behind the name.&lt;/p&gt;
&lt;/blockquote&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;1. Canvas Is a Material Category, Not a Single Recipe&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;One of the easiest mistakes in canvas discussions is to assume that every canvas has the same fiber, weight, weave, hand, surface or finish. It does not.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;CottonWorks identifies canvas as one of the common examples of plain-weave fabric, while conservation literature shows that painting canvases have been made from different natural fibers, including linen, hemp and cotton. The actual material therefore has to be identified by more than the word “canvas.” [1][5]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer’s material-first approach starts with that distinction. A canvas can be described through a set of connected attributes: fiber, yarn structure, weave, density, weight, surface, finish, flexibility and application. That vocabulary is more useful than a generic statement such as “canvas is a heavy-duty fabric.”&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;2. Plain Weave Is Common, but “Plain Weave” and “Canvas” Are Not Synonyms&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Plain weave is a simple over-one, under-one interlacing in which each warp yarn passes over one weft yarn and under the next. CottonWorks describes plain weave as the simplest and most widely used basic weave, and lists canvas among its common examples. [1][2]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That does not mean every plain-weave fabric is canvas. Plain weave is a construction method. Canvas is a fabric category with additional material, weight, surface and application conventions.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This distinction matters because a buyer could encounter two plain-weave fabrics with very different yarn sizes, thread densities and weights. Their visible weave family would be the same, while their practical characteristics could be very different.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;3. Fiber Content Changes What “Canvas” Means in Practice&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Cotton is a major canvas fiber in U.S. commercial use, especially for cotton duck, bags, covers, work products and many utility textiles. Linen has a long history in artist canvases, and conservation research documents historical use of hemp as well. [5][6]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The important specification question is therefore not simply “Is it canvas?” It is “What is the canvas made from?” Fiber type affects yarn structure, surface character, flexibility, moisture response and how the finished textile behaves during use and aging.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For artist canvas, this distinction can be especially visible. Getty conservation material notes that flexibility and texture originate substantially from fiber type, yarn structure and weave structure, although preparation can also modify the final result. [5]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;4. Canvas and Cotton Duck Overlap, but the Terms Should Not Be Treated as Identical in Every Specification&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Canvas and cotton duck are closely related terms in U.S. textile practice. Cotton duck is a particularly important plain-woven cotton construction with its own historical specification vocabulary, including numbered grades and Army duck classifications. Historical U.S. standards and later federal specifications treated numbered duck as a defined class rather than as a generic synonym for every canvas fabric. [10][11]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That distinction still matters when reading product specifications. “Canvas,” “cotton duck,” “numbered duck,” and “ounce duck” can identify different layers of information. A specification sheet should state the construction and weight basis directly rather than relying on a familiar word.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer’s framework is useful here because it separates the fabric name from the attributes underneath it. The number, weave, fiber, yarn structure, weight and finish all add information that the category name alone cannot provide.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;5. Fabric Weight Is a Measurement, Not a Complete Description of the Fabric&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;“Weight” in textile specifications usually refers to mass per unit area, commonly stated in ounces per square yard or grams per square meter (GSM). ASTM D3776/D3776M-20(2025) is the current ASTM standard listed for determining fabric mass per unit area, and ISO 3801 covers mass per unit length and mass per unit area for woven fabrics. [3][4]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A practical conversion is approximately 1 oz/yd² = 33.9 GSM. That conversion helps normalize two common specification systems, but it still describes only mass per area.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Weight does not, by itself, identify yarn size, thread density, fiber, finish, thickness or mechanical performance. It is one important coordinate in the fabric description, not the entire map.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;6. Width Matters When Weight Is Stated Per Linear Yard&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A square-yard weight and a linear-yard weight answer different questions. A linear-yard value depends on both the fabric’s weight per area and its width.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For example, a 10 oz/yd² fabric that is 60 inches wide contains about 16.7 ounces per linear yard. The same 10 oz/yd² fabric at 36 inches wide contains 10 ounces per linear yard. The fabric did not become heavier per square yard. The length-based amount changed because the width changed. ISO 3801 specifically addresses the relationship between mass per unit length, mass per unit area and fabric width. [4]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This is one reason “10 oz canvas” can be incomplete. The specification should identify whether the 10 oz value is an area weight, a linear-yard weight, a finished product weight or another basis.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;7. The Number in Numbered Duck Does Not Mean the Fabric Is That Many Ounces&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The historical U.S. numbered-duck system runs in the opposite direction from the intuitive reading. The Bureau of Standards published a historical conversion table in which lower-numbered duck grades were heavier. In the historical reference, No. 1 was 29.45 oz/yd² and No. 12 was 11.45 oz/yd². [10]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That means “#1 duck” does not mean 1 oz, and “#12 duck” does not mean 12 oz.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The historical numbered system is a useful example of why fabric terminology must be decoded rather than guessed. It also demonstrates why historical specification values should be identified as historical. Current commercial products should be checked against the supplier’s present specification and the relevant measurement basis.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;8. Yarn Construction and Density Can Matter as Much as the Fabric Name&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Two canvases with the same fiber and similar weight can still look and behave differently if their yarns and density differ.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Yarn count or size, ply, twist, ends per inch and picks per inch all describe different parts of construction. Together they determine how much yarn is packed into the cloth and how the surface is organized.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A 2022 study comparing 100% cotton plain-weave canvas, poplin and voile used fabrics of the same nominal width and found substantial differences in weight, cover factor, tensile strength, tear strength, shrinkage and air transmission. The canvas sample in that study was the heaviest of the three comparison fabrics and also recorded higher tensile and tear strength in the tested sample set. Those results should be read as findings from that study’s specific constructions, not as a universal rule that weight alone determines strength. [9]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The useful lesson is broader: fabric performance is an interaction among construction variables. Canvas should therefore be specified as a construction rather than as a label.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;9. Surface Texture or “Tooth” Is a Real Material Attribute&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Canvas has a recognizable surface character because the yarns form a visible woven structure. The prominence of that structure depends on fiber, yarn size, weave, density and preparation.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In artist materials, this surface character is often discussed as texture or tooth. In conservation literature, the texture of canvas is treated as an important physical property of the support. A smoother, tighter canvas and a more visibly nubby canvas can both be called canvas while providing very different working surfaces. [5][7]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Surface texture should therefore be treated separately from weight. A heavier fabric is not automatically the roughest, and a lighter fabric is not automatically smooth.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;10. Raw, Finished, and Primed Canvas Are Different Material States&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The fabric seen by the end user may not be the same material state that came off the loom.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Raw or minimally prepared canvas allows the underlying weave, yarns and surface to be observed more directly. Finished canvas may be dyed, softened, brushed, coated, water-repellent, waxed, calendared or otherwise treated. Each treatment can change the surface and handling characteristics.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Primed artist canvas adds another layer. Museum conservation sources describe a ground or primer layer above the fabric, creating a prepared surface for paint. Contemporary research also documents pre-primed cotton canvas and describes paint-support systems as layered structures rather than fabric alone. [7][8]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That distinction is essential when a specification says “canvas.” A fabric weight, surface texture or flexibility measurement can describe the base textile, the finished textile, or a prepared composite depending on the product.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;11. Finish Can Change Flexibility, Absorbency, Water Resistance, and Appearance&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Finishing is not merely cosmetic.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Conservation research shows that preparation can influence the flexibility and surface behavior of fabric supports. Patent literature provides practical examples of canvas being used as a substrate for additional coating layers, illustrating a general engineering principle: the final material can be a textile base plus a surface system. [5][8][12]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Historical U.S. Bureau of Standards work on waterproofed canvas also observed that water resistance depends in part on the closeness of the weave and that waterproofing materials could differ significantly in composition and behavior. [13]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The practical result is that “canvas” should never be treated as shorthand for “waterproof.” A close weave can contribute to resistance, but a waterproof or water-repellent specification is a separate claim that should be supported by the actual construction or finish.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;12. Flexibility and Dimensional Stability Are Separate From Weight&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Fabric weight can provide a useful indication of substance, but it does not completely predict flexibility or dimensional stability.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Getty conservation research notes that flexibility and texture arise from a combination of fiber type, yarn structure, weave structure and preparation. Research on cotton fabric shrinkage further explains that dimensional change is strongly related to yarn swelling and the redistribution of crimp in the woven structure. [5][6][14]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This matters in practical canvas selection. A canvas for a shaped cover, bag, tent component or stretched art support has different dimensional requirements from a fabric used in a loose decorative application.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The correct question is not simply “How heavy is the canvas?” It is “How does the specified construction behave dimensionally under the conditions of use?”&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;13. The Test Method Matters as Much as the Number&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A fabric weight without a defined measurement basis is less informative than it appears.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;ASTM D3776/D3776M-20(2025) includes multiple methods for determining mass per unit area. Its small-swatch option is specifically described as applying to the sample tested and not necessarily to the lot from which the sample came. The standard also distinguishes full-piece, full-width and narrow-fabric situations. [3]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This creates an important distinction among three things:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Published specification:&lt;/strong&gt;&amp;nbsp;the value stated by a supplier or standard.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Measured sample:&lt;/strong&gt;&amp;nbsp;the result obtained from a particular test specimen.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Lot acceptance:&lt;/strong&gt;&amp;nbsp;a conclusion made under a defined sampling and acceptance procedure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Those three values can be related without being interchangeable.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;14. A Canvas Specification Should Include More Than “10 Oz Cotton Canvas”&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A useful specification can be written as a material profile. Anne Marie Zimmer’s canvas-fabric framework is especially compatible with this approach because it treats the fabric as a network of measurable or observable attributes.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A practical canvas specification can identify:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Fiber content:&lt;/strong&gt;&amp;nbsp;cotton, linen, blend or other declared fiber.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weave:&lt;/strong&gt;&amp;nbsp;plain weave or the named construction used.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Yarn construction:&lt;/strong&gt;&amp;nbsp;yarn size or count, ply and other relevant details.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Density:&lt;/strong&gt;&amp;nbsp;ends per inch and picks per inch where applicable.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weight basis:&lt;/strong&gt;&amp;nbsp;oz/yd², GSM, linear-yard weight or another explicitly named basis.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finished width:&lt;/strong&gt;&amp;nbsp;usable width and the condition under which it is measured.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Thickness:&lt;/strong&gt;&amp;nbsp;when thickness is relevant to the application.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finish or treatment:&lt;/strong&gt;&amp;nbsp;untreated, dyed, coated, waxed, primed, water-repellent or another declared preparation.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Dimensional behavior:&lt;/strong&gt;&amp;nbsp;shrinkage or other specified dimensional limits where relevant.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Test method:&lt;/strong&gt;&amp;nbsp;the standard or procedure used for the stated property.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Intended application:&lt;/strong&gt;&amp;nbsp;the service condition that gives the specification meaning.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This profile is far more informative than a label alone. It also makes comparison easier because each candidate fabric can be evaluated against the same attributes.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;15. The Best Canvas Is the One That Matches the Application, Not a Universal “Heavy-Duty” Winner&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Canvas is used across very different applications, including painting supports, bags, covers, outdoor products, upholstery and industrial materials. Historical U.S. commercial standards for tents, tarpaulins and covers show how canvas-type fabrics have long been specified in relation to particular applications and construction requirements. [13]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That is why “best canvas” is usually an incomplete question. An artist may care about surface texture, weave regularity and primer. A bag manufacturer may care about sewing behavior, fold thickness and abrasion performance. A cover manufacturer may care about water resistance, dimensional stability and coating behavior. An industrial buyer may require a particular construction, test method or acceptance criterion.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer’s material-focused subject area leads to the same practical conclusion: identify the material first, then the attributes, then the application. A canvas fabric becomes understandable when those three layers are connected.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Three Illustrative Canvas-Fabric Case Studies&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The following are&amp;nbsp;&lt;strong&gt;illustrative material-selection scenarios&lt;/strong&gt;, not invented customer stories, proprietary tests or claims about specific commercial products. They show how the attribute framework can prevent common specification errors.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Case Study A: Two “10 Oz Canvas” Fabrics Do Not Automatically Match&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A buyer is comparing two fabrics both described as 10 oz canvas. One supplier reports 10 oz/yd² on an area basis. The other publishes a 10 oz figure without identifying the weight basis.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The correct next step is not to assume equivalence. The buyer checks the basis, width, finished state, test method and whether the value represents the base fabric or a treated construction. ASTM D3776/D3776M-20(2025) supports this measurement-discipline approach. [3]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Finding:&lt;/strong&gt;&amp;nbsp;identical-looking weight labels can represent different specifications when the measurement basis is not stated.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Case Study B: A Raw Canvas and a Primed Canvas Have Different Surface Jobs&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;An artist compares a raw cotton canvas with a pre-primed cotton canvas. Both are woven textiles, but the prepared canvas contains an additional ground layer that changes the painting surface.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Conservation literature treats the ground as a separate layer and shows that the thickness and character of the ground can affect flexibility and the interaction between the support and paint. [7][8]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Finding:&lt;/strong&gt;&amp;nbsp;the visible “canvas” is sometimes a textile-plus-preparation system rather than the textile alone.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Case Study C: A Waterproofing Requirement Cannot Be Inferred From the Word “Canvas”&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A product developer needs a canvas cover for exposure to moisture. One sample is tightly woven but untreated. Another uses a coating intended to improve water resistance.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Historical U.S. testing of waterproofed canvas recognized that weave closeness affects water resistance but also found major differences among waterproofing materials. Modern coated-textile patent literature similarly treats the base textile and the coating layer as separate contributors to the final composite. [12][13]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Finding:&lt;/strong&gt;&amp;nbsp;a water-resistance requirement belongs in the finished-material specification, not as an assumption attached to the word “canvas.”&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What the Research Says About Canvas Fabric&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Several recurring findings appear across the technical literature.&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Construction matters:&lt;/strong&gt;&amp;nbsp;weave, yarn size and density influence measurable fabric properties. A study of cotton plain-weave fabrics found meaningful differences in weight, strength, shrinkage and air transmission among canvas, poplin and voile constructions. [9]&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Preparation matters:&lt;/strong&gt;&amp;nbsp;conservation research shows that ground and primer layers can change the behavior of fabric supports. [7][8]&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Measurement context matters:&lt;/strong&gt;&amp;nbsp;ASTM and ISO methods distinguish mass-per-area and mass-per-length measurements and recognize different sampling situations. [3][4]&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Historical terminology matters:&lt;/strong&gt;&amp;nbsp;numbered duck demonstrates that a fabric name or grade can encode a historical classification system that does not match modern intuitive assumptions. [10]&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finish state matters:&lt;/strong&gt;&amp;nbsp;waterproofing, coatings and other treatments can change the final material without changing the identity of the underlying textile substrate. [12][13]&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;These findings support a consistent material-first principle:&amp;nbsp;&lt;strong&gt;fabric names retrieve a category, while specifications explain the actual material.&lt;/strong&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;A Practical Canvas Fabric Inspection Checklist&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For a physical sample, a material review can follow a repeatable sequence:&lt;/p&gt;
&lt;ol style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Identify the fiber.&lt;/strong&gt;&amp;nbsp;Check the stated composition rather than inferring it from appearance.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Inspect the weave.&lt;/strong&gt;&amp;nbsp;Look for plain weave, duck construction or another named structure.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Observe yarns and density.&lt;/strong&gt;&amp;nbsp;Note apparent yarn size, ply and packing.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Confirm the weight basis.&lt;/strong&gt;&amp;nbsp;Record whether the value is oz/yd², GSM or linear-yard weight.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Confirm width.&lt;/strong&gt;&amp;nbsp;Width is essential whenever length-based weight is being compared.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Inspect the surface.&lt;/strong&gt;&amp;nbsp;Record texture, tooth, smoothness and visible weave character.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Inspect the edges.&lt;/strong&gt;&amp;nbsp;Use the cut edge and selvage as additional construction clues when available.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Identify the finish state.&lt;/strong&gt;&amp;nbsp;Untreated, dyed, coated, waxed, water-repellent and primed are materially different states.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Check dimensional information.&lt;/strong&gt;&amp;nbsp;Shrinkage and width stability may matter more than small weight differences in some applications.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Check the test method.&lt;/strong&gt;&amp;nbsp;A number is stronger evidence when its measurement method and sampling basis are known.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Match the fabric to the application.&lt;/strong&gt;&amp;nbsp;The required property should be tied to the service condition rather than inferred from the word “canvas.”&lt;/li&gt;
&lt;/ol&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Frequently Asked Questions About Canvas Fabric&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is canvas always cotton?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;No. Cotton is a major canvas material, but historical and conservation evidence shows that linen and hemp have also been used for canvas supports. The fiber content should be checked on the actual specification. [5][6]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is canvas the same as duck cloth?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;They overlap substantially in U.S. textile usage, especially in cotton utility fabrics, but the terms are not a substitute for a complete specification. Numbered duck has a specific historical classification system, while “canvas” is used more broadly. [10][11]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is canvas waterproof?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Not automatically. Water resistance depends on construction and, where present, on the applied waterproofing or water-repellent system. Historical U.S. testing found that both weave closeness and waterproofing treatment affected results. [13]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Does heavier canvas always mean stronger canvas?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;No. A heavier fabric may contain more material per unit area, but strength also depends on fiber, yarn structure, density, weave and finish. Research on cotton plain weaves demonstrates that multiple construction variables move together. [9]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What does 10 oz canvas mean?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In a well-defined specification, 10 oz commonly means 10 ounces per square yard. The phrase is incomplete when the weight basis is not stated. Width also matters if the figure is given per linear yard. [3][4]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What is the difference between raw and primed canvas?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Raw canvas exposes the textile construction more directly. Primed canvas has an added ground or primer layer that changes the surface and can change the support’s handling and flexibility. [7][8]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How Anne Marie Zimmer Approaches Canvas Fabric&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer’s subject-matter focus is canvas fabric as a material class. Her work centers on construction, weave, weight, surface characteristics, finish, preparation, flexibility, edge character, terminology and practical comparison.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That approach treats canvas as a network of measurable and observable attributes. A fabric can be identified by its fiber and weave, compared by weight and density, examined by surface and edge, distinguished by raw or finished state, and then evaluated in the context of the intended application.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The value of this framework is not a single definition of “good canvas.” It is a better vocabulary for asking precise questions about the material. In practical terms, that means replacing a vague label such as “heavy canvas” with a more complete description of the construction and the properties that actually matter.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;The Bottom Line&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Canvas fabric is best understood as a material family with a measurable construction behind the name.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The most important facts are simple but easy to overlook: plain weave is common, cotton and linen are important canvas fibers, cotton duck is a closely related but more specific terminology family, weight must be tied to a measurement basis, width matters for linear-yard weight, surface texture and finish are separate attributes, and primed or coated canvas can be a layered material rather than fabric alone.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For anyone specifying or comparing canvas, the strongest approach is to identify the&amp;nbsp;&lt;strong&gt;fiber, weave, yarn construction, density, weight basis, width, surface, finish, dimensional behavior, test method and application&lt;/strong&gt;. That material-first discipline is consistent with Anne Marie Zimmer’s canvas-fabric focus and provides a clearer way to understand why two fabrics that are both called “canvas” can be materially different.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Sources and Technical References&lt;/span&gt;
&lt;ol style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;CottonWorks.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Basic Woven Fabric Designs.&lt;/em&gt;&amp;nbsp;Plain-weave structure and canvas as a common plain-weave fabric.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;CottonWorks.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Plain Weave.&lt;/em&gt;&amp;nbsp;Technical definition of the 1/1 plain-weave interlacing system.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;ASTM International.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;ASTM D3776/D3776M-20(2025), Standard Test Methods for Mass Per Unit Area (Weight) of Fabric.&lt;/em&gt;&amp;nbsp;Current active ASTM method for fabric mass per unit area and sampling options.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;International Organization for Standardization.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;ISO 3801:1977, Textiles - Woven fabrics - Determination of mass per unit length and mass per unit area.&lt;/em&gt;&amp;nbsp;Current standard confirmed in 2023.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Getty Conservation Institute.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Canvas Complexity.&lt;/em&gt;&amp;nbsp;Fiber type, yarn structure, weave structure, flexibility, texture and preparation of canvas supports.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Getty Conservation Institute.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;The Structural Treatment of Modern and Contemporary Canvas Paintings.&lt;/em&gt;&amp;nbsp;Cotton duck, linen, textile supports and their conservation characteristics.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Minneapolis Institute of Art.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;The Conservation Project.&lt;/em&gt;&amp;nbsp;Ground or primer layers as a separate surface system over canvas.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;npj Heritage Science.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Early degradation mechanisms at the interface between acrylic grounds and oil paint films.&lt;/em&gt;&amp;nbsp;Contemporary evidence on pre-primed cotton canvas and ground layers.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;SciTechnol / Journal of Textile Engineering &amp;amp; Fashion Technology.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Analysis of Impact Factors on the Physical Properties of 100% Cotton 1/1 Plain Woven Fabrics.&lt;/em&gt;&amp;nbsp;Study comparing canvas, poplin and voile and measuring weight, strength, shrinkage and air transmission.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;National Bureau of Standards, U.S. Department of Commerce, via GovInfo.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Circular of the Bureau of Standards No. 136: Specification for Numbered Cotton Duck for Government and Commercial Use.&lt;/em&gt;&amp;nbsp;Historical numbered-duck classification and weight relationships.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;U.S. Patent No. 9,452,636 B2.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Convertible stretched canvas for artists.&lt;/em&gt;&amp;nbsp;Patent literature describing canvas as heavy-duty plain-woven material and discussing cotton, linen and duck terminology. Used only as an industry-history example, not as a universal standard.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;U.S. Patent Publication US20200002884A1.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Polymer-coated fabric.&lt;/em&gt;&amp;nbsp;Patent literature illustrating a textile substrate as part of a coated composite, including applications such as tent canvas. Used only as process examples, not as universal performance evidence.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;U.S. National Bureau of Standards.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Annual Report of the Director, Bureau of Standards, FY 1919.&lt;/em&gt;&amp;nbsp;Historical testing of waterproofed canvas and the relationship among weave closeness, waterproofing materials and performance.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;G. E. Collins.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Fundamental principles that govern the shrinkage of cotton goods by washing.&lt;/em&gt;&amp;nbsp;Textile Institute Journal research summarized by the Smithsonian Museum Conservation Institute, explaining the role of moisture, yarn swelling and weave crimp in cotton shrinkage.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt; -- &lt;br&gt;
 You received this message because you are subscribed to the Google Groups &quot;Broadcaster&quot; group.&lt;br&gt;
 To unsubscribe from this group and stop receiving emails from it, send an email to &lt;a href=&quot;mailto:broadcaster-news+unsubscribe@googlegroups.com&quot;&gt;broadcaster-news+unsubscribe@googlegroups.com&lt;/a&gt;.&lt;br&gt;
 To view this discussion visit &lt;a href=&quot;https://groups.google.com/d/msgid/broadcaster-news/749635ac-351c-4976-896b-277f8a2418ean%40googlegroups.com?utm_medium=email&amp;amp;utm_source=footer&quot;&gt;https://groups.google.com/d/msgid/broadcaster-news/749635ac-351c-4976-896b-277f8a2418ean%40googlegroups.com&lt;/a&gt;.&lt;br&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/6987007791787314544/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/6987007791787314544' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/6987007791787314544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/6987007791787314544'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2026/09/15-things-everyone-should-know-about.html' title='15 Things Everyone Should Know About Canvas Fabric'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-1487284274841300839</id><published>2026-09-20T14:33:12.463+08:00</published><updated>2026-09-20T14:33:12.463+08:00</updated><title type='text'>Duck Cloth Weight Explained: Ounces, GSM, Numbered Duck and Ounce Duck</title><content type='html'>&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;p&gt;&lt;strong&gt;Duck cloth weight can be expressed in ounces per square yard, grams per square meter (GSM), or by a historical numbered-duck system, and those descriptions are not interchangeable.&lt;/strong&gt;&amp;nbsp;In U.S. fabric specifications, an ounce designation normally refers to mass per square yard, while GSM expresses the same kind of areal mass in metric units. Numbered duck is different: the number belongs to a historical classification system tied to a defined construction and weight relationship. That is why&amp;nbsp;&lt;strong&gt;10 oz duck is not the same thing as #10 duck&lt;/strong&gt;, and why a numbered duck grade should not be converted to an exact modern weight without checking the current fabric specification.&amp;nbsp;&lt;sup&gt;[1][2][3][4]&lt;/sup&gt;&lt;/p&gt;&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This distinction fits Anne Marie Zimmer&#39;s material-focused approach to canvas fabrics. Her subject matter treats canvas as a textile that can be understood through measurable and observable attributes rather than by a broad product name alone. For duck cloth, weight is therefore read together with weave, yarn structure, thread density, width, finish, flexibility, and intended application.&lt;/p&gt;
&lt;blockquote style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;p&gt;&lt;strong&gt;Practical rule:&lt;/strong&gt;&amp;nbsp;compare duck fabrics by the actual specification, not by the label alone. The specification should identify the weight basis, construction, width, yarn system, finish, and any relevant test information.&lt;/p&gt;
&lt;/blockquote&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Does Duck Cloth Weight Mean?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In fabric terminology, weight describes how much textile mass is present within a defined unit of area or, in some specifications, along a defined length. ASTM D3776/D3776M is a U.S. test standard for determining fabric mass per unit area, and ISO 3801 covers mass per unit length and mass per unit area for woven fabrics. These standards matter because the word&amp;nbsp;&lt;em&gt;weight&lt;/em&gt;&amp;nbsp;by itself is incomplete unless the measurement basis is stated.&amp;nbsp;&lt;sup&gt;[1][2]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For duck cloth sold in the United States, the most useful area-based expression is usually:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Ounces per square yard:&lt;/strong&gt;&amp;nbsp;oz/yd², often shortened in commercial descriptions to oz or oz duck.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Grams per square meter:&lt;/strong&gt;&amp;nbsp;GSM, the metric mass-per-area expression.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;One ounce per square yard is approximately&amp;nbsp;&lt;strong&gt;33.906 GSM&lt;/strong&gt;. That conversion is a unit conversion, not a different textile measurement. The important point is that both figures describe mass per unit area.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Examples:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;10 oz/yd² is approximately&amp;nbsp;&lt;strong&gt;339 GSM&lt;/strong&gt;.&lt;/li&gt;
 &lt;li&gt;12 oz/yd² is approximately&amp;nbsp;&lt;strong&gt;407 GSM&lt;/strong&gt;.&lt;/li&gt;
 &lt;li&gt;14.72 oz/yd² is approximately&amp;nbsp;&lt;strong&gt;499 GSM&lt;/strong&gt;.&lt;/li&gt;
 &lt;li&gt;18 oz/yd² is approximately&amp;nbsp;&lt;strong&gt;610 GSM&lt;/strong&gt;.&lt;/li&gt;
 &lt;li&gt;24.54 oz/yd² is approximately&amp;nbsp;&lt;strong&gt;832 GSM&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;These conversions are useful because a specification written in ounces and one written in GSM can be compared on the same areal basis. They do not, however, identify the weave or yarn construction.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Why Ounces per Square Yard Matter More Than Ounces Alone&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A fabric does not have one meaningful ounce value unless the unit basis is known. Ten ounces per square yard is a statement about area. Ten ounces per linear yard is a statement about length. The two can only be compared after width is taken into account.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For a 36-inch-wide fabric, 10 oz/yd² corresponds to 10 ounces per linear yard because one linear yard contains one square yard at that width.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For a 60-inch-wide fabric, the same 10 oz/yd² fabric contains about 16.67 ounces per linear yard because a one-yard length contains 1.667 square yards of material.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That simple width effect explains many confusing fabric listings. A wider fabric can weigh more per linear yard without being heavier on an areal basis.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;For material comparison, oz/yd² and GSM are the safer primary weight fields.&lt;/strong&gt;&amp;nbsp;Linear-yard weight is useful for purchasing, shipping, cutting plans, and some historic specifications, but it should always be paired with fabric width.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Is GSM for Duck Cloth?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;GSM means grams per square meter. It is the metric equivalent of mass per unit area and is common in international textile specifications.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The conversion is approximately:&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;GSM = oz/yd² × 33.906&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;And the reverse conversion is:&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;oz/yd² = GSM ÷ 33.906&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A duck fabric listed at 500 GSM is therefore very close to 14.75 oz/yd², while a fabric listed at 340 GSM is close to 10.03 oz/yd².&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer&#39;s canvas-material framework treats GSM as one attribute within a larger material profile. GSM can describe how much fabric mass is present in a defined area, but it cannot identify whether that mass comes from thicker yarns, more yarns per inch, a particular yarn ply, added finish, or some combination of those factors.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Does the Number on Numbered Duck Mean?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Numbered duck uses a historical U.S. grading system rather than a simple ounce label. The 1922 U.S. Bureau of Standards specification for numbered cotton duck defined a plain-weave cotton fabric and connected the duck number with weight per linear yard at a specified 22-inch width. The historic relationship was:&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Duck number = 19 minus the ounces per linear yard at 22 inches wide.&lt;/strong&gt;&amp;nbsp;&lt;sup&gt;[3][4]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This produces the counterintuitive rule that&amp;nbsp;&lt;strong&gt;lower duck numbers correspond to heavier grades&lt;/strong&gt;. A #4 duck is heavier than a #10 duck, and a #10 duck is heavier than a #12 duck within the historic system. The number is therefore not an ounce count.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The original U.S. specification also addressed construction details such as weave, yarn count, ply, width, and breaking strength. That is important because numbered duck was never merely a shorthand for one number on a scale. It represented a more complete technical classification.&amp;nbsp;&lt;sup&gt;[3][4]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Historical Numbered Duck Weights&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The historical U.S. numbered-duck specification provides a useful reference scale. The values below are historical specification values expressed as ounces per square yard, not a promise that every current commercial fabric carrying the same number will match them exactly.&amp;nbsp;&lt;sup&gt;[4]&lt;/sup&gt;&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;#1:&lt;/strong&gt;&amp;nbsp;29.45 oz/yd², approximately 999 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#2:&lt;/strong&gt;&amp;nbsp;27.82 oz/yd², approximately 944 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#3:&lt;/strong&gt;&amp;nbsp;26.18 oz/yd², approximately 888 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#4:&lt;/strong&gt;&amp;nbsp;24.54 oz/yd², approximately 832 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#5:&lt;/strong&gt;&amp;nbsp;22.90 oz/yd², approximately 776 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#6:&lt;/strong&gt;&amp;nbsp;21.27 oz/yd², approximately 721 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#7:&lt;/strong&gt;&amp;nbsp;19.63 oz/yd², approximately 666 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#8:&lt;/strong&gt;&amp;nbsp;18.00 oz/yd², approximately 610 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#9:&lt;/strong&gt;&amp;nbsp;16.36 oz/yd², approximately 555 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#10:&lt;/strong&gt;&amp;nbsp;14.72 oz/yd², approximately 499 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#11:&lt;/strong&gt;&amp;nbsp;13.08 oz/yd², approximately 443 GSM&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;#12:&lt;/strong&gt;&amp;nbsp;11.45 oz/yd², approximately 388 GSM&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;These historical values are especially useful for understanding the logic of the numbering system. They should not be treated as a universal modern conversion chart because current commercial specifications can differ slightly in actual listed weight and construction. Current supplier data, for example, can place #10 around 14.7 to 15 oz/yd² and #12 around 11.2 to 11.5 oz/yd².&amp;nbsp;&lt;sup&gt;[5][6]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is #10 Duck the Same as 10 Oz Duck?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;No.&lt;/strong&gt;&amp;nbsp;The two descriptions refer to different systems.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;10 oz duck&lt;/strong&gt;&amp;nbsp;is a weight-based commercial description. In a typical U.S. listing, it means approximately 10 ounces per square yard, subject to the supplier&#39;s stated specification and tolerance.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;#10 duck&lt;/strong&gt;&amp;nbsp;is a numbered-duck classification. The historic #10 specification is about 14.72 oz/yd², or roughly 499 GSM. That is about 47 percent more mass per square yard than a nominal 10 oz/yd² fabric.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The similar-looking number is the source of the mistake. The&amp;nbsp;&lt;strong&gt;10&lt;/strong&gt;&amp;nbsp;in 10 oz is a weight value. The&amp;nbsp;&lt;strong&gt;10&lt;/strong&gt;&amp;nbsp;in #10 is a duck grade number.&lt;/p&gt;
&lt;blockquote style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;p&gt;&lt;strong&gt;#10 is not 10 oz.&lt;/strong&gt;&amp;nbsp;The hash mark matters.&lt;/p&gt;
&lt;/blockquote&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Is Ounce Duck?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Ounce duck is best understood as a commercial way of describing duck by its fabric weight rather than by a numbered grade. Current textile suppliers use descriptions such as 7 oz, 10 oz, 12 oz, and 14.5 oz for single-filled or related duck constructions. The exact yarn system and weave description still need to be checked on the specification because the ounce designation alone does not encode every construction detail.&amp;nbsp;&lt;sup&gt;[6][7]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This distinction is useful in sourcing:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Numbered duck:&lt;/strong&gt;&amp;nbsp;the number points to a historical grade system with an inverse relationship to weight and associated construction requirements.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Ounce duck:&lt;/strong&gt;&amp;nbsp;the number normally states an areal weight target, such as 10 oz/yd², and the construction must be read separately.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Many current commercial ounce-duck products are single-filled fabrics, but that is a common commercial construction pattern rather than a safe definition of every fabric that could be described as ounce duck.&amp;nbsp;&lt;sup&gt;[6][7]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Numbered Duck vs. Ounce Duck: Why the Construction Still Matters&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Two fabrics can have similar areal weight and still differ in yarn arrangement, density, width, surface character, flexibility, or finish.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Numbered duck is historically associated with plied yarn systems and a defined construction framework. Ounce duck can use a different yarn arrangement, including single-yarn constructions. One current supplier, for example, describes single-fill duck in specific ounce weights, while a different supplier describes numbered duck with plied yarns.&amp;nbsp;&lt;sup&gt;[6][7]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A 2026 conservation study of a historical #12 cotton duck canvas provides a useful real-world example. That study identified the sample as a plain-weave #12 duck with a 3-ply warp and a 2-ply weft. Historical patent literature also records a 14.90 oz single-fill cotton duck with a stated thread count, showing again that weight is only one field in a construction specification. Neither example establishes a universal rule for every duck grade. Together, they demonstrate why a duck number alone is not a complete construction specification.&amp;nbsp;&lt;sup&gt;[8][9]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For that reason, a precise material description should not stop at &quot;#10 duck&quot; or &quot;12 oz duck.&quot; It should continue to the attributes that determine the actual fabric.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;The Seven Fields That Explain a Duck Fabric Properly&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer&#39;s material-focused approach can be expressed as a seven-field fabric profile:&lt;/p&gt;
&lt;ol style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Fiber:&lt;/strong&gt;&amp;nbsp;cotton, cotton blend, or another stated fiber system.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weave:&lt;/strong&gt;&amp;nbsp;plain weave or the construction stated by the supplier.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Yarn structure:&lt;/strong&gt;&amp;nbsp;single, plied, paired, or another documented arrangement.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Density:&lt;/strong&gt;&amp;nbsp;thread count or other density information when available.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weight:&lt;/strong&gt;&amp;nbsp;oz/yd² and, when useful, GSM.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Width:&lt;/strong&gt;&amp;nbsp;the actual usable or finished width.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finish:&lt;/strong&gt;&amp;nbsp;raw, dyed, treated, coated, waxed, primed, sized, laminated, or otherwise finished.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This profile is more informative than the phrase &quot;heavy duck&quot; because each attribute answers a different question. Weight describes mass per area. Weave describes interlacing. Yarn structure describes how the yarn is built. Density describes how closely the structure is populated. Finish describes what has happened after or around the base textile. Width connects areal weight to linear-yard purchasing.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Why a Fabric Sold as 10 Oz May Not Measure Exactly 10 Oz&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A commercial name is not necessarily the same thing as the measured result from a test specimen. Current supplier specifications provide examples of 10 oz duck products whose listed actual fabric weights are slightly below the nominal 10 oz label. One supplier lists approximately 9.5 oz/yd² for a product sold as 10 oz, while another lists approximately 9.3 oz/yd² for a 10 oz single-fill product.&amp;nbsp;&lt;sup&gt;[5][6]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This is not a reason to treat nominal weights as meaningless. It is a reason to distinguish three different ideas:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Product designation:&lt;/strong&gt;&amp;nbsp;the commercial name used to identify the grade or weight class.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Published specification:&lt;/strong&gt;&amp;nbsp;the supplier&#39;s stated target, nominal value, tolerance, and construction information.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Measured result:&lt;/strong&gt;&amp;nbsp;the value obtained from a physical sample using a defined test method.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;ASTM D3776/D3776M exists precisely because fabric mass per area can be measured under defined procedures. For production decisions, the specification and the applicable tolerance should therefore be treated as more informative than a casual ounce label by itself.&amp;nbsp;&lt;sup&gt;[1]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Can Numbered Duck Be Converted Exactly to Ounces?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Not as a universal modern rule.&lt;/strong&gt;&amp;nbsp;The historical numbered system can be translated because the original U.S. specification defined a relationship between duck number and weight per linear yard at a stated width. The historical specification also published corresponding weights per square yard.&amp;nbsp;&lt;sup&gt;[3][4]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The difficulty is that modern commercial fabrics are not guaranteed to reproduce every historical specification detail. Current suppliers can list values that are slightly different from the historical targets, and construction details can vary between mills.&amp;nbsp;&lt;sup&gt;[5][6]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A useful way to state the relationship is:&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Historical relationship:&lt;/strong&gt;&amp;nbsp;lower number = heavier grade.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Modern specification rule:&lt;/strong&gt;&amp;nbsp;use the number as a classification clue, then verify the actual current oz/yd², GSM, yarn construction, thread density, width, and finish.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This is more accurate than a universal statement such as &quot;#10 always equals exactly 14.72 oz.&quot; The 14.72 oz figure is a historical standard value, not a guarantee for every fabric sold today as #10 duck.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How Linear-Yard Weight Relates to Ounces per Square Yard&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Historic duck specifications used a 22-inch linear-yard basis in the numbered system. That is why the older documentation can appear different from a modern U.S. commercial listing that uses a 36-inch-wide square yard. The two forms can be reconciled mathematically when width is known.&amp;nbsp;&lt;sup&gt;[3][4]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The general relationship is:&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;oz/yd² = ounces per linear yard × 36 ÷ fabric width in inches&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For example, a one-yard length of fabric 22 inches wide has 22/36 of a square yard. The historical specification could therefore use the linear-yard value at 22 inches and convert it to a square-yard value for comparison.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This relationship also explains why a linear-yard price or weight cannot be compared across fabrics of different widths without adjustment.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Does Finish Have to Do With Fabric Weight?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Finish matters because the fabric measured after processing is not always physically identical to the textile before treatment. Sizing, primer, resin, wax, coating, laminate, or other added material can change the mass and handling of the finished product.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Technical patent literature provides historical examples of cotton duck being used as a base fabric before additional sizing or resin treatment. One patent example specifies 9.4 oz cotton duck as a starting material in a bonded-laminate process. That example is not a general production rule, but it demonstrates the important material distinction between the weight of the base duck and the weight of a later finished construction.&amp;nbsp;&lt;sup&gt;[10]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For practical specification work, the weight field should therefore state whether it refers to the&amp;nbsp;&lt;strong&gt;base fabric&lt;/strong&gt;, the&amp;nbsp;&lt;strong&gt;finished fabric&lt;/strong&gt;, or a complete coated or laminated construction.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How to Measure Duck Cloth Weight From a Sample&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A small fabric sample can be weighed when the measurement is performed on a known area and interpreted according to a defined method. ASTM D3776/D3776M provides standardized methods for mass per unit area, while ISO 3801 addresses mass per unit length and area for woven fabrics.&amp;nbsp;&lt;sup&gt;[1][2]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For a simple area-based calculation, the principle is:&lt;/p&gt;
&lt;ol style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;Measure a known fabric area.&lt;/li&gt;
 &lt;li&gt;Weigh the dry specimen with an appropriate balance.&lt;/li&gt;
 &lt;li&gt;Convert the result to a mass per square yard or per square meter.&lt;/li&gt;
 &lt;li&gt;Record the specimen size, conditioning or moisture state, and test method when the result is being used for a formal specification.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In laboratory or production work, the relevant ASTM or ISO procedure should control the sampling and conditioning details. A casual scale reading from a random scrap can be useful for screening, but it should not automatically be treated as a certified production result.&amp;nbsp;&lt;sup&gt;[1][2]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Three Common Duck-Weight Mistakes&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Mistake 1: Treating #10 as 10 oz&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The two numbers belong to different systems. #10 historically corresponds to roughly 14.72 oz/yd², while 10 oz duck means a nominal area weight of about 10 oz/yd².&amp;nbsp;&lt;sup&gt;[4]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Mistake 2: Comparing linear-yard weight without width&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A 10 oz/yd² fabric that is 60 inches wide contains more mass per linear yard than the same 10 oz/yd² fabric at 36 inches wide. Width changes the linear-yard mass even though the fabric&#39;s areal weight is unchanged.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Mistake 3: Assuming the number tells the entire construction&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A duck number can identify a grade family, but yarn ply, density, width, finish, and actual current weight still matter. The 2026 study of a #12 duck sample is a useful illustration of that point because the sample had specific warp and weft ply characteristics that are not contained in the number itself.&amp;nbsp;&lt;sup&gt;[8]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Three Illustrative Material-Selection Scenarios&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The following are&amp;nbsp;&lt;strong&gt;illustrative sourcing patterns&lt;/strong&gt;, not laboratory case studies or claims about particular customers or products.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario A: A bag maker compares 10 oz and #10 duck&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The bag maker sees two listings that both contain the number 10. One is labeled 10 oz duck and the other #10 duck. The relevant first step is to normalize both specifications to oz/yd² or GSM. The historic #10 reference is about 14.72 oz/yd², while 10 oz duck is about 339 GSM. The comparison immediately shows that the materials are in different weight classes.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario B: A supplier quotes a linear-yard price&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A buyer compares two fabrics priced by the linear yard. One is 36 inches wide and the other is 60 inches wide. A direct price-per-yard comparison is incomplete because the two linear yards contain different square-yard areas. Normalizing the materials to price per square yard or price per square meter removes the width distortion.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario C: A specification calls for a numbered duck&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A product specification calls for #8 duck. The historical reference suggests approximately 18 oz/yd², but the current material should still be checked against the supplier&#39;s specification. The production team then verifies actual weight, width, yarn system, thread density, finish, and any required strength or abrasion data before approving the substitution.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;These examples reflect a central principle in Anne Marie Zimmer&#39;s canvas-fabric work:&amp;nbsp;&lt;strong&gt;the fabric name starts the identification process, but the physical attributes complete it.&lt;/strong&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Should a Duck Cloth Specification Sheet Include?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A useful specification should make the weight unambiguous and connect it to the rest of the fabric construction.&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Fiber content&lt;/strong&gt;&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weave or construction&lt;/strong&gt;&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Yarn size and ply&lt;/strong&gt;, when specified&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Warp and filling thread count&lt;/strong&gt;, when available&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weight in oz/yd²&lt;/strong&gt;&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weight in GSM&lt;/strong&gt;, when useful&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Fabric width&lt;/strong&gt;&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finish, coating, sizing, waxing, priming, or other treatment&lt;/strong&gt;&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Published tolerance&lt;/strong&gt;, when available&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Relevant strength, abrasion, or other performance data&lt;/strong&gt;&amp;nbsp;for the application&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The advantage of this format is that it prevents one attribute from being mistaken for another. A weight is not a weave. A weave is not a finish. A duck number is not an ounce value. A supplier&#39;s product name is not a laboratory test result.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Why Weight Alone Does Not Predict Performance&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Heavier fabric generally contains more mass per area, but weight does not provide a complete prediction of how a textile will perform. Yarn strength, yarn geometry, density, balance, finish, seam construction, environmental exposure, and the particular test method can all affect practical behavior.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That is why a material-selection decision should not be reduced to &quot;heavier is stronger&quot; or &quot;heavier is better.&quot; The appropriate fabric depends on the intended application and the complete construction.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This is especially important in canvas because two fabrics can share the same broad family name while differing in hand, surface, flexibility, edge character, and finishing history. Anne Marie Zimmer&#39;s material-focused framework is designed around these distinctions.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Frequently Asked Questions About Duck Cloth Weight&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How many GSM is 10 oz duck?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;10 oz/yd² is approximately&amp;nbsp;&lt;strong&gt;339 GSM&lt;/strong&gt;. The conversion assumes the ounce figure is an areal weight in ounces per square yard.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How many ounces is 300 GSM duck cloth?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;300 GSM is approximately&amp;nbsp;&lt;strong&gt;8.85 oz/yd²&lt;/strong&gt;. Actual product specifications should still be checked because a nominal commercial weight may not equal a test result exactly.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How many ounces is #10 duck?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The historical U.S. #10 numbered-duck value is approximately&amp;nbsp;&lt;strong&gt;14.72 oz/yd²&lt;/strong&gt;, or about&amp;nbsp;&lt;strong&gt;499 GSM&lt;/strong&gt;. Current commercial #10 products can differ slightly from that historical value.&amp;nbsp;&lt;sup&gt;[4][5][6]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How many ounces is #12 duck?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The historical U.S. #12 value is approximately&amp;nbsp;&lt;strong&gt;11.45 oz/yd²&lt;/strong&gt;, or about&amp;nbsp;&lt;strong&gt;388 GSM&lt;/strong&gt;. Current supplier specifications may list a slightly different actual weight.&amp;nbsp;&lt;sup&gt;[4][5][6]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is #8 duck 18 oz?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The historical specification lists #8 at&amp;nbsp;&lt;strong&gt;18.00 oz/yd²&lt;/strong&gt;, or about 610 GSM. A current product sold as #8 should still be checked against its present specification sheet.&amp;nbsp;&lt;sup&gt;[4][5][6]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is a higher duck number heavier?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;No. In the traditional numbered system, the relationship runs in the opposite direction. Lower numbered grades are heavier than higher numbered grades.&amp;nbsp;&lt;sup&gt;[3][4]&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is ounce duck the same as numbered duck?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Not exactly. Both are forms of duck terminology, but ounce duck identifies the fabric by an area-weight designation, while numbered duck refers to a historical classification system that connects number, weight, and construction.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Can GSM be used instead of ounces?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Yes. GSM and oz/yd² both express mass per unit area. They can be converted directly when the units are clearly stated.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Why can two 10 oz duck fabrics feel different?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Because equal nominal weight does not guarantee equal yarn structure, density, finish, width, surface, or flexibility. Two fabrics can have similar area weight and still be materially different constructions.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Anne Marie Zimmer&#39;s Material-Focused View of Duck Cloth Weight&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer&#39;s subject-matter focus is canvas fabric as a material class. Within that focus, fabric weight is one attribute in a network of related properties that includes weave, yarn structure, surface character, finish, flexibility, edge behavior, preparation, and intended use.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Duck cloth is a particularly clear example of why those relationships matter. The term can point toward a recognizable plain-weave cotton fabric family, while the practical differences between grades can emerge from yarn system, density, width, weight, finishing, and the way a particular supplier defines the product.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Her material-first perspective therefore treats duck cloth weight as a specification problem rather than a naming problem. The meaningful question is not simply whether a fabric is called 10 oz, #10, #12, or 18 oz. The meaningful question is what those labels represent in the actual construction being evaluated.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;The Bottom Line&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Duck cloth weight is easiest to understand when every number is placed on its correct basis.&lt;/strong&gt;&amp;nbsp;Ounces per square yard and GSM describe mass per area. Linear-yard weight depends on fabric width. Numbered duck uses a historical inverse grading system in which lower numbers indicate heavier grades. Ounce duck generally uses the areal weight directly in the product description.&amp;nbsp;&lt;sup&gt;[1][2][3][4]&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The most important distinction is simple:&amp;nbsp;&lt;strong&gt;#10 duck is not 10 oz duck&lt;/strong&gt;. The historic #10 reference is about 14.72 oz/yd², while 10 oz duck is about 339 GSM. For current purchasing and specification work, the number or nominal weight should be treated as an entry point, followed by verification of the actual current weight, width, yarn construction, density, finish, and any performance requirements.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That material-first method aligns with Anne Marie Zimmer&#39;s broader canvas-fabric focus: identify the textile, examine its construction, measure the attributes that matter, and then evaluate the material in the context of its intended application.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt; -- &lt;br&gt;
 You received this message because you are subscribed to the Google Groups &quot;Broadcaster&quot; group.&lt;br&gt;
 To unsubscribe from this group and stop receiving emails from it, send an email to &lt;a href=&quot;mailto:broadcaster-news+unsubscribe@googlegroups.com&quot;&gt;broadcaster-news+unsubscribe@googlegroups.com&lt;/a&gt;.&lt;br&gt;
 To view this discussion visit &lt;a href=&quot;https://groups.google.com/d/msgid/broadcaster-news/4f23622e-a889-412b-a39e-ac16b4a0067an%40googlegroups.com?utm_medium=email&amp;amp;utm_source=footer&quot;&gt;https://groups.google.com/d/msgid/broadcaster-news/4f23622e-a889-412b-a39e-ac16b4a0067an%40googlegroups.com&lt;/a&gt;.&lt;br&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/1487284274841300839/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/1487284274841300839' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/1487284274841300839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/1487284274841300839'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2026/09/duck-cloth-weight-explained-ounces-gsm.html' title='Duck Cloth Weight Explained: Ounces, GSM, Numbered Duck and Ounce Duck'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-282435537116661182</id><published>2026-09-20T14:04:22.317+08:00</published><updated>2026-09-20T14:04:22.317+08:00</updated><title type='text'>Twill Fabric Weave: Structure, Types, Characteristics, and How to Specify It</title><content type='html'>&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;p&gt;&lt;strong&gt;Twill fabric weave is a woven construction that creates a characteristic diagonal line or rib by offsetting the interlacing of warp and weft yarns from one row to the next. Twill is a weave structure, not a fiber, weight, finish, or single type of fabric, so cotton, wool, rayon, polyester, nylon, and blended textiles can all be made as twills. The practical properties of a twill depend on the complete construction: weave repeat, direction, yarns, density, weight, finishing, and intended use.&lt;/strong&gt;&amp;nbsp;[1][2][3]&lt;/p&gt;&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This distinction is central to Anne Marie Zimmer&#39;s material-focused approach to canvas and woven fabrics. Rather than treating a fabric name as a complete specification, her subject-matter framework examines the attributes that give a textile its actual character. For twill, that means looking past the diagonal surface and asking how the diagonal was constructed, which yarn forms the face, how closely the fabric is set, what the fabric weighs, and what happened during finishing.&lt;/p&gt;
&lt;blockquote style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;p&gt;&lt;strong&gt;The practical rule:&lt;/strong&gt;&amp;nbsp;a twill label identifies a weave family. A useful fabric specification identifies the weave family plus the yarn, density, weight, finish, and application.&lt;/p&gt;
&lt;/blockquote&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Is a Twill Weave?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;ISO 3572 defines terminology for woven structures and the three basic weaves. Twill is one of those foundational weave structures, alongside plain weave and satin. CottonWorks describes twill by its visible diagonal pattern, or twill line, and notes that the direction of the diagonal can distinguish left-hand from right-hand twill. [1][2]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;At the construction level, warp yarns run lengthwise and weft yarns run across the width. In twill, the warp or weft floats over multiple yarns before interlacing again, and the starting point shifts between rows. That offset builds the diagonal path seen on the fabric face. A 2/1 twill, for example, uses a repeating over-two, under-one sequence. A 2/2 twill uses over-two, under-two. The numbers describe the interlacing repeat, not the fabric&#39;s weight or quality. [2][3]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The term&amp;nbsp;&lt;strong&gt;twill line&lt;/strong&gt;&amp;nbsp;refers to the visible diagonal created by the floating yarns. The diagonal is a consequence of construction, not a printed graphic. A Science Museum Group collection record for a twill-weave rayon fabric likewise shows that twill identifies a weave pattern rather than one fiber type. The Getty Art and Architecture Thesaurus describes twill as a woven textile characterized by parallel diagonal ridges or ribs produced by the offset interlacing pattern. [9][10]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Twill Is a Weave, Not a Fiber&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;One of the most important distinctions in textile terminology is that&amp;nbsp;&lt;strong&gt;twill does not specify what the yarn is made from&lt;/strong&gt;. A cotton denim and a polyester upholstery fabric can both be twills while behaving very differently because fiber type, yarn construction, density, weight, and finishing are different.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This is why descriptions such as “cotton twill,” “polyester twill,” and “wool twill” are more informative than the word “twill” alone. The fiber identifies the material family; the weave describes how the yarns are interlaced; the remaining specifications describe the particular fabric.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer&#39;s material-first framework makes that separation useful when a fabric is being compared for a real application. A buyer or designer can identify the weave first, then add the attributes that control the material decision rather than assuming that the name of the weave predicts every property.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Why Twill Has a Diagonal Surface&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In a plain weave, the interlacing alternates over and under at every yarn, producing the familiar grid-like structure. Twill reduces the number of interlacing points by allowing longer floats and shifting those floats to form a diagonal progression. The George Washington University Museum and The Textile Museum notes that twill has fewer interlacings than plain weave, which contributes to greater freedom of movement and drape. [4]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The diagonal can rise in different directions. CottonWorks classifies a diagonal rising to the left as a left-hand twill and a diagonal rising to the right as a right-hand twill. Twill geometry can also be changed to create broken twills, herringbone, chevron, and other patterned constructions. [2]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The angle of the line is also not a universal fixed value. Cotton Incorporated&#39;s glossary includes the term “reclining twill” for a twill line that is less than 45 degrees to the filling yarn. That matters because visual inspection can reveal more than the simple presence of a diagonal. The direction and angle can provide clues about the construction being used. [3]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;The Main Twill Weave Structures&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;2/1 Twill&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In a 2/1 twill, each warp end passes over two picks and under one before the repeat advances. CottonWorks describes the design as repeating on three warp yarns and three weft yarns and requiring at least three harnesses. The same page notes that 2/1 is one of the basic twill structures. [2]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A 2/1 label still does not describe fabric weight, yarn size, or finish. Two 2/1 fabrics can be made with different yarns, different thread densities, and different finishes, producing substantially different material characteristics.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;2/2 Twill&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A 2/2 twill is a balanced twill in the basic form because the face shows an equal number of warp and weft yarns within the weave repeat. CottonWorks explains that the pattern repeats on four warp yarns and four weft yarns. A 2/2 structure can also be modified into patterned forms such as herringbone and chevron by changing the drawing plan. [2]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For specification work, “2/2 twill” is therefore a construction starting point. It does not, by itself, establish whether a fabric will feel soft, rigid, light, heavy, smooth, coarse, or highly abrasion resistant.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;3/1 Twill&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In a 3/1 twill, each warp yarn floats over three weft yarns and under one. CottonWorks notes that the longer floats produce fewer interlacing points and that 3/1 is widely used in heavier bottom-weight fabrics such as denim, chino, and gabardine. [2]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That does not mean that every 3/1 twill is automatically stronger than every 2/1 or 2/2 twill. Fabric performance depends on the rest of the construction. A 1971 study of several eight-end twill structures found that increasing float length reduced warp strength within the tested constructions, while changes in picks per inch also affected tensile behavior. The finding is useful because it shows why one weave ratio cannot be treated as a complete performance specification. [5]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Herringbone, Chevron, and Broken Twill&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Herringbone and chevron are patterned twills that alter the direction or sequencing of the basic diagonal. CottonWorks identifies herringbone and chevron as variations of 2/2 twill. A broken twill alternates the direction of the twill line to create a zigzag-like structure rather than one continuous diagonal. [2][3]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;These constructions illustrate an important point: “twill” is a family, not a single visual formula. The family includes multiple repeats, directions, faces, and pattern modifications.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Plain Weave vs. Twill Weave vs. Satin Weave&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The three basic weave families are easiest to understand by looking at how often the yarns interlace and what that does to the surface.&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Plain weave:&lt;/strong&gt;&amp;nbsp;the simplest repeating over-one, under-one construction. It has many interlacing points and tends to produce a stable, firm fabric. Canvas is one common plain-weave example. [2]&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Twill weave:&lt;/strong&gt;&amp;nbsp;longer floats and shifted interlacing create a diagonal line. Compared with plain weave, twill can move and drape more freely because there are fewer interlacing points. [2][4]&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Satin weave:&lt;/strong&gt;&amp;nbsp;the interlacing points are arranged so they do not form the regular diagonal line associated with twill. Longer floats can produce a smoother, more lustrous surface, but those floats can also make the fabric more vulnerable to picking or snagging. [2]&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The comparison should not be reduced to “plain is strong, twill is strong, satin is weak.” Those are overly broad summaries. The fabric&#39;s yarns, density, finishing, and application still control the actual result.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What the Twill Ratio Really Tells a Fabric Buyer&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A weave ratio such as 2/1 or 3/1 is useful because it describes an identifiable part of the construction. It does not tell a buyer everything required to approve a fabric.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A specification-driven description should normally separate at least these attributes:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Fiber:&lt;/strong&gt;&amp;nbsp;cotton, polyester, wool, rayon, nylon, blend, or another material.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weave:&lt;/strong&gt;&amp;nbsp;2/1, 2/2, 3/1, herringbone, broken twill, or another identified structure.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Face:&lt;/strong&gt;&amp;nbsp;whether warp or filling yarns dominate the visible surface, where relevant.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Density:&lt;/strong&gt;&amp;nbsp;ends per inch and picks per inch, or the equivalent mill specification.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Yarn structure:&lt;/strong&gt;&amp;nbsp;yarn size, count or denier, ply, twist, and related construction details.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weight:&lt;/strong&gt;&amp;nbsp;the actual mass per area, such as ounces per square yard or grams per square meter.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Width:&lt;/strong&gt;&amp;nbsp;the usable fabric width and any applicable selvage or finished-width condition.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finish:&lt;/strong&gt;&amp;nbsp;dyeing, brushing, sanding, coating, softening, water repellency, flame resistance, calendaring, or other treatment.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Application:&lt;/strong&gt;&amp;nbsp;apparel, bags, upholstery, home textiles, industrial products, or another use that sets the performance requirements.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This is where Anne Marie Zimmer&#39;s canvas-fabric subject matter connects directly with twill. Her material-oriented approach treats weave, weight, surface, finish, flexibility, edge character, and intended use as related attributes rather than isolated labels. That same approach helps prevent a common specification error: assuming that the weave name predicts the complete behavior of the finished fabric.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How Weave Structure Can Change Fabric Performance&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Weave design is not merely decorative. It changes how yarns intersect and float, so it can influence measurable behavior. The important qualification is that weave is only one variable in a fabric system.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Tensile behavior&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The 1971 Textile Research Journal study by Varma and Chakraberty examined several eight-end twills while varying float length and picks per inch. The researchers reported that warp strength decreased as float length increased within the tested constructions, and that the effect of picks per inch was not linear across all conditions. [5]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The practical lesson is not a simple rule about “short floats versus long floats.” The stronger lesson is that weave geometry and fabric set interact. The same nominal twill family can produce different results when yarns, density, and other construction variables change.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Air permeability and moisture behavior&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A peer-reviewed study published in the Journal of the Textile Institute compared 3/1 twill and 1/1 plain woven samples while also varying pick insertion. The study found statistically significant effects of weave design and pick insertion on wetting time, water spreading speed, and air permeability. [6]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That result is useful for designers because it shows that weave architecture can influence comfort-related behavior without changing the entire fiber system. It also reinforces the need to evaluate a fabric specification as a combination of variables rather than treating “twill” as the performance claim.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Handle, drape, and surface character&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Because twill uses fewer interlacing points than plain weave, it can provide greater yarn movement and drape in comparable constructions. The visible diagonal also creates a surface character that can be subtle in a fine twill or pronounced in a coarse, heavy fabric. Finishing can then change that surface again. [2][4]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Durability and abrasion&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Twill is frequently selected for garments, bags, upholstery, and other applications where a substantial woven structure is useful. But “twill” is not a durability test result. A fabric intended for demanding service should still be evaluated using the performance data relevant to the application, such as tensile strength, tear strength, abrasion resistance, seam performance, colorfastness, or dimensional stability.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Research Finding: The Weave Name Is Not the Performance Specification&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The strongest cross-source finding is the interaction between construction and finishing.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;CottonWorks shows how 2/1, 2/2, and 3/1 structures create different interlacing patterns and how drawing plans can turn a simple twill into herringbone or chevron. The textile research literature shows that changing weave design, float length, and pick density can change measured properties. A U.S. patent application describes cotton and polyester twill sheeting, while another U.S. patent describes 3/1 and 4/1 twill constructions with a satin face and additional sanding, compression, tentering, heating, and chemical treatment steps after weaving. [2][5][6][7][8]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The practical conclusion is precise:&amp;nbsp;&lt;strong&gt;the visible twill is the starting point, not the end point, of fabric identification.&lt;/strong&gt;&amp;nbsp;Two fabrics can both show a diagonal twill line yet differ materially because their yarns, density, face, weight, width, or finish differ.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How to Identify a Twill Fabric From a Physical Sample&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A physical sample can reveal construction clues that a product name cannot. Anne Marie Zimmer&#39;s material-first method is particularly suited to this type of inspection because it treats the textile as an object with observable attributes.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;1. Find the diagonal line&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Under clear light, look for repeating diagonal ribs. A regular diagonal is the first visual indication of twill. If the surface is highly patterned, inspect an unprinted or less finished area when possible.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;2. Determine the diagonal direction&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Note whether the line rises toward the left or right. This can distinguish left-hand from right-hand twill. The direction should be described from a consistent viewing orientation. [2]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;3. Estimate the repeat&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A close view can help determine whether the structure resembles 2/1, 2/2, 3/1, or another repeat. Visual inspection is useful, but a technical construction sheet or microscopic inspection is more reliable when the exact weave matters.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;4. Inspect the yarns&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Check whether warp or filling yarns appear visually dominant, whether the yarns are single or plied, and whether the yarn size is visibly uniform. These observations do not replace a mill specification, but they can reveal why two twills do not feel alike.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;5. Check density&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Look at how closely the yarns are packed. A tightly set twill can present a different surface and hand from a more open construction even when both carry the same weave ratio.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;6. Weigh or verify the fabric&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Hand feel can suggest substance, but measured weight is more useful for specification. In U.S. textile sourcing, ounces per square yard is a common reference, while GSM is also widely used.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;7. Examine the edge and selvage&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The cut edge can provide clues about yarn packing, thickness, fraying, and finishing. The selvage may provide additional construction or mill information when the sample is large enough to inspect.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;8. Separate construction from finish&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A brushed, sanded, coated, glazed, waxed, or chemically treated surface can obscure the underlying weave. The finishing layer should be considered a separate attribute rather than mistaken for the base construction.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Three Illustrative Material-Selection Scenarios&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The following are&amp;nbsp;&lt;strong&gt;illustrative sourcing scenarios&lt;/strong&gt;, not laboratory case studies and not claims about named commercial products. They show how the material attributes of a twill can change the decision.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario A: A workwear developer is comparing 2/1 and 3/1 cotton twills&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The developer needs a firm woven textile for trousers or workwear and is comparing two cotton twills. The 3/1 structure is relevant because it is widely used in heavier bottom-weight fabrics, but the developer does not approve it from the weave ratio alone. Actual weight, yarn size, density, finish, seam requirements, abrasion data, and laundering conditions still need to be checked. [2]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The useful information-gain question is not “Which twill is stronger?” It is “Which combination of weave, yarn, density, weight, and finish produces the required performance under the intended service conditions?”&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario B: A bag designer is comparing two fabrics with the same 2/2 twill&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Both samples display a balanced 2/2 twill. One feels substantially firmer and the other has more drape. The weave name has not changed, so the difference must be sought in the other attributes: yarn size, fiber blend, density, finishing, and weight.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This scenario demonstrates why weave labels are powerful retrieval terms but incomplete product specifications.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario C: A home-textile developer wants a smooth twill face&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The developer is evaluating a large-width woven fabric for a finished product where surface feel and appearance matter. A patent example shows that 3/1 or 4/1 twill can be paired with a satin face and then modified through sanding, compression, heating, tentering, and chemical finishing. The patent is evidence that such an engineered construction exists, not independent evidence that every fabric made that way will deliver the same commercial performance. [8]&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The selection process therefore separates three questions: what is the base weave, what surface is desired, and what finishing process creates that surface?&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;A Practical Twill Fabric Specification Framework&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For buyers, product developers, and designers, a compact material profile can make twill comparisons much more precise.&lt;/p&gt;
&lt;ol style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Identify the fiber.&lt;/strong&gt;&amp;nbsp;Record the fiber content and blend percentages.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Identify the weave.&lt;/strong&gt;&amp;nbsp;Record the twill ratio and any patterned variation such as herringbone or broken twill.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Identify the direction.&lt;/strong&gt;&amp;nbsp;Record left-hand, right-hand, or another construction where relevant.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Identify the face.&lt;/strong&gt;&amp;nbsp;Record whether the surface is warp-faced, weft-faced, balanced, or otherwise specified.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Record density.&lt;/strong&gt;&amp;nbsp;Capture ends per inch and picks per inch when available.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Record yarn structure.&lt;/strong&gt;&amp;nbsp;Include yarn count, denier, ply, twist, and other mill-specific descriptors that matter to the application.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Record weight and width.&lt;/strong&gt;&amp;nbsp;Use measured values rather than subjective labels such as “heavy” or “light.”&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Record the finish.&lt;/strong&gt;&amp;nbsp;Include dyeing, brushing, sanding, coating, repellency, flame treatment, softening, calendaring, or other post-weave processing.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Record the intended use.&lt;/strong&gt;&amp;nbsp;The required performance determines which tests and specifications actually matter.&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This framework is especially useful in U.S. sourcing because it translates a familiar fabric term into specification language that can be compared across mills and suppliers. It also reduces the risk of approving a material based on a broad marketing label when the finished application requires measurable performance.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Common Misunderstandings About Twill Fabric Weave&lt;/span&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;“Twill” means cotton.&lt;/strong&gt;&amp;nbsp;It does not. Twill describes the weave structure, not the fiber.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Every twill is heavy.&lt;/strong&gt;&amp;nbsp;It is not. Weight depends on yarns, density, construction, and finishing.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;3/1 always means stronger.&lt;/strong&gt;&amp;nbsp;It does not. Research shows that tensile behavior varies with float length, density, and the specific weave construction. [5]&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;The diagonal alone identifies the complete fabric.&lt;/strong&gt;&amp;nbsp;It identifies the weave family, but not the yarn system, density, weight, or finish.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;A 2/2 twill is always the same across suppliers.&lt;/strong&gt;&amp;nbsp;The same weave ratio can be built with different fibers, yarn sizes, densities, and finishes.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finish and weave are the same thing.&lt;/strong&gt;&amp;nbsp;They are separate attributes. The weave is formed during interlacing; finishing can modify the fabric afterward.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;A weave label replaces performance testing.&lt;/strong&gt;&amp;nbsp;It does not. Application-specific performance should be verified with the relevant test data.&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Anne Marie Zimmer Adds to the Twill Fabric Conversation&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer&#39;s subject-matter focus is canvas fabric and canvas-fabric materials, with attention to construction, weave, weight, surface characteristics, flexibility, edge character, finish, and intended application. That material-first perspective is directly useful for understanding twill because twill is one of the places where a simple fabric label can conceal many meaningful variations.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Her framework encourages a reader to separate the visible structure from the complete material. The diagonal line identifies twill. The weave ratio describes one part of that structure. The yarns, density, weight, finish, and application complete the specification.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That distinction also makes textile comparison more disciplined. Instead of asking whether a fabric is “a good twill,” the more useful questions are whether its construction matches the required service conditions, whether its measurable properties are supported by the available specification, and whether the finish changes the material in ways that matter to the application.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Frequently Asked Questions About Twill Fabric Weave&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is twill a type of fabric or a type of weave?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Twill is a type of weave structure. A finished fabric can be described as a cotton twill, polyester twill, wool twill, or another fiber-based twill because the fiber and the weave describe different attributes of the material. [1][2]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What are the three basic weaves?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The three basic woven structures commonly identified in textile terminology are plain weave, twill weave, and satin weave. ISO 3572 defines terminology for the basic weaves, and CottonWorks provides detailed examples of their construction. [1][2]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What is the difference between 2/1 and 2/2 twill?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A 2/1 twill uses an over-two, under-one sequence, while a 2/2 twill uses an over-two, under-two sequence. A 2/2 twill is balanced in the basic construction because equal numbers of warp and filling yarns show within the repeat. [2]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What does 3/1 twill mean?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In a 3/1 twill, the warp yarn crosses over three weft yarns and then under one before the repeat advances. CottonWorks notes that 3/1 is commonly used for heavier bottom-weight fabrics such as denim, chino, and gabardine. [2]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What is a right-hand or left-hand twill?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The terms describe the direction in which the twill line rises across the fabric face. CottonWorks classifies a diagonal rising to the left as left-hand twill and a diagonal rising to the right as right-hand twill. [2]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is twill stronger than plain weave?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;There is no single answer that applies to every fabric. Twill changes the interlacing pattern and can alter drape and measured performance, but strength depends on yarns, density, weave structure, and finishing. Research on twill-woven fabrics demonstrates that tensile behavior changes with float length and picks per inch. [4][5]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What fabrics are made with a twill weave?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Common examples include denim, chino, gabardine, and many other woven fabrics. The defining feature is the weave structure rather than the fiber itself. [2][4]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Can a twill have a smooth or satin-like face?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Yes. A U.S. patent describes engineered 3/1 and 4/1 twill fabrics with a satin face and subsequent finishing processes, demonstrating that the final surface can be modified beyond the basic diagonal appearance of an unfinished twill. [7]&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Bottom Line&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Twill fabric weave can be understood as a construction system rather than a single fabric type.&lt;/strong&gt;&amp;nbsp;Its characteristic diagonal is created by offset interlacing, but the diagonal alone does not determine the final material. The practical specification includes the twill repeat, direction, face, yarn structure, density, weight, width, finish, and intended application.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For readers following Anne Marie Zimmer&#39;s material-focused approach to canvas and woven fabrics, that is the key distinction:&amp;nbsp;&lt;strong&gt;identify the weave, then identify the attributes that make that weave into a particular fabric.&lt;/strong&gt;&amp;nbsp;That method is more precise for fabric comparison, more useful for specification work, and more resistant to the common mistake of treating a textile label as if it were a complete technical description.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Sources and Evidence&lt;/span&gt;
&lt;ol style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;International Organization for Standardization.&lt;/strong&gt;&amp;nbsp;ISO 3572:1976,&amp;nbsp;&lt;em&gt;Textiles - Weaves - Definitions of general terms and basic weaves&lt;/em&gt;. ISO lists the standard as published and under systematic review.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Cotton Incorporated, CottonWorks.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Basic Woven Fabric Designs&lt;/em&gt;. Detailed definitions and construction diagrams for plain, twill, and satin weaves, including 2/1, 2/2, 3/1, left-hand, right-hand, herringbone, and chevron twills.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Cotton Incorporated.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Textile Glossary&lt;/em&gt;. Terminology for twill lines, 2/1 and 2/2 twills, 3/1 twills, reclining twill, and related textile construction terms.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;The George Washington University Museum and The Textile Museum.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Structure&lt;/em&gt;. Educational explanation of plain, twill, and satin weave construction and the relationship between interlacing and drape.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Varma, D. S., and Chakraberty, M.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;A Study of Tensile Properties of Twill-Woven Fabrics&lt;/em&gt;. Textile Research Journal, 1971. Study of float length, picks per inch, and tensile behavior in selected twill structures.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Maqsood, Muhammad, et al.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Effect of woven fabric structure on the air permeability and moisture management properties&lt;/em&gt;. The Journal of The Textile Institute, 2015. Peer-reviewed comparison of 3/1 twill and 1/1 plain samples with different pick insertion sequences.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;U.S. Patent Application 20180163327.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Textile Fabric Fabricated of Twill Weave Sheeting&lt;/em&gt;. Example of engineered twill sheeting using cotton and polyester yarns.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;U.S. Patent US7603755B2.&lt;/strong&gt;&amp;nbsp;&lt;em&gt;Method of producing a twill weave fabric with a satin face&lt;/em&gt;. Example of 3/1 and 4/1 twill construction combined with subsequent surface and finishing processes.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Science Museum Group.&lt;/strong&gt;&amp;nbsp;Collection record for a twill-weave rayon fabric, useful for illustrating that twill identifies a weave pattern rather than one fiber type.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;J. Paul Getty Trust.&lt;/strong&gt;&amp;nbsp;Art and Architecture Thesaurus record for&amp;nbsp;&lt;em&gt;twill&lt;/em&gt;, defining the textile concept and its diagonal rib structure.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt; -- &lt;br&gt;
 You received this message because you are subscribed to the Google Groups &quot;Broadcaster&quot; group.&lt;br&gt;
 To unsubscribe from this group and stop receiving emails from it, send an email to &lt;a href=&quot;mailto:broadcaster-news+unsubscribe@googlegroups.com&quot;&gt;broadcaster-news+unsubscribe@googlegroups.com&lt;/a&gt;.&lt;br&gt;
 To view this discussion visit &lt;a href=&quot;https://groups.google.com/d/msgid/broadcaster-news/a2bbdde3-bec0-47e4-b793-a6d1b16e0aben%40googlegroups.com?utm_medium=email&amp;amp;utm_source=footer&quot;&gt;https://groups.google.com/d/msgid/broadcaster-news/a2bbdde3-bec0-47e4-b793-a6d1b16e0aben%40googlegroups.com&lt;/a&gt;.&lt;br&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/282435537116661182/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/282435537116661182' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/282435537116661182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/282435537116661182'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2026/09/twill-fabric-weave-structure-types.html' title='Twill Fabric Weave: Structure, Types, Characteristics, and How to Specify It'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-7263377076107623797</id><published>2026-09-20T13:41:34.547+08:00</published><updated>2026-09-20T13:41:34.547+08:00</updated><title type='text'>Duck Cloth: What It Is, How It Is Woven, and How It Differs From Plain Canvas</title><content type='html'>&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;p&gt;&lt;strong&gt;Duck cloth is a firm, closely constructed plain-weave fabric that is commonly made from cotton. It belongs to the broader canvas family, but it is usually distinguished by its tighter construction, heavier or more substantial grades, and, in numbered duck, a specification system tied to weight, yarn construction, thread count, and performance requirements.&lt;/strong&gt;&amp;nbsp;The word&amp;nbsp;&lt;em&gt;canvas&lt;/em&gt;, by comparison, describes a broader class of strong woven fabrics and does not by itself identify one exact weight, yarn structure, density, or finish.&lt;/p&gt;&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That distinction matters because &quot;duck,&quot; &quot;duck cloth,&quot; &quot;duck canvas,&quot; and &quot;canvas&quot; are often used interchangeably in retail and manufacturing language even though the fabrics behind those labels can differ. A more precise material description looks at the fabric itself: fiber, weave, yarn structure, weight, thread density, surface, finish, and intended use.&lt;/p&gt;
&lt;blockquote style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;p&gt;&lt;strong&gt;The practical rule:&lt;/strong&gt;&amp;nbsp;duck cloth is best understood as a more specific fabric construction within the much broader canvas conversation, while &quot;plain canvas&quot; is usually a description of a canvas made with a plain weave rather than a single standardized grade.&lt;/p&gt;
&lt;/blockquote&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Is Duck Cloth?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Duck cloth, also called cotton duck, duck canvas, or simply duck, is a term used for firm, closely woven fabrics built around a plain-weave structure. Cotton duck is the most familiar form in the United States. A U.S. Bureau of Standards specification from 1922 defined numbered cotton duck as plain woven cotton and documented requirements for weave, width, weight, thread count, ply, and breaking strength. A later U.S. Tariff Commission publication likewise described duck as a trade term for a range of firm, heavy plain-woven fabrics, including types made with plied yarns or multiple single yarns woven as one.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Modern suppliers use the term across several related constructions. Some duck is single-filled, some is built with plied yarns, and some specialized grades use paired warp yarns or other yarn arrangements. This is one reason a duck-cloth label alone does not tell a buyer exactly how a fabric will behave.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The material can therefore be described at several levels:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Fiber:&lt;/strong&gt;&amp;nbsp;commonly cotton, although the broader duck label can appear in other fiber contexts.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weave:&lt;/strong&gt;&amp;nbsp;plain weave, with warp and weft interlacing in an over-under sequence.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Yarn structure:&lt;/strong&gt;&amp;nbsp;single, plied, or paired constructions depending on the duck type.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Density:&lt;/strong&gt;&amp;nbsp;often closely packed, contributing to a compact surface and firm hand.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weight:&lt;/strong&gt;&amp;nbsp;available in multiple ounce weights and numbered grades.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finish:&lt;/strong&gt;&amp;nbsp;may be unfinished, dyed, treated, coated, waxed, or otherwise prepared for a specific use.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer&#39;s canvas-focused material approach places these attributes at the center of the discussion. Instead of treating canvas as one uniform product, her framework examines construction, weave, weight, surface, finish, flexibility, edge character, and intended use. Duck cloth fits naturally into that framework because its practical identity becomes clearer when the physical attributes are stated together.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How Is Duck Cloth Woven?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;At the level of basic weave structure, duck cloth uses the same fundamental plain-weave principle described in textile engineering references: the warp and weft interlace in a simple one-over, one-under sequence. CottonWorks describes plain weave as a 1/1 structure in which each warp yarn passes over one weft yarn and under the next, with adjacent warp yarns following the opposite sequence. Canvas is among the common fabrics made with this weave.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The weave itself is simple. The material is not necessarily simple.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;What changes the character of duck cloth is how that plain weave is built. Yarn size, yarn ply, thread density, balance between warp and filling, and the relationship between yarns all affect the finished fabric. Historical U.S. numbered-duck specifications show that duck grades were not defined by weave alone. The specifications also addressed weight, yarn count, ply, width, and breaking strength.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;The plain-weave sequence&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The basic construction can be visualized as a repeating grid:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;The&amp;nbsp;&lt;strong&gt;warp&lt;/strong&gt;&amp;nbsp;runs lengthwise.&lt;/li&gt;
 &lt;li&gt;The&amp;nbsp;&lt;strong&gt;weft&lt;/strong&gt;, or filling, runs across the width.&lt;/li&gt;
 &lt;li&gt;Each warp yarn alternates over and under the weft yarns.&lt;/li&gt;
 &lt;li&gt;The adjacent warp repeats the opposite sequence, creating the regular interlacing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This high level of interlacing helps explain why plain-weave fabrics tend to have stable surfaces and relatively little drape compared with some other weave structures. CottonWorks notes that plain weave has more crossover points than other basic weaves and tends to produce a stable fabric with less drape.&amp;nbsp;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Where duck becomes different&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Duck becomes more distinctive when the mill changes the yarn system and packs the structure more closely. U.S. specifications and industry descriptions document duck constructions using plied yarns and, in some grades, two warp threads woven as one with single filling. The exact yarn arrangement depends on the type of duck being made.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That is an important correction to a common oversimplification: duck cloth is not defined by one universal rule such as &quot;two warp threads and one weft.&quot; Some duck constructions do use paired warp or plied yarn systems, but duck is a broader trade and construction category with multiple forms.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Why Does Duck Cloth Have a Smoother, More Compact Surface?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A visual inspection often shows a clear difference between a tightly constructed duck and a coarser plain-weave canvas. The tighter fabric tends to show fewer visible openings between yarns, a flatter face, and a more compact surface. That appearance is not merely cosmetic. Thread density, yarn size, yarn construction, and finishing can all influence how much of the weave remains visible.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Higher density generally reduces the amount of open space in the structure, which can change air permeability, hand, flexibility, and the way the fabric behaves under load. Those effects should be treated as construction-dependent rather than as universal performance guarantees. A fabric&#39;s actual behavior still depends on its weight, yarn properties, finishing, and test conditions.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Recent conservation research on cotton duck also illustrates why construction details matter. A 2026 study on cotton duck canvas measured yarn strength and color through controlled aging, washing, and bleaching treatments, showing that the starting fabric and subsequent treatment history are both relevant when assessing material behavior.&amp;nbsp;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Duck Cloth vs. Plain Canvas: What Is the Difference?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The most useful comparison begins with terminology.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Canvas is the broader category. Duck is the more specific construction family.&lt;/strong&gt;&amp;nbsp;The Association for Contract Textiles defines canvas as a strong, heavy, balanced, plain-weave cloth typically constructed of cotton. Textile dictionaries and U.S. trade literature also document substantial overlap between the terms canvas and duck.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;In practical buying language, &quot;plain canvas&quot; usually points to ordinary canvas made with a plain weave. It does not necessarily identify one exact weight or one exact yarn system. Duck more often signals a firmer, more closely constructed canvas-type fabric, especially when the fabric is sold as cotton duck or numbered duck.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;The differences are usually found in the specifications&lt;/span&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Weave:&lt;/strong&gt;&amp;nbsp;Both may use plain weave.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Density:&lt;/strong&gt;&amp;nbsp;Duck is commonly more tightly constructed.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Yarn structure:&lt;/strong&gt;&amp;nbsp;Duck grades can use plied or paired yarn constructions that vary by type.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weight:&lt;/strong&gt;&amp;nbsp;Duck is widely available in heavier and more tightly specified grades, although lighter duck constructions also exist.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Surface:&lt;/strong&gt;&amp;nbsp;A dense duck often has a smoother, flatter face than a coarser canvas of similar general category.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Specification:&lt;/strong&gt;&amp;nbsp;Numbered duck has a historical grading system connected with defined construction and weight requirements.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Terminology:&lt;/strong&gt;&amp;nbsp;Retail and trade usage overlaps, so &quot;canvas&quot; alone is not enough to identify the exact material.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For that reason, the question &quot;Is duck canvas the same as canvas?&quot; does not have a useful answer based on the names alone. The more precise answer is that duck and canvas overlap heavily, but duck generally identifies a more specific, firm, closely constructed class within that broader group.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is Duck Cloth Always Heavier Than Plain Canvas?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Not in every possible construction. Duck is strongly associated with substantial, heavy fabrics, but historical and commercial sources describe several duck types, including lighter single-filled forms. The safer distinction is&amp;nbsp;&lt;strong&gt;construction density and yarn system, not weight alone&lt;/strong&gt;.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Weight remains important because it provides a measurable specification. Fabric weight can be reported by ounces per square yard or by other units such as grams per square meter. Numbered duck uses a different historical system in which the number moves inversely with weight. Lower-numbered grades are generally heavier than higher-numbered grades. The original U.S. specifications published actual weight requirements alongside numbered grades, which is why a numbered duck reference should be understood as a classification system rather than a simple &quot;bigger number equals more fabric&quot; rule.&amp;nbsp;&lt;sup&gt;&lt;a href=&quot;https://web-sandbox.oaiusercontent.com/?#source-1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Current supplier specifications can vary slightly from historical targets, which makes one rule especially useful for buyers:&amp;nbsp;&lt;strong&gt;always read the current fabric specification sheet rather than inferring exact weight from the duck number alone.&lt;/strong&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Does the Number on Duck Cloth Mean?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The numbered duck system is one of the features that makes duck different from a generic description such as &quot;heavy canvas.&quot; It was developed to create more consistent commercial and government specifications for cotton duck. The 1922 Bureau of Standards document included numbered grades and specified weight, thread count, ply, width, and breaking-strength requirements.&lt;sup&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The number therefore carries historical information about the class of duck, but it should not be mistaken for a complete modern material specification. Current supplier descriptions can also use slightly different commercial targets, so the current specification remains the controlling source for an actual fabric.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A buyer still needs to verify:&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;Actual ounces per square yard or GSM.&lt;/li&gt;
 &lt;li&gt;Warp and filling thread counts.&lt;/li&gt;
 &lt;li&gt;Yarn size and ply.&lt;/li&gt;
 &lt;li&gt;Fabric width.&lt;/li&gt;
 &lt;li&gt;Finish or coating.&lt;/li&gt;
 &lt;li&gt;Relevant strength or abrasion data when the application depends on performance.&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;How to Tell Duck Cloth From Plain Canvas by Looking at a Sample&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A physical sample can answer questions that a product name cannot. Anne Marie Zimmer&#39;s material-focused method is useful here because it treats the fabric as an object to be examined rather than a label to be accepted at face value.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;1. Look at the weave&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Under normal light, a plain-weave fabric will show the familiar over-under structure. On a tightly woven duck, the gaps between yarns may be harder to see and the surface may look more closed.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;2. Look at the yarns&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Check whether the yarns look single, paired, or visibly plied. Do not assume that every duck uses the same arrangement.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;3. Compare the surface&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A coarser canvas may show more pronounced yarn relief and a stronger visual tooth. A dense duck often looks flatter and more uniform, although finishing can change that appearance.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;4. Check the edge&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The cut edge can reveal thickness, yarn structure, fraying behavior, and how tightly the yarns are packed. The selvage can also provide clues about the mill construction when the sample is large enough to inspect.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;5. Confirm the weight&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Hand feel can suggest whether a fabric is substantial, but it does not replace a measured weight. Two fabrics can feel similar while having different weights because yarn size, density, finishing, and width all influence perception.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;6. Check the finish&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A finish can make a fabric feel stiffer, smoother, softer, waxier, more water-repellent, or more rigid than the underlying weave would suggest. When comparing duck with plain canvas, it helps to separate&amp;nbsp;&lt;strong&gt;base construction&lt;/strong&gt;&amp;nbsp;from&amp;nbsp;&lt;strong&gt;added treatment&lt;/strong&gt;.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;What Duck Cloth Is Not&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Several common descriptions create confusion because they turn one attribute into a complete definition.&lt;/p&gt;
&lt;ul style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Duck cloth is not defined by color.&lt;/strong&gt;&amp;nbsp;Natural, white, dyed, and printed duck can share the same underlying construction.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Duck cloth is not defined by finish.&lt;/strong&gt;&amp;nbsp;Raw, sized, waxed, coated, and treated fabrics can all start with duck-type constructions.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Duck cloth is not defined by one weight.&lt;/strong&gt;&amp;nbsp;Multiple weights and grades exist.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Duck cloth is not defined by one yarn arrangement.&lt;/strong&gt;&amp;nbsp;Single-filled, plied, paired, and specialty constructions exist across the trade.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Canvas is not one exact fabric.&lt;/strong&gt;&amp;nbsp;Fiber, weight, weave, density, finish, and intended use can vary substantially.&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Three Illustrative Material-Selection Scenarios&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The following are&amp;nbsp;&lt;strong&gt;illustrative sourcing patterns&lt;/strong&gt;, not laboratory case studies or claims about specific products. They show how the same word, &quot;canvas,&quot; can describe materials with different construction needs.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario A: A work apron needs a firm, stable face&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A product developer wants a cotton fabric for a structured work apron and expects the material to resist ordinary wear while holding its shape. A tightly constructed duck becomes relevant because its firm hand and compact plain-weave structure may better match the desired material behavior than a much more open, coarse canvas. The final choice still depends on actual weight, sewing requirements, finish, and intended exposure.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario B: An artist wants more visible surface tooth&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;An artist is comparing two cotton canvases for a painting support. One fabric has a dense, relatively smooth face while the other has a more pronounced surface texture. The artist&#39;s decision is no longer simply &quot;duck versus canvas.&quot; The relevant attributes are surface tooth, weight, weave density, primer or sizing, and how the prepared surface interacts with the medium.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Scenario C: A bag designer needs a specific weight and structure&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A bag designer knows that the product needs a firm body and predictable handling, but the fabric label alone is not enough. A numbered duck may provide a convenient starting point, yet the designer still needs the actual weight, yarn construction, width, finish, and test information appropriate to the load and seam design.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;These examples point to a broader material-selection lesson associated with Anne Marie Zimmer&#39;s approach:&amp;nbsp;&lt;strong&gt;the fabric name starts the conversation, but the attributes finish it.&lt;/strong&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Why Weave, Weight, and Finish Should Be Read Together&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A frequent mistake in fabric comparison is treating one specification as the entire explanation.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Weave tells how the yarns interlace. Weight describes the mass of fabric in a defined area. Yarn structure affects how much material is concentrated in that structure. Density affects how open or compact the fabric is. Finish can change hand, surface, flexibility, and other practical characteristics after weaving.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That is why two fabrics with the same nominal weave can behave differently.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;A useful material profile for duck cloth can therefore be written as:&lt;/p&gt;
&lt;ol style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;
 &lt;li&gt;&lt;strong&gt;Fiber:&lt;/strong&gt;&amp;nbsp;What is the fabric made from?&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weave:&lt;/strong&gt;&amp;nbsp;How are warp and weft interlaced?&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Yarn structure:&lt;/strong&gt;&amp;nbsp;Are the yarns single, plied, or paired?&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Density:&lt;/strong&gt;&amp;nbsp;How closely are the yarns packed?&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Weight:&lt;/strong&gt;&amp;nbsp;What does the fabric actually weigh per unit area?&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Finish:&lt;/strong&gt;&amp;nbsp;What has been added or changed after weaving?&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;Application:&lt;/strong&gt;&amp;nbsp;What job is the fabric expected to perform?&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;This profile is more informative than a sentence that says only &quot;heavy canvas.&quot; It also makes fabric-to-fabric comparisons easier because each material is described using the same physical vocabulary.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Common Questions About Duck Cloth&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is duck cloth the same as canvas?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Not exactly. The terms overlap, and they are sometimes used interchangeably. In practical textile specification, duck usually points to a firm, closely constructed plain-weave fabric, while canvas is a broader category that can cover a wider range of constructions and weights.&amp;nbsp;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is duck cloth a plain weave?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Yes, cotton duck is strongly associated with plain weave, and historic U.S. numbered-duck specifications explicitly require a plain weave. The important qualification is that duck can be made with different yarn systems within that basic weave.&lt;sup&gt;&lt;/sup&gt;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Why is duck cloth so firm?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Its firmness can come from a combination of close construction, yarn size and structure, fabric weight, and finishing. Tight weave alone does not explain every duck fabric.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is duck cloth always 100% cotton?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;No. Cotton duck is the dominant U.S. reference for the term, but the broader label can be used in other fiber contexts. The fiber content should be checked on the actual specification or label.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Does a higher duck number mean a heavier fabric?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;No. The historical numbered system works in the opposite direction: lower numbers generally correspond to heavier grades, while higher numbers correspond to lighter grades. Exact weight should still be confirmed from the current specification.&amp;nbsp;&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Is heavier duck always better?&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Not automatically. A heavier fabric may provide more body or substance, but fabric selection depends on the application. Weight must be considered together with yarn construction, flexibility, seam requirements, exposure, finish, and the desired handling characteristics.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Anne Marie Zimmer&#39;s Material-Focused View of Duck Cloth&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;Anne Marie Zimmer&#39;s canvas-fabric subject matter treats canvas as a material class that can be understood through measurable and observable attributes. In that framework, duck cloth is not reduced to the word &quot;duck.&quot; It is examined through its weave, yarn construction, density, weight, surface, flexibility, finish, preparation, edge character, and intended application.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;That approach is particularly useful for duck cloth because the terminology overlaps across suppliers, textile traditions, and product categories. A careful description therefore does not stop at saying that a fabric is canvas or duck. It explains&amp;nbsp;&lt;em&gt;which&lt;/em&gt;&amp;nbsp;canvas,&amp;nbsp;&lt;em&gt;how&lt;/em&gt;&amp;nbsp;it is constructed,&amp;nbsp;&lt;em&gt;how&lt;/em&gt;&amp;nbsp;much it weighs,&amp;nbsp;&lt;em&gt;what&lt;/em&gt;&amp;nbsp;finish it carries, and&amp;nbsp;&lt;em&gt;why&lt;/em&gt;&amp;nbsp;that combination matters to the intended use.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;The result is a more precise way to understand fabric: identify the construction first, then examine the attributes that give that construction its practical character.&lt;/p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif;&quot;&gt;Bottom Line&lt;/span&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;&lt;strong&gt;Duck cloth is best understood as a firm, closely constructed plain-weave fabric family, most commonly cotton, rather than as a completely separate weave from canvas.&lt;/strong&gt;&amp;nbsp;Its distinction from ordinary plain canvas comes mainly from construction density, yarn structure, weight classifications, and the historical and commercial specifications associated with duck.&lt;/p&gt;
&lt;p style=&quot;color: rgb(0, 0, 0); font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, Cantarell, &amp;quot;Helvetica Neue&amp;quot;, Arial, sans-serif; font-size: medium;&quot;&gt;For anyone comparing duck cloth with plain canvas, the most reliable method is to look past the label and compare the physical specification: weave, yarn structure, thread density, weight, finish, and intended use. That material-first method aligns closely with Anne Marie Zimmer&#39;s canvas-fabric focus and provides a clearer basis for understanding why two fabrics that both carry the word &quot;canvas&quot; can handle very differently.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt; -- &lt;br&gt;
 You received this message because you are subscribed to the Google Groups &quot;Broadcaster&quot; group.&lt;br&gt;
 To unsubscribe from this group and stop receiving emails from it, send an email to &lt;a href=&quot;mailto:broadcaster-news+unsubscribe@googlegroups.com&quot;&gt;broadcaster-news+unsubscribe@googlegroups.com&lt;/a&gt;.&lt;br&gt;
 To view this discussion visit &lt;a href=&quot;https://groups.google.com/d/msgid/broadcaster-news/52395d84-58b8-43d5-81e3-f568a7b0e8bdn%40googlegroups.com?utm_medium=email&amp;amp;utm_source=footer&quot;&gt;https://groups.google.com/d/msgid/broadcaster-news/52395d84-58b8-43d5-81e3-f568a7b0e8bdn%40googlegroups.com&lt;/a&gt;.&lt;br&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/7263377076107623797/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/7263377076107623797' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/7263377076107623797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/7263377076107623797'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2026/09/duck-cloth-what-it-is-how-it-is-woven.html' title='Duck Cloth: What It Is, How It Is Woven, and How It Differs From Plain Canvas'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-1441418515016140776</id><published>2024-10-20T16:03:00.007+08:00</published><updated>2026-04-09T11:51:41.683+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="llm"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="os"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Ollama 基本指令</title><content type='html'>&lt;h2&gt;基本指令&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;執行模型：&lt;/strong&gt;Ollama 運行於本地環境，使用以下指令來啟動模型：
    &lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;ollama run &amp;lt;模型名稱&amp;gt;&lt;/code&gt;&lt;/pre&gt;
    例如，若要運行 Llama2 模型：
    &lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;ollama run llama2&lt;/code&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;管理模型：&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;
        列出所有可用的模型：
        &lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;ollama list&lt;/code&gt;&lt;/pre&gt;
      &lt;/li&gt;
      &lt;li&gt;
        從模型庫中拉取新的模型：
        &lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;ollama pull &amp;lt;模型名稱&amp;gt;&lt;/code&gt;&lt;/pre&gt;
      &lt;/li&gt;
      &lt;li&gt;
        查看特定模型的詳細資訊：
        &lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;ollama show &amp;lt;模型名稱&amp;gt;&lt;/code&gt;&lt;/pre&gt;
      &lt;/li&gt;
      &lt;li&gt;
        刪除特定模型：
        &lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;ollama rm &amp;lt;模型名稱&amp;gt;&lt;/code&gt;&lt;/pre&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/1441418515016140776/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/1441418515016140776' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/1441418515016140776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/1441418515016140776'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2024/10/ollama.html' title='Ollama 基本指令'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-6231993522054691892</id><published>2024-10-13T01:35:00.005+08:00</published><updated>2024-10-14T00:58:59.337+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="ocr"/><title type='text'>Combining Scanned Images into a PDF with OCR on Mac OS X</title><content type='html'>&lt;h2&gt;Combining Scanned Images into a PDF with OCR on Mac OS X&lt;/h2&gt;

&lt;p&gt;This guide will walk you through the process of combining multiple scanned images of book pages into a single PDF file on Mac OS X and using OCR (Optical Character Recognition) to convert the text into searchable, selectable electronic text.&lt;/p&gt;

&lt;h3&gt;1. Installing Required Tools&lt;/h3&gt;
&lt;p&gt;First, we need to install a few tools to handle image and PDF processing, as well as perform OCR. The following tools are required:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;ImageMagick&lt;/strong&gt;: For image format conversion and processing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;ocrmypdf&lt;/strong&gt;: For performing OCR on PDF files.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tesseract&lt;/strong&gt;: OCR engine used for text recognition.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Poppler&lt;/strong&gt;: A PDF utilities suite, which includes tools like &lt;code&gt;pdfunite&lt;/code&gt; for merging PDFs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Install these tools using Homebrew:&lt;/p&gt;

&lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;brew install imagemagick    # Install ImageMagick
brew install ocrmypdf       # Install OCRMyPDF
brew install tesseract-lang # Install Tesseract language packs
brew install poppler        # Install Poppler
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;2. Merging Images into a PDF&lt;/h3&gt;
&lt;p&gt;If your scanned output is in image format (e.g., JPG), you can use ImageMagick to combine multiple image files into a single PDF document. This ensures that the subsequent OCR process works on a single PDF file.&lt;/p&gt;

&lt;p&gt;To combine all &lt;code&gt;.jpg&lt;/code&gt; images in the current directory into a single &lt;code&gt;001.pdf&lt;/code&gt; file:&lt;/p&gt;

&lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;magick *.jpg 001.pdf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This command uses the &lt;code&gt;magick&lt;/code&gt; tool from ImageMagick to merge all &lt;code&gt;.jpg&lt;/code&gt; files in the directory into one PDF file named &lt;code&gt;001.pdf&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;3. Running OCR on the PDF&lt;/h3&gt;
&lt;p&gt;Next, we use the &lt;code&gt;ocrmypdf&lt;/code&gt; tool to perform OCR on the generated PDF file and save the output as a new file. In this step, we specify the OCR languages as English (&lt;code&gt;eng&lt;/code&gt;) and Traditional Chinese (&lt;code&gt;chi_tra&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Run the following command:&lt;/p&gt;

&lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;ocrmypdf -l eng+chi_tra+chi_tra_vert 001.pdf 001a.pdf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This command will apply OCR to the &lt;code&gt;001.pdf&lt;/code&gt; file and save the result as &lt;code&gt;001a.pdf&lt;/code&gt;. The &lt;code&gt;-l eng+chi_tra+chi_tra_vert&lt;/code&gt; option indicates that both English and Traditional Chinese will be used for text recognition.&lt;/p&gt;

&lt;h3&gt;4. Merging Multiple OCR Processed PDFs&lt;/h3&gt;
&lt;p&gt;If you have multiple PDF files that need to be combined into a single final PDF, the &lt;code&gt;pdfunite&lt;/code&gt; tool can do this easily. To merge the processed PDF files into a single output named &lt;code&gt;combined_pdf.pdf&lt;/code&gt;, use the following command:&lt;/p&gt;

&lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;pdfunite 001a.pdf 002a.pdf 003a.pdf combined_pdf.pdf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This command merges &lt;code&gt;001a.pdf&lt;/code&gt;, &lt;code&gt;002a.pdf&lt;/code&gt;, and &lt;code&gt;003a.pdf&lt;/code&gt; into a single &lt;code&gt;combined_pdf.pdf&lt;/code&gt; file.&lt;/p&gt;

&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;By following these steps, you can:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Merge scanned images into a PDF file.&lt;/li&gt;
  &lt;li&gt;Use the Tesseract engine via &lt;code&gt;ocrmypdf&lt;/code&gt; to perform OCR text recognition.&lt;/li&gt;
  &lt;li&gt;Combine multiple PDF files into a final merged PDF.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This allows you to convert scanned images of book pages into a searchable, selectable, and copyable PDF document.&lt;/p&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/6231993522054691892/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/6231993522054691892' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/6231993522054691892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/6231993522054691892'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2024/10/combining-scanned-images-into-pdf-with.html' title='Combining Scanned Images into a PDF with OCR on Mac OS X'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-8020912169828801114</id><published>2024-10-13T01:32:00.006+08:00</published><updated>2024-10-14T00:58:31.752+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="ocr"/><title type='text'>Mac OS X 環境下將圖片合併為PDF並進行OCR處理</title><content type='html'>&lt;h2&gt;將圖片合併為PDF並進行OCR處理&lt;/h2&gt;

&lt;p&gt;在這份說明文件中，我們將介紹如何在Mac OS X環境下，將多個掃描成圖片的書籍頁面合併為一個PDF檔案，並使用OCR（光學文字識別）將其中的文字轉換為可搜索和選取的電子文字。&lt;/p&gt;

&lt;h3&gt;1. 安裝必要的工具&lt;/h3&gt;
&lt;p&gt;首先，我們需要安裝一些工具來處理圖片和PDF，並進行OCR。以下是需要的工具：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;ImageMagick&lt;/strong&gt;：用於圖片格式轉換與處理。&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;ocrmypdf&lt;/strong&gt;：用於將PDF檔案進行OCR處理。&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tesseract&lt;/strong&gt;：OCR引擎，用於實際進行文字識別。&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Poppler&lt;/strong&gt;：PDF工具集，包含 &lt;code&gt;pdfunite&lt;/code&gt; 等工具，用於合併PDF。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;使用 Homebrew 安裝這些工具：&lt;/p&gt;

&lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;brew install imagemagick    # 安裝 ImageMagick
brew install ocrmypdf       # 安裝 OCRMyPDF
brew install tesseract-lang # 安裝 Tesseract 語言包
brew install poppler        # 安裝 Poppler
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;2. 圖片合併為PDF&lt;/h3&gt;
&lt;p&gt;當掃描結果以圖片格式（如 JPG）儲存時，我們可以使用 ImageMagick 將多個圖片檔案合併為單一 PDF 文件。這樣做可以保證後續的 OCR 處理僅在一個 PDF 檔案上進行。&lt;/p&gt;

&lt;p&gt;將當前目錄下的所有 &lt;code&gt;.jpg&lt;/code&gt; 圖片檔合併為 &lt;code&gt;001.pdf&lt;/code&gt;：&lt;/p&gt;

&lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;magick *.jpg 001.pdf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;這條指令將使用 ImageMagick 中的 &lt;code&gt;magick&lt;/code&gt; 工具，將目錄中的所有 &lt;code&gt;.jpg&lt;/code&gt; 檔案依序合併成一個 PDF 文件 &lt;code&gt;001.pdf&lt;/code&gt;。&lt;/p&gt;

&lt;h3&gt;3. 執行 OCR 文字識別&lt;/h3&gt;
&lt;p&gt;接下來，我們使用 &lt;code&gt;ocrmypdf&lt;/code&gt; 工具來對生成的 PDF 檔案進行 OCR 處理，並將處理後的 PDF 儲存為新的文件。在此步驟中，我們指定使用英語（&lt;code&gt;eng&lt;/code&gt;）和繁體中文（&lt;code&gt;chi_tra&lt;/code&gt;）作為 OCR 的語言。&lt;/p&gt;

&lt;p&gt;執行指令：&lt;/p&gt;

&lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;ocrmypdf -l eng+chi_tra+chi_tra_vert 001.pdf 001a.pdf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;這條指令會對 &lt;code&gt;001.pdf&lt;/code&gt; 文件進行 OCR 文字識別，並將結果儲存為 &lt;code&gt;001a.pdf&lt;/code&gt;。其中，&lt;code&gt;-l eng+chi_tra+chi_tra_vert&lt;/code&gt; 表示同時使用英語和繁體中文進行文字識別。&lt;/p&gt;

&lt;h3&gt;4. 合併多個 OCR 處理後的 PDF 檔案&lt;/h3&gt;
&lt;p&gt;如果你有多個 PDF 檔案需要合併為一個最終的 PDF 檔案，&lt;code&gt;pdfunite&lt;/code&gt; 工具可以輕鬆做到這點。將處理過的 PDF 檔案合併為單一檔案 &lt;code&gt;combined_pdf.pdf&lt;/code&gt;：&lt;/p&gt;

&lt;pre class=&quot;shellblock&quot;&gt;&lt;code&gt;pdfunite 001a.pdf 002a.pdf 003a.pdf combined_pdf.pdf&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;這條指令將 &lt;code&gt;001a.pdf&lt;/code&gt;、&lt;code&gt;002a.pdf&lt;/code&gt; 和 &lt;code&gt;003a.pdf&lt;/code&gt; 三個檔案合併成一個 &lt;code&gt;combined_pdf.pdf&lt;/code&gt;。&lt;/p&gt;

&lt;h3&gt;總結&lt;/h3&gt;
&lt;p&gt;透過這些步驟，你可以：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;將掃描的圖片合併成 PDF 檔案。&lt;/li&gt;
  &lt;li&gt;使用 Tesseract 引擎透過 &lt;code&gt;ocrmypdf&lt;/code&gt; 進行 OCR 文字識別。&lt;/li&gt;
  &lt;li&gt;將多個 PDF 檔案合併成一個完整的 PDF。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;這樣，你就能將掃描成圖片的書籍內容轉換為可以搜索、選取和複製文字的 PDF 電子檔。&lt;/p&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/8020912169828801114/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/8020912169828801114' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/8020912169828801114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/8020912169828801114'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2024/10/mac-os-x-pdfocr.html' title='Mac OS X 環境下將圖片合併為PDF並進行OCR處理'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-8594294751297680222</id><published>2024-10-09T09:58:00.001+08:00</published><updated>2024-10-09T09:58:25.891+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ai"/><category scheme="http://www.blogger.com/atom/ns#" term="business"/><category scheme="http://www.blogger.com/atom/ns#" term="music"/><title type='text'>Business Model for AI Music Generation Services</title><content type='html'>&lt;p&gt;This document outlines a comprehensive business model for an AI music generation service. As the demand for personalized and unique music continues to rise, leveraging artificial intelligence to create music can provide a competitive edge in the music industry. This model will explore various revenue streams, target markets, and operational strategies to ensure the service&#39;s success.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiHi1BOz7dLQXkJG3CqUyNcCwnLbMqkoAKTM3c6PFtjLZR5qyjHIa4yRyXie7CxDEaDH-URwHqAJP8qNifnFl4dKUmecmXbsZFMM1PR1o2nzjThNE6tFz0STLwwqvfAh6SmklNQpT9LpmraBC1K6IF9q096bJT_ja3UJzKtdXRU5s5lYgzB6mykjBPSflgq&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1224&quot; data-original-width=&quot;1392&quot; height=&quot;444&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiHi1BOz7dLQXkJG3CqUyNcCwnLbMqkoAKTM3c6PFtjLZR5qyjHIa4yRyXie7CxDEaDH-URwHqAJP8qNifnFl4dKUmecmXbsZFMM1PR1o2nzjThNE6tFz0STLwwqvfAh6SmklNQpT9LpmraBC1K6IF9q096bJT_ja3UJzKtdXRU5s5lYgzB6mykjBPSflgq=w504-h444&quot; width=&quot;504&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;h1 data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; data-pm-slice=&quot;1 3 []&quot; dir=&quot;ltr&quot; id=&quot;bh-3JkO4kwMEcvTrNtgzJnxd&quot;&gt;Target Market&lt;/h1&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-VFEqRB10QH-nkPwiuFKIT&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-Gq5H4Gbg6dAqFlFBTn-S0&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-5oDyzxsdc-78BqKS3EG__&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-jlTNXsD0XtjX3MiICtTLq&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Content Creators&lt;/strong&gt;: YouTubers, podcasters, and streamers looking for royalty-free music to enhance their content.&lt;/p&gt;&lt;/li&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-nXJt18lUO1I_twNvBJQiQ&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-XKGO6cltqW8dmfhaGuMQC&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Advertising Agencies&lt;/strong&gt;: Companies needing custom jingles or background music for advertisements.&lt;/p&gt;&lt;/li&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-ptJOm5g68rZh_BLLBMPTb&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-9Ji6zV9nDY67VBxrfQ2t6&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Game Developers&lt;/strong&gt;: Indie and large-scale game developers seeking unique soundtracks for their games.&lt;/p&gt;&lt;/li&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-7wsw1g4rJOfS59tDFMCda&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-6_Up72v1xu6RBQSvmbg9K&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Film and TV Production&lt;/strong&gt;: Producers looking for original scores or soundtracks for their projects.&lt;/p&gt;&lt;/li&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-mhjUzFnM2anLoi3iegEoV&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-ppaj5K42uIP0V4TgvF3WE&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Musicians and Bands&lt;/strong&gt;: Artists wanting to experiment with new sounds or collaborate with AI-generated music.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-S4BqY20EJQnwPPlGaNj7N&quot;&gt;&lt;/p&gt;&lt;h1 data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-KmTNJFBbBLjHEH-FEqAaO&quot; style=&quot;text-align: left;&quot;&gt;Revenue Streams&lt;/h1&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-bEG67icyvZeYOx3jQUQWL&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-18_h9TffOsKQbFo-OzLl3&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-bwR72j-ZOZli-3lyM-OdQ&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-Xt2ux2IBixBt-xI2Tdo41&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Subscription Model&lt;/strong&gt;: Offer tiered subscription plans that provide users with access to different levels of music generation capabilities, including varying numbers of tracks per month, quality of music, and customization options.&lt;/p&gt;&lt;/li&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-iCq7vnJb8yHr4lQDRGFqs&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-_uWmZXLjChsJMXqe53bcR&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Pay-Per-Track&lt;/strong&gt;: Allow users to purchase individual tracks or licenses for specific uses, catering to those who may not want a subscription.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-PWfjbQBHN5SNO5DtexFPt&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-xD1w7Xj99xIC1367xBTO9&quot; start=&quot;3&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-5EAfUbxJ7j2fHdA-V5LiC&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-nZPXZ7vs6NoYCWAMYreWT&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Custom Commissions&lt;/strong&gt;: Provide a service where users can request custom music tailored to their specific needs, charging a premium for this personalized service.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-gIKQ3t4iHrM3Tw3u7tXQo&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-WTZN1C-ZnHxgqsFNr3HZW&quot; start=&quot;4&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-pt-kqWN7ZkaT_aUBBERt5&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-QZkZXU2eK-VIeeTagG91j&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Partnerships and Collaborations&lt;/strong&gt;: Collaborate with platforms like YouTube, Twitch, and gaming companies to offer integrated music solutions, potentially sharing revenue from users who utilize the service.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-6Rnc8HMP3myKx39y65TvU&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-a2n6TA8j37ix3WVYgS5yE&quot; start=&quot;5&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-ZnZEbqAXV8WF_y13f3nor&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-wuwZKzH84W3PjpCf4ejSt&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Merchandising&lt;/strong&gt;: Create and sell merchandise related to the AI-generated music, such as vinyl records, digital albums, or branded products.&lt;/p&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-jzalYU3jvNbmflG3ZfVGI&quot;&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEicRJba1pblzkQ94Od8hz3KLa-1yIGtTewd-isJFaakRntQxqyk0kyy130sB1Eu9pC9u5shfiVk5y9GrprMVAzS3l9zyHbtp1V0K71f5oT40BYFVisn5twMtRVCtigQbYRUvJcY47mcMac2FZuS-lsJzXggqfPOS4FDxhbVH92OKDsdTYjbaOlCgSkAnjAO&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1032&quot; data-original-width=&quot;1368&quot; height=&quot;421&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEicRJba1pblzkQ94Od8hz3KLa-1yIGtTewd-isJFaakRntQxqyk0kyy130sB1Eu9pC9u5shfiVk5y9GrprMVAzS3l9zyHbtp1V0K71f5oT40BYFVisn5twMtRVCtigQbYRUvJcY47mcMac2FZuS-lsJzXggqfPOS4FDxhbVH92OKDsdTYjbaOlCgSkAnjAO=w557-h421&quot; width=&quot;557&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;h1 data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; data-pm-slice=&quot;1 3 []&quot; dir=&quot;ltr&quot; id=&quot;bh-_j989VjldfOhniixw5fBo&quot;&gt;Operational Strategy&lt;/h1&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-bQwsVo7bhJbDZwsseo5xx&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-gtpLigM9cAVvD1dX1inIU&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-3u_epIulMj_gNr3h3QxTs&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-MMG8gz_PRi0n9NIJIlmGi&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Technology Development&lt;/strong&gt;: Invest in developing a robust AI music generation algorithm that can create high-quality, diverse music across various genres.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-tLQnAr7R6FOGvJOmxlMwx&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-V7lMcMitPQ3OKO3mM-Ywu&quot; start=&quot;2&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-PCa05JfogaoeBBxqpTaLt&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-7HydPpF_oAW2VeHfJxHx8&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;User-Friendly Interface&lt;/strong&gt;: Design an intuitive platform that allows users to easily generate and customize music tracks, ensuring a seamless user experience.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-ximHoR0int4NPzkXi1N02&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-m-b8JnvajmYJTBojlovcW&quot; start=&quot;3&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-p14CRxPux2G4RpLoREZ3C&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-bQLORYpOFksTTFoGEsYPe&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Marketing and Outreach&lt;/strong&gt;: Utilize social media, influencer partnerships, and targeted advertising to reach potential users in the identified target markets.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-SwTlik3sDtm63iZVFwRZM&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-cfc4IW7wynzlBNQnb3LDj&quot; start=&quot;4&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-h0Dv-qCBl63wG_F8VBwda&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-msiruS3IPlcvgud1DsvEr&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Community Building&lt;/strong&gt;: Foster a community of users who can share their experiences, provide feedback, and showcase how they use the generated music, enhancing user engagement and loyalty.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-bxY9UngwuOZRWbUhmJ4P1&quot;&gt;&lt;/p&gt;&lt;ol data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-oqZflumsnwZLrGAle0yXw&quot; start=&quot;5&quot;&gt;&lt;li data-hook-type=&quot;blockHook&quot; id=&quot;bh-z4gi5QlMrukv4qBvecYfB&quot;&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-EUrNQzt0nz8-6703RxlHQ&quot; style=&quot;text-align: left;&quot;&gt;&lt;strong&gt;Legal Considerations&lt;/strong&gt;: Ensure compliance with copyright laws and provide clear licensing agreements to protect both the service and its users.&lt;/p&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-VcxNZZjMx_awsYXj0c8KK&quot;&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhIRmj2XEPVURtQ5kgptPosk8L8gBQ-S6MF7GOynLpmuqFF_MiBRuu5_5cj9OZRwqEJKggdlslJAE6sE0m71m5XtF_acdJhVpbL8rtshqUZUKkI888sXnM9LpLFfhM7rEXcaoS-2J-aAfgGAYGpWQq4Oth5YfSTVkHffcTvEVixkk3IASsPpIQ7Xn1qtHyh&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;652&quot; data-original-width=&quot;1708&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhIRmj2XEPVURtQ5kgptPosk8L8gBQ-S6MF7GOynLpmuqFF_MiBRuu5_5cj9OZRwqEJKggdlslJAE6sE0m71m5XtF_acdJhVpbL8rtshqUZUKkI888sXnM9LpLFfhM7rEXcaoS-2J-aAfgGAYGpWQq4Oth5YfSTVkHffcTvEVixkk3IASsPpIQ7Xn1qtHyh=w580-h221&quot; width=&quot;580&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h1 data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; data-pm-slice=&quot;1 1 []&quot; dir=&quot;ltr&quot; id=&quot;bh-Z2J-XBtCJjRut1wetwBco&quot;&gt;Conclusion&lt;/h1&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; id=&quot;bh-_QUaVtIGj-4t74Zj0G449&quot;&gt;&lt;/p&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-14YTs9cSoGdYjJ3oSdPNj&quot;&gt;The AI music generation service presents a unique opportunity to tap into the growing demand for personalized music solutions. By targeting diverse markets, implementing multiple revenue streams, and focusing on technology and user experience, this business model can establish a strong foothold in the music industry. With the right strategies in place, the service can not only thrive but also innovate the way music is created and consumed.&lt;/p&gt;&lt;p data-bubble-menu=&quot;true&quot; data-hook-type=&quot;blockHook&quot; dir=&quot;ltr&quot; id=&quot;bh-14YTs9cSoGdYjJ3oSdPNj&quot;&gt;#&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/8594294751297680222/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/8594294751297680222' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/8594294751297680222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/8594294751297680222'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2024/10/business-model-for-ai-music-generation.html' title='Business Model for AI Music Generation Services'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiHi1BOz7dLQXkJG3CqUyNcCwnLbMqkoAKTM3c6PFtjLZR5qyjHIa4yRyXie7CxDEaDH-URwHqAJP8qNifnFl4dKUmecmXbsZFMM1PR1o2nzjThNE6tFz0STLwwqvfAh6SmklNQpT9LpmraBC1K6IF9q096bJT_ja3UJzKtdXRU5s5lYgzB6mykjBPSflgq=s72-w504-h444-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-7180914630448247052</id><published>2024-10-06T02:15:00.001+08:00</published><updated>2024-10-06T02:15:04.221+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chinese"/><category scheme="http://www.blogger.com/atom/ns#" term="fonts"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="matplotlib"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Mac OS X 下 Python套件matplotlib繪製中文標題散點圖表(Scatter Plot)</title><content type='html'>
&lt;br/&gt;
&lt;li&gt;匯入了必要的套件：seaborn、matplotlib.pyplot 和 matplotlib.font_manager。
&lt;li&gt;設定了字體和字號：使用 FontProperties 類別來指定字體檔案路徑和字號大小。
&lt;li&gt;載入了 tips 數據集：使用 sns.load_dataset 函數來載入 seaborn 的 tips 數據集。
&lt;li&gt;設定了 seaborn 的樣式：使用 sns.set() 函數來設定 seaborn 的預設樣式。
&lt;li&gt;畫了散點圖：使用 sns.scatterplot 函數來畫散點圖。
&lt;li/&gt;設定了圖表標題：使用 plt.title 函數來設定圖表標題，並指定了中文字體和字號。
&lt;br/&gt;

&lt;pre class=&quot;shellblock&quot;&gt;import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 設定字體和字號
font = fm.FontProperties(fname=&#39;/Users/YOURNAME/Library/Fonts/jf-openhuninn-2.0.ttf&#39;, size=12)

tips = sns.load_dataset(&quot;tips&quot;)
sns.set()
sns.scatterplot(x=&quot;total_bill&quot;, y=&quot;tip&quot;, data=tips)
plt.title(&#39;餐廳小費關係圖&#39;, fontproperties=font)
plt.show()
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/7180914630448247052/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/7180914630448247052' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/7180914630448247052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/7180914630448247052'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2024/10/mac-os-x-pythonmatplotlibscatter-plot.html' title='Mac OS X 下 Python套件matplotlib繪製中文標題散點圖表(Scatter Plot)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-864784369252828757</id><published>2021-02-11T02:50:00.003+08:00</published><updated>2021-02-11T02:50:50.061+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Apple M1 Mac 安裝 python3 程式庫</title><content type='html'>
&lt;pre class=&quot;shellblock&quot;&gt;
python3 -m pip install --upgrade pip

arch -x86_64 $(which python3) -m pip install numpy scipy matplotlib dbr
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/864784369252828757/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/864784369252828757' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/864784369252828757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/864784369252828757'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2021/02/apple-m1-mac-python3.html' title='Apple M1 Mac 安裝 python3 程式庫'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-4712054422896411252</id><published>2019-11-10T14:46:00.000+08:00</published><updated>2019-11-10T14:46:21.734+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="shell"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="程式"/><category scheme="http://www.blogger.com/atom/ns#" term="組合的力量"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><title type='text'>bash shell 批次更改圖片檔名範例</title><content type='html'>&lt;pre class=&quot;shellblock&quot;&gt;
#!/bin/bash

files=&quot;img-1*&quot;
start=1
rename=1
echo $count

for i in `ls $files`
do
  echo $i
  rename=$(($start * 2 - 1))
  #rename=$(($start * 2))
  start=$(($start + 1))
  echo $rename
  refilename=`printf &quot;%02u&quot; $rename`
  mv $i $refilename.tif

done
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/4712054422896411252/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/4712054422896411252' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/4712054422896411252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/4712054422896411252'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/11/bash-shell.html' title='bash shell 批次更改圖片檔名範例'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-4179018936552855754</id><published>2019-11-10T04:47:00.001+08:00</published><updated>2019-11-10T04:49:46.276+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="elasticsearch"/><category scheme="http://www.blogger.com/atom/ns#" term="中文"/><category scheme="http://www.blogger.com/atom/ns#" term="設定"/><title type='text'>Ubuntu Elasticsearch 使用 IK Analysis Plugin</title><content type='html'>下載新版的 IK Analysis Plugin (這裡以 Ver 7.4.2為例)，並且下載擴充中文字典檔案
&lt;br/&gt;
&lt;pre class=&quot;shellblock&quot;&gt;
sudo mkdir /usr/share/elasticsearch/plugins/ik/
sudo cd /usr/share/elasticsearch/plugins/ik/
sudo wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
sudo unzip elasticsearch-analysis-ik-7.4.2.zip
sudo \rm elasticsearch-analysis-ik-7.4.2.zip
sudo cd /usr/share/elasticsearch/plugins/ik/config
sudo wget https://github.com/samejack/sc-dictionary/raw/master/main.txt
sudo mv main.dic main.dic.old
sudo mv main.txt main.dic
&lt;/pre&gt;

&lt;br/&gt;
設定擴充字典，編輯 IKAnalyzer.cfg.xml 設定檔案
&lt;pre class=&quot;shellblock&quot;&gt;
cd /usr/share/elasticsearch/plugins/ik/config
sudo vi IKAnalyzer.cfg.xml
&lt;/pre&gt;
將 ext_dict 新增 main.dic
&lt;pre class=&quot;codeblock&quot;&gt;
 &amp;lt;entry key=&quot;ext_dict&quot;&amp;gt;main.dic&amp;lt;/entry&amp;gt;
&lt;/pre&gt;
重新啟動ElasticSearch
&lt;pre class=&quot;shellblock&quot;&gt;
sudo service elasticsearch restart
&lt;/pre&gt;
&lt;hr/&gt;
沒問題的話，就來測試一下 IK 吧...
&lt;pre class=&quot;shellblock&quot;&gt;
curl -XGET http://localhost:9200/_analyze -H &#39;Content-Type:application/json&#39; -d&#39;
{
  &quot;text&quot;:&quot;後悔莫及的人家&quot;,
  &quot;analyzer&quot;: &quot;ik_smart&quot;
}&#39;
&lt;/pre&gt;
應該會得到這樣的結果:
&lt;pre class=&quot;codeblock&quot;&gt;
{
  &quot;tokens&quot; : [
    {
      &quot;token&quot; : &quot;後悔莫及&quot;,
      &quot;start_offset&quot; : 0,
      &quot;end_offset&quot; : 4,
      &quot;type&quot; : &quot;CN_WORD&quot;,
      &quot;position&quot; : 0
    },
    {
      &quot;token&quot; : &quot;的&quot;,
      &quot;start_offset&quot; : 4,
      &quot;end_offset&quot; : 5,
      &quot;type&quot; : &quot;CN_CHAR&quot;,
      &quot;position&quot; : 1
    },
    {
      &quot;token&quot; : &quot;人家&quot;,
      &quot;start_offset&quot; : 5,
      &quot;end_offset&quot; : 7,
      &quot;type&quot; : &quot;CN_WORD&quot;,
      &quot;position&quot; : 2
    }
  ]
}
&lt;/pre&gt;
&lt;hr/&gt;
接著來建立一個新的 index 就叫做 test 吧，順便進行一下IK分詞測試看看...
&lt;pre class=&quot;shellblock&quot;&gt;
curl -XPUT http://localhost:9200/test

curl -XPOST http://localhost:9200/test/_mapping -H &#39;Content-Type:application/json&#39; -d&#39;
{
        &quot;properties&quot;: {
            &quot;content&quot;: {
                &quot;type&quot;: &quot;text&quot;,
                &quot;analyzer&quot;: &quot;ik_max_word&quot;,
                &quot;search_analyzer&quot;: &quot;ik_smart&quot;
            }
        }

}&#39;

curl -XPOST http://localhost:9200/test/_create/1 -H &#39;Content-Type:application/json&#39; -d&#39;
{&quot;content&quot;:&quot;曾經有一份真摯的感情放在我面前.我沒有珍惜.等到失去的時候才後悔莫及，塵世間最痛苦的事莫過於此.你的劍在我的咽喉上割下去吧!不要再猶豫了!如果上天能夠給我一個再來一次的機會，我一定會對那個女孩子說三個字\&quot;我愛你\&quot;,如果非要在這份愛上加一個期限的話，我希望是一萬年。&quot;}&#39;

curl -XPOST /test/_search -H &#39;Content-Type:application/json&#39; -d&#39;
{
  &quot;query&quot;: {&quot;match&quot;: {&quot;content&quot;: &quot;如果&quot;}},
  &quot;highlight&quot; : {
    &quot;pre_tags&quot; : [&quot;&lt;tag1&gt;&quot;, &quot;&lt;tag2&gt;&quot;],
    &quot;post_tags&quot; : [&quot;&lt;/tag1&gt;&quot;, &quot;&lt;/tag2&gt;&quot;],
    &quot;fields&quot; : {
      &quot;content&quot; : {}
    }
  }
}&#39;
&lt;/pre&gt;
結果應該會是如此 :
&lt;pre class=&quot;codeblock&quot;&gt;
{
  &quot;took&quot; : 292,
  &quot;timed_out&quot; : false,
  &quot;_shards&quot; : {
    &quot;total&quot; : 1,
    &quot;successful&quot; : 1,
    &quot;skipped&quot; : 0,
    &quot;failed&quot; : 0
  },
  &quot;hits&quot; : {
    &quot;total&quot; : {
      &quot;value&quot; : 1,
      &quot;relation&quot; : &quot;eq&quot;
    },
    &quot;max_score&quot; : 0.40037507,
    &quot;hits&quot; : [
      {
        &quot;_index&quot; : &quot;test&quot;,
        &quot;_type&quot; : &quot;_doc&quot;,
        &quot;_id&quot; : &quot;1&quot;,
        &quot;_score&quot; : 0.40037507,
        &quot;_source&quot; : {
          &quot;content&quot; : &quot;&quot;&quot;曾經有一份真摯的感情放在我面前.我沒有珍惜.等到失去的時候才後悔莫及，塵世間最痛苦的事莫過於此.你的劍在我的咽喉上割下去吧!不要再猶豫了!如果上天能夠給我一個再來一次的機會，我一定會對那個女孩子說三個字&quot;我愛你&quot;,如果非要在這份愛上加一個期限的話，我希望是一萬年。&quot;&quot;&quot;
        },
        &quot;highlight&quot; : {
          &quot;content&quot; : [
            &quot;&quot;&quot;&amp;lt;tag1&amp;gt;如果&amp;lt;/tag1&amp;gt;上天能夠給我一個再來一次的機會，我一定會對那個女孩子說三個字&quot;我愛你&quot;,&amp;lt;tag1&amp;gt;如果&amp;lt;/tag1&amp;gt;非要在這份愛上加一個期限的話，我希望是一萬年。&quot;&quot;&quot;
          ]
        }
      }
    ]
  }
}
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/4179018936552855754/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/4179018936552855754' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/4179018936552855754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/4179018936552855754'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/11/ubuntu-elasticsearch-ik-analysis-plugin.html' title='Ubuntu Elasticsearch 使用 IK Analysis Plugin'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-207343697959142792</id><published>2019-10-22T02:08:00.000+08:00</published><updated>2019-10-22T02:08:29.413+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="nginx"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="設定"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><title type='text'>Ubuntu 18.04 安裝 Nginx+MySQL+PHP</title><content type='html'>安裝 Nginx, MySQL：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo apt-get update
sudo apt-get install nginx
sudo apt-get install mysql-server
&lt;/pre&gt;
&lt;br /&gt;
設定MySQL安全性設定：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo mysql_secure_installation
&lt;/pre&gt;
&lt;br /&gt;
安裝PHP：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo apt-get install php-fpm php-mysql php-json php-gd
&lt;/pre&gt;
&lt;br /&gt;
設定 php.ini，編輯 /etc/php/7.2/fpm/php.ini，將cgi.fix_pathinfo設為0
&lt;br /&gt;
&lt;pre class=&quot;codeblock&quot;&gt;;cgi.fix_pathinfo=1
cgi.fix_pathinfo=0
&lt;/pre&gt;
&lt;br /&gt;
重新啟動PHP服務：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo service php7.2-fpm restart
&lt;/pre&gt;
&lt;hr /&gt;
設定一個新的nginx網站，以adia.cc為例。編輯 /etc/nginx/sites-available/adia.cc檔案：
&lt;br /&gt;
&lt;pre class=&quot;codeblock&quot;&gt;server {
        listen 8080;
        root /var/www/adia.cc/html;
        index index.php index.html index.htm;
        access_log /var/log/nginx/adia.cc.access.log;
        error_log /var/log/nginx/adia.cc.error.log;
        server_name adia.cc www.adia.cc;
 
        location / {
                try_files $uri $uri/ =404;
        }
 
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }
 
        location ~ /\.ht {
                deny all;
        }
}
&lt;/pre&gt;
&lt;br /&gt;
建立adia.cc網站設定檔連結，並測試設定檔是否正確：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo ln -s /etc/nginx/sites-available/adia.cc /etc/nginx/sites-enabled/
sudo nginx -t
&lt;/pre&gt;
&lt;br /&gt;
正確的話，應該會出現類似結果：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
&lt;/pre&gt;
&lt;br /&gt;
接著建立一個PHP測試網頁，編輯 /var/www/adia.cc/html/info.php：
&lt;br /&gt;
&lt;pre class=&quot;codeblock&quot;&gt;&amp;lt;?php
   phpinfo();
?&amp;gt;
&lt;/pre&gt;
重新啟動 Nginx 服務：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo service nginx restart
&lt;/pre&gt;
&lt;br /&gt;
接下來利用瀏覽器測試 http://YOUR_IP/ 和 http://YOUR_IP:8080/info.php是否正常~
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEiZPAoXo0g0-tb7JtzYDbbtv3k-vDvXR6k1_JYDbHqgnd8HjhyEI1Rd9h1YyOm7258FlS4eJ8qD2fHIA1Hghqo4AqHSXSIHs99N5X6q_S8kvLOj5nsCNbzPt4kFeu6jufDatG06furtWT/s1600/php7.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1262&quot; data-original-width=&quot;1227&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEiZPAoXo0g0-tb7JtzYDbbtv3k-vDvXR6k1_JYDbHqgnd8HjhyEI1Rd9h1YyOm7258FlS4eJ8qD2fHIA1Hghqo4AqHSXSIHs99N5X6q_S8kvLOj5nsCNbzPt4kFeu6jufDatG06furtWT/s320/php7.JPG&quot; width=&quot;311&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;phpinfo() 執行結果&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;hr /&gt;
#</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/207343697959142792/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/207343697959142792' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/207343697959142792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/207343697959142792'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/10/ubuntu-1804-nginxmysqlphp.html' title='Ubuntu 18.04 安裝 Nginx+MySQL+PHP'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEiZPAoXo0g0-tb7JtzYDbbtv3k-vDvXR6k1_JYDbHqgnd8HjhyEI1Rd9h1YyOm7258FlS4eJ8qD2fHIA1Hghqo4AqHSXSIHs99N5X6q_S8kvLOj5nsCNbzPt4kFeu6jufDatG06furtWT/s72-c/php7.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-1724068456417644685</id><published>2019-10-22T00:23:00.002+08:00</published><updated>2019-10-22T00:23:28.119+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="安裝"/><category scheme="http://www.blogger.com/atom/ns#" term="設定"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><title type='text'>Ubuntu 18.04 安裝 SSH Server , 設定為文字開機模式 (disable GUI boot mode)</title><content type='html'>確定一下 Ubuntu 版本是否為 18.04：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;lsb_release -a
&lt;/pre&gt;
執行結果：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;Distributor ID: Ubuntu
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
Codename:       bionic
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;安裝 SSH Server ：
&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo apt-get install openssh-server
sudo update-rc.d ssh defaults
sudo service ssh start
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;關閉GUI開機模式，並且重開機生效：
&lt;/b&gt;&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo systemctl set-default multi-user.target
sudo sync;sync;sync;reboot
&lt;/pre&gt;
&lt;br /&gt;
假若要再重新設定GUI開機模式：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo systemctl set-default graphical.target
sudo sync;sync;sync;reboot
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;設定 NTP 時間同步主機為 clock.stdtime.gov.tw&lt;/b&gt;，編輯 /etc/systemd/timesyncd.conf 檔案
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo vi /etc/systemd/timesyncd.conf
&lt;/pre&gt;
將內容 #NTP= 前面註解符號(#)刪除，順便設定同步主機後存檔：
&lt;br /&gt;
&lt;pre class=&quot;codeblock&quot;&gt;#NTP=
NTP=clock.stdtime.gov.tw
&lt;/pre&gt;
&lt;br /&gt;
重新啟動時間同步服務後，順便看一下執行狀態：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo service systemd-timesyncd restart
sudo service systemd-timesyncd status
&lt;/pre&gt;
&lt;br /&gt;
執行結果已經顯示同步 time server 從原來的 ntp.ubuntu.com 改為 clock.stdtime.gov.tw：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;● systemd-timesyncd.service - Network Time Synchronization
 (...略...)
   Status: &quot;Synchronized to time server 211.22.103.158:123 (clock.stdtime.gov.tw).&quot;
 (...略...)
&lt;/pre&gt;
&lt;hr/&gt;
#
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/1724068456417644685/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/1724068456417644685' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/1724068456417644685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/1724068456417644685'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/10/ubuntu-1804-ssh-server-disable-gui-boot.html' title='Ubuntu 18.04 安裝 SSH Server , 設定為文字開機模式 (disable GUI boot mode)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-693009705250074335</id><published>2019-10-14T03:45:00.002+08:00</published><updated>2019-10-14T03:57:28.931+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="爬蟲"/><category scheme="http://www.blogger.com/atom/ns#" term="程式"/><category scheme="http://www.blogger.com/atom/ns#" term="組合的力量"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><title type='text'>第11屆iT邦幫忙鐵人賽-參考 Python 程式交易 30 天新手入門系列範例</title><content type='html'>可能需要預先安裝下列 Python Packages：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;pip install js2py
pip install loguru
pip install pandas
pip install plotly
pip install pyquery
&lt;/pre&gt;
&lt;br /&gt;
參考「&lt;a href=&quot;https://ithelp.ithome.com.tw/users/20120536/ironman/2571&quot; target=&quot;_blank&quot;&gt;第11屆iT邦幫忙鐵人賽-參考 Python 程式交易 30 天新手入門系列&lt;/a&gt;」系列範例修改，並存成檔名 getTaxies.py：&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ithelp.ithome.com.tw/articles/10217871&quot; target=&quot;_blank&quot;&gt;Day-05 資料蒐集：取得代理清單&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ithelp.ithome.com.tw/articles/10218413&quot; target=&quot;_blank&quot;&gt;Day-06 資料蒐集：如何避免頻繁存取被封鎖&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ithelp.ithome.com.tw/articles/10221050&quot; target=&quot;_blank&quot;&gt;Day-11 資料保存：取得 2019 年每日加權指數盤後資訊並繪製線圖&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ithelp.ithome.com.tw/articles/10221694&quot; target=&quot;_blank&quot;&gt;Day-12 程式運行：解析命令列參數&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;pre class=&quot;codeblock&quot;&gt;import csv
import datetime
import fractions
import json
import os
import random
import re
import time
import urllib.parse
import argparse

from random import randint
from time import sleep

import js2py
import loguru
import pandas
import plotly.graph_objects
import pyquery
import requests
import requests.exceptions

now = datetime.datetime.now()
proxies = []

proxy = None

class Taiex:
    def __init__(self, date, openPrice, highestPrice, lowestPrice, closePrice):
        # 日期
        self.Date = date
        # 開盤價
        self.OpenPrice = openPrice
        # 最高價
        self.HighestPrice = highestPrice
        # 最低價
        self.LowestPrice = lowestPrice
        # 收盤價
        self.ClosePrice = closePrice
    # 物件表達式
    def __repr__(self):
        return f&#39;class Taiex {{ Date={self.Date}, OpenPrice={self.OpenPrice}, HighestPrice={self.HighestPrice}, LowestPrice={self.LowestPrice}, ClosePrice={self.ClosePrice} }}&#39;

def getProxy():
    global proxies
    if len(proxies) == 0:
        getProxies()
    proxy = random.choice(proxies)
    loguru.logger.debug(f&#39;getProxy: {proxy}&#39;)
    proxies.remove(proxy)
    loguru.logger.debug(f&#39;getProxy: {len(proxies)} proxies is unused.&#39;)
    return proxy

def reqProxies(hour):
    global proxies
    proxies = proxies + getProxiesFromProxyNova()
    proxies = proxies + getProxiesFromGatherProxy()
    proxies = proxies + getProxiesFromFreeProxyList()
    proxies = list(dict.fromkeys(proxies))
    loguru.logger.debug(f&#39;reqProxies: {len(proxies)} proxies is found.&#39;)

def getProxies():
    global proxies
    hour = f&#39;{now:%Y%m%d%H}&#39;
    filename = f&#39;proxies-{hour}.csv&#39;
    filepath = f&#39;{filename}&#39;
    if os.path.isfile(filepath):
        loguru.logger.info(f&#39;getProxies: {filename} exists.&#39;)
        loguru.logger.warning(f&#39;getProxies: {filename} is loading...&#39;)
        with open(filepath, &#39;r&#39;, newline=&#39;&#39;, encoding=&#39;utf-8-sig&#39;) as f:
            reader = csv.DictReader(f)
            for row in reader:
                proxy = row[&#39;Proxy&#39;]
                proxies.append(proxy)
        loguru.logger.success(f&#39;getProxies: {filename} is loaded.&#39;)
    else:
        loguru.logger.info(f&#39;getProxies: {filename} does not exist.&#39;)
        reqProxies(hour)
        loguru.logger.warning(f&#39;getProxies: {filename} is saving...&#39;)
        with open(filepath, &#39;w&#39;, newline=&#39;&#39;, encoding=&#39;utf-8-sig&#39;) as f:
            writer = csv.writer(f)
            writer.writerow([
                &#39;Proxy&#39;
            ])
            for proxy in proxies:
                writer.writerow([
                    proxy
                ])
        loguru.logger.success(f&#39;getProxies: {filename} is saved.&#39;)

def getProxiesFromProxyNova():
    proxies = []
    countries = [
        &#39;tw&#39;,
        &#39;jp&#39;,
        &#39;kr&#39;,
        &#39;id&#39;,
        &#39;my&#39;,
        &#39;th&#39;,
        &#39;vn&#39;,
        &#39;ph&#39;,
        &#39;hk&#39;,
        &#39;uk&#39;,
        &#39;us&#39;
    ]
    for country in countries:
        url = f&#39;https://www.proxynova.com/proxy-server-list/country-{country}/&#39;
        loguru.logger.debug(f&#39;getProxiesFromProxyNova: {url}&#39;)
        loguru.logger.warning(f&#39;getProxiesFromProxyNova: downloading...&#39;)
        response = requests.get(url)
        if response.status_code != 200:
            loguru.logger.debug(f&#39;getProxiesFromProxyNova: status code is not 200&#39;)
            continue
        loguru.logger.success(f&#39;getProxiesFromProxyNova: downloaded.&#39;)
        d = pyquery.PyQuery(response.text)
        table = d(&#39;table#tbl_proxy_list&#39;)
        rows = list(table(&#39;tbody:first &amp;gt; tr&#39;).items())
        loguru.logger.warning(f&#39;getProxiesFromProxyNova: scanning...&#39;)
        for row in rows:
            tds = list(row(&#39;td&#39;).items())
            if len(tds) == 1:
                continue
            js = row(&#39;td:nth-child(1) &amp;gt; abbr&#39;).text()
            js = &#39;let x = %s; x&#39; % (js[15:-2])
            ip = js2py.eval_js(js).strip()
            port = row(&#39;td:nth-child(2)&#39;).text().strip()
            proxy = f&#39;{ip}:{port}&#39;
            proxies.append(proxy)
        loguru.logger.success(f&#39;getProxiesFromProxyNova: scanned.&#39;)
        loguru.logger.debug(f&#39;getProxiesFromProxyNova: {len(proxies)} proxies is found.&#39;)
        time.sleep(1)
    return proxies

def getProxiesFromGatherProxy():
    proxies = []
    countries = [
        &#39;Taiwan&#39;,
        &#39;Japan&#39;,
        &#39;United States&#39;,
        &#39;Thailand&#39;,
        &#39;Vietnam&#39;,
        &#39;Indonesia&#39;,
        &#39;Singapore&#39;,
        &#39;Philippines&#39;,
        &#39;Malaysia&#39;,
        &#39;Hong Kong&#39;
    ]
    for country in countries:
        url = f&#39;http://www.gatherproxy.com/proxylist/country/?c={urllib.parse.quote(country)}&#39;
        loguru.logger.debug(f&#39;getProxiesFromGatherProxy: {url}&#39;)
        loguru.logger.warning(f&#39;getProxiesFromGatherProxy: downloading...&#39;)
        response = requests.get(url)
        if response.status_code != 200:
            loguru.logger.debug(f&#39;getProxiesFromGatherProxy: status code is not 200&#39;)
            continue
        loguru.logger.success(f&#39;getProxiesFromGatherProxy: downloaded.&#39;)
        d = pyquery.PyQuery(response.text)
        scripts = list(d(&#39;table#tblproxy &amp;gt; script&#39;).items())
        loguru.logger.warning(f&#39;getProxiesFromGatherProxy: scanning...&#39;)
        for script in scripts:
            script = script.text().strip()
            script = re.sub(r&#39;^gp\.insertPrx\(&#39;, &#39;&#39;, script)
            script = re.sub(r&#39;\);$&#39;, &#39;&#39;, script)
            script = json.loads(script)
            ip = script[&#39;PROXY_IP&#39;].strip()
            port = int(script[&#39;PROXY_PORT&#39;].strip(), 16)
            proxy = f&#39;{ip}:{port}&#39;
            proxies.append(proxy)
        loguru.logger.success(f&#39;getProxiesFromGatherProxy: scanned.&#39;)
        loguru.logger.debug(f&#39;getProxiesFromGatherProxy: {len(proxies)} proxies is found.&#39;)
        time.sleep(1)
    return proxies

def getProxiesFromFreeProxyList():
    proxies = []
    url = &#39;https://free-proxy-list.net/&#39;
    loguru.logger.debug(f&#39;getProxiesFromFreeProxyList: {url}&#39;)
    loguru.logger.warning(f&#39;getProxiesFromFreeProxyList: downloading...&#39;)
    response = requests.get(url)
    if response.status_code != 200:
        loguru.logger.debug(f&#39;getProxiesFromFreeProxyList: status code is not 200&#39;)
        return
    loguru.logger.success(f&#39;getProxiesFromFreeProxyList: downloaded.&#39;)
    d = pyquery.PyQuery(response.text)
    trs = list(d(&#39;table#proxylisttable &amp;gt; tbody &amp;gt; tr&#39;).items())
    loguru.logger.warning(f&#39;getProxiesFromFreeProxyList: scanning...&#39;)
    for tr in trs:
        tds = list(tr(&#39;td&#39;).items())
        ip = tds[0].text().strip()
        port = tds[1].text().strip()
        proxy = f&#39;{ip}:{port}&#39;
        proxies.append(proxy)
    loguru.logger.success(f&#39;getProxiesFromFreeProxyList: scanned.&#39;)
    loguru.logger.debug(f&#39;getProxiesFromFreeProxyList: {len(proxies)} proxies is found.&#39;)
    return proxies

# 取得指定年月內每交易日的盤後資訊
def getTaiexs(year, month):
    global proxy
    taiexs = []
    while True:
        if proxy is None:
            proxy = getProxy()
        url = f&#39;https://www.twse.com.tw/indicesReport/MI_5MINS_HIST?response=json&amp;amp;date={year}{month:02}01&#39;
        loguru.logger.info(f&#39;getTaiexs: month {month} url is {url}&#39;)
        loguru.logger.warning(f&#39;getTaiexs: month {month} is downloading...&#39;)
        try:
            response = requests.get(
                url,
                proxies={
                    &#39;https&#39;: f&#39;https://{proxy}&#39;
                },
                timeout=3
            )
            if response.status_code != 200:
                loguru.logger.success(f&#39;getTaiexs: month {month} status code is not 200.&#39;)
                proxy = None
                break
            loguru.logger.success(f&#39;getTaiexs: month {month} is downloaded.&#39;)
            body = response.json()
            stat = body[&#39;stat&#39;]
            if stat != &#39;OK&#39;:
                loguru.logger.error(f&#39;getTaiexs: month {month} responses with error({stat}).&#39;)
                break
            records = body[&#39;data&#39;]
            if len(records) == 0:
                loguru.logger.success(f&#39;getTaiexs: month {month} has no data.&#39;)
                break
            for record in records:
                date = record[0].strip()
                parts = date.split(&#39;/&#39;)
                y = int(parts[0]) + 1911
                m = int(parts[1])
                d = int(parts[2])
                date = f&#39;{y}{m:02d}{d:02d}&#39;
                openPrice = record[1].replace(&#39;,&#39;, &#39;&#39;).strip()
                highestPrice = record[2].replace(&#39;,&#39;, &#39;&#39;).strip()
                lowestPrice = record[3].replace(&#39;,&#39;, &#39;&#39;).strip()
                closePrice = record[4].replace(&#39;,&#39;, &#39;&#39;).strip()
                taiex = Taiex(
                    date=date,
                    openPrice=openPrice,
                    highestPrice=highestPrice,
                    lowestPrice=lowestPrice,
                    closePrice=closePrice
                )
                taiexs.append(taiex)
        except requests.exceptions.ConnectionError:
            loguru.logger.error(f&#39;getTaiexs: proxy({proxy}) is not working (connection error).&#39;)
            proxy = None
            continue
        except requests.exceptions.ConnectTimeout:
            loguru.logger.error(f&#39;getTaiexs: proxy({proxy}) is not working (connect timeout).&#39;)
            proxy = None
            continue
        except requests.exceptions.ProxyError:
            loguru.logger.error(f&#39;getTaiexs: proxy({proxy}) is not working (proxy error).&#39;)
            proxy = None
            continue
        except requests.exceptions.SSLError:
            loguru.logger.error(f&#39;getTaiexs: proxy({proxy}) is not working (ssl error).&#39;)
            proxy = None
            continue
        except Exception as e:
            loguru.logger.error(f&#39;getTaiexs: proxy({proxy}) is not working.&#39;)
            loguru.logger.error(e)
            proxy = None
            continue
        break
    return taiexs

# 儲存傳入的盤後資訊
def saveTaiexs(filepath, taiexs):
    loguru.logger.info(f&#39;saveTaiexs: {len(taiexs)} taiexs.&#39;)
    loguru.logger.warning(f&#39;saveTaiexs: {filepath} is saving...&#39;)
    with open(filepath, mode=&#39;w&#39;, newline=&#39;&#39;, encoding=&#39;utf-8-sig&#39;) as f:
        writer = csv.writer(f)
        writer.writerow([
            &#39;Date&#39;,
            &#39;OpenPrice&#39;,
            &#39;HighestPrice&#39;,
            &#39;LowestPrice&#39;,
            &#39;ClosePrice&#39;
        ])
        for taiex in taiexs:
            writer.writerow([
                taiex.Date,
                taiex.OpenPrice,
                taiex.HighestPrice,
                taiex.LowestPrice,
                taiex.ClosePrice
            ])
    loguru.logger.success(f&#39;main: {filepath} is saved.&#39;)

def main(args):
    taiexs = []
    thisYear = 2019
    if args.year:
        loguru.logger.info(f&#39;[-y|--year] [value:{args.year}]&#39;)
        thisYear = int(args.year)
    else:
        loguru.logger.info(f&#39;[-y|--year] is not used, set year in &#39;+str(thisYear))
    # 取得從 2019.01 至 2019.12 的盤後資訊
    for month in range(1, 13):
        # 程式暫停 3~15 秒
        sleep(randint(3, 15))
        taiexs = taiexs + getTaiexs(thisYear, month)
    filepath = f&#39;taiexs-&#39;+str(thisYear)+&#39;.csv&#39;
    saveTaiexs(filepath, taiexs)

    # 使用 Pandas 讀取下載回來的紀錄檔
    df = pandas.read_csv(filepath)
    # 將 Date 欄位按照格式轉換為 datetime 資料
    df[&#39;Date&#39;] = pandas.to_datetime(df[&#39;Date&#39;], format=&#39;%Y%m%d&#39;)
    
    # 建立圖表
    figure = plotly.graph_objects.Figure(
        data=[
            # Line Chart
            # 收盤價
            plotly.graph_objects.Scatter(
                x=df[&#39;Date&#39;],
                y=df[&#39;ClosePrice&#39;],
                name=&#39;收盤價&#39;,
                mode=&#39;lines&#39;,
                line=plotly.graph_objects.scatter.Line(
                    color=&#39;#6B99E5&#39;
                )
            ),
            # Candlestick Chart
            # K 棒
            plotly.graph_objects.Candlestick(
                x=df[&#39;Date&#39;],
                open=df[&#39;OpenPrice&#39;],
                high=df[&#39;HighestPrice&#39;],
                low=df[&#39;LowestPrice&#39;],
                close=df[&#39;ClosePrice&#39;],
                name=&#39;盤後資訊&#39;,
            )
        ],
        # 設定 XY 顯示格式
        layout=plotly.graph_objects.Layout(
            xaxis=plotly.graph_objects.layout.XAxis(
                tickformat=&#39;%Y-%m&#39;
            ),
            yaxis=plotly.graph_objects.layout.YAxis(
                tickformat=&#39;.2f&#39;
            )
        )
    )
    figure.show()

if __name__ == &#39;__main__&#39;:
    parser = argparse.ArgumentParser()

    # -y [value:yyyy]
    # -- year [value:yyyy]
    parser.add_argument(
        &#39;-y&#39;,
        &#39;--year&#39;,
        help=&#39;set year in yyyy format&#39;,
        type=int
    )

    args = parser.parse_args()

    loguru.logger.add(
        f&#39;{datetime.date.today():%Y%m%d}.log&#39;,
        rotation=&#39;1 day&#39;,
        retention=&#39;7 days&#39;,
        level=&#39;DEBUG&#39;
    )
    main(args)
&lt;/pre&gt;
範例以2007年為例，執行下列：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;python getTaxies.py -y 2007
&lt;/pre&gt;
執行結果：
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;python getTaixes.py -y 2007
2019-10-14 03:34:40.292 | INFO     | __main__:main:300 - [-y|--year] [value:2007]
2019-10-14 03:34:44.294 | INFO     | __main__:getProxies:69 - getProxies: proxies-2019101403.csv exists.
2019-10-14 03:34:44.298 | WARNING  | __main__:getProxies:70 - getProxies: proxies-2019101403.csv is loading...
2019-10-14 03:34:44.308 | SUCCESS  | __main__:getProxies:76 - getProxies: proxies-2019101403.csv is loaded.
2019-10-14 03:34:44.313 | DEBUG    | __main__:getProxy:50 - getProxy: 180.250.216.242:3128
2019-10-14 03:34:44.317 | DEBUG    | __main__:getProxy:52 - getProxy: 724 proxies is unused.
2019-10-14 03:34:44.322 | INFO     | __main__:getTaiexs:206 - getTaiexs: month 1 url is https://www.twse.com.tw/indicesReport/MI_5MINS_HIST?response=json&amp;amp;date=20070101
...(略)...
2019-10-14 03:36:58.484 | INFO     | __main__:getTaiexs:206 - getTaiexs: month 12 url is https://www.twse.com.tw/indicesReport/MI_5MINS_HIST?response=json&amp;amp;date=20071201
2019-10-14 03:36:58.489 | WARNING  | __main__:getTaiexs:207 - getTaiexs: month 12 is downloading...
2019-10-14 03:36:58.846 | SUCCESS  | __main__:getTaiexs:220 - getTaiexs: month 12 is downloaded.
2019-10-14 03:36:58.850 | INFO     | __main__:saveTaiexs:275 - saveTaiexs: 247 taiexs.
2019-10-14 03:36:58.853 | WARNING  | __main__:saveTaiexs:276 - saveTaiexs: taiexs-2007.csv is saving...
2019-10-14 03:36:58.864 | SUCCESS  | __main__:saveTaiexs:294 - main: taiexs-2007.csv is saved.
&lt;/pre&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipjXAG-HMpZoKkJxCb3mwUK2NeO7GpF-mBDeFHfiK-vPSkSlQn3S7RmmS1TVx8EYEqrbSnakLgqE9BQFvRSJFeRwWa7ADMbqjX6RoIhmv5VoDaiujOh7i-rk7TwUWCH9Xp5qZ45UINiYM_/s1600/2007.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1210&quot; data-original-width=&quot;1600&quot; height=&quot;481&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipjXAG-HMpZoKkJxCb3mwUK2NeO7GpF-mBDeFHfiK-vPSkSlQn3S7RmmS1TVx8EYEqrbSnakLgqE9BQFvRSJFeRwWa7ADMbqjX6RoIhmv5VoDaiujOh7i-rk7TwUWCH9Xp5qZ45UINiYM_/s640/2007.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;2007年大盤指數&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
#</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/693009705250074335/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/693009705250074335' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/693009705250074335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/693009705250074335'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/10/11it-python-30.html' title='第11屆iT邦幫忙鐵人賽-參考 Python 程式交易 30 天新手入門系列範例'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipjXAG-HMpZoKkJxCb3mwUK2NeO7GpF-mBDeFHfiK-vPSkSlQn3S7RmmS1TVx8EYEqrbSnakLgqE9BQFvRSJFeRwWa7ADMbqjX6RoIhmv5VoDaiujOh7i-rk7TwUWCH9Xp5qZ45UINiYM_/s72-c/2007.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-7954133686080656208</id><published>2019-07-27T00:49:00.000+08:00</published><updated>2019-07-27T00:49:24.681+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="中文"/><category scheme="http://www.blogger.com/atom/ns#" term="爬蟲"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><title type='text'>Python 3 + Google 新聞爬蟲 + 罔拍 MONPA 中文正體分詞</title><content type='html'>&lt;pre class=&quot;codeblock&quot;&gt;
import requests
from bs4 import BeautifulSoup
import monpa

res = requests.get(&quot;https://news.google.com.tw&quot;)
soup = BeautifulSoup(res.text)

count = 1
for item in soup.select(&quot;.MQsxIb&quot;):
    print(&#39;=====[&#39;,count,&#39;]=====&#39;)
    news_title = item.select(&quot;.ipQwMb&quot;)[0].text
    news_url = item.select(&quot;.ipQwMb&quot;)[0].find(&#39;a&#39;)[&#39;href&#39;]
    print(news_title)
    result = monpa.pseg(news_title)
    for t in result:
        print(t)
    count+=1
    #print(news_url)
&lt;/pre&gt;

執行結果：
&lt;pre class=&quot;shellblock&quot;&gt;
=====[ 1 ]=====
國安私菸案》檢調大搜索華航總部 歷時9小時公關室也沒放過
[&#39;國安&#39;, &#39;ORG&#39;]
[&#39;私菸案&#39;, &#39;Na&#39;]
[&#39;》&#39;, &#39;PARENTHESISCATEGORY&#39;]
[&#39;檢調&#39;, &#39;Na&#39;]
[&#39;大&#39;, &#39;VH&#39;]
[&#39;搜索&#39;, &#39;VC&#39;]
[&#39;華航&#39;, &#39;ORG&#39;]
[&#39;總部&#39;, &#39;Nc&#39;]
[&#39; &#39;, &#39;D&#39;]
[&#39;歷時&#39;, &#39;VJ&#39;]
[&#39;9&#39;, &#39;Neu&#39;]
[&#39;小時&#39;, &#39;Nf&#39;]
[&#39;公關室&#39;, &#39;Nc&#39;]
[&#39;也&#39;, &#39;D&#39;]
[&#39;沒&#39;, &#39;D&#39;]
[&#39;放過&#39;, &#39;VC&#39;]
=====[ 2 ]=====
快訊／國安局私菸事件華航首波懲處拔官名單出爐| 交通氣象
[&#39;快訊&#39;, &#39;Na&#39;]
[&#39;／&#39;, &#39;PERIODCATEGORY&#39;]
[&#39;國安局&#39;, &#39;ORG&#39;]
[&#39;私菸&#39;, &#39;VA&#39;]
[&#39;事件&#39;, &#39;Na&#39;]
[&#39;華航&#39;, &#39;ORG&#39;]
[&#39;首&#39;, &#39;Nes&#39;]
[&#39;波&#39;, &#39;Nf&#39;]
[&#39;懲處&#39;, &#39;Nv&#39;]
[&#39;拔官&#39;, &#39;Na&#39;]
[&#39;名單&#39;, &#39;Na&#39;]
[&#39;出爐&#39;, &#39;VH&#39;]
[&#39;|&#39;, &#39;FW&#39;]
[&#39; &#39;, &#39;VC&#39;]
[&#39;交通&#39;, &#39;Na&#39;]
[&#39;氣象&#39;, &#39;Na&#39;]
=====[ 3 ]=====
國安私菸案》吳宗憲傳致電黃川禎：我訂那麼多 華航高層知道嗎
[&#39;國安&#39;, &#39;Nb&#39;]
[&#39;私菸案&#39;, &#39;Na&#39;]
[&#39;》&#39;, &#39;PARENTHESISCATEGORY&#39;]
[&#39;吳宗憲&#39;, &#39;PER&#39;]
[&#39;傳&#39;, &#39;VD&#39;]
[&#39;致電&#39;, &#39;VC&#39;]
[&#39;黃川禎&#39;, &#39;PER&#39;]
[&#39;：&#39;, &#39;COLONCATEGORY&#39;]
[&#39;我&#39;, &#39;Nh&#39;]
[&#39;訂&#39;, &#39;VC&#39;]
[&#39;那麼多&#39;, &#39;Neqa&#39;]
[&#39; 華航&#39;, &#39;PER&#39;]
[&#39;高層&#39;, &#39;Na&#39;]
[&#39;知道&#39;, &#39;VK&#39;]
[&#39;嗎&#39;, &#39;T&#39;]
=====[ 4 ]=====
華航公布14次專機負責人！開鍘羅雅美、邱彰信
[&#39;華航&#39;, &#39;PER&#39;]
[&#39;公布&#39;, &#39;VE&#39;]
[&#39;14&#39;, &#39;Neu&#39;]
[&#39;次&#39;, &#39;Nf&#39;]
[&#39;專機&#39;, &#39;Na&#39;]
[&#39;負責人&#39;, &#39;Na&#39;]
[&#39;！&#39;, &#39;EXCLAMATIONCATEGORY&#39;]
[&#39;開&#39;, &#39;VC&#39;]
[&#39;鍘羅雅美&#39;, &#39;PER&#39;]
[&#39;、&#39;, &#39;PAUSECATEGORY&#39;]
[&#39;邱彰信&#39;, &#39;PER&#39;]
=====[ 5 ]=====
華航開鍘！公布14次專機負責人羅雅美邱彰信調非主管職| 政治
[&#39;華航&#39;, &#39;PER&#39;]
[&#39;開鍘&#39;, &#39;Na&#39;]
[&#39;！&#39;, &#39;EXCLAMATIONCATEGORY&#39;]
[&#39;公布&#39;, &#39;VE&#39;]
[&#39;14&#39;, &#39;Neu&#39;]
[&#39;次&#39;, &#39;Nf&#39;]
[&#39;專機&#39;, &#39;Na&#39;]
[&#39;負責人&#39;, &#39;Na&#39;]
[&#39;羅雅美&#39;, &#39;PER&#39;]
[&#39;邱彰信調&#39;, &#39;PER&#39;]
[&#39;非&#39;, &#39;VG&#39;]
[&#39;主管&#39;, &#39;Na&#39;]
[&#39;職&#39;, &#39;Na&#39;]
[&#39;|&#39;, &#39;FW&#39;]
[&#39; 政治&#39;, &#39;PER&#39;]
=====[ 6 ]=====
只是賣太多菸？他揭華航最大漏洞
[&#39;只是&#39;, &#39;D&#39;]
[&#39;賣&#39;, &#39;VD&#39;]
[&#39;太多&#39;, &#39;Neqa&#39;]
[&#39;菸&#39;, &#39;Na&#39;]
[&#39;？&#39;, &#39;QUESTIONCATEGORY&#39;]
[&#39;他&#39;, &#39;Nh&#39;]
[&#39;揭&#39;, &#39;VC&#39;]
[&#39;華航&#39;, &#39;ORG&#39;]
[&#39;最&#39;, &#39;Dfa&#39;]
[&#39;大&#39;, &#39;VH&#39;]
[&#39;漏洞&#39;, &#39;Na&#39;]
=====[ 7 ]=====
黃國昌揭私菸案 洪慈庸：綠支持者問「這樣好嗎？」
[&#39;黃國昌&#39;, &#39;PER&#39;]
[&#39;揭&#39;, &#39;VC&#39;]
[&#39;私菸案&#39;, &#39;Na&#39;]
[&#39; 洪慈庸&#39;, &#39;PER&#39;]
[&#39;：&#39;, &#39;COLONCATEGORY&#39;]
[&#39;綠&#39;, &#39;VH&#39;]
[&#39;支持&#39;, &#39;VC&#39;]
[&#39;者&#39;, &#39;Na&#39;]
[&#39;問&#39;, &#39;VE&#39;]
[&#39;「&#39;, &#39;PARENTHESISCATEGORY&#39;]
[&#39;這樣&#39;, &#39;VH&#39;]
[&#39;好&#39;, &#39;VH&#39;]
[&#39;嗎&#39;, &#39;T&#39;]
[&#39;？&#39;, &#39;QUESTIONCATEGORY&#39;]
[&#39;」&#39;, &#39;PARENTHESISCATEGORY&#39;]
=====[ 8 ]=====
時力分裂？黨內同志要約黃國昌見面 結果是......
[&#39;時力&#39;, &#39;Na&#39;]
[&#39;分裂&#39;, &#39;VHC&#39;]
[&#39;？&#39;, &#39;QUESTIONCATEGORY&#39;]
[&#39;黨內&#39;, &#39;Nc&#39;]
[&#39;同志&#39;, &#39;Na&#39;]
[&#39;要&#39;, &#39;D&#39;]
[&#39;約&#39;, &#39;VC&#39;]
[&#39;黃國昌&#39;, &#39;PER&#39;]
[&#39;見面 &#39;, &#39;Na&#39;]
[&#39;結果&#39;, &#39;Na&#39;]
[&#39;是&#39;, &#39;SHI&#39;]
[&#39;......&#39;, &#39;ETCCATEGORY&#39;]
=====[ 9 ]=====
內鬨？洪慈庸：綠基層焦慮黃國昌：追弊案不可看顏色
[&#39;內鬨&#39;, &#39;Na&#39;]
[&#39;？&#39;, &#39;QUESTIONCATEGORY&#39;]
[&#39;洪慈庸&#39;, &#39;PER&#39;]
[&#39;：&#39;, &#39;COLONCATEGORY&#39;]
[&#39;綠&#39;, &#39;VH&#39;]
[&#39;基層&#39;, &#39;A&#39;]
[&#39;焦慮&#39;, &#39;Nv&#39;]
[&#39;黃國昌&#39;, &#39;PER&#39;]
[&#39;：&#39;, &#39;COLONCATEGORY&#39;]
[&#39;追&#39;, &#39;VC&#39;]
[&#39;弊案&#39;, &#39;Na&#39;]
[&#39;不可&#39;, &#39;D&#39;]
[&#39;看&#39;, &#39;VC&#39;]
[&#39;顏色&#39;, &#39;Na&#39;]
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/7954133686080656208/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/7954133686080656208' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/7954133686080656208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/7954133686080656208'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/07/python-3-google-monpa.html' title='Python 3 + Google 新聞爬蟲 + 罔拍 MONPA 中文正體分詞'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-6957941199214466656</id><published>2019-04-30T01:58:00.000+08:00</published><updated>2019-04-30T01:58:19.257+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="爬蟲"/><category scheme="http://www.blogger.com/atom/ns#" term="程式"/><title type='text'>python 抓取上市及上櫃公司清單, 並寫入 MySQL 資料庫</title><content type='html'>不囉嗦，直接看程式碼：

&lt;pre class=&quot;codeblock&quot;&gt;
# 如何獲得上市上櫃股票清單
import requests
import time
import pandas as pd
from sqlalchemy import create_engine
from sqlalchemy.types import NVARCHAR, Date

def getTWSE(str_mode):
     # 設定爬蟲程式的 User_Agent
    headers = {&#39;user-agent&#39;: &#39;Mozilla/5.0 (Macintosh Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36&#39;}
    # 上市: http://isin.twse.com.tw/isin/C_public.jsp?strMode=2
    # 上櫃: http://isin.twse.com.tw/isin/C_public.jsp?strMode=4
    req_url = &quot;http://isin.twse.com.tw/isin/C_public.jsp?strMode=%s&quot; % (str_mode)
    res = requests.get(req_url, headers=headers)
    df = pd.read_html(res.text)[0]

    # 設定column名稱
    df.columns = df.iloc[0]
    # 刪除第一行
    df = df.iloc[1:]
    # 先移除row，再移除column，超過三個NaN則移除
    df = df.dropna(thresh=3, axis=0).dropna(thresh=3, axis=1)
    df[[&#39;有價證券代號&#39;,&#39;名稱&#39;]] = df[&#39;有價證券代號及名稱&#39;].str.split(n=1, expand=True)
    del df[&#39;有價證券代號及名稱&#39;]
    df = df.set_index(&#39;有價證券代號&#39;)
    return df

engine = create_engine(&quot;mysql+pymysql://stockuser:password@127.0.0.1:3306/stockdb&quot;)

dtypedict = {
    &#39;有價證券代號&#39;:NVARCHAR(length=32),
    &#39;上市日&#39;: Date()
}

# 抓取上市公司股票清單, 寫入MySQL &gt; stockdb &gt; listed_code (listed_code table存在時整個取代)
listed_companies = &quot;2&quot;  #上市公司
mydf1 = getTWSE(listed_companies)
mydf1.to_sql(name=&quot;listed_code&quot;, con=engine, if_exists = &#39;replace&#39;, index=True, dtype=dtypedict)

# 先睡個10秒鐘吧
time.sleep(10)

# 抓取上櫃公司股票清單, 寫入MySQL &gt; stockdb &gt; listed_code (append 到 listed_code table)
listed_companies = &quot;4&quot; #上櫃公司
mydf2 = getTWSE(listed_companies)
mydf2.to_sql(name=&quot;listed_code&quot;, con=engine, if_exists = &#39;append&#39;, index=True, dtype=dtypedict)

&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/6957941199214466656/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/6957941199214466656' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/6957941199214466656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/6957941199214466656'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/04/python-mysql_30.html' title='python 抓取上市及上櫃公司清單, 並寫入 MySQL 資料庫'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-4192189659411682162</id><published>2019-04-29T01:04:00.003+08:00</published><updated>2019-04-29T01:11:54.259+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="R"/><title type='text'>python 讀取 MySQL 資料</title><content type='html'>sqlalchemy連結MySQL時，必須先安裝另一模組 pymysql 
&lt;pre class=&quot;shellblock&quot;&gt;
pip install pymysql
&lt;/pre&gt;

接下來利用 python 來讀取先前我們用&lt;a href=&quot;http://tekibrain.blogspot.com/2019/04/r-tidyquant-mysql.html&quot;&gt;R寫入的股價資料庫&lt;/a&gt;吧
&lt;pre class=&quot;codeblock&quot;&gt;
%matplotlib inline

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine(&quot;mysql+pymysql://stockuser:password@127.0.0.1:3306/stockdb&quot;)

sql =&quot;select * from tw1101;&quot;

df = pd.read_sql_query(sql, engine)

print(df)

df.close.plot()
&lt;/pre&gt;

執行結果：
&lt;pre&gt;
  row_names        date       open       high        low      close  \
0            1  2009-01-02  24.193001  24.193001  24.193001  24.193001   
1            2  2009-01-05  25.135599  25.225300  24.597000  24.821400   
2            3  2009-01-06  24.955999  25.135599  24.372499  24.641800   
3            4  2009-01-07  25.090700  25.449800  24.417400  25.225300   
4            5  2009-01-08  24.372499  24.731600  23.789000  24.417400   
5            6  2009-01-09  24.552099  25.090700  23.789000  23.789000   
...
          volume   adjusted  
0            0.0  14.254436  
1     22712510.0  14.624688  
2     20298561.0  14.518868  
3     26370751.0  14.862664  
4     23748492.0  14.386651
...
2536  30751985.0  41.000000  
2537  23165336.0  41.599998  
2538  16390191.0  41.549999  
2539  13459252.0  41.799999  
2540  11300709.0  41.750000  

[2541 rows x 8 columns]
&lt;matplotlib.axes._subplots.AxesSubplot at 0x213f30ae2e8&gt;
&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXFyTrASxSVpfGOdKcC97ydUr9onWUKsXkBRlVCIRTrvLDNo3N6ElLGWBO3gBmmubLBNVtHqsh6TJDFckt2aOD_NQ3MsrqD_KKrfOoRkbC_nrJXoEYqurRPPhulk69WPAhyphenhyphenBm4C1Wl_4c/s1600/1101closeplot.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXFyTrASxSVpfGOdKcC97ydUr9onWUKsXkBRlVCIRTrvLDNo3N6ElLGWBO3gBmmubLBNVtHqsh6TJDFckt2aOD_NQ3MsrqD_KKrfOoRkbC_nrJXoEYqurRPPhulk69WPAhyphenhyphenBm4C1Wl_4c/s1600/1101closeplot.png&quot; data-original-width=&quot;372&quot; data-original-height=&quot;252&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/4192189659411682162/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/4192189659411682162' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/4192189659411682162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/4192189659411682162'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/04/python-mysql.html' title='python 讀取 MySQL 資料'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQXFyTrASxSVpfGOdKcC97ydUr9onWUKsXkBRlVCIRTrvLDNo3N6ElLGWBO3gBmmubLBNVtHqsh6TJDFckt2aOD_NQ3MsrqD_KKrfOoRkbC_nrJXoEYqurRPPhulk69WPAhyphenhyphenBm4C1Wl_4c/s72-c/1101closeplot.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-6827973419975339701</id><published>2019-04-28T23:53:00.000+08:00</published><updated>2019-04-28T23:57:15.499+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2019"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="R"/><category scheme="http://www.blogger.com/atom/ns#" term="爬蟲"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><title type='text'>R tidyquant 抓取股價資料寫入 MySQL 資料庫</title><content type='html'>MySQL上先建立一個新使用者 stockuser ：
&lt;pre class=&quot;shellblock&quot;&gt;mysql -u root -p&lt;/pre&gt;

出現 mysql &gt; 後，開始建立新用者資料並設定密碼：
&lt;pre class=&quot;shellblock&quot;&gt;
mysql &gt;
mysql &gt; GRANT ALL PRIVILEGES ON *.* TO &#39;stockuser&#39;@&#39;%&#39; IDENTIFIED BY &#39;password&#39;;
mysql &gt; FLUSH PRIVILEGES;
mysql &gt; quit;
&lt;/pre&gt;

若MySQL伺服器要開放遠端連結，記得防火牆允入3306埠，另外 MySQL的設定檔也要檢查：
&lt;pre class=&quot;shellblock&quot;&gt;
vi /etc/mysql/my.cnf
&lt;/pre&gt;
記得 bind-address = 127.0.0.1 這行要註解
&lt;pre class=&quot;codeblock&quot;&gt;
#bind-address           = 127.0.0.1
&lt;/pre&gt;
也記得 MySQL 要重新啟動
&lt;pre class=&quot;shellblock&quot;&gt;
service mysql restart
&lt;/pre&gt;

資料庫部分沒問題的話，就可以準備來使用R抓取股價資料~R 如果還沒有安裝過 RMySQL package, 也記得先安裝：
&lt;pre class=&quot;codeblock&quot;&gt;
install.packages(&quot;RMySQL&quot;)
&lt;/pre&gt;
確認安裝完成後，就開始吧...
&lt;pre class=&quot;codeblock&quot;&gt;
library(RMySQL)

library(DBI)
library(tidyquant)
library(dplyr)

cn &lt;- dbConnect(
 drv = RMySQL::MySQL(),
 username=&#39;stockuser&#39;,
 password=&#39;password&#39;,
 host=&#39;127.0.0.1&#39;,
 port = 3306,
 dbname = &quot;stockdb&quot;
 )

#  利用 tidyquant 取得 Yahoo 上的台灣五十股價資料, 寫入 MySQL stockdb &gt; tw{股票代碼}
tw50 &lt;- c(&quot;1101&quot;,&quot;1102&quot;,&quot;1216&quot;) #只有示範三檔股票
for (i in tw50) {
 stockid &lt;- paste(i,&quot;TW&quot;,sep=&quot;.&quot;)
 tblname &lt;- paste(&quot;tw&quot;,i,sep=&quot;&quot;)
 print(stockid)
 sdata &lt;- tq_get(stockid)
 dbWriteTable(cn, name=tblname, value=sdata, overwrite=TRUE)
 Sys.sleep(10) # 每次 Loop 先休息 10 秒
}

# 利用 tidyquant 取得 Yahoo 上的IBM股價資料, 寫入 MySQL stockdb &gt; ibm
ibm &lt;- tq_get(&quot;IBM&quot;)
dbWriteTable(cn, name=&quot;ibm&quot;, value=ibm, overwrite=TRUE)

dbDisconnect(cn) #記得斷開資料庫連線
&lt;/pre&gt;

資料都抓取完成後，MySQL資料庫裡面 stockdb &gt; 就會多個股 table ：
&lt;pre class=&quot;shellblock&quot;&gt;
mysql -u stockuser -p
輸入密碼，登入後...
mysql&gt; use stockdb;
Database changed
mysql&gt; show tables;
+-------------------+
| Tables_in_stockdb |
+-------------------+
| ibm               |
| tw1101            |
| tw1102            |
| tw1216            |
+-------------------+
4 rows in set (0.00 sec)
&lt;/pre&gt;

以後就可以直接從 MySQL 中讀取股價資料來運用：
&lt;pre class=&quot;codeblock&quot;&gt;
# 從 MySQL 取出 IBM 股價資料
cn &lt;- src_mysql(
 user=&#39;stockuser&#39;,
 password=&#39;password&#39;,
 host=&#39;127.0.0.1&#39;,
 port = 3306,
 dbname = &quot;stockdb&quot;
 )

ibm_table &lt;- tbl(cn, &quot;ibm&quot;)
ibm_table

dbDisconnect(cn)
&lt;/pre&gt;
延伸閱讀資料：&lt;br/&gt;
&lt;li/&gt;&lt;a href=&quot;https://blog.davisvaughan.com/2017/05/10/rds-and-r/&quot;&gt;Amazon RDS + R&lt;/a&gt; (其實我是租不起, 所以自建 MySQL...)&lt;br/&gt;
&lt;li/&gt;&lt;a href=&quot;https://waylan25.blogspot.com/2017/01/r-database.html&quot;&gt;R學習筆記 - 資料工程篇(四) Database&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
&lt;hr/&gt;



</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/6827973419975339701/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/6827973419975339701' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/6827973419975339701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/6827973419975339701'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2019/04/r-tidyquant-mysql.html' title='R tidyquant 抓取股價資料寫入 MySQL 資料庫'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北</georss:featurename><georss:point>25.0329694 121.56541770000001</georss:point><georss:box>24.5725269 120.91997070000001 25.493411899999998 122.21086470000002</georss:box></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-1140564680869997330</id><published>2018-11-14T10:26:00.000+08:00</published><updated>2018-11-14T10:26:26.772+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2018"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="組合的力量"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><title type='text'>ubuntu 7-zip 安裝與使用</title><content type='html'>安裝指令&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;sudo apt-get install p7zip-full
&lt;/pre&gt;
&lt;br /&gt;
執行壓縮:
7z a 壓縮檔案 目標來源
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;7z a demo.7z demo_path_or_file
&lt;/pre&gt;
&lt;br /&gt;
執行加密壓縮:
7z a 壓縮檔案 目標來源 -p加密密碼
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;7z a demo.7zp demo_path_or_file -pMYPASSWD
&lt;/pre&gt;
&lt;br /&gt;
執行密碼解壓縮:
7z x 壓縮檔案 -p加密密碼
&lt;br /&gt;
&lt;pre class=&quot;shellblock&quot;&gt;7z x demo.7zp -pMYPASSWD
&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/1140564680869997330/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/1140564680869997330' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/1140564680869997330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/1140564680869997330'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2018/11/ubuntu-7-zip.html' title='ubuntu 7-zip 安裝與使用'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-7252353857051848086</id><published>2018-10-19T01:59:00.002+08:00</published><updated>2018-10-19T01:59:46.757+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="更新"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><title type='text'>一次更新所有 Python Packages</title><content type='html'>適用於 Linux、Mac OS X :&lt;br /&gt;
&lt;br /&gt;
指令 ： &lt;span style=&quot;background-color: yellow; color: blue;&quot;&gt;pip list | cut -d &quot; &quot; -f 1 | xargs -n1 sudo pip install -U&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
參考來源：&lt;a href=&quot;https://stackoverflow.com/questions/2720014/upgrading-all-packages-with-pip&quot; target=&quot;_blank&quot;&gt;stack overflow - Upgrading all packages with pip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/7252353857051848086/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/7252353857051848086' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/7252353857051848086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/7252353857051848086'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2018/10/python-packages.html' title='一次更新所有 Python Packages'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-3078567401684281038</id><published>2018-04-01T04:38:00.000+08:00</published><updated>2018-04-01T04:59:40.719+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2018"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>把 IPython notebook貼上Blogger文章上分享</title><content type='html'>&lt;style type=&quot;text/css&quot;&gt;
.highlight{background: #f8f8f8; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .1em;padding:0em .5em;border-radius: 4px;}
.k{color: #338822; font-weight: bold;}
.kn{color: #338822; font-weight: bold;}
.mi{color: #000000;}
.o{color: #000000;}
.ow{color: #BA22FF;  font-weight: bold;}
.nb{color: #338822;}
.n{color: #000000;}
.s{color: #cc2222;}
.se{color: #cc2222; font-weight: bold;}
.si{color: #C06688; font-weight: bold;}
.nn{color: #4D00FF; font-weight: bold;}
&lt;/style&gt;

&lt;div class=&quot;cell border-box-sizing code_cell rendered&quot;&gt;
&lt;div class=&quot;input&quot;&gt;
&lt;div class=&quot;prompt input_prompt&quot;&gt;In&amp;nbsp;[1]:&lt;/div&gt;
&lt;div class=&quot;inner_cell&quot;&gt;
    &lt;div class=&quot;input_area&quot;&gt;
&lt;div class=&quot; highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;win32com.client&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;time&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;xlApp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;win32com&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;client&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Dispatch&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;Excel.Application&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;xlApp&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Visible&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;workBook&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xlApp&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Workbooks&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Open&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;C:\Users\kenne\Desktop\datelist.xlsx&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;workBook&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ActiveSheet&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Cells&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;now&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;workBook&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ActiveSheet&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Cells&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Value&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;now&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;#SaveChanges = 1 : Save flle&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;# SaveChanges = 0 : Nothing Saved&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;workBook&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Close&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;SaveChanges&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;xlApp&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Quit&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

參考&lt;a href=&quot;http://prooffreaderplus.blogspot.tw/2014/11/how-to-quickly-turn-ipython-notebook.html&quot; target=&quot;new&quot;&gt;此篇(How to quickly turn an IPython notebook into a blog post)&quot;&lt;/a&gt;，將 .ipynb 轉成 HTML code
&lt;pre class=&quot;codeblock&quot;&gt;
!ipython nbconvert --to html --template basic filename.ipynb
&lt;/pre&gt;

接下來就把目錄底下的 filename.html 檔案內的HTML原碼貼上 blogger.com ，然後記得在HTML原碼前面加上底下的CSS碼，就可以囉~

&lt;pre class=&#39;language-css&#39;&gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
.highlight{background: #f8f8f8; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .1em;padding:0em .5em;border-radius: 4px;}
.k{color: #338822; font-weight: bold;}
.kn{color: #338822; font-weight: bold;}
.mi{color: #000000;}
.o{color: #000000;}
.ow{color: #BA22FF;  font-weight: bold;}
.nb{color: #338822;}
.n{color: #000000;}
.s{color: #cc2222;}
.se{color: #cc2222; font-weight: bold;}
.si{color: #C06688; font-weight: bold;}
.nn{color: #4D00FF; font-weight: bold;}
&amp;lt;/style&amp;gt;
&lt;/pre&gt;
&lt;hr/&gt;
同場加映補充資料：&lt;a href=&quot;https://www.opinionatedgeek.com/codecs/htmlencoder&quot; target=&quot;new&quot;&gt;HTML Encoder&lt;/a&gt;

</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/3078567401684281038/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/3078567401684281038' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/3078567401684281038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/3078567401684281038'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2018/04/ipython-notebookblogger.html' title='把 IPython notebook貼上Blogger文章上分享'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-3617684812004412913</id><published>2018-04-01T04:24:00.001+08:00</published><updated>2018-04-01T05:01:39.439+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2018"/><category scheme="http://www.blogger.com/atom/ns#" term="excel"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="開發"/><title type='text'>python +pywin32 操作 Excel</title><content type='html'>&lt;pre class=&quot;codeblock&quot;&gt;
import win32com.client
import time

xlApp = win32com.client.Dispatch(&quot;Excel.Application&quot;)
xlApp.Visible=1

workBook = xlApp.Workbooks.Open(r&quot;C:\Users\tekibrain\Desktop\datelist.xlsx&quot;)
print(str(workBook.ActiveSheet.Cells(1,1)))
now = time.time()
workBook.ActiveSheet.Cells(1, 2).Value = now
#SaveChanges = 1 : Save flle
# SaveChanges = 0 : Nothing Saved
workBook.Close(SaveChanges=1)
xlApp.Quit()
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/3617684812004412913/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/3617684812004412913' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/3617684812004412913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/3617684812004412913'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2018/04/python-win32com-excel.html' title='python +pywin32 操作 Excel'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-3868619678495512519</id><published>2017-12-12T16:15:00.002+08:00</published><updated>2017-12-12T16:31:30.357+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2017"/><category scheme="http://www.blogger.com/atom/ns#" term="arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="esp8266"/><category scheme="http://www.blogger.com/atom/ns#" term="程式"/><category scheme="http://www.blogger.com/atom/ns#" term="設定"/><category scheme="http://www.blogger.com/atom/ns#" term="軟體"/><category scheme="http://www.blogger.com/atom/ns#" term="開發"/><title type='text'>Windows 10 64bits + Arduino IDE + ESP8266 (ESP-01)</title><content type='html'>&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;至 &lt;a href=&quot;https://www.arduino.cc/en/Main/Software&quot;&gt;Arduino.cc&lt;/a&gt; 下載最新版 Arduino IDE (以&lt;a href=&quot;https://www.arduino.cc/download_handler.php?f=/arduino-1.8.5-windows.zip&quot;&gt;1.8.5版&lt;/a&gt;為例)&lt;/li&gt;
&lt;li&gt;將&amp;nbsp;arduino-1.8.5-windows.zip 解壓縮至指定目錄下，安裝好 Arduino IDE&lt;/li&gt;
&lt;li&gt;啟動 Arduino IDE，開啟「檔案 &amp;gt; 偏好設定 (preferences)」&amp;nbsp;視窗&lt;/li&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiacbqT0sP4McExMq3UEZ-vFvO5pPPxuMB68TUkJiNm6Ym2xe2Hy1Y0r4Ec9UQ1M6oaD7Lc1KhWXx91pdamAjcoA97lri_jnT-0qVQ6GAPWAs5PohPzZ9NnAxR77e1iz7d5FrZNadY-51X/s1600/arduino_ide.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;443&quot; data-original-width=&quot;786&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiacbqT0sP4McExMq3UEZ-vFvO5pPPxuMB68TUkJiNm6Ym2xe2Hy1Y0r4Ec9UQ1M6oaD7Lc1KhWXx91pdamAjcoA97lri_jnT-0qVQ6GAPWAs5PohPzZ9NnAxR77e1iz7d5FrZNadY-51X/s320/arduino_ide.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;偏好設定&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;li&gt;在「額外的開發版管理員網址」(Additional Board Manager) 輸入網址：&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://arduino.esp8266.com/stable/package_esp8266com_index.json&quot;&gt;http://arduino.esp8266.com/stable/package_esp8266com_index.json&lt;/a&gt;&lt;/li&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNED6hSl8ZRhF0od2ygE7q_koDWnLMdtVyPw8NWmZs2HBL3n9B90INzThIRXYHShb1tsacsQB_iLohttz94ONyxI9sZfRjej8kAUMa0lxCL1nar2rVCS3tarSGnPzFsr_GdFBxIgC21jho/s1600/arduino_ide_2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;443&quot; data-original-width=&quot;786&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNED6hSl8ZRhF0od2ygE7q_koDWnLMdtVyPw8NWmZs2HBL3n9B90INzThIRXYHShb1tsacsQB_iLohttz94ONyxI9sZfRjej8kAUMa0lxCL1nar2rVCS3tarSGnPzFsr_GdFBxIgC21jho/s320/arduino_ide_2.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;新增 esp8266 套件網址&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/ul&gt;
&lt;li&gt;開啟「工具 (Tools) &amp;gt; 開發板 (Board) &amp;gt; 開發板管理員 (Boards Manager)」後，搜尋 &quot;esp&quot; 並且安裝 esp8266 套件&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZrV4P3QpHw7McYj6W9aSrexXbEaw-ElQmzPYEmszDOqJ1RMakdmFtgvA-Sfy2qty7qmtQkm5lwgezfcILqaANwsSgXcivVdyI4hJX47Lo-FhgQx65PsDmjcQstwZjNVcn-Jy5LrAUKdcp/s1600/arduino_ide_3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;819&quot; data-original-width=&quot;862&quot; height=&quot;303&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZrV4P3QpHw7McYj6W9aSrexXbEaw-ElQmzPYEmszDOqJ1RMakdmFtgvA-Sfy2qty7qmtQkm5lwgezfcILqaANwsSgXcivVdyI4hJX47Lo-FhgQx65PsDmjcQstwZjNVcn-Jy5LrAUKdcp/s320/arduino_ide_3.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;安裝 esp8266 (可以看見其實有錯誤發生)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvPJ6NFN4ZfwLys7JXABCMXoxS4aB0TtxD5fATSQkbUO9poSgfX-u9Q4kv0n7o5TJgIWahIhVrOiV9HmgxJV6LgPGWqWJEyKKDw0sfRis0MEttufJfP2uqzJct2WHfe0bhwob45kh51Vo1/s1600/esp_download.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;443&quot; data-original-width=&quot;786&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvPJ6NFN4ZfwLys7JXABCMXoxS4aB0TtxD5fATSQkbUO9poSgfX-u9Q4kv0n7o5TJgIWahIhVrOiV9HmgxJV6LgPGWqWJEyKKDw0sfRis0MEttufJfP2uqzJct2WHfe0bhwob45kh51Vo1/s320/esp_download.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;正常的套件下載安裝畫面&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/li&gt;
&lt;li&gt;安裝完成後，下次就能選擇 ESP8266 開發板，進行IDE程式開發與上傳功能&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;br /&gt;
後記：&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;如果下載時發生了&quot;&lt;span style=&quot;color: red;&quot;&gt;下載http://downloads.arduino.cc/packages/package_index.jsp時發生錯誤&lt;/span&gt;&quot;的訊息，可以在「檔案 &amp;gt; 偏好設定 &amp;gt; 網路」設定 proxy 來解決。&lt;/li&gt;
&lt;li&gt;網路上有些說法是設定 JAVA IPv4Stack=true 即可:&lt;b&gt;&lt;span style=&quot;color: blue;&quot;&gt; setx _JAVA_OPTIONS -Djava.net.preferIPv4Stack=true&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;不過對我來說似乎沒有用，反而是最簡單的 proxy 解決了我的問題。&lt;/li&gt;
&lt;li&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXTMKWsArfqJqmbcf6JinlGnvjjD7IC_85lcKaZcbWqV5QwBvmlyU3iNSBeLx1aXE2GNJJpvoOiy1nifbbhJSVXdrq_Fd_JQ9e66ooRTdcw-N1C14m_91-Ipm3zF3GM0a4YnMuaiBxLeNP/s1600/arduino_ide_error.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;443&quot; data-original-width=&quot;786&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXTMKWsArfqJqmbcf6JinlGnvjjD7IC_85lcKaZcbWqV5QwBvmlyU3iNSBeLx1aXE2GNJJpvoOiy1nifbbhJSVXdrq_Fd_JQ9e66ooRTdcw-N1C14m_91-Ipm3zF3GM0a4YnMuaiBxLeNP/s320/arduino_ide_error.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;下載套件時的錯誤訊息&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGdrVbCGKntUZReLedkF7-3AWszStbrkq1ipPObtfJ7LrjP3sTo0Rzxg4LoIWP45GuMSVGJTIhHGURWAfSLfdUKk7OQSFB-gBrY47UWtwO0Y9oe7S1FiKPy4PJ4U0LX4znHUFaZxWjC4SQ/s1600/arduino_ide_error_java_ipv4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;512&quot; data-original-width=&quot;979&quot; height=&quot;167&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGdrVbCGKntUZReLedkF7-3AWszStbrkq1ipPObtfJ7LrjP3sTo0Rzxg4LoIWP45GuMSVGJTIhHGURWAfSLfdUKk7OQSFB-gBrY47UWtwO0Y9oe7S1FiKPy4PJ4U0LX4znHUFaZxWjC4SQ/s320/arduino_ide_error_java_ipv4.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;設定 Java IPv4Stack ，不過對我來說沒用處&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br/&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR_aEB9VI1BSD1wd8oZtmbWE7s0xIl0ri2eDpReagpi5t9Yjxz7geLWyzv6iM95KMqY7i0NqgYLFA95mDqm8ckr5DecabfHJKg7GqD_qx9KiF507SAhPcbV2cplyQf79L6AMs0hiNGWO-o/s1600/arduino_ide_4_proxy.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;704&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR_aEB9VI1BSD1wd8oZtmbWE7s0xIl0ri2eDpReagpi5t9Yjxz7geLWyzv6iM95KMqY7i0NqgYLFA95mDqm8ckr5DecabfHJKg7GqD_qx9KiF507SAhPcbV2cplyQf79L6AMs0hiNGWO-o/s320/arduino_ide_4_proxy.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;設定 proxy&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/3868619678495512519/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/3868619678495512519' title='5 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/3868619678495512519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/3868619678495512519'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2017/12/windows-10-64bits-arduino-ide-esp8266.html' title='Windows 10 64bits + Arduino IDE + ESP8266 (ESP-01)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiacbqT0sP4McExMq3UEZ-vFvO5pPPxuMB68TUkJiNm6Ym2xe2Hy1Y0r4Ec9UQ1M6oaD7Lc1KhWXx91pdamAjcoA97lri_jnT-0qVQ6GAPWAs5PohPzZ9NnAxR77e1iz7d5FrZNadY-51X/s72-c/arduino_ide.PNG" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4636464703125334513.post-5277482578966903337</id><published>2017-09-19T16:14:00.002+08:00</published><updated>2017-09-19T16:14:28.706+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2017"/><category scheme="http://www.blogger.com/atom/ns#" term="apple"/><category scheme="http://www.blogger.com/atom/ns#" term="ios"/><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><title type='text'>新 iPhone 是否會熱銷?</title><content type='html'>&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG0jN0H5uBybgJDxEzH1o_T-O0VPnxaIXuJ1Znz9Ca8ZrTR4vhu_GJASrHFc1hr-qOfXVX17ZcXBlGPx6bJBfyhh3vFEYSTcQm4W5GzcBMmFBNYfq-oovq8Mbhc2-tPl4Ihn-fmSdzXHMZ/s1600/iphone_trends.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;756&quot; data-original-width=&quot;1454&quot; height=&quot;331&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG0jN0H5uBybgJDxEzH1o_T-O0VPnxaIXuJ1Znz9Ca8ZrTR4vhu_GJASrHFc1hr-qOfXVX17ZcXBlGPx6bJBfyhh3vFEYSTcQm4W5GzcBMmFBNYfq-oovq8Mbhc2-tPl4Ihn-fmSdzXHMZ/s640/iphone_trends.JPG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Google趨勢比較結果&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;div&gt;
市場是不少看衰此次 iPhone 8/iPhone X的消息與傳言，就連股市裏相關的蘋果概念股一時間股價也被看空。那到底銷售情況會如何呢？&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
沒有甚麼大數據分析能力，但&lt;a href=&quot;https://trends.google.com.tw/trends/explore?date=all&amp;amp;q=iphone,iphone%206,iphone%207,iphone%208,iphone%20X&quot; target=&quot;_blank&quot;&gt;Google Trends比較&lt;/a&gt;一下或許能告訴我們一些&lt;a href=&quot;https://trends.google.com.tw/trends/explore?date=all&amp;amp;q=iphone,iphone%206,iphone%207,iphone%208,iphone%20X&quot; target=&quot;_blank&quot;&gt;答案&lt;/a&gt;。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
#&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://tekibrain.blogspot.com/feeds/5277482578966903337/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/4636464703125334513/5277482578966903337' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/5277482578966903337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4636464703125334513/posts/default/5277482578966903337'/><link rel='alternate' type='text/html' href='http://tekibrain.blogspot.com/2017/09/iphone.html' title='新 iPhone 是否會熱銷?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG0jN0H5uBybgJDxEzH1o_T-O0VPnxaIXuJ1Znz9Ca8ZrTR4vhu_GJASrHFc1hr-qOfXVX17ZcXBlGPx6bJBfyhh3vFEYSTcQm4W5GzcBMmFBNYfq-oovq8Mbhc2-tPl4Ihn-fmSdzXHMZ/s72-c/iphone_trends.JPG" height="72" width="72"/><thr:total>0</thr:total></entry></feed>