编辑:@egreg,我用 复制粘贴了你的文档\expandonce
,但如果我把一个带有宏的小节放在里面,\subsection{\textit{EE} LEFTshort subsec}
那么我就会收到错误Missing control sequence inserted. \end{document}
。
我也尝试了fit
选项truncate
,\usepackage[fit]{truncate}
但是,长度值较小,,\truncate{3em}{\subsectiontitle}
它不能解决奇数侧(左)的问题,因为标题仍然位于(物理右)边距。
当我使用长长度时,该fit
选项效果会更好,例如\truncate{11em}{\subsectiontitle}
。
====================================
我尝试使用titlesec
和truncate
和xtring
来截断较长的节标题,但是我的节标题\textit{}
中可能包含和其他宏,这种情况会破坏\StrLeft
。
问题\truncate
是,当子节标题小于我分配截断的限制时,它将小节标题置于远离边距的位置。
这里的插图\truncate
该命令
\StrLeft
很好,因为它将截断的标题粘贴到(物理右)边缘\StrLeft
当我的标题有宏时,命令会中断该命令
\StrLeft
不好,因为它截断到字母,而不是整个单词该命令
\StrLeft
不好,因为它没有三个小点...
该命令
\truncate
很好,因为它不会在单词处中断和截断,也不会在字母处中断和截断该命令
\truncate
没有像\StrLeft
该命令不好,因为它可以超出[我不想要的]
\truncate
的限制\makeheadrule
这是文件
\documentclass[twoside,a4paper,12pt]{article}
%\documentclass[oneside,a4paper,12pt]{article}
\usepackage{fontspec}
%\setmainfont{TeX Gyre Termes}
\usepackage{polyglossia}
\setmainlanguage{german}
\usepackage{titlesec}
\usepackage[extramarks]{titleps}
\usepackage{truncate}
\usepackage{xstring}
\settitlemarks*{section,subsection}
%%\makeatletter
%%\def\setIn#1{\@setIn#1\@nil}
%%\def\@setIn#1#2\@nil{%
%%Input One: #1\par
%%Input two: #2%
%%}
%%\makeatother
\newpagestyle{MYSTYLE}{%
\widenhead[1cm][1cm]{1cm}{1cm}
\renewcommand{\makeheadrule}{\rule[1em]{\linewidth}{0.15ex}}
\renewcommand{\makefootrule}{\rule[1em]{\linewidth}{0.1ex}}
%% FIRST THE RIGHT SIDE [EVEN SIDE] THEN THE LEFT SIDE [ODD SIDE]
\sethead
[%
\large\thesection\#\truncate{8em}{\sectiontitle}%
]
[]
[%
\large\firstextramarks{subsection}\thesubsection\#
%\StrLeft{\subsectiontitle}{25}
\truncate{14em}{\subsectiontitle}
{+\thepage}%
]
{%
{\normalsize\thepage+}
\large\thesection\#\#\truncate{8em}{\sectiontitle}%
}
{}
{%
\large\firstextramarks{subsection}\thesubsection\#\#%
%\StrLeft{\subsectiontitle}{11}%
\truncate{11em}{\subsectiontitle}
}
\setfoot[][][]{}{}{}
}
\begin{document}
\pagestyle{MYSTYLE}
\section{\textit{EE} raha je hlavní a současně největší město České republiky a }
\subsection{LEFTshort subsec}
\newpage
\subsection{RIGHT looo oooo nnn nnnn nnng ggg subsection title}
\newpage
\section{\textit{EE} raha je hlavní a současně největší město České republiky a }
\subsection{LEFT looo oooo nnn nnnn nnng ggg subsection title}
\newpage
\subsection{ RIGHT Short subsec title}
\end{document}
答案1
问题\expandarg
;但我认为这样更好你提供缩写版本。
\documentclass[twoside,a4paper,12pt]{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\usepackage{polyglossia}
\setmainlanguage{czech}
\usepackage{titlesec}
\usepackage[extramarks]{titleps}
\usepackage{truncate}
\usepackage{xstring}
\expandarg
\settitlemarks*{section,subsection}
\newpagestyle{MYSTYLE}{%
\widenhead[1cm][1cm]{1cm}{1cm}
\renewcommand{\makeheadrule}{\rule[1em]{\linewidth}{0.15ex}}
\renewcommand{\makefootrule}{\rule[1em]{\linewidth}{0.1ex}}
%% FIRST THE RIGHT SIDE [EVEN SIDE] THEN THE LEFT SIDE [ODD SIDE]
\sethead
[%
\large\thesection\#\truncate{8em}{\sectiontitle}%
]
[]
[%
\large\firstextramarks{subsection}\thesubsection\#
\StrLeft{\subsectiontitle}{25}
{+\thepage}%
]
{%
{\normalsize\thepage+}
\large\thesection\#\#\truncate{8em}{\sectiontitle}%
}
{}
{%
\large\firstextramarks{subsection}\thesubsection\#\#%
\StrLeft{\subsectiontitle}{11}%
}
\setfoot[][][]{}{}{}
}
\begin{document}
\pagestyle{MYSTYLE}
\section{\textit{EE} raha je hlavní a současně největší město České republiky a }
\subsection{LEFTshort subsec}
\newpage
\subsection{RIGHT looo oooo nnn nnnn nnng ggg subsection title}
\newpage
\section{\textit{EE} raha je hlavní a současně největší město České republiky a }
\subsection{LEFT looo oooo nnn nnnn nnng ggg subsection title}
\newpage
\subsection{ RIGHT Short subsec title}
\end{document}