Поэтому я попытался сделать заголовки с подчеркиванием и выравниванием по центру:
Ответ на вопрос о выравнивании по центру пришелздесьиздесь.
Теперь мой вопрос, как мне сделать его подчеркнутым: с \ul
этим не работает (файл не компилируется, а с uline
я получаю уродливое подчеркивание:
А вот и МВЭ:
\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{}
из пакета soul
. Пожалуйста, также обратите внимание, что ваш used \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
символа.Но смотрите: это может привести к уродливой типографике., в зависимости от содержания используемого текста заголовка ...