{"id":5526,"date":"2024-12-19T17:46:11","date_gmt":"2024-12-19T16:46:11","guid":{"rendered":"https:\/\/e3holding.de\/e3-in-frankenpost\/"},"modified":"2025-01-16T12:14:15","modified_gmt":"2025-01-16T11:14:15","slug":"e3-in-frankenpost","status":"publish","type":"post","link":"https:\/\/e3holding.de\/en\/e3-in-frankenpost\/","title":{"rendered":"E3 in Frankenpost"},"content":{"rendered":"<script type=\"text\/javascript\">let processScroll = () => {\n\tlet docElem = document.documentElement, \n\t\tdocBody = document.body,\n\t\tscrollTop = docElem['scrollTop'] || docBody['scrollTop'],\n    \tscrollBottom = (docElem['scrollHeight'] || docBody['scrollHeight']) - window.innerHeight - window.innerHeight,\n\t\tscrollPercent = scrollTop \/ scrollBottom * 100 + '%';\n\t\/\/ console.log(scrollTop + ' \/ ' + scrollBottom + ' \/ ' + scrollPercent);\n    document.getElementById(\"progress-bar\").style.setProperty(\"--scrollAmount\", scrollPercent);\t\n}\ndocument.addEventListener('scroll', processScroll);\n\njQuery(function ($) {\n    var project1 = $('.post-sidebar').offset();\n    var $window = $(window);\n    \n    $window.scroll(function() {\n        if ( $window.scrollTop() >= project1.top) {\n            $(\".post-sidebar-inner\").addClass(\"sticky\");\n        }\n        if ( $window.scrollTop() <= project1.top) {\n            $(\".post-sidebar-inner\").removeClass(\"sticky\");\n        }\n    });\t\t\t\n});\n\n\/*!\nName: Reading Time\nDependencies: jQuery\nAuthor: Michael Lynch\nAuthor URL: http:\/\/michaelynch.com\nDate Created: August 14, 2013\nDate Updated: April 30, 2018\nLicensed under the MIT license\n*\/\n\njQuery(function ($) {\n\n\t$.fn.readingTime = function(options) {\n\n\t\t\/\/ define default parameters\n\t\tconst defaults = {\n\t\t\treadingTimeTarget: '.eta',\n\t\t\treadingTimeAsNumber: false,\n\t\t\twordCountTarget: null,\n\t\t\twordsPerMinute: 270,\n\t\t\tround: true,\n\t\t\tlang: 'en',\n\t\t\tlessThanAMinuteString: 'test',\n\t\t\tprependTimeString: '',\n\t\t\tprependWordString: '',\n\t\t\tremotePath: null,\n\t\t\tremoteTarget: null,\n\t\t\tsuccess: function() {},\n\t\t\terror: function() {}\n\t\t};\n\n\t\tconst plugin = this;\n\t\tconst el = $(this);\n\n\t\tlet wordsPerSecond;\n\t\tlet lessThanAMinute;\n\t\tlet minShortForm;\n\n\t\tlet totalWords;\n\t\tlet totalReadingTimeSeconds;\n\n\t\tlet readingTimeMinutes;\n\t\tlet readingTimeSeconds;\n\t\tlet readingTime;\n\t\tlet readingTimeObj;\n\n\t\t\/\/ merge defaults and options\n\t\tplugin.settings = $.extend({}, defaults, options);\n\n\t\t\/\/ define vars\n\t\tconst s = plugin.settings;\n\n\t\tconst setTime = function(o) {\n\n\t\t\tif(o.text !== '') {\n\t\t\t\tif (s.lang == \"zh\") {\n\t\t\t\t\tlet text = o.text.trim();\n\t\t\t\t\t\/\/ step 1: count the number of Chinese characters\n\t\t\t\t\tconst charArray = text.match(\/[\\u4e00-\\u9fa5]\/g);\n\t\t\t\t\tlet charCount = 0;\n\t\t\t\t\tif (charArray != null) {\n\t\t\t\t\t\tcharCount = charArray.length;\n\t\t\t\t\t}\n\t\t\t\t\t\/\/ step 2: replace all the Chinese characters with blank\n\t\t\t\t\ttext = text.replace(\/[\\u4e00-\\u9fa5]\/g, \" \");\n\t\t\t\t\t\/\/ step 3:replace newlines with blank\n\t\t\t\t\ttext = text.replace(\/[\\r\\n]\/g, \" \");\n\t\t\t\t\t\/\/ step 4:replace special characters with blank\n\t\t\t\t\ttext = text.replace(\/\\W+\/g, \" \");\n\t\t\t\t\t\/\/ step 5: count the number of total English words\n\t\t\t\t\tconst totalEnWords = text.trim().split(\/\\s+\/g).length;\n\t\t\t\t\ttotalWords = totalEnWords + charCount;\n\t\t\t\t} else {\n\t\t\t\t\t\/\/split text by spaces to define total words\n\t\t\t\t\ttotalWords = o.text.trim().split(\/\\s+\/g).length;\n\t\t\t\t}\n\n\t\t\t\t\/\/define words per second based on words per minute (s.wordsPerMinute)\n\t\t\t\twordsPerSecond = s.wordsPerMinute \/ 60;\n\n\t\t\t\t\/\/define total reading time in seconds\n\t\t\t\ttotalReadingTimeSeconds = totalWords \/ wordsPerSecond;\n\n\t\t\t\t\/\/ define reading time\n\t\t\t\treadingTimeMinutes = Math.floor(totalReadingTimeSeconds \/ 60);\n\n\t\t\t\t\/\/ define remaining reading time seconds\n\t\t\t\treadingTimeSeconds = Math.round(totalReadingTimeSeconds - (readingTimeMinutes * 60));\n\n\t\t\t\t\/\/ format reading time\n\t\t\t\treadingTime = `${readingTimeMinutes}:${readingTimeSeconds}`;\n\t\t\t\t\/\/ if s.round\n\t\t\t\tif(s.round) {\n\n\t\t\t\t\t\/\/ if minutes are greater than 0\n\t\t\t\t\tif(readingTimeMinutes > 0) {\n\n\t\t\t\t\t\t\/\/ set reading time by the minute\n\t\t\t\t\t\t$(s.readingTimeTarget).text(s.prependTimeString + readingTimeMinutes + ((!s.readingTimeAsNumber) ? ' ' + minShortForm : ''));\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\/\/ set reading time as less than a minute\n\t\t\t\t\t\t$(s.readingTimeTarget).text((!s.readingTimeAsNumber) ? s.prependTimeString + lessThanAMinute : readingTimeMinutes);\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t\/\/ set reading time in minutes and seconds\n\t\t\t\t\t$(s.readingTimeTarget).text(s.prependTimeString + readingTime);\n\t\t\t\t}\n\n\t\t\t\t\/\/ if word count container isn't blank or undefined\n\t\t\t\tif(s.wordCountTarget !== '' && s.wordCountTarget !== undefined) {\n\n\t\t\t\t\t\/\/ set word count\n\t\t\t\t\t$(s.wordCountTarget).text(s.prependWordString + totalWords);\n\t\t\t\t}\n\n\t\t\t\treadingTimeObj = {\n\t\t\t\t\twpm: s.wordsPerMinute,\n\t\t\t\t\twords: totalWords,\n\t\t\t\t\teta: {\n\t\t\t\t\t\ttime: readingTime,\n\t\t\t\t\t\tminutes: readingTimeMinutes,\n\t\t\t\t\t\tseconds: totalReadingTimeSeconds\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t\/\/ run success callback\n\t\t\t\ts.success.call(this, readingTimeObj);\n\n\t\t\t} else {\n\n\t\t\t\t\/\/ run error callback\n\t\t\t\ts.error.call(this, {\n\t\t\t\t\terror: 'The element does not contain any text'\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\t\/\/ if no element was bound\n\t\tif(!this.length) {\n\n\t\t\t\/\/ run error callback\n\t\t\ts.error.call(this, {\n\t\t\t\terror: 'The element could not be found'\n\t\t\t});\n\n\t\t\t\/\/ return so chained events can continue\n\t\t\treturn this;\n\t\t}\n\n\t\t\/\/ Use switch instead of ifs\n\t\tswitch (s.lang) {\n\t\t\t\/\/ if s.lang is Arabic\n\t\t\tcase 'ar':\n        lessThanAMinute = s.lessThanAMinuteString || \"\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629\";\n        minShortForm = '\u062f\u0642\u064a\u0642\u0629';\n        break;\n\t\t\t\/\/ if s.lang is Czech\n\t\t\tcase 'cz':\n        lessThanAMinute = s.lessThanAMinuteString || \"M\u00e9n\u011b ne\u017e minutu\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Danish\n\t\t\tcase 'da':\n        lessThanAMinute = s.lessThanAMinuteString || \"Mindre end et minut\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is German\n      case 'de':\n        lessThanAMinute = s.lessThanAMinuteString || \"Weniger als eine Minute\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Spanish\n      case 'es':\n        lessThanAMinute = s.lessThanAMinuteString || \"Menos de un minuto\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is French\n      case 'fr':\n        lessThanAMinute = s.lessThanAMinuteString || \"Moins d'une minute\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Hungarian\n      case 'hu':\n        lessThanAMinute = s.lessThanAMinuteString || \"Kevesebb mint egy perc\";\n        minShortForm = 'perc';\n        break;\n\t\t\t\/\/ if s.lang is Icelandic\n      case 'is':\n        lessThanAMinute = s.lessThanAMinuteString || \"Minna en eina m\u00edn\u00fatu\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Italian\n      case 'it':\n        lessThanAMinute = s.lessThanAMinuteString || \"Meno di un minuto\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Dutch\n      case 'nl':\n        lessThanAMinute = s.lessThanAMinuteString || \"Minder dan een minuut\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Norwegian\n      case 'no':\n        lessThanAMinute = s.lessThanAMinuteString || \"Mindre enn ett minutt\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Polish\n      case 'pl':\n        lessThanAMinute = s.lessThanAMinuteString || \"Mniej ni\u017c minut\u0119\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Russian\n      case 'ru':\n        lessThanAMinute = s.lessThanAMinuteString || \"\u041c\u0435\u043d\u044c\u0448\u0435 \u043c\u0438\u043d\u0443\u0442\u044b\";\n        minShortForm = '\u043c\u0438\u043d';\n        break;\n\t\t\t\/\/ if s.lang is Slovak\n      case 'sk':\n        lessThanAMinute = s.lessThanAMinuteString || \"Menej ne\u017e min\u00fatu\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Swedish\n      case 'sv':\n        lessThanAMinute = s.lessThanAMinuteString || \"Mindre \u00e4n en minut\";\n        minShortForm = 'min';\n        break;\n\t\t\t\/\/ if s.lang is Turkish\n      case 'tr':\n        lessThanAMinute = s.lessThanAMinuteString || \"Bir dakikadan az\";\n        minShortForm = 'dk';\n        break;\n\t\t\t\/\/ if s.lang is Ukrainian\n      case 'uk':\n        lessThanAMinute = s.lessThanAMinuteString || \"\u041c\u0435\u043d\u0448\u0435 \u0445\u0432\u0438\u043b\u0438\u043d\u0438\";\n        minShortForm = '\u0445\u0432';\n        break;\n\t\t\t\/\/ if s.lang is Greek\n\t\t\tcase 'el':\n        lessThanAMinute = s.lessThanAMinuteString || '\u039b\u03b9\u03b3\u03cc\u03c4\u03b5\u03c1\u03bf \u03b1\u03c0\u03cc \u03bb\u03b5\u03c0\u03c4\u03cc';\n        minShortForm = '\u03bb\u03b5\u03c0\u03c4\u03ac';\n        break;\n            \/\/ if s.lang is Portuguese\n            case 'pt-BR':\n        lessThanAMinute = s.lessThanAMinuteString || 'Menos de um minuto';\n        minShortForm = 'min';\n\t\tbreak;\n\t\t\t\/\/ if s.lang is Korean\n\t\t\tcase 'kr':\n\t\tlessThanAMinute = s.lessThanAMinuteString || '1\ubd84 \uc774\ud558';\n\t\tminShortForm = '\ubd84';\n        break;\n\t\t\t\/\/ default s.lang in english\n\t\t\tdefault:\n        lessThanAMinute = s.lessThanAMinuteString || 'Less than a minute';\n        minShortForm = 'min';\n    }\n\n\t\t\/\/ for each element\n\t\tel.each(function(index) {\n\n\t\t\t\/\/ if s.remotePath and s.remoteTarget aren't null\n\t\t\tif(s.remotePath != null && s.remoteTarget != null) {\n\n\t\t\t\t\/\/ get contents of remote file\n\t\t\t\t$.get(s.remotePath, function(data) {\n\t\t\t\t\tlet wrapper = document.createElement('div');\n\n\t\t\t\t\twrapper.innerHTML = data;\n\n\t\t\t\t\t\/\/ set time using the remote target found in the remote file\n\t\t\t\t\tsetTime({\n\t\t\t\t\t\ttext: $(wrapper).find(s.remoteTarget).text()\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t} else {\n\n\t\t\t\t\/\/ set time using the targeted element\n\t\t\t\tsetTime({\n\t\t\t\t\ttext: el.text()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn true;\n\t}\n});\n\njQuery(function ($) {\n\n\t$('#post-content').readingTime({\n\t\treadingTimeAsNumber: true,\n\t\twordsPerMinute: 200,\n\t\tround: false,\n\t\tlang: 'de',\n\t\t\n        success: function(data) {\n\t\t\tconsole.log(data);\n\t\t},\n\t\terror: function(data) {\n\t\t\tconsole.log(data.error);\n\t\t\t$('.reading-time').remove();\n\t\t}\n\t});\n});\n\n<\/script><section id=\"post-content\" class=\"custom-block section-post-content pt-medium pb-medium bg-white text-body\"><div class=\"wrapper-wide\"><div class=\"section-inner\"><div class=\"row g-0\"><div class=\"col-sm-20 offset-sm-2 col-lg-5 offset-lg-2 order-lg-2\"><div class=\"post-sidebar\"><div class=\"post-sidebar-inner pb-medium pb-lg-0\"><\/div><\/div><\/div><div class=\"col-sm-20 offset-sm-2 col-lg-12 offset-lg-2 order-lg-1\"><div class=\"post-excerpt pb-small\"><p class=\"lead mb-0\">Thomas Fotteler and PEMA Managing Director J\u00f6rg Loew share their insights in this interview with Frankenpost Verlag GmbH.<\/p><\/div><div id=\"post-content\" class=\"pb-medium\"><div class=\"acf-innerblocks-container\">\n\n<p>In Germany, gingerbread is a traditional part of Christmas celebrations. But that\u2019s only one of the reasons why production at E3\u2019s group company PEMA Vollkorn-Spezialit\u00e4ten GmbH &amp; Co. KG is at full capacity. Business is booming for the newest addition to the E3 family, which produces around 45 tonnes of bread every day, using the finest locally sourced ingredients.\u00a0<\/p>\n\n\n\n<p>And there are plenty of new ideas in the pipeline! E3 team member Thomas Fotteler and PEMA Managing Director J\u00f6rg Loew spoke to Frankenpost Verlag GmbH about their vision for the future.<\/p>\n\n\n\n<p>Frankenpost, 18\u00a0December 2024<\/p>\n\n\n\n<a class=\"d-block mt-3\" href=\"https:\/\/www.frankenpost.de\/inhalt.regionale-wirtschaft-so-sehen-die-plaene-des-investors-fuer-pema-aus.6e9eccfe-2ada-494a-9f02-cc419a070a89.html\" target=\"_blank\" rel=\"noopener\"><button class=\"button button-background-secondary\">Read article (in German only)\u00a0<sup>*<sup><\/sup><\/sup><\/button><\/a><p class=\"small mt-3\"><sup>*<\/sup>\u00a0Paid content: Please subscribe to view the full article.<\/p>\n\n<\/div><\/div><div class=\"tag-list-container pt-3\"><div class=\"tag-list\"><p class=\"mb-1 small\">Related topics<\/p><ul class=\"tag-list small\"><li><a href=\"https:\/\/e3holding.de\/en\/tag\/group-companies\/\" rel=\"tag\">Group companies<\/a><\/li><li><a href=\"https:\/\/e3holding.de\/en\/tag\/joerg-loew-en\/\" rel=\"tag\">J\u00f6rg Loew<\/a><\/li><li><a href=\"https:\/\/e3holding.de\/en\/tag\/pema-en\/\" rel=\"tag\">PEMA<\/a><\/li><li><a href=\"https:\/\/e3holding.de\/en\/tag\/strategy\/\" rel=\"tag\">Strategy<\/a><\/li><li><a href=\"https:\/\/e3holding.de\/en\/tag\/thomas-fotteler-en\/\" rel=\"tag\">Thomas Fotteler<\/a><\/li><\/ul><\/div><\/div><\/div><\/div><\/div><\/div><\/section>","protected":false},"excerpt":{"rendered":"Thomas Fotteler and PEMA Managing Director J\u00f6rg Loew share their insights in this interview with Frankenpost Verlag GmbH.","protected":false},"author":9,"featured_media":5429,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[109],"tags":[37,138,127,137,136],"class_list":["post-5526","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-e3-in-the-news","tag-group-companies","tag-joerg-loew-en","tag-pema-en","tag-strategy","tag-thomas-fotteler-en"],"acf":[],"_links":{"self":[{"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/posts\/5526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/comments?post=5526"}],"version-history":[{"count":1,"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/posts\/5526\/revisions"}],"predecessor-version":[{"id":5527,"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/posts\/5526\/revisions\/5527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/media\/5429"}],"wp:attachment":[{"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/media?parent=5526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/categories?post=5526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/e3holding.de\/en\/wp-json\/wp\/v2\/tags?post=5526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}