我正在尝试自定义某个方面,scrbook
使其看起来像我拥有的一本书。
在我的例子中,各部分的格式应如下:字体应为Conques Demi
,字体大小为26 pt
,字体颜色为特定的深红色(CMYK:0% 87% 87% 50%),且字体颜色1 pt
为粗线,且宽度大于列宽,标签应为大写并右对齐。
由于我还没有弄清楚如何使用 KOMA 脚本绘制彩色线条规则,因此我尝试使用其他软件包来避免这种结果。如果您知道如何获得我上面描述的确切结果,请随时在 KOMA 中向我展示如何操作!提前致谢!
无论如何,我设法模仿了字体、大小和颜色、规则和对齐方式,但当我尝试将标签设为大写时,我开始遇到问题。请注意,即使我删除对该fontspec
包及其所有命令的任何引用,问题仍然存在。考虑以下内容最小工作示例:
\documentclass[twocolumn]{scrbook}
\usepackage{xcolor}
\usepackage{sectsty}
\usepackage{fontspec}
\setcounter{secnumdepth}{0}
\definecolor{darkred}{cmyk}{0.0,0.87,0.87,0.50}
\newfontfamily\myfont[]{Conques}
\sectionfont{\raggedleft\myfont\Huge\color{darkred}\sectionrule{0pt}{0pt}{-2pt}{1pt}} %
\begin{document}
\mainmatter
\section{A Section} % (fold)
\label{sec:a_section}
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
% section a_section (end)
\end{document}
正如其他答案(针对更简单的情况)所建议的那样,为了将该部分的标签大写,我应该将其添加\uppercase
到命令的末尾\sectionfont{...}
。但是,如果我这样做,我会收到警告,{
缺少 a 并且\begin{document}
由 关闭\end{DOCUMENT}
。如果我打开结果.pdf
,则所有文档都是大写的,除了A Section
在第一次出现下方出现的附加的,并且规则消失了。
\uppercase
我认为,这是因为参数命令,而在这里它被用作“绝对”语句。事实上,我认为第二次出现A Section
是由于\uppercase
混淆了目录的节标题定义,导致目录变为空。
根据我的研究,没有这样的“绝对” \uppercase
等效。有些答案建议使用\MakeUppercase
相反的方法,因为在某些情况下它更“尊敬的”周围环境。但是,如果我这样做,我会得到以下结果:[0pt][r]
空行开头的字符串带有规则,该规则超出了垂直列边框;正确的部分标签出现在下方,不是大写,没有规则,但正确地移到了右侧。即使这可能建议重新排序内部命令\sectionfont{...}
,但实际上没有排列起作用。我甚至尝试过textcase
包及其\MakeTextUppercase
命令,但完全没有运气。
有人能告诉我我错在哪里以及如何解决这个问题吗?
答案1
如果可以使用 KOMA,\setkomafont{section}{<decl>}
那么任务就相当简单了,因为其中的最后一个命令可能有一个参数。KOMA 没有,\sectionrule
但可以使用 LaTeX 的\rule[<raise>]{<width>}{<thickness>}
命令定义类似的东西。
因此也许是类似下面的内容:
\documentclass[twocolumn]{scrbook}
% choose the font:
\usepackage{fontspec}
% I don't have `Conques' installed, so I use another font
% I also added a `LetterSpace' greater than zero as all-caps
% words _always_ should be spaced out a little
\newfontfamily\sectionfont[LetterSpace=2]{Linux Libertine O}
% define the color:
\usepackage{xcolor}
\definecolor{darkred}{cmyk}{0.0,0.87,0.87,0.50}
\colorlet{section}{darkred}
% the section layout:
\newcommand\sectionrule{%
\makebox[0pt][l]{\rule[-.25ex]{\linewidth}{1pt}}}
\newcommand\sectionformat[1]{%
\sectionfont\Huge\color{section}%
\sectionrule
\hfill\MakeUppercase{#1}}
\setkomafont{section}{\sectionformat}
\setcounter{secnumdepth}{0}
\begin{document}
\mainmatter
\section{A Section}\label{sec:a_section}
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
\end{document}