ODT आउटपुट में मौजूदा सिंगल लाइन क्लासेस को mk4ht oolatex से कस्टमाइज़ करना
इस प्रश्न के विस्तार के रूप में: mk4ht oolatex से ODT आउटपुट में नई सिंगल लाइन कक्षाएं बनाना
मैं पहले से कॉन्फ़िगर किए गए मौजूदा आदेशों में निर्दिष्ट शैली को फिर से असाइन करने के लिए इस दृष्टिकोण का उपयोग करने का प्रयास कर रहा हूं। लिंक किए गए प्रश्न की टिप्पणियों में प्रदान किया गया प्रारंभिक मार्गदर्शन, जिसमें \Configure{section}
पाया गया कमांड से शुरू होता हैooffice.4ht
\Configure{section}
{\IgnorePar\EndP \HCode{<!--start of section-->}}
{\IgnorePar\EndP \HCode{<!--end of section-->}}
{\HCode{<text:h
text:style-name="\csname a:Heading-2\if@rl-rtl\fi
\endcsname"
\text:outlinelevel="2" ><text:span
text:style-name="section" >}\TitleMark\space
\HCode{</text:span>}\IgnoreIndent}
{\HCode{</text:h>\Hnewline}\par\ShowPar}
इसलिए मैंने शुरुआती बिंदु के रूप में इस ब्लॉक के साथ खेलना शुरू किया। लेकिन मैं इस ब्लॉक को अपने स्वयं के स्टाइल नामों के साथ अनुकूलित करने के लिए संकलित करने में असमर्थ हूं। मैंने कई क्रमपरिवर्तन की कोशिश की है और प्रत्येक में विस्तार करने के लिए गुंजाइश बदल जाती है, लेकिन संक्षेप में, मैंने कोशिश की है:
csname
केवल मेरे इच्छित अनुभाग नाम को लाइन को सरल बनाना ।- मैं की तरह टेक्स कोड को हटा दिया है
\TitleMark
और\space
। - मैंने संबंधित प्रश्न के उत्तर से प्रेरित
HCode
अनुकूलितHCode
पाठ के साथ भागों को बदलने का भी प्रयास किया है । - मेरा सेटअप रिक्त स्थान के लिए संवेदनशील लगता है इसलिए मैं इसके साथ-साथ
%
लाइन एंडिंग पर भी खेल रहा हूं ।
मुझे :h
और संबंधित >
चरित्र के बारे में शिकायत करते समय त्रुटि संदेश मिलता है , लेकिन सामान्य तौर पर यह केवल विशिष्ट रिपोर्ट करता हैMissing \begin{document} in myconfig.cfg
मेगावाट:
test.tex
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\definecolor{specialtextcolor}{rgb}{0,0,1}
\newenvironment{test}
{\par\begin{color}{specialtextcolor}}
{\end{color}}
\usepackage[parfill]{parskip}
\usepackage{longtable}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\begin{document}
This is a normal paragraph.
\section{Custom style access test}
test text in the first level of section hierarchy
more text
\begin{test}
This is a test environment.
\end{test}
more text
This is a blockquote environment
\begin{quote}
This is a test quote environment.
\end{quote}
\end{document}
myconfig.cfg
\Preamble{xhtml}
% to simplify the things
\def\myendpar{\ifvmode\IgnorePar\fi\EndP}
% configure the single line commands in Tex against their corresponding style in the template
\Configure{section}%
{\IgnorePar\EndP \HCode{<!--start of section-->}}%
{\IgnorePar\EndP \HCode{<!--end of section-->}}%
{\HCode{<text:h
text:style-name="Heading-2">
text:outlinelevel="2" ><text:span
text:style-name="section" >}%
%\TitleMark\space%
\HCode{</text:span>}%
%\IgnoreIndent%
}%
{\HCode{</text:h>\Hnewline}\par\ShowPar}%
% configure the environments in Tex against their corresponding style in the template
\ConfigureEnv{test}%
{%
\myendpar\bgroup%
% when you want to modify the paragraph style, you must redefine the paragraph configuration to use the test style name
\Configure{HtmlPar}%
{\EndP \HCode{<text:p text:style-name="test">}}%
{\EndP \HCode{<text:p text:style-name="test">}}%
{\HCode{</text:p>}}%
{\HCode{</text:p>}}%
\par\ShowPar%
}{\myendpar\egroup}{}{}%
\ConfigureEnv{quote}%
{%
\myendpar\bgroup%
% when you want to modify the paragraph style, you must redefine the paragraph configuration to use the test style name
\Configure{HtmlPar}%
{\EndP \HCode{<text:p text:style-name="quote">}}%
{\EndP \HCode{<text:p text:style-name="quote">}}%
{\HCode{</text:p>}}%
{\HCode{</text:p>}}%
\par\ShowPar%
}{\myendpar\egroup}{}{}%
\begin{document}
\EndPreamble
उदाहरण को नमूना ODT टेम्पलेट फ़ाइल के साथ कमांड के साथ संकलित किया गया है:
- एक लाइन खोल स्क्रिप्ट के भाग के रूप में:
make4ht -u --config "myconfig.cfg" --format "odt+odttemplate" "$FILE" odttemplate="$BASEDIR/refTemplates/basic.odt"
- या खिड़कियों पर एक बैट फाइल के हिस्से के रूप में:
"%MikTexPath%%htxCompiler%" --config "myconfig.cfg" --format "odt+odttemplate" "%%~nxA" odttemplate="./refTemplates/basic.odt"
यदि मैं पूरी तरह से निशान से चूक गया हूं, तो मैं मौजूदा कमांड में शैलियों की मैपिंग कैसे बदल सकता हूं?
जवाब
मुझे आपकी mwe.cfg
मुख्य रूप से त्रुटियां मिलती हैं क्योंकि: आप अघोषित रूप से उपयोग करते हैं \Configure{SectionTitleTest}
और इसके लिए पांचवां तर्क गायब है \Configure{section}
।
मैं आपकी फ़ाइल को निम्न सुधारों के साथ संकलित कर सकता हूं:
\Preamble{xhtml}
% to simplify the things
\def\myendpar{\ifvmode\IgnorePar\fi\EndP}
% configure the single line commands in Tex against their corresponding style in the template
%\Configure{SectionTitleTest}{\myendpar\HCode{<text:p text:style-name="section-title">}}{\HCode{</text:p>}}
\NewConfigureOO{section-title}
\ConfigureOO{section-title}{<style:style style:name="section-title" style:family="paragraph" style:class="text">
<style:text-properties style:text-underline-style="solid"
style:text-underline-width="auto"
style:text-underline-color="font-color"
/>
</style:style>}
\Configure{section}%
{\IgnorePar\EndP \HCode{<!--start of section-->}}%
{\IgnorePar\EndP \HCode{<!--end of section-->}}%
{\HCode{<text:h
text:style-name="Heading 1"
text:outlinelevel="2" ><text:span
text:style-name="section" >}%
%\TitleMark\space%
\HCode{</text:span>}%
%\IgnoreIndent%
}{\HCode{</text:h>}}%
% \Configure{section}
% {\IgnorePar\EndP \HCode{<!--start of section-->}}
% {\IgnorePar\EndP \HCode{<!--end of section-->}}
% {\HCode{<text:h
% text:style-name="\csname a:Heading-2\if@rl-rtl\fi\endcsname"
% text:outlinelevel="2" ><text:span
% text:style-name="section" >}\TitleMark\space
% \HCode{</text:span>}\IgnoreIndent}
% {\HCode{</text:h>\Hnewline}\par\ShowPar}
% configure the environments in Tex against their corresponding style in the template
\ConfigureEnv{test}%
{%
\myendpar\bgroup%
% when you want to modify the paragraph style, you must redefine the paragraph configuration to use the test style name
\Configure{HtmlPar}%
{\EndP \HCode{<text:p text:style-name="test">}}%
{\EndP \HCode{<text:p text:style-name="test">}}%
{\HCode{</text:p>}}%
{\HCode{</text:p>}}%
\par\ShowPar%
}{\myendpar\egroup}{}{}%
\ConfigureEnv{quote}%
{%
\myendpar\bgroup%
% when you want to modify the paragraph style, you must redefine the paragraph configuration to use the test style name
\Configure{HtmlPar}%
{\EndP \HCode{<text:p text:style-name="quote">}}%
{\EndP \HCode{<text:p text:style-name="quote">}}%
{\HCode{</text:p>}}%
{\HCode{</text:p>}}%
\ShowPar%
}{\myendpar\egroup}{}{}%
\begin{document}
\EndPreamble
एक और फिक्स जो मैंने जोड़ा है वह यह था कि मैंने इसे हटा दिया \par
था \ConfigureEnv{quote}
, क्योंकि इससे दस्तावेज़ में दिखाया गया खाली खाली पैराग्राफ दिखाई दिया।
यह प्रदान किया गया दस्तावेज है: