所以我嘗試製作下劃線居中的標題:
居中的答案來了這裡和這裡。
現在我的問題是,我如何使它帶有下劃線:\ul
它不起作用(文件無法編譯,並且uline
我得到醜陋的下劃線:
這是 MWE:
\documentclass{scrartcl}
\usepackage{fontspec,adforn,ulem,soul}
\makeatletter
\addtokomafont{section}{\centering}
\addtokomafont{subsection}{\centering}
\renewcommand{\sectionlinesformat}[4]{%
%\@tempswafalse
\ifstr{#1}{section}{%
{\@hangfrom{{{#3}{#4}\adforn{12}}}}
}
{\ifstr{#1}{subsection}{%
{\@hangfrom{\uline{{{#3}{#4}\adforn{24}}}}}%
}
{\@hangfrom{\hskip#2#3}{#4}}}%
}\makeatother
\begin{document}
\part{ABC}
\section{abc}
\subsection{abcd efgh abcd efgh iiii hhjjgghgg abcd efgh abcd efgh iiii hhjjgghgg abcd efgh abcd efgh iiii hhjjgghgg}
\end{document}
PS 對於我得到答案的部分這裡但它也不起作用。
這是關於使用\ul
或者\uline
。
如果我把parbox
這個寫成我得到的:
這是相關行:
{\ifstr{#1}{subsection}{%
{\@hangfrom{\uline{\parbox{\linewidth}{{#3}{#4}\adforn{24}}}}}%
}
您是否知道它如何正常工作和外觀,並且文字可以多於一行居中和下劃線?
謝謝你!
答案1
若要直觀地了解您的情況下劃線的問題,請參閱以下程式碼。它是基於根據我的回答\ul{}
並在package 中的命令中使用下劃線soul
。另請參閱您使用的內容\adforn{}
位於章節和小節的標題中:
\documentclass{scrartcl}
\usepackage{fontspec,adforn}
\usepackage{soul}
\begin{document}
\renewcommand\raggedsection{\centering}
\part{ABC}
\section{\ul{abc test test test test test test test test test test test test
test test test test test test test test test test test test test test
test test test test test test} \adforn{12}} % <=======================
\subsection{\ul{def} \adforn{24}} % <===================================
\section{\ul{abc test test test test test test test test test test test test
test test test test test test test test test test test test test test
test test test test test test \protect\adforn{12}}} % <===============
\end{document}
結果:
正如您所看到的\ul{...}
,\section
如果\adforn{}
不包括在內到\ul
(見上圖第一個紅色圓圈)!
現在你可以嘗試\adforn
加入\ul
類似
\subsection{\ul{def \adforn{24}}}
結果有9個錯誤。
正如您所看到的,上圖中標有第二個紅色圓圈,您可以使用它\protect\adfarn
來編譯而不會出現錯誤,但結果很醜陋(第二個紅色圓圈)。
結論:
\adforn
您可以在不使用或的情況下使用居中底線- 您可以使用
\adforn
居中但不帶底線
我建議省略下劃線!
基於關於這個答案中的第二個MWE你可以做
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage{adforn}
\usepackage{soul} % <===================================================
\renewcommand\raggedsection{\centering}
\let\originalsectionlinesformat\sectionlinesformat
\renewcommand{\sectionlinesformat}[4]{%
\originalsectionlinesformat{#1}{#2}{#3}{\ul{#4}% <====================
\ifstr{#1}{section}{\adforn{12}}
{\ifstr{#1}{subsection}{\adforn{24}}{}}%
}%
}
\usepackage{blindtext}% only for dummy text
\begin{document}
\section{abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc abc}
\blindtext
\subsection{def}
\blindtext
\end{document}
為標題添加下劃線\section
,並且\subsection
不添加自動添加的\adforn
符號。但請注意:這可能會導致難看的排版,取決於所使用的標題文字的內容...