{"id":376,"date":"2026-10-14T13:10:03","date_gmt":"2026-10-14T13:10:03","guid":{"rendered":"https:\/\/millimeters.to\/?page_id=376"},"modified":"2026-10-14T13:10:04","modified_gmt":"2026-10-14T13:10:04","slug":"recipe-scaler","status":"publish","type":"page","link":"https:\/\/millimeters.to\/es\/recipe-scaler\/","title":{"rendered":"Recipe Scaler"},"content":{"rendered":"    <div class=\"mmc-rs-page\">\n\n      <h1>Recipe <span class=\"mmc-rs-accent\">Scaler<\/span><\/h1>\n      <p class=\"mmc-rs-lede\">Paste a recipe, say how many it should serve, and get tidy amounts back. Halve it, double it or resize it for a crowd.<\/p>\n\n      <div class=\"mmc-rs-card\">\n        <div class=\"mmc-rs-row\">\n          <div class=\"mmc-rs-field\"><label for=\"mmc-rs-from\">Original serves<\/label><input id=\"mmc-rs-from\" class=\"mmc-rs-input\" type=\"text\" inputmode=\"decimal\" value=\"4\"><\/div>\n          <div class=\"mmc-rs-field\"><label for=\"mmc-rs-to\">I want to serve<\/label><input id=\"mmc-rs-to\" class=\"mmc-rs-input\" type=\"text\" inputmode=\"decimal\" value=\"10\"><\/div>\n          <div class=\"mmc-rs-field\"><label for=\"mmc-rs-units\">Units<\/label>\n            <select id=\"mmc-rs-units\" class=\"mmc-rs-input\">\n              <option value=\"keep\">Keep as written<\/option>\n              <option value=\"metric\">Convert to metric (ml, g)<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n        <p class=\"mmc-rs-or\">Or enter a multiplier instead: <input id=\"mmc-rs-mult\" class=\"mmc-rs-input mmc-rs-mini\" type=\"text\" inputmode=\"decimal\" placeholder=\"e.g. 0.5\" aria-label=\"Multiplier\"><\/p>\n\n        <label for=\"mmc-rs-text\">Paste ingredients, one per line<\/label>\n        <textarea id=\"mmc-rs-text\" class=\"mmc-rs-input mmc-rs-ta\" rows=\"8\" spellcheck=\"false\">1\u00bd cups all-purpose flour\n2 tbsp butter, melted\n\u00be tsp baking powder\n250 g sugar\n2 large eggs\n1 cup milk\n1 tsp vanilla extract\na pinch of salt<\/textarea>\n\n        <div class=\"mmc-rs-head\" id=\"mmc-rs-head\"><\/div>\n        <div class=\"mmc-rs-out\" id=\"mmc-rs-out\" aria-live=\"polite\"><\/div>\n        <div class=\"mmc-rs-actions\"><button type=\"button\" class=\"mmc-rs-btn\" id=\"mmc-rs-copy\">Copy scaled list<\/button><span id=\"mmc-rs-copied\" class=\"mmc-rs-copied\" hidden>Copied<\/span><\/div>\n        <div class=\"mmc-rs-note\" id=\"mmc-rs-note\" hidden><\/div>\n      <\/div>\n\n      <h2>How to use the scaler<\/h2>\n      <p>Type or paste your ingredients with the amount first, for example <em>1\u00bd cups flour<\/em>, <em>250 g sugar<\/em> or <em>3 eggs<\/em>. Fractions can be typed as 1\/2, 1 1\/2 or \u00bd, and ranges such as <em>2-3 cloves<\/em> are scaled at both ends. Lines the scaler cannot read, such as \"salt to taste\", are kept as written and left unscaled.<\/p>\n\n      <h2>What to watch when you scale<\/h2>\n      <ul class=\"mmc-rs-list\">\n        <li><strong>Raising agents and salt.<\/strong> Baking powder, baking soda, yeast and salt do not always scale in a straight line. For big increases, start with a little less and adjust.<\/li>\n        <li><strong>Spices.<\/strong> Strong spices such as chilli, cayenne and cloves can become overpowering. Scale them a little cautiously and taste as you go.<\/li>\n        <li><strong>Eggs.<\/strong> If the scaled number is not whole, round to the nearest whole egg or beat one egg and measure it.<\/li>\n        <li><strong>Pan size and time.<\/strong> A bigger batch needs a bigger pan and usually longer cooking. Use the <a href=\"\/baking-pan-converter\/\">baking pan converter<\/a> to match the pan.<\/li>\n      <\/ul>\n\n              <style>\n          .mmc-dp h3 { font-size: 17px; font-weight: 700; letter-spacing: -.01em; margin: 24px 0 6px; color: #0a0e1f; }\n          .mmc-dp ul, .mmc-dp ol { max-width: 65ch; color: #3a4056; line-height: 1.65; padding-left: 22px; margin: 0 0 14px; }\n          .mmc-dp li { margin-bottom: 6px; }\n          .mmc-dp-ex { background: #f7f8ff; border: 1px solid #e4e8ff; border-left: 4px solid #2b3dff; border-radius: 12px; padding: 14px 18px 4px; margin: 0 0 18px; max-width: 70ch; }\n          .mmc-dp-why { background: #fff8e6; border: 1px solid #ffe2a3; border-left: 4px solid #e8a400; border-radius: 12px; padding: 14px 18px 4px; margin: 0 0 18px; max-width: 70ch; }\n          .mmc-dp-tag { display: block; font-family: ui-monospace, \"JetBrains Mono\", monospace; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: #2b3dff; margin-bottom: 6px; }\n          .mmc-dp-why .mmc-dp-tag { color: #9a6a00; }\n          .mmc-dp-table-wrap { overflow-x: auto; border: 1px solid #ddE1ee; border-radius: 14px; background: #fff; margin: 0 0 18px; }\n          .mmc-dp-table { width: 100%; border-collapse: collapse; font-size: 14px; }\n          .mmc-dp-table th { text-align: left; padding: 10px 12px; background: #eef0fb; color: #5a6178; font-family: ui-monospace, monospace; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; }\n          .mmc-dp-table td { padding: 9px 12px; border-bottom: 1px solid #eef0fb; }\n          .mmc-dp-table td:first-child { font-weight: 600; }\n          .mmc-dp-rel { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin-bottom: 18px; }\n          .mmc-dp-rel a { display: block; padding: 13px 15px; border: 1px solid #ddE1ee; border-radius: 12px; background: #fff; text-decoration: none; color: #0a0e1f; }\n          .mmc-dp-rel a:hover { border-color: #2b3dff; box-shadow: 0 0 0 3px #e4e8ff; }\n          .mmc-dp-rel b { display: block; color: #1b2bd6; margin-bottom: 2px; }\n          .mmc-dp-rel span { font-size: 13px; color: #5a6178; }\n        <\/style>\n            <div class=\"mmc-dp\">\n\n      <h2>A worked example: pancakes for 4, scaled to 10<\/h2>\n      <div class=\"mmc-dp-ex\">\n        <span class=\"mmc-dp-tag\">Worked example<\/span>\n        <p>The recipe serves 4 and you've got 10 people. The multiplier is 10 \u00f7 4 = <strong>2.5<\/strong>. Here's what happens to each line:<\/p>\n      <\/div>\n      <div class=\"mmc-dp-table-wrap\">\n        <table class=\"mmc-dp-table\">\n          <thead><tr><th>Original<\/th><th>\u00d7 2.5<\/th><th>Note<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td>1\u00bd cups flour<\/td><td>3\u00be cups<\/td><td><\/td><\/tr>\n            <tr><td>1 tbsp sugar<\/td><td>2\u00bd tbsp<\/td><td><\/td><\/tr>\n            <tr><td>1 tbsp baking powder<\/td><td>2\u00bd tbsp<\/td><td>Start a little under and test<\/td><\/tr>\n            <tr><td>\u00bc tsp salt<\/td><td>\u215d tsp<\/td><td>About \u00bd tsp plus a pinch<\/td><\/tr>\n            <tr><td>1\u00bc cups milk<\/td><td>3\u215b cups<\/td><td><\/td><\/tr>\n            <tr><td>3 tbsp butter<\/td><td>7\u00bd tbsp<\/td><td>A little under \u00bd cup<\/td><\/tr>\n            <tr><td>1 egg<\/td><td>2\u00bd eggs<\/td><td>Use 2 and add a splash of milk, or beat 3 and use most of it<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n      <p>Paste your own ingredients into the tool above and it does exactly this, with the fractions tidied up.<\/p>\n\n      <h2>What doesn't scale in a straight line<\/h2>\n      <p>Multiplying the ingredients is the easy part. These are the things that don't just multiply:<\/p>\n      <ul>\n        <li><strong>Cooking time.<\/strong> A double batch of cookies takes the same time per tray. A bigger roast or a deeper cake takes longer. Go by how it looks and feels, not by the clock.<\/li>\n        <li><strong>The size of the pan or pot.<\/strong> Soups and sauces reduce differently in a bigger pot, because there's a different surface for the water to leave from. Use the baking pan converter for cakes and bakes.<\/li>\n        <li><strong>Raising agents.<\/strong> Baking powder, baking soda and yeast can taste soapy or rise unevenly when simply multiplied. For big increases, go a little under and test.<\/li>\n        <li><strong>Salt and strong spices.<\/strong> Chilli, cayenne and cloves can take over. Add most of it, then taste.<\/li>\n        <li><strong>Frying and oven space.<\/strong> A crowded pan or tray steams instead of browning. Cook in batches.<\/li>\n        <li><strong>Yeast dough.<\/strong> A bigger dough takes longer to warm up and can ferment at a different rate, so watch the dough, not the clock.<\/li>\n      <\/ul>\n\n      <h2>Halving and doubling cheat sheet<\/h2>\n      <div class=\"mmc-dp-table-wrap\">\n        <table class=\"mmc-dp-table\">\n          <thead><tr><th>Original<\/th><th>Half<\/th><th>Double<\/th><\/tr><\/thead>\n          <tbody>\n            <tr><td>1 cup<\/td><td>\u00bd cup<\/td><td>2 cups<\/td><\/tr>\n            <tr><td>\u00be cup<\/td><td>6 tbsp<\/td><td>1\u00bd cups<\/td><\/tr>\n            <tr><td>\u2154 cup<\/td><td>\u2153 cup<\/td><td>1\u2153 cups<\/td><\/tr>\n            <tr><td>\u00bd cup<\/td><td>\u00bc cup<\/td><td>1 cup<\/td><\/tr>\n            <tr><td>\u2153 cup<\/td><td>2 tbsp + 2 tsp<\/td><td>\u2154 cup<\/td><\/tr>\n            <tr><td>\u00bc cup<\/td><td>2 tbsp<\/td><td>\u00bd cup<\/td><\/tr>\n            <tr><td>1 tbsp<\/td><td>1\u00bd tsp<\/td><td>2 tbsp<\/td><\/tr>\n            <tr><td>1 tsp<\/td><td>\u00bd tsp<\/td><td>2 tsp<\/td><\/tr>\n            <tr><td>\u00bd tsp<\/td><td>\u00bc tsp<\/td><td>1 tsp<\/td><\/tr>\n            <tr><td>\u00bc tsp<\/td><td>\u215b tsp (a pinch)<\/td><td>\u00bd tsp<\/td><\/tr>\n            <tr><td>1 large egg<\/td><td>1\u00bd tbsp beaten egg<\/td><td>2 eggs<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n      <\/div>\n\n      <h2>Cooking for one or two<\/h2>\n      <p>Scaling down is where most people go wrong, because the ingredients shrink but the pan, the pot and the oven don't. A few things help:<\/p>\n      <ul>\n        <li>Use a smaller pan or pot, so the food isn't spread thin and dries out.<\/li>\n        <li>Expect things to cook faster, and start checking early.<\/li>\n        <li>For a part egg, beat one egg in a cup and measure out the amount you need. A large egg is about 3 tablespoons.<\/li>\n        <li>If a recipe is awkward to scale, make the full amount and freeze the rest in portions.<\/li>\n      <\/ul>\n\n      <div class=\"mmc-dp-why\">\n        <span class=\"mmc-dp-tag\">Why this matters<\/span>\n        <p>When a scaled recipe goes wrong, it's rarely the quantities. It's usually the heat, the time or the size of the pan. The tool gets the numbers right. The notes above keep the rest on track.<\/p>\n      <\/div>\n\n      <h2>Related tools<\/h2><div class=\"mmc-dp-rel\"><a href=\"https:\/\/millimeters.to\/baking-pan-converter\/\"><b>Baking pan converter<\/b><span>Swap one baking pan for another and adjust the recipe<\/span><\/a><\/div>\n    <\/div>\n          <h2>Frequently asked questions<\/h2>\n              <details open>\n          <summary>How do I halve or double a recipe?<\/summary>\n          <p>Multiply every ingredient by 0.5 to halve a recipe or by 2 to double it. Paste the ingredients into the scaler, set the original servings and the servings you want, and it does the multiplication and tidies the result into usable fractions such as \u00be cup and 1\u00bd tbsp.<\/p>\n        <\/details>\n              <details>\n          <summary>How do I scale a recipe for a different number of servings?<\/summary>\n          <p>Divide the number of servings you want by the number the recipe makes. A recipe for 4 that you want to serve 10 needs a factor of 10 \u00f7 4 = 2.5, so 1\u00bd cups of flour becomes 3\u00be cups.<\/p>\n        <\/details>\n              <details>\n          <summary>Do all ingredients scale in a straight line?<\/summary>\n          <p>Most do, but not all. Baking powder, baking soda, yeast, salt and strong spices can taste or behave differently in large batches, so scale them a little cautiously and adjust to taste. Cooking time, pan size and oven temperature usually change too: a larger batch in a deeper dish takes longer, while a smaller batch cooks faster.<\/p>\n        <\/details>\n              <details>\n          <summary>What do I do with a recipe that needs half an egg?<\/summary>\n          <p>Beat one egg, measure it (a large egg is about 50 ml or 3 tablespoons) and use half. For a recipe scaled by 1.5, use one whole egg plus half of a second.<\/p>\n        <\/details>\n              <details>\n          <summary>How do I change the pan size when I scale a recipe?<\/summary>\n          <p>A bigger or smaller batch needs a pan with a matching volume. Use the baking pan converter to compare your pan with the one the recipe calls for.<\/p>\n        <\/details>\n      \n    <\/div>\n\n    <script>\n    (function () {\n      var UNICODE = { '\u00bc': 0.25, '\u00bd': 0.5, '\u00be': 0.75, '\u2153': 1 \/ 3, '\u2154': 2 \/ 3, '\u215b': 0.125, '\u215c': 0.375, '\u215d': 0.625, '\u215e': 0.875, '\u2155': 0.2, '\u2156': 0.4, '\u2157': 0.6, '\u2158': 0.8, '\u2159': 1 \/ 6, '\u215a': 5 \/ 6 };\n      var UCLASS = '[\u00bc\u00bd\u00be\u2153\u2154\u215b\u215c\u215d\u215e\u2155\u2156\u2157\u2158\u2159\u215a]';\n\n      \/\/ unit table: canonical -> { type, regex words }\n      var UNITS = [\n        ['tbsp', \/^(tablespoons?|tbsps?|tbs|tbl)\\b\\.?\/i],\n        ['tsp',  \/^(teaspoons?|tsps?)\\b\\.?\/i],\n        ['cup',  \/^(cups?|c)\\b\\.?\/i],\n        ['ml',   \/^(millilit(?:re|er)s?|ml)\\b\\.?\/i],\n        ['l',    \/^(lit(?:re|er)s?|l)\\b\\.?\/i],\n        ['kg',   \/^(kilograms?|kgs?|kilos?)\\b\\.?\/i],\n        ['g',    \/^(grams?|g|gr|gm)\\b\\.?\/i],\n        ['oz',   \/^(ounces?|oz)\\b\\.?\/i],\n        ['lb',   \/^(pounds?|lbs?)\\b\\.?\/i],\n        ['floz', \/^(fl\\.?\\s?oz|fluid ounces?)\\b\\.?\/i],\n        ['pint', \/^(pints?|pt)\\b\\.?\/i],\n        ['quart',\/^(quarts?|qt)\\b\\.?\/i],\n        ['stick',\/^(sticks?)\\b\/i]\n      ];\n      var COUNT_WORDS = \/^(cloves?|cans?|tins?|packs?|packages?|slices?|pieces?|bunch(?:es)?|sprigs?|heads?|stalks?|pinch(?:es)?|dash(?:es)?|handfuls?|large|medium|small|whole)\\b\/i;\n      var CAUTION = \/(baking powder|baking soda|bicarb|bicarbonate|yeast|salt|cayenne|chil+i|chilli|pepper flakes|ground cloves|nutmeg|cinnamon|cumin|paprika|curry|turmeric|allspice|ginger|cardamom|mustard powder|garlic powder)\/i;\n      var CAUTION_RAISE = \/(baking powder|baking soda|bicarb|bicarbonate|yeast)\/i;\n\n      function parseNumber(str) {\n        \/\/ returns { value, rest } or null; handles \"1 1\/2\", \"1\u00bd\", \"\u00bd\", \"3\/4\", \"1.5\", \"1,5\", \"2-3\", \"2 to 3\"\n        var s = str.replace(\/^\\s+\/, '');\n        var re = new RegExp('^(\\\\d+)?\\\\s*(' + UCLASS + ')|^(\\\\d+)\\\\s+(\\\\d+)\\\\s*\/\\\\s*(\\\\d+)|^(\\\\d+)\\\\s*\/\\\\s*(\\\\d+)|^(\\\\d+(?:[.,]\\\\d+)?)');\n        var m = re.exec(s);\n        if (!m) return null;\n        var v, used = m[0].length;\n        if (m[2]) v = (m[1] ? parseInt(m[1], 10) : 0) + UNICODE[m[2]];\n        else if (m[3]) v = parseInt(m[3], 10) + parseInt(m[4], 10) \/ parseInt(m[5], 10);\n        else if (m[6]) v = parseInt(m[6], 10) \/ parseInt(m[7], 10);\n        else v = parseFloat(m[8].replace(',', '.'));\n        return { value: v, rest: s.slice(used) };\n      }\n\n      function parseLine(line) {\n        var raw = line;\n        var s = line.replace(\/^\\s*[-*\u2022\u00b7\u25a2\u2610\u25a1]\\s*\/, '').trim();\n        if (!s) return { blank: true };\n        var a = parseNumber(s);\n        if (!a) return { raw: raw, bad: true, text: s };\n        var vals = [a.value], rest = a.rest;\n        var rng = \/^\\s*(?:-|\u2013|\u2014|to)\\s*\/i.exec(rest);\n        if (rng) {\n          var b = parseNumber(rest.slice(rng[0].length));\n          if (b) { vals.push(b.value); rest = b.rest; }\n        }\n        rest = rest.replace(\/^\\s+\/, '');\n        \/\/ \"(about 200 g)\" style trailing notes are kept in the name\n        var unit = null, um = null;\n        for (var i = 0; i < UNITS.length; i++) {\n          um = UNITS[i][1].exec(rest);\n          if (um) { unit = UNITS[i][0]; rest = rest.slice(um[0].length); break; }\n        }\n        \/\/ case-sensitive guard for single-letter units: avoid reading \"c\" in \"cinnamon\"\n        rest = rest.replace(\/^\\s*(of\\s+)?\/i, '');\n        return { vals: vals, unit: unit, name: rest.trim(), raw: raw };\n      }\n\n      var FR = [[0, ''], [1 \/ 8, '\u215b'], [1 \/ 4, '\u00bc'], [1 \/ 3, '\u2153'], [3 \/ 8, '\u215c'], [1 \/ 2, '\u00bd'], [5 \/ 8, '\u215d'], [2 \/ 3, '\u2154'], [3 \/ 4, '\u00be'], [7 \/ 8, '\u215e'], [1, '#']];\n      function frac(x, coarse) {\n        if (x < 0.0625) return '0';\n        var whole = Math.floor(x + 1e-9), f = x - whole, best = '', bd = 9;\n        var set = coarse ? [[0, ''], [1 \/ 4, '\u00bc'], [1 \/ 3, '\u2153'], [1 \/ 2, '\u00bd'], [2 \/ 3, '\u2154'], [3 \/ 4, '\u00be'], [1, '#']] : FR;\n        set.forEach(function (p) { var d = Math.abs(f - p[0]); if (d < bd) { bd = d; best = p[1]; } });\n        if (best === '#') { whole += 1; best = ''; }\n        var out = (whole > 0 ? whole : '') + best;\n        return out || '0';\n      }\n      function dec(x, d) { return String(parseFloat(x.toFixed(d === undefined ? 1 : d))); }\n      function niceNum(x) { return x >= 100 ? String(Math.round(x \/ 5) * 5) : x >= 10 ? dec(x, 0) : dec(x, 1); }\n\n      function formatSpoonCup(unit, qty, metric) {\n        \/\/ normalise to tsp, then express in the biggest sensible unit\n        var tsp = unit === 'tsp' ? qty : unit === 'tbsp' ? qty * 3 : qty * 48;\n        if (metric) {\n          var ml = tsp * 4.92892;\n          return ml >= 1000 ? niceNum(ml \/ 1000) + ' l' : (ml < 20 ? dec(ml, 1) : niceNum(ml)) + ' ml';\n        }\n        if (tsp >= 12) {   \/\/ 4 tbsp or more: use cups when a cup fraction represents it accurately\n          var cf = tsp \/ 48;\n          var pick = function (set) {\n            var whole = Math.floor(cf + 1e-9), f = cf - whole, best = null, bd = 9;\n            set.forEach(function (p) { var d = Math.abs(f - p[0]); if (d < bd) { bd = d; best = p; } });\n            var v = whole + best[0], t = best[1] === '#' ? String(whole + 1) : (whole > 0 ? whole : '') + best[1];\n            if (best[1] === '#') v = whole + 1;\n            return { v: v, t: t || '0' };\n          };\n          var coarse = pick([[0, ''], [1 \/ 4, '\u00bc'], [1 \/ 3, '\u2153'], [1 \/ 2, '\u00bd'], [2 \/ 3, '\u2154'], [3 \/ 4, '\u00be'], [1, '#']]);\n          var fine = pick(FR);\n          var use = null;\n          if (Math.abs(coarse.v * 48 - tsp) <= 0.5) use = coarse;\n          else if (tsp >= 24 && Math.abs(fine.v * 48 - tsp) <= 2.5) use = fine;\n          if (use) return use.t + ' cup' + (cf > 1.06 ? 's' : '');\n        }\n        if (tsp >= 3) return frac(tsp \/ 3) + ' tbsp';\n        return frac(tsp) + ' tsp';\n      }\n\n      function formatQty(p, k, metric) {\n        var vals = p.vals.map(function (v) { return v * k; });\n        var unit = p.unit;\n        var f = function (v) {\n          if (unit === 'tsp' || unit === 'tbsp' || unit === 'cup') return formatSpoonCup(unit, v, metric);\n          if (unit === 'g') return v >= 1000 ? dec(v \/ 1000, 2) + ' kg' : niceNum(v) + ' g';\n          if (unit === 'kg') return dec(v, 2) + ' kg';\n          if (unit === 'ml') return v >= 1000 ? dec(v \/ 1000, 2) + ' l' : niceNum(v) + ' ml';\n          if (unit === 'l') return dec(v, 2) + ' l';\n          if (unit === 'oz') return metric ? niceNum(v * 28.3495) + ' g' : dec(v, 1) + ' oz';\n          if (unit === 'lb') return metric ? niceNum(v * 453.592) + ' g' : dec(v, 2) + ' lb';\n          if (unit === 'floz') return metric ? niceNum(v * 29.5735) + ' ml' : dec(v, 1) + ' fl oz';\n          if (unit === 'pint') return metric ? niceNum(v * 473.176) + ' ml' : frac(v) + ' pint' + (v > 1.06 ? 's' : '');\n          if (unit === 'quart') return metric ? niceNum(v * 946.353) + ' ml' : frac(v) + ' quart' + (v > 1.06 ? 's' : '');\n          if (unit === 'stick') return metric ? niceNum(v * 113.4) + ' g' : frac(v) + ' stick' + (v > 1.06 ? 's' : '');\n          return null;\n        };\n        var parts = vals.map(f);\n        if (unit && parts[0] === null) unit = null;\n        if (unit) return { text: parts.join('\u2013'), whole: false };\n        \/\/ plain counts\n        var txt = vals.map(function (v) { return Math.abs(v - Math.round(v)) < 0.05 ? String(Math.round(v)) : frac(v, true); }).join('\u2013');\n        var fractional = vals.some(function (v) { return Math.abs(v - Math.round(v)) >= 0.05; });\n        return { text: txt, whole: fractional };\n      }\n\n      var el = function (id) { return document.getElementById(id); };\n      var lastText = '';\n\n      function esc(s) { return s.replace(\/[&<>\"]\/g, function (c) { return { '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]; }); }\n\n      function run() {\n        var from = parseFloat(el('mmc-rs-from').value.replace(',', '.')), to = parseFloat(el('mmc-rs-to').value.replace(',', '.'));\n        var mult = parseFloat(el('mmc-rs-mult').value.replace(',', '.'));\n        var k = (mult > 0) ? mult : (from > 0 && to > 0 ? to \/ from : 0);\n        var metric = el('mmc-rs-units').value === 'metric';\n        var out = el('mmc-rs-out'), head = el('mmc-rs-head'), note = el('mmc-rs-note');\n        if (!(k > 0)) { head.textContent = 'Enter the servings or a multiplier'; out.innerHTML = ''; note.hidden = true; return; }\n        head.innerHTML = 'Scaled \u00d7 ' + dec(k, 3) + (mult > 0 ? '' : ' (' + dec(from, 2) + ' \u2192 ' + dec(to, 2) + ' servings)');\n        var lines = el('mmc-rs-text').value.split(\/\\r?\\n\/), html = '', plain = [], cautions = [], bad = 0, eggs = false;\n        lines.forEach(function (ln) {\n          var p = parseLine(ln);\n          if (p.blank) return;\n          if (p.bad) { bad++; html += '<div class=\"mmc-rs-line mmc-rs-bad\"><span class=\"mmc-rs-o\">' + esc(p.text) + '<\/span><span class=\"mmc-rs-n\">not scaled<\/span><\/div>'; plain.push(p.text); return; }\n          var q = formatQty(p, k, metric);\n          var name = p.name, flag = '';\n          if (q.whole) { flag = ' <span class=\"mmc-rs-flag\" title=\"Not a whole number\">round<\/span>'; if (\/\\begg\/i.test(name)) eggs = true; }\n          if (CAUTION.test(name) && (k >= 2 || k <= 0.5)) { flag += ' <span class=\"mmc-rs-flag\" title=\"Does not always scale in a straight line\">\u26a0<\/span>'; cautions.push(CAUTION_RAISE.test(name) ? 'raise' : 'spice'); }\n          var origText = ln.replace(\/^\\s*[-*\u2022\u00b7\u25a2\u2610\u25a1]\\s*\/, '').trim();\n          html += '<div class=\"mmc-rs-line\"><span class=\"mmc-rs-o\">' + esc(origText) + '<\/span><span class=\"mmc-rs-n\">' + esc(q.text) + ' ' + esc(name) + flag + '<\/span><\/div>';\n          plain.push(q.text + ' ' + name);\n        });\n        out.innerHTML = html;\n        lastText = plain.join('\\n');\n        var msgs = [];\n        if (cautions.length) msgs.push(cautions.indexOf('raise') >= 0 ? '\u26a0 Raising agents, salt and strong spices do not always scale in a straight line. For a big change, start a little lower and adjust.' : '\u26a0 Salt and strong spices do not always scale in a straight line. Start a little lower and taste.');\n        if (eggs) msgs.push('For a part egg, beat one egg and measure it (a large egg is about 3 tablespoons).');\n        if (Math.abs(k - 1) > 0.05) msgs.push('Cooking time and pan size usually change too. A bigger batch needs a bigger pan and more time.');\n        if (bad) msgs.push(bad + ' line' + (bad > 1 ? 's' : '') + ' could not be read and ' + (bad > 1 ? 'were' : 'was') + ' left as written.');\n        note.innerHTML = msgs.map(function (m) { return '<p>' + m + '<\/p>'; }).join('');\n        note.hidden = !msgs.length;\n      }\n\n      ['mmc-rs-from', 'mmc-rs-to', 'mmc-rs-mult', 'mmc-rs-text'].forEach(function (id) { el(id).addEventListener('input', run); });\n      el('mmc-rs-units').addEventListener('change', run);\n      el('mmc-rs-copy').addEventListener('click', function () {\n        var done = function () { var c = el('mmc-rs-copied'); c.hidden = false; setTimeout(function () { c.hidden = true; }, 1500); };\n        if (navigator.clipboard && navigator.clipboard.writeText) navigator.clipboard.writeText(lastText).then(done, function () {});\n        else { var t = document.createElement('textarea'); t.value = lastText; document.body.appendChild(t); t.select(); try { document.execCommand('copy'); done(); } catch (e) {} document.body.removeChild(t); }\n      });\n      window.__mmcRs = { run: run };\n      run();\n    })();\n    <\/script>\n\n    <style>\n      .mmc-rs-page { max-width: 760px; margin: 0 auto; color: #0a0e1f; }\n      .mmc-rs-page h1 { font-size: 34px; line-height: 1.15; letter-spacing: -.025em; font-weight: 700; margin: 0 0 12px; }\n      .mmc-rs-accent { color: #2b3dff; }\n      .mmc-rs-lede { font-size: 17px; color: #5a6178; max-width: 60ch; margin-bottom: 24px; line-height: 1.55; }\n      .mmc-rs-card { background: #fff; border: 1px solid #ddE1ee; border-radius: 18px; padding: 22px; margin-bottom: 30px; box-shadow: 0 18px 40px -28px rgba(43,61,255,.35); }\n      .mmc-rs-row { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 12px; }\n      .mmc-rs-field { flex: 1; min-width: 140px; }\n      .mmc-rs-card label { display: block; font-family: ui-monospace, \"JetBrains Mono\", monospace; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: #5a6178; margin-bottom: 6px; }\n      .mmc-rs-input { width: 100%; font-family: inherit; font-size: 16px; color: #0a0e1f; background: #f7f8fc; border: 1px solid #c9cfe6; border-radius: 12px; padding: 12px 14px; box-sizing: border-box; }\n      .mmc-rs-input:focus { border-color: #2b3dff; outline: none; box-shadow: 0 0 0 4px #e4e8ff; }\n      .mmc-rs-or { font-size: 14px; color: #5a6178; margin: 0 0 16px; max-width: none; }\n      .mmc-rs-mini { width: 110px; display: inline-block; padding: 8px 10px; margin-left: 6px; }\n      .mmc-rs-ta { font-family: ui-monospace, \"JetBrains Mono\", monospace; font-size: 14px; line-height: 1.7; resize: vertical; }\n      .mmc-rs-head { font-family: ui-monospace, \"JetBrains Mono\", monospace; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #5a6178; margin: 20px 0 8px; }\n      .mmc-rs-line { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px dashed #ddE1ee; font-family: ui-monospace, \"JetBrains Mono\", monospace; font-size: 14px; }\n      .mmc-rs-o { color: #8e96b3; flex: 1; }\n      .mmc-rs-n { color: #1b2bd6; font-weight: 600; flex: 1; text-align: right; }\n      .mmc-rs-bad .mmc-rs-n { color: #8e96b3; font-weight: 400; }\n      .mmc-rs-flag { display: inline-block; font-size: 11px; background: #fff3d6; color: #8a5a00; border-radius: 6px; padding: 0 6px; margin-left: 4px; font-weight: 600; }\n      .mmc-rs-actions { margin-top: 14px; display: flex; align-items: center; gap: 12px; }\n      .mmc-rs-btn { font-family: ui-monospace, \"JetBrains Mono\", monospace; font-size: 13px; font-weight: 600; background: #2b3dff; color: #fff; border: none; border-radius: 10px; padding: 10px 16px; cursor: pointer; }\n      .mmc-rs-btn:hover { background: #1b2bd6; }\n      .mmc-rs-copied { font-size: 13px; color: #1b2bd6; }\n      .mmc-rs-note { margin-top: 14px; padding: 4px 16px; background: #e4e8ff; border-radius: 12px; }\n      .mmc-rs-note p { font-size: 14px; line-height: 1.55; color: #1c2352; margin: 10px 0; max-width: none; }\n      .mmc-rs-page h2 { font-size: 22px; font-weight: 700; letter-spacing: -.015em; margin: 36px 0 8px; }\n      .mmc-rs-page p, .mmc-rs-list { max-width: 65ch; color: #3a4056; line-height: 1.65; margin-bottom: 14px; }\n      .mmc-rs-list { padding-left: 20px; }\n      .mmc-rs-page details { background: #fff; border: 1px solid #ddE1ee; border-radius: 12px; padding: 14px 16px; margin-bottom: 8px; }\n      .mmc-rs-page summary { font-weight: 600; cursor: pointer; }\n      .mmc-rs-page details p { margin: 10px 0 0; }\n      @media (max-width: 560px) {\n        .mmc-rs-page h1 { font-size: 28px; }\n        .mmc-rs-line { flex-direction: column; gap: 2px; }\n        .mmc-rs-n { text-align: left; }\n      }\n    <\/style>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-376","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Recipe Scaler - millimeters.to<\/title>\n<meta name=\"description\" content=\"Paste a recipe and halve, double or resize it to any servings. Gets tidy cups, spoons and grams, with optional metric. Free!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/millimeters.to\/es\/recipe-scaler\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recipe Scaler - millimeters.to\" \/>\n<meta property=\"og:description\" content=\"Paste a recipe and halve, double or resize it to any servings. Gets tidy cups, spoons and grams, with optional metric. Free!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/millimeters.to\/es\/recipe-scaler\/\" \/>\n<meta property=\"og:site_name\" content=\"millimeters.to\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-14T13:10:04+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/millimeters.to\\\/recipe-scaler\\\/\",\"url\":\"https:\\\/\\\/millimeters.to\\\/recipe-scaler\\\/\",\"name\":\"Recipe Scaler - millimeters.to\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/millimeters.to\\\/#website\"},\"datePublished\":\"2026-10-14T13:10:03+00:00\",\"dateModified\":\"2026-10-14T13:10:04+00:00\",\"description\":\"Paste a recipe and halve, double or resize it to any servings. Gets tidy cups, spoons and grams, with optional metric. Free!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/millimeters.to\\\/recipe-scaler\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/millimeters.to\\\/recipe-scaler\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/millimeters.to\\\/recipe-scaler\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/millimeters.to\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recipe Scaler\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/millimeters.to\\\/#website\",\"url\":\"https:\\\/\\\/millimeters.to\\\/\",\"name\":\"millimeters.to\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/millimeters.to\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recipe Scaler - millimeters.to","description":"Paste a recipe and halve, double or resize it to any servings. Gets tidy cups, spoons and grams, with optional metric. Free!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/millimeters.to\/es\/recipe-scaler\/","og_locale":"es_ES","og_type":"article","og_title":"Recipe Scaler - millimeters.to","og_description":"Paste a recipe and halve, double or resize it to any servings. Gets tidy cups, spoons and grams, with optional metric. Free!","og_url":"https:\/\/millimeters.to\/es\/recipe-scaler\/","og_site_name":"millimeters.to","article_modified_time":"2026-10-14T13:10:04+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/millimeters.to\/recipe-scaler\/","url":"https:\/\/millimeters.to\/recipe-scaler\/","name":"Recipe Scaler - millimeters.to","isPartOf":{"@id":"https:\/\/millimeters.to\/#website"},"datePublished":"2026-10-14T13:10:03+00:00","dateModified":"2026-10-14T13:10:04+00:00","description":"Paste a recipe and halve, double or resize it to any servings. Gets tidy cups, spoons and grams, with optional metric. Free!","breadcrumb":{"@id":"https:\/\/millimeters.to\/recipe-scaler\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/millimeters.to\/recipe-scaler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/millimeters.to\/recipe-scaler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/millimeters.to\/"},{"@type":"ListItem","position":2,"name":"Recipe Scaler"}]},{"@type":"WebSite","@id":"https:\/\/millimeters.to\/#website","url":"https:\/\/millimeters.to\/","name":"millimeters.to","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/millimeters.to\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"}]}},"_links":{"self":[{"href":"https:\/\/millimeters.to\/es\/wp-json\/wp\/v2\/pages\/376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/millimeters.to\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/millimeters.to\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/millimeters.to\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/millimeters.to\/es\/wp-json\/wp\/v2\/comments?post=376"}],"version-history":[{"count":1,"href":"https:\/\/millimeters.to\/es\/wp-json\/wp\/v2\/pages\/376\/revisions"}],"predecessor-version":[{"id":377,"href":"https:\/\/millimeters.to\/es\/wp-json\/wp\/v2\/pages\/376\/revisions\/377"}],"wp:attachment":[{"href":"https:\/\/millimeters.to\/es\/wp-json\/wp\/v2\/media?parent=376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}