渐变填充定理 仅标题

渐变填充定理 仅标题

我正在使用 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}

相关内容