我正在使用 XeLateX。如何像下图一样在每个新定理、引理等中添加渐变?我希望渐变填充整个线宽。如何自动完成?
我的代码
\documentclass[letterpaper,twoside,reqno,10pt]{book}
\usepackage[cm-default]{fontspec}
\usepackage{xltxtra}
\usepackage{xunicode}
\usepackage{xgreek}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bold-extra}
\usepackage{fancyhdr}%renewcommend chaptername
\usepackage[left=2.5cm,right=2.5cm,top=2cm,bottom=1.6cm]{geometry} %
\usepackage{enumerate}
\usepackage{float}%text next2 image
\usepackage{cancel}%diagrafi metablitwn kathetos
\usepackage{empheq}
\usepackage{makeidx} % needed for creating an index
\usepackage{wrapfig}
\usepackage{amsthm}
\usepackage{thmtools}
% % % % % % % Me to style twn paradeigmatwn % % % % % % %
\declaretheoremstyle[headfont=\normalfont\bfseries]{normal}
\declaretheorem[style=normal,numberwithin=section,name=Παράδειγμα] {example}
\declaretheorem[style=normal,sibling=example,name=Σχόλιο]{sxolio}
\declaretheorem[style=normal,sibling=example,name=Πόρισμα]{corollary}
\declaretheorem[style=normal,sibling=example,name=Εφαρμογή]{application}
\declaretheorem[style=normal,sibling=example,name=Άσκηση]{homework}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% % % % % % Me to style twn thewrimatwn % % % % % % % % % %
\declaretheorem[name=ΘΕΩΡΗΜΑ,numberwithin=section]{theorem}
\declaretheorem[name=ΛΗΜΜΑ,numberwithin=section]{lemma}
\declaretheorem[name=ΠΡΟΤΑΣΗ,numberwithin=section]{proposition}
\declaretheorem[name=ΟΡΙΣΜΟΣ,numberwithin=section]{definition}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% % % % %OTF fonts % % % % % % % % % % % % % % % % % % % % % % % % % % %
\setmainfont[BoldFont=Kerkisbold,
ItalicFont=Kerkisitalics]{Kerkis}
\setsansfont{KerkisSans}
% % % % % % % % % % % % % % % % % % % % % % % % %
\begin{document}
\chapter{test}
\section{test}
\begin{theorem}\ \\
This is a theorem
\end{theorem}
text out of theorem
\begin{sxolio}\ \\
This is a comment
\end{sxolio}
\end{document}
答案1
如果你使用基础 \newtheorem,你可以使用
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shadings}
\newtheorem{theorem}{Theorem}[section]
\makeatletter
\def\@begintheorem#1#2{\trivlist
\item[\hskip \labelsep{\tikz[overlay]{\shade[left color=blue!50,right color=white]
(0,-1ex) rectangle (\textwidth-\labelsep,1em);}%
\bfseries #1\ #2}]\itshape}
\def\@opargbegintheorem#1#2#3{\trivlist
\item[\hskip \labelsep{\tikz[overlay]{\shade[left color=blue!50,right color=white]
(0,-1ex) rectangle (\textwidth-\labelsep,1em);}%
\bfseries #1\ #2\ (#3)}]\itshape}
\makeatother
\begin{document}
\section{first}
\begin{theorem}
\textbf{(Pythagorean Theorem)}\newline
Text goes here
\end{theorem}
\end{document}
您thmtools
可以将 tikz 覆盖放在 中headfont
。(这有点复杂,因为默认值headindent
是\empty
,而不是0pt
。)
\documentclass{book}
\usepackage{amsthm}
\usepackage{thmtools}
\newlength\templen
\makeatletter
\def\titleshade{\ifx\empty\thmt@style@headindent\relax \def\thmt@style@headindent{0pt}\fi
\tikz[overlay,xshift=\thmt@style@headindent]{\shade[left color=blue!30,right color=white]
(0,-1ex) rectangle (\linewidth-\thmt@style@headindent,1em);}}%
\makeatother
\declaretheoremstyle[headfont=\titleshade\normalfont\bfseries,postheadspace=\newline]{shaded}
\declaretheorem[style=shaded,name=Theorem,numberwithin=section]{theorem}
\usepackage{tikz}
\begin{document}
\chapter{test}
\section{test}
\begin{theorem}[Pythagorean Theorem]
This is a theorem
\end{theorem}
text out of theorem
\end{document}